Mercurial > projects > ddmd
comparison dmd/VolatileStatement.d @ 140:31c086f76669
dmd.lib now only contains the backend
backward references from the backend to the frontend are implemented in ddmd
win32_lib.mak is replaced by a patch
also fixed VisualD project file predefined versions
author | Trass3r |
---|---|
date | Tue, 14 Sep 2010 01:54:48 +0200 |
parents | c77e9f4f1793 |
children | af724d3510d7 |
comparison
equal
deleted
inserted
replaced
139:bc45b1c53019 | 140:31c086f76669 |
---|---|
13 | 13 |
14 import dmd.backend.block; | 14 import dmd.backend.block; |
15 import dmd.backend.Blockx; | 15 import dmd.backend.Blockx; |
16 import dmd.backend.Util; | 16 import dmd.backend.Util; |
17 import dmd.backend.BC; | 17 import dmd.backend.BC; |
18 import dmd.backend.elem; | |
19 import dmd.backend.OPER; | |
20 import dmd.backend.mTY; | |
18 //import dmd.backend.BFL; | 21 //import dmd.backend.BFL; |
19 | 22 |
20 class VolatileStatement : Statement | 23 class VolatileStatement : Statement |
21 { | 24 { |
22 Statement statement; | 25 Statement statement; |
68 if (statement) | 71 if (statement) |
69 statement = statement.inlineScan(iss); | 72 statement = statement.inlineScan(iss); |
70 return this; | 73 return this; |
71 } | 74 } |
72 | 75 |
76 static void el_setVolatile(elem* e) | |
77 { | |
78 while (1) | |
79 { | |
80 e.Ety |= mTYvolatile; | |
81 if (OTunary(e.Eoper)) | |
82 e = e.E1; | |
83 else if (OTbinary(e.Eoper)) | |
84 { | |
85 el_setVolatile(e.E2); | |
86 e = e.E1; | |
87 } | |
88 else | |
89 break; | |
90 } | |
91 } | |
92 | |
73 override void toIR(IRState* irs) | 93 override void toIR(IRState* irs) |
74 { | 94 { |
75 block* b; | 95 block* b; |
76 | 96 |
77 if (statement) | 97 if (statement) |