Hi! I have some piece of C++ code where the order of evaluation of the function arguments does matter. Unfortunately, it's very easy to forget about that, and there's also tons of places where the order is undefined, but to no harm. Consider the following example: int impure() { static int a = 0; return a++; }; void foo(int, int) {} int main() { foo(impure(), impure()); } Is there any way to have GCC warn about the undefined behavior? I'd be happy to tell impure is __attribute__((__impure__)) or something like that to teach it to teach me. Thanks, Akim