From: Pietro B. <pie...@un...> - 2013-01-23 10:41:12
|
Hello Gabriel, and thanks for your answer. Il giorno 23/gen/2013, alle ore 08.54, Gabriel Kerneis ha scritto: > Hi Pietro, > > On Wed, Jan 23, 2013 at 02:38:53AM +0100, Pietro Braione wrote: >> by transforming x++ in x = x + 1, etc. > > CIL already does that for you automatically. > > 17. One of the most significant transformations is that expressions that > contain side-effects are separated into statements. > > int x, f(int); > return (x ++ + f(x)); > > See the CIL output for this code fragment The problem is, I do not need to transform only *expressions*, but also *statements* - e.g., the above example translates to (http://kerneis.github.com/cil/doc/html/cil/examples/ex16.txt): #line 2 tmp = x; #line 2 x ++; //NONONO! #line 2 tmp___0 = f(x); #line 2 return (tmp + tmp___0); that still has an x++ statement. I want that x++ to be transformed to x = x + 1. Is there a plain way to do that? Thank you Pietro |