From 7a9aaf929a34163a6939659ef61d40848f719d61 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 17 Jul 2000 23:27:31 +0000 Subject: [PATCH] Don't merge labels. Don't merge if the symbol isn't constant. Don't call S_SET_EXTERNAL if the storage class is already set. --- gas/ChangeLog | 6 ++++++ gas/config/obj-coff.c | 26 ++++++++++++++++---------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index c15d543858..8ea090b2c1 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2000-07-17 Mark Elbrecht + + * config/obj-coff.c (obj_frob_symbol): Don't merge labels. Don't + merge if the symbol isn't constant. Don't call S_SET_EXTERNAL if + the storage class is already set. + 2000-07-17 Kazu Hirata * config/tc-w65.c: Fix formatting. diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c index 41fc595eaf..6da61187d8 100644 --- a/gas/config/obj-coff.c +++ b/gas/config/obj-coff.c @@ -1139,24 +1139,30 @@ coff_frob_symbol (symp, punt) symbolS *real; if (!SF_GET_LOCAL (symp) && !SF_GET_STATICS (symp) + && S_GET_STORAGE_CLASS (symp) != C_LABEL + && symbol_constant_p(symp) && (real = symbol_find_base (S_GET_NAME (symp), DO_NOT_STRIP)) && real != symp) { c_symbol_merge (symp, real); *punt = 1; } - if (!S_IS_DEFINED (symp) && !SF_GET_LOCAL (symp)) + if (S_GET_STORAGE_CLASS (symp) == C_NULL) { - assert (S_GET_VALUE (symp) == 0); - S_SET_EXTERNAL (symp); - } - else if (S_GET_STORAGE_CLASS (symp) == C_NULL) - { - if (S_GET_SEGMENT (symp) == text_section - && symp != seg_info (text_section)->sym) - S_SET_STORAGE_CLASS (symp, C_LABEL); + if (!S_IS_DEFINED (symp) && !SF_GET_LOCAL (symp)) + { + assert (S_GET_VALUE (symp) == 0); + S_SET_EXTERNAL (symp); + } + else if (S_GET_SEGMENT (symp) == text_section + && symp != seg_info (text_section)->sym) + { + S_SET_STORAGE_CLASS (symp, C_LABEL); + } else - S_SET_STORAGE_CLASS (symp, C_STAT); + { + S_SET_STORAGE_CLASS (symp, C_STAT); + } } if (SF_GET_PROCESS (symp)) { -- 2.34.1