- case STORAGE_CLASS_STATIC: linkage |= IR_LINKAGE_LOCAL; break;
- case STORAGE_CLASS_EXTERN: linkage |= IR_LINKAGE_EXTERN; break;
+ case STORAGE_CLASS_EXTERN: visibility = ir_visibility_external; break;
+ case STORAGE_CLASS_STATIC: visibility = ir_visibility_local; break;
+ case STORAGE_CLASS_NONE:
+ visibility = ir_visibility_default;
+ /* uninitialized globals get merged in C */
+ if (entity->variable.initializer == NULL)
+ linkage |= IR_LINKAGE_MERGE;
+ break;