This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/71657] Wrong code on trunk gcc (std::out_of_range), westmere


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71657

--- Comment #5 from Anton Mitrokhin <anton.mitrokhin at phystech dot edu> ---
I have compiled this test case in several ways

The first two emit no warnings and fail as described:
> g++ -Wall -Wextra -std=c++11 -static-libgcc -static-libstdc++ -Ofast -march=westmere -o out crash_init.cpp crash_main.cpp
> g++ -Wall -Wextra -fno-strict-aliasing -fwrapv -fno-aggressive-loop-optimizations -std=c++11 -static-libgcc -static-libstdc++ -Ofast -march=westmere -o out crash_init.cpp crash_main.cpp

The clang sanitizers are also silent on runtime:
> clang++ -Wall -Wextra -fsanitize=undefined -std=c++11 -O2 -o out crash_init.cpp crash_main.cpp
> clang++ -Wall -Wextra -fsanitize=memory -std=c++11 -O2 -o out crash_init.cpp crash_main.cpp
> clang++ -Wall -Wextra -fsanitize=address -std=c++11 -O2 -o out crash_init.cpp crash_main.cpp

The versions with GLIBCXX_DEBUG do not fail:
> g++ -Wall -Wextra -D_GLIBCXX_DEBUG -std=c++11 -static-libgcc -static-libstdc++ -Ofast -march=westmere -o out crash_init.cpp crash_main.cpp
> g++ -Wall -Wextra -D_GLIBCXX_DEBUG -fno-strict-aliasing -fwrapv -fno-aggressive-loop-optimizations -std=c++11 -static-libgcc -static-libstdc++ -Ofast -march=westmere -o out crash_init.cpp crash_main.cpp



The test case is not that big, and it contains only 3 arrays, only one of which
can emit that kind of an error. This code is easy-checkable by hand and it
looks like it *should* work.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]