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

Reply via email to