Changeset 612
- Timestamp:
- 08/10/10 20:33:28 (14 years ago)
- Files:
-
- trunk/src/e2ir.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/e2ir.c
r600 r612 1096 1096 1097 1097 //printf("Dsymbol_toElem() %s\n", s->toChars()); 1098 1098 ad = s->isAttribDeclaration(); 1099 1099 if (ad) 1100 1100 { 1101 1101 Array *decl = ad->include(NULL, NULL); 1102 1102 if (decl && decl->dim) 1103 1103 { 1104 1104 for (size_t i = 0; i < decl->dim; i++) 1105 1105 { 1106 1106 s = (Dsymbol *)decl->data[i]; 1107 1107 e = el_combine(e, Dsymbol_toElem(s, irs)); 1108 1108 } 1109 1109 } 1110 1110 } 1111 1111 else if ((vd = s->isVarDeclaration()) != NULL) 1112 1112 { 1113 1113 s = s->toAlias(); 1114 1114 if (s != vd) 1115 1115 return Dsymbol_toElem(s, irs); 1116 if (vd->isStatic() || vd->storage_class & (STCextern | STCtls | STCgshared)) 1116 if (vd->storage_class & STCmanifest) 1117 return NULL; 1118 else if (vd->isStatic() || vd->storage_class & (STCextern | STCtls | STCgshared)) 1117 1119 vd->toObjFile(0); 1118 1120 else 1119 1121 { 1120 1122 sp = s->toSymbol(); 1121 1123 symbol_add(sp); 1122 1124 //printf("\tadding symbol '%s'\n", sp->Sident); 1123 1125 if (vd->init) 1124 1126 { 1125 1127 ExpInitializer *ie; 1126 1128 1127 1129 ie = vd->init->isExpInitializer(); 1128 1130 if (ie) 1129 1131 e = ie->exp->toElem(irs); 1130 1132 } 1131 1133 } 1132 1134 } 1133 1135 else if ((cd = s->isClassDeclaration()) != NULL) 1134 1136 { 1135 1137 irs->deferToObj->push(s); 1136 1138 }
