+ } else {
+ /* A global (including static) uninitialized variable
+ ** is only a tentative definition. For example, this is valid:
+ ** int i;
+ ** int i;
+ ** static int j;
+ ** static int j = 42;
+ ** Code for these will be generated in FinishCompile.
+ ** For now, just save the BSS segment name
+ ** (can be set with #pragma bss-name)
+ */
+ const char* bssName = GetSegName (SEG_BSS);
+ if (Entry->V.BssName && strcmp (Entry->V.BssName, bssName) != 0) {
+ Error ("Global variable `%s' has already been defined in `%s' segment",
+ Entry->Name, Entry->V.BssName);
+ }
+ Entry->V.BssName = xstrdup (bssName);