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)