Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 Jan 2014 17:59:22 +0000 (UTC)
From:      Kai Wang <kaiw@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r260855 - projects/elftoolchain/contrib/elftoolchain/libdwarf
Message-ID:  <201401181759.s0IHxMJK067711@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kaiw
Date: Sat Jan 18 17:59:22 2014
New Revision: 260855
URL: http://svnweb.freebsd.org/changeset/base/260855

Log:
  API dwarf_attrval_flag() should properly handle an attribute with
  (DWARF4) form DW_FORM_flag_present which implicitly indicates the
  presence of the attribute. Manual page is updated to reflect this
  change.
  
  Note that this was previously fixed in the old libdwarf.

Modified:
  projects/elftoolchain/contrib/elftoolchain/libdwarf/dwarf_attrval.c
  projects/elftoolchain/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3

Modified: projects/elftoolchain/contrib/elftoolchain/libdwarf/dwarf_attrval.c
==============================================================================
--- projects/elftoolchain/contrib/elftoolchain/libdwarf/dwarf_attrval.c	Sat Jan 18 17:49:32 2014	(r260854)
+++ projects/elftoolchain/contrib/elftoolchain/libdwarf/dwarf_attrval.c	Sat Jan 18 17:59:22 2014	(r260855)
@@ -50,6 +50,7 @@ dwarf_attrval_flag(Dwarf_Die die, Dwarf_
 
 	switch (at->at_form) {
 	case DW_FORM_flag:
+	case DW_FORM_flag_present:
 		*valp = (Dwarf_Bool) (!!at->u[0].u64);
 		break;
 	default:

Modified: projects/elftoolchain/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3
==============================================================================
--- projects/elftoolchain/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3	Sat Jan 18 17:49:32 2014	(r260854)
+++ projects/elftoolchain/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3	Sat Jan 18 17:59:22 2014	(r260855)
@@ -24,7 +24,7 @@
 .\"
 .\" $Id: dwarf_attrval_signed.3 2072 2011-10-27 03:26:49Z jkoshy $
 .\"
-.Dd January 29, 2011
+.Dd January 18, 2014
 .Os
 .Dt DWARF_ATTRVAL_SIGNED 3
 .Sh NAME
@@ -84,13 +84,28 @@ Function
 .Fn dwarf_attrval_flag
 sets the location pointed to by argument
 .Ar ret
-to 1 if the attribute named by argument
+to either 0 or 1. If the form of the attribute named by argument
 .Ar attr
-has a non-zero value, or to 0 otherwise.
-The form of the attribute named by argument
+is
+.Dv DW_FORM_flag ,
+function
+.Fn dwarf_attrval_flag
+sets the location pointed to by argument
+.Ar ret
+to 1 if the attribute has a non-zero value, or to 0 otherwise.
+If the form of the attribute named by argument
 .Ar attr
-must be
-.Dv DW_FORM_flag .
+is
+.Dv DW_FORM_flag_present , 
+function
+.Fn dwarf_attrval_flag
+unconditionally sets the location pointed to by argument
+.Ar ret
+to 1.
+The form of the attribute must be one of
+.Dv DW_FORM_flag
+or
+.Dv DW_FORM_flag_present .
 .Pp
 Function
 .Fn dwarf_attrval_signed
@@ -122,7 +137,7 @@ attribute named by argument
 The form of the attribute must be one of
 .Dv DW_FORM_string
 or
-.Dv  DW_FORM_strp .
+.Dv DW_FORM_strp .
 .Pp
 Function
 .Fn dwarf_attrval_unsigned



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401181759.s0IHxMJK067711>