Merge ssh://git.fedorahosted.org/git/elfutils into roland/fixes-for-c++

Conflicts:
	libdw/ChangeLog
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index 67b36a5..f9d7b9e 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,4 +1,8 @@
-2009-01-06  Roland McGrath  <roland@redhat.com>
+2008-01-06  Roland McGrath  <roland@redhat.com>
+
+	* libdwP.h (struct Dwarf_Abbrev): Change type of 'has_children' to bool.
+	Reorder members.
+	* dwarf_haschildren.c: Return -1 for error case, not 0.
 
 	* Makefile.am (libdw.so): Link in $(zip_LIBS).
 
diff --git a/libdw/dwarf_haschildren.c b/libdw/dwarf_haschildren.c
index fe43195..d9a47ad 100644
--- a/libdw/dwarf_haschildren.c
+++ b/libdw/dwarf_haschildren.c
@@ -1,5 +1,5 @@
 /* Return string associated with given attribute.
-   Copyright (C) 2003, 2005 Red Hat, Inc.
+   Copyright (C) 2003, 2005, 2008 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2003.
 
@@ -77,7 +77,7 @@
   if (unlikely (die->abbrev == DWARF_END_ABBREV))
     {
       __libdw_seterrno (DWARF_E_INVALID_DWARF);
-      return 0;
+      return -1;
     }
 
   return die->abbrev->has_children;
diff --git a/libdw/libdwP.h b/libdw/libdwP.h
index f805295..867ad89 100644
--- a/libdw/libdwP.h
+++ b/libdw/libdwP.h
@@ -194,12 +194,12 @@
 /* Abbreviation representation.  */
 struct Dwarf_Abbrev
 {
+  Dwarf_Off offset;
+  unsigned char *attrp;
+  unsigned int attrcnt;
   unsigned int code;
   unsigned int tag;
-  int has_children;
-  unsigned int attrcnt;
-  unsigned char *attrp;
-  Dwarf_Off offset;
+  bool has_children;
 };
 
 #include "dwarf_abbrev_hash.h"