Actually, I was thinking about the case "g(a(), b());". Let's imagine the gimplified code (because of your change) looks like:t1 = a(); t2 = b(); g(t1, t2);Are we always sure that t1 and t2 will not be pushed again in the CALL_EXPR by further transformations?
No, and that's a good thing. What you _would_ be sure of is that the generated code will behave *as-if* a() is executed before b(). Segher