簡単なコードを次に示します。
#include <iostream>
using namespace std;
bool func(char* m)
{
*m = '4';
return true;
}
using namespace std;
int main()
{
char c1 = '3';
cout << "a" << c1 << func(&c1) << c1 << "b" << endl;
return 0;
}
これを g++ -O0 (4.7.2) でコンパイルすると、出力は a413b になり、-O2 の場合、出力は a414b になります。clang++ 3.2 の場合、出力は a314b です。
コードのこの部分で、c++ に対して未定義のことをしましたか?