summaryrefslogtreecommitdiff
path: root/gdb/somread.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1995-03-03 22:25:27 +0000
committerJeff Law <law@redhat.com>1995-03-03 22:25:27 +0000
commit2097152a52d65afa45652591ac26348a6f9c97a1 (patch)
treeb8a2b7a1957fec756d195070e3bdedc41270afcd /gdb/somread.c
parent13ffa6becef1f14ef849255b3ad5fadd2cbbb734 (diff)
* somread.c (check_strange_names): Filter names emitted by the HP
compiler when generating PIC code.
Diffstat (limited to 'gdb/somread.c')
-rw-r--r--gdb/somread.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gdb/somread.c b/gdb/somread.c
index ae04617d3d..bee059d281 100644
--- a/gdb/somread.c
+++ b/gdb/somread.c
@@ -227,9 +227,15 @@ som_symtab_read (abfd, objfile, section_offsets)
the nasty habit of placing section symbols from the literal
subspaces in the middle of the program's text. Filter
those out as best we can. Check for first and last character
- being '$'. */
+ being '$'.
+
+ And finally, the newer HP compilers emit crud like $PIC_foo$N
+ in some circumstance (PIC code I guess). It's also claimed
+ that they emit D$ symbols too. What stupidity. */
if ((symname[0] == 'L' && symname[1] == '$')
- || (symname[0] == '$' && symname[strlen(symname) - 1] == '$'))
+ || (symname[0] == '$' && symname[strlen(symname) - 1] == '$')
+ || (symname[0] == 'D' && symname[1] == '$')
+ || (strncmp (symname, "$PIC", 4) == 0))
continue;
break;