aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2008-09-30 12:19:51 +0000
committerNick Clifton <nickc@redhat.com>2008-09-30 12:19:51 +0000
commit42b722c134bdc0fa404020194874b63b6741e4aa (patch)
tree60c6f9bc81de1d11ddaa17d2df9e9e58566b23e2
parente144674af8458b72b0f03fc68989b00101773543 (diff)
downloadfsf-binutils-gdb-42b722c134bdc0fa404020194874b63b6741e4aa.zip
fsf-binutils-gdb-42b722c134bdc0fa404020194874b63b6741e4aa.tar.gz
fsf-binutils-gdb-42b722c134bdc0fa404020194874b63b6741e4aa.tar.bz2
PR 6922
* stabs.c (parse_stab_sun_builtin_type): Parse, but ignore SUN's 'b' and 'v' extensions.
-rw-r--r--binutils/ChangeLog6
-rw-r--r--binutils/stabs.c14
2 files changed, 14 insertions, 6 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index ee71f12..c550f85 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -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>
diff --git a/binutils/stabs.c b/binutils/stabs.c
index ea0a61e..c2c7c3a 100644
--- a/binutils/stabs.c
+++ b/binutils/stabs.c
@@ -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