* somread.c (check_strange_names): Filter names emitted by the HP
authorJeff Law <law@redhat.com>
Fri, 3 Mar 1995 22:25:27 +0000 (22:25 +0000)
committerJeff Law <law@redhat.com>
Fri, 3 Mar 1995 22:25:27 +0000 (22:25 +0000)
compiler when generating PIC code.

gdb/ChangeLog
gdb/somread.c

index f7ec8a6eabb2e23d2c098f938d7c256e7a83c2a1..0ddfcd342a133999aa260e9a01d75d400f9fc45e 100644 (file)
@@ -1,5 +1,8 @@
 Fri Mar  3 15:12:12 1995  Jeff Law  (law@snake.cs.utah.edu)
 
+       * somread.c (check_strange_names): Filter names emitted by the HP
+       compiler when generating PIC code.
+
        * valops.c (value_struct_elt_for_reference): Work around macro
        bugs in HP's compilers.
        * c-exp.y (block): Likewise.
index ae04617d3d79cfae7593acd61384f6ead05d46f5..bee059d281ac74bdf830155f614c93b620d1c882 100644 (file)
@@ -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;