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 */