Warn about UB in argument evaluation order
问题 I recently faced a bug in a code like this class C { public: // foo return value depends on C's state // AND each call to foo changes the state. int foo(int arg) /*foo is not const-qualified.*/ {} private: // Some mutable state }; C c; bar(c.foo(42), c.foo(43)) The last call behaved differently on different platforms (which is perfectly legal due to undefined order of argument evaluation), and I fixed the bug. But the rest codebase is large and I would like to spot all other UB of this type.