* config/obj-coff.c: Add include of struc-symbol.h header.
authorKai Tietz <kai.tietz@onevision.com>
Thu, 18 Oct 2012 17:00:56 +0000 (17:00 +0000)
committerKai Tietz <kai.tietz@onevision.com>
Thu, 18 Oct 2012 17:00:56 +0000 (17:00 +0000)
        (coff_frob_symbol): Check that function-aux entries are generated for
        defined symbols only.

gas/ChangeLog
gas/config/obj-coff.c

index f8199cf8122bce485293f073a86af83742559ed9..b7e4f2ddcd61746f82918306fd51c287d3d0ec2a 100644 (file)
@@ -1,5 +1,9 @@
 2012-10-18  Kai Tietz  <ktietz@redhat.com>
 
+       * config/obj-coff.c: Add include of struc-symbol.h header.
+       (coff_frob_symbol): Check that function-aux entries are generated for
+       defined symbols only.
+
        * doc/as.texinfo: Add missing documentation about section flag
        exclude.
 
index a15d3a2d68fe4ba2fcfb2a2f1dbc3b95c40ef69b..dbe2f079e81e478c38c0693cbcaee053be7cbded 100644 (file)
@@ -26,6 +26,7 @@
 #include "safe-ctype.h"
 #include "obstack.h"
 #include "subsegs.h"
+#include "struc-symbol.h"
 
 #ifdef TE_PE
 #include "coff/pe.h"
@@ -1359,7 +1360,8 @@ coff_frob_symbol (symbolS *symp, int *punt)
                }
            }
 
-         if (coff_last_function == 0 && SF_GET_FUNCTION (symp))
+         if (coff_last_function == 0 && SF_GET_FUNCTION (symp)
+             && S_IS_DEFINED (symp))
            {
              union internal_auxent *auxp;
 
@@ -1371,7 +1373,8 @@ coff_frob_symbol (symbolS *symp, int *punt)
                      sizeof (auxp->x_sym.x_fcnary.x_ary.x_dimen));
            }
 
-         if (S_GET_STORAGE_CLASS (symp) == C_EFCN)
+         if (S_GET_STORAGE_CLASS (symp) == C_EFCN
+             && S_IS_DEFINED (symp))
            {
              if (coff_last_function == 0)
                as_fatal (_("C_EFCN symbol for %s out of scope"),
@@ -1678,6 +1681,7 @@ obj_coff_section (int ignore ATTRIBUTE_UNUSED)
     }
 
   sec = subseg_new (name, (subsegT) exp);
+
   if (alignment >= 0)
     sec->alignment_power = alignment;