I ran gcc with -O3 -fdump-tree-vrp and what I see in the dump:
std::__ostream_insert<char, std::char_traits<char> > (&cout, &"x="[0], 2);
D.20752_20 = std::basic_ostream<char>::_M_insert<long unsigned int> (&cout, 1000);
std::__ostream_insert<char, std::char_traits<char> > (D.20752_20, &" x_="[0], 4);
D.20715_22 = std::basic_ostream<char>::_M_insert<long unsigned int> (D.20752_20, 232);
i.e. it just inserts constants 1000 and 232 into the cout statement!
If I run it with -O0, it does not reset anything, despite the switch -ftree-vrp and -ftree-ccp.
Gcc seems to be building constants before it can issue warnings ...
vines source
share