Note: This website is archived. For up-to-date information about D projects and development, please visit wiki.dlang.org.

Changeset 612

Show
Ignore:
Timestamp:
08/10/10 20:33:28 (14 years ago)
Author:
walter
Message:

fix for OSX naked asm code loading GOT anyway

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/e2ir.c

    r600 r612  
    10961096 
    10971097    //printf("Dsymbol_toElem() %s\n", s->toChars()); 
    10981098    ad = s->isAttribDeclaration(); 
    10991099    if (ad) 
    11001100    { 
    11011101        Array *decl = ad->include(NULL, NULL); 
    11021102        if (decl && decl->dim) 
    11031103        { 
    11041104            for (size_t i = 0; i < decl->dim; i++) 
    11051105            { 
    11061106                s = (Dsymbol *)decl->data[i]; 
    11071107                e = el_combine(e, Dsymbol_toElem(s, irs)); 
    11081108            } 
    11091109        } 
    11101110    } 
    11111111    else if ((vd = s->isVarDeclaration()) != NULL) 
    11121112    { 
    11131113        s = s->toAlias(); 
    11141114        if (s != vd) 
    11151115            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)) 
    11171119            vd->toObjFile(0); 
    11181120        else 
    11191121        { 
    11201122            sp = s->toSymbol(); 
    11211123            symbol_add(sp); 
    11221124            //printf("\tadding symbol '%s'\n", sp->Sident); 
    11231125            if (vd->init) 
    11241126            { 
    11251127                ExpInitializer *ie; 
    11261128 
    11271129                ie = vd->init->isExpInitializer(); 
    11281130                if (ie) 
    11291131                    e = ie->exp->toElem(irs); 
    11301132            } 
    11311133        } 
    11321134    } 
    11331135    else if ((cd = s->isClassDeclaration()) != NULL) 
    11341136    { 
    11351137        irs->deferToObj->push(s); 
    11361138    }