Mercurial > projects > ldc
view dmd/staticassert.h @ 918:a4fcc13da3cd
Changed templates and typeinfo to use linkonce linkage instead of weak linkage, this should fix inlining problems, fixing bug #197 . If problems show up, it's easy to change it back by changing the define in mars.h . I'm 95% sure this is safe, given how we handle templates.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Mon, 02 Feb 2009 01:44:51 +0100 |
parents | aaade6ded589 |
children |
line wrap: on
line source
// Compiler implementation of the D programming language // Copyright (c) 1999-2006 by Digital Mars // All Rights Reserved // written by Walter Bright // http://www.digitalmars.com // License for redistribution is by either the Artistic License // in artistic.txt, or the GNU General Public License in gnu.txt. // See the included readme.txt for details. #ifndef DMD_STATICASSERT_H #define DMD_STATICASSERT_H #ifdef __DMC__ #pragma once #endif /* __DMC__ */ #include "dsymbol.h" struct Expression; #ifdef _DH struct HdrGenState; #endif struct StaticAssert : Dsymbol { Expression *exp; Expression *msg; StaticAssert(Loc loc, Expression *exp, Expression *msg); Dsymbol *syntaxCopy(Dsymbol *s); int addMember(Scope *sc, ScopeDsymbol *sd, int memnum); void semantic(Scope *sc); void semantic2(Scope *sc); void inlineScan(); int oneMember(Dsymbol **ps); void toObjFile(int multiobj); const char *kind(); void toCBuffer(OutBuffer *buf, HdrGenState *hgs); }; #endif