------- Comment #5 from bangerth at dealii dot org 2006-10-31 00:01 ------- (In reply to comment #0) > COtherClass(5, m_szSzField, NULL, 0, > "ImmString1").Method1().Method2(m_ullProblemField)("ImmString2", > m_pvPointerField)("ImmString3", m_ullProblemField); > [...] > The problem is that the value of m_ullProblemField is pushed to stack at the > very beginning of code while it is modified later during invocation of > COtherClass::Method2. COtherClass::operator (const char *, unsigned long long) > should receive modified value of field but it receives initial one.
No. The order of evaluation of your sequence of function calls is unspecified. There is no sequence point within your chain of calls, and therefore the compiler is free to select whatever order for evaluating the arguments of all these calls. W. -- bangerth at dealii dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bangerth at dealii dot org Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29582