Mercurial > projects > ldc
comparison dmd2/statement.h @ 922:0749c0757a43
Apply naked changes of [920] to dmd2/
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Tue, 03 Feb 2009 18:11:39 +0100 |
parents | 356e65836fb5 |
children | 03d7c4aac654 |
comparison
equal
deleted
inserted
replaced
921:75c53f8f67a4 | 922:0749c0757a43 |
---|---|
160 virtual Statement *inlineScan(InlineScanState *iss); | 160 virtual Statement *inlineScan(InlineScanState *iss); |
161 | 161 |
162 // Back end | 162 // Back end |
163 virtual void toIR(IRState *irs); | 163 virtual void toIR(IRState *irs); |
164 | 164 |
165 // LDC | |
166 virtual void toNakedIR(IRState *irs); | |
167 | |
165 // Avoid dynamic_cast | 168 // Avoid dynamic_cast |
166 virtual DeclarationStatement *isDeclarationStatement() { return NULL; } | 169 virtual DeclarationStatement *isDeclarationStatement() { return NULL; } |
167 virtual CompoundStatement *isCompoundStatement() { return NULL; } | 170 virtual CompoundStatement *isCompoundStatement() { return NULL; } |
168 virtual ReturnStatement *isReturnStatement() { return NULL; } | 171 virtual ReturnStatement *isReturnStatement() { return NULL; } |
169 virtual IfStatement *isIfStatement() { return NULL; } | 172 virtual IfStatement *isIfStatement() { return NULL; } |
185 int inlineCost(InlineCostState *ics); | 188 int inlineCost(InlineCostState *ics); |
186 Expression *doInline(InlineDoState *ids); | 189 Expression *doInline(InlineDoState *ids); |
187 Statement *inlineScan(InlineScanState *iss); | 190 Statement *inlineScan(InlineScanState *iss); |
188 | 191 |
189 void toIR(IRState *irs); | 192 void toIR(IRState *irs); |
193 | |
194 // LDC | |
195 virtual void toNakedIR(IRState *irs); | |
190 }; | 196 }; |
191 | 197 |
192 struct CompileStatement : Statement | 198 struct CompileStatement : Statement |
193 { | 199 { |
194 Expression *exp; | 200 Expression *exp; |
234 int inlineCost(InlineCostState *ics); | 240 int inlineCost(InlineCostState *ics); |
235 Expression *doInline(InlineDoState *ids); | 241 Expression *doInline(InlineDoState *ids); |
236 Statement *inlineScan(InlineScanState *iss); | 242 Statement *inlineScan(InlineScanState *iss); |
237 | 243 |
238 virtual void toIR(IRState *irs); | 244 virtual void toIR(IRState *irs); |
245 | |
246 // LDC | |
247 virtual void toNakedIR(IRState *irs); | |
239 | 248 |
240 virtual CompoundStatement *isCompoundStatement() { return this; } | 249 virtual CompoundStatement *isCompoundStatement() { return this; } |
241 }; | 250 }; |
242 | 251 |
243 /* The purpose of this is so that continue will go to the next | 252 /* The purpose of this is so that continue will go to the next |
877 | 886 |
878 void toIR(IRState *irs); | 887 void toIR(IRState *irs); |
879 | 888 |
880 // LDC | 889 // LDC |
881 bool asmLabel; // for labels inside inline assembler | 890 bool asmLabel; // for labels inside inline assembler |
891 virtual void toNakedIR(IRState *irs); | |
882 }; | 892 }; |
883 | 893 |
884 struct LabelDsymbol : Dsymbol | 894 struct LabelDsymbol : Dsymbol |
885 { | 895 { |
886 LabelStatement *statement; | 896 LabelStatement *statement; |
910 void toIR(IRState *irs); | 920 void toIR(IRState *irs); |
911 | 921 |
912 // LDC | 922 // LDC |
913 // non-zero if this is a branch, contains the target labels identifier | 923 // non-zero if this is a branch, contains the target labels identifier |
914 Identifier* isBranchToLabel; | 924 Identifier* isBranchToLabel; |
925 | |
926 virtual void toNakedIR(IRState *irs); | |
915 }; | 927 }; |
916 | 928 |
917 struct AsmBlockStatement : CompoundStatement | 929 struct AsmBlockStatement : CompoundStatement |
918 { | 930 { |
919 EnclosingHandler* enclosinghandler; | 931 EnclosingHandler* enclosinghandler; |
926 | 938 |
927 CompoundStatement *isCompoundStatement() { return NULL; } | 939 CompoundStatement *isCompoundStatement() { return NULL; } |
928 AsmBlockStatement *isAsmBlockStatement() { return this; } | 940 AsmBlockStatement *isAsmBlockStatement() { return this; } |
929 | 941 |
930 void toIR(IRState *irs); | 942 void toIR(IRState *irs); |
943 virtual void toNakedIR(IRState *irs); | |
931 }; | 944 }; |
932 | 945 |
933 #endif /* DMD_STATEMENT_H */ | 946 #endif /* DMD_STATEMENT_H */ |