From c207c2c6cf049ab6095b55402752480e7fca53e0 Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Thu, 18 Oct 2012 17:00:56 +0000 Subject: [PATCH] * 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. --- gas/ChangeLog | 4 ++++ gas/config/obj-coff.c | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index f8199cf812..b7e4f2ddcd 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,9 @@ 2012-10-18 Kai Tietz + * 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. diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c index a15d3a2d68..dbe2f079e8 100644 --- a/gas/config/obj-coff.c +++ b/gas/config/obj-coff.c @@ -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;