summaryrefslogtreecommitdiff
path: root/labels.c
diff options
context:
space:
mode:
authorCharles Crayne <chuck@thor.crayne.org>2009-01-28 19:07:18 -0800
committerCharles Crayne <chuck@thor.crayne.org>2009-01-28 19:07:18 -0800
commit18152f0e33e55050bf2cdca70f03a40a7d3eaac5 (patch)
treebf3f14a34d92d658ed73ce51f5e22f9ef3719027 /labels.c
parentdd1e6f5c37cbd0b03c69726aebc84bf8861a686e (diff)
downloadnasm-18152f0e33e55050bf2cdca70f03a40a7d3eaac5.tar.gz
Allow global declaration after symbol definition
This experimental feature needs to be tested for all output formats which recognize global symbols.
Diffstat (limited to 'labels.c')
-rw-r--r--labels.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/labels.c b/labels.c
index df32315a..9a7fc615 100644
--- a/labels.c
+++ b/labels.c
@@ -362,9 +362,11 @@ void declare_as_global(char *label, char *special, efunc error)
case GLOBAL_SYMBOL:
break;
case LOCAL_SYMBOL:
- if (!(lptr->defn.is_global & EXTERN_BIT))
- error(ERR_NONFATAL, "symbol `%s': GLOBAL directive must"
- " appear before symbol definition", label);
+ if (!(lptr->defn.is_global & EXTERN_BIT)) {
+ error(ERR_WARNING, "symbol `%s': GLOBAL directive "
+ "after symbol definition is an experimental feature", label);
+ lptr->defn.is_global = GLOBAL_SYMBOL;
+ }
break;
}
}