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: [email protected]
ReportedBy: [email protected]
#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