PR 6922
authorNick Clifton <nickc@redhat.com>
Tue, 30 Sep 2008 12:19:51 +0000 (12:19 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 30 Sep 2008 12:19:51 +0000 (12:19 +0000)
   * stabs.c (parse_stab_sun_builtin_type): Parse, but ignore SUN's
   'b' and 'v' extensions.

binutils/ChangeLog
binutils/stabs.c

index ee71f12..c550f85 100644 (file)
@@ -1,3 +1,9 @@
+2008-09-30  Andrew Paprocki  <andrew@ishiboo.com>
+
+       PR 6922
+       * stabs.c (parse_stab_sun_builtin_type): Parse, but ignore SUN's
+       'b' and 'v' extensions.
+
 2008-09-29  Peter O'Gorman  <pogma@thewrittenword.com>
            Steve Ellcey  <sje@cup.hp.com>
 
index ea0a61e..c2c7c3a 100644 (file)
@@ -1,6 +1,6 @@
 /* stabs.c -- Parse stabs debugging information
    Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-   2006, 2007 Free Software Foundation, Inc.
+   2006, 2007, 2008  Free Software Foundation, Inc.
    Written by Ian Lance Taylor <ian@cygnus.com>.
 
    This file is part of GNU Binutils.
@@ -1837,11 +1837,13 @@ parse_stab_sun_builtin_type (void *dhandle, const char **pp)
     }
   ++*pp;
 
-  /* For some odd reason, all forms of char put a c here.  This is strange
-     because no other type has this honor.  We can safely ignore this because
-     we actually determine 'char'acterness by the number of bits specified in
-     the descriptor.  */
-  if (**pp == 'c')
+  /* OpenSolaris source code indicates that one of "cbv" characters
+     can come next and specify the intrinsic 'iformat' encoding.
+     'c' is character encoding, 'b' is boolean encoding, and 'v' is
+     varargs encoding.  This field can be safely ignored because
+     the type of the field is determined from the bitwidth extracted
+     below.  */
+  if (**pp == 'c' || **pp == 'b' || **pp == 'v')
     ++*pp;
 
   /* The first number appears to be the number of bytes occupied