Mercurial > projects > ldc
comparison dmd/declaration.h @ 305:2b72433d5c8c trunk
[svn r326] Fixed a bunch of issues with printf's that MinGW32 did not support.
Fixed problems with label collisions when using labels inside inline asm. LabelStatement is now easily reached given its
Identifier, which should be useful elsewhere too.
Enabled inline asm for building the lib/compiler/llvmdc runtime code, fixing branches out of asm makes this possible.
author | lindquist |
---|---|
date | Fri, 27 Jun 2008 22:04:35 +0200 |
parents | 5acec6b2eef8 |
children | aaade6ded589 |
comparison
equal
deleted
inserted
replaced
304:3ebc136702dd | 305:2b72433d5c8c |
---|---|
14 #ifdef __DMC__ | 14 #ifdef __DMC__ |
15 #pragma once | 15 #pragma once |
16 #endif /* __DMC__ */ | 16 #endif /* __DMC__ */ |
17 | 17 |
18 #include <set> | 18 #include <set> |
19 #include <map> | |
19 | 20 |
20 #include "dsymbol.h" | 21 #include "dsymbol.h" |
21 #include "lexer.h" | 22 #include "lexer.h" |
22 #include "mtype.h" | 23 #include "mtype.h" |
23 | 24 |
24 struct Expression; | 25 struct Expression; |
25 struct Statement; | 26 struct Statement; |
26 struct LabelDsymbol; | 27 struct LabelDsymbol; |
28 struct LabelStatement; | |
27 struct Initializer; | 29 struct Initializer; |
28 struct Module; | 30 struct Module; |
29 struct InlineScanState; | 31 struct InlineScanState; |
30 struct ForeachStatement; | 32 struct ForeachStatement; |
31 struct FuncDeclaration; | 33 struct FuncDeclaration; |
609 FuncDeclaration *isFuncDeclaration() { return this; } | 611 FuncDeclaration *isFuncDeclaration() { return this; } |
610 | 612 |
611 // llvmdc stuff | 613 // llvmdc stuff |
612 bool runTimeHack; | 614 bool runTimeHack; |
613 std::set<VarDeclaration*> nestedVars; | 615 std::set<VarDeclaration*> nestedVars; |
616 | |
617 // we keep our own table of label statements as LabelDsymbolS | |
618 // don't always carry their corresponding statement along ... | |
619 typedef std::map<const char*, LabelStatement*> LabelMap; | |
620 LabelMap labmap; | |
614 }; | 621 }; |
615 | 622 |
616 struct FuncAliasDeclaration : FuncDeclaration | 623 struct FuncAliasDeclaration : FuncDeclaration |
617 { | 624 { |
618 FuncDeclaration *funcalias; | 625 FuncDeclaration *funcalias; |