http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56012
Bug #: 56012 Summary: [4.7/4.8 Regression] [C++11] Narrowing conversion in atomic_flag Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: libstdc++ AssignedTo: r...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org #include <atomic> std::atomic_flag ab2 = ATOMIC_FLAG_INIT; $ g++11 -std=c++11 -Wsystem-headers -Werror=narrowing a.cc In file included from /home/redi/gcc/4.x/include/c++/4.8.0/atomic:41:0, from a.cc:1: /home/redi/gcc/4.x/include/c++/4.8.0/bits/atomic_base.h: In constructor ‘constexpr std::atomic_flag::atomic_flag(bool)’: /home/redi/gcc/4.x/include/c++/4.8.0/bits/atomic_base.h:253:75: error: narrowing conversion of ‘(__i ? 1 : 0)’ from ‘int’ to ‘bool’ inside { } [-Werror=narrowing] : __atomic_flag_base({ __i ? __GCC_ATOMIC_TEST_AND_SET_TRUEVAL : 0 }) ^ cc1plus: some warnings being treated as errors