diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2015-04-20 21:46:59 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2015-04-20 21:46:59 +0000 |
commit | 2821fc6b76973dd6cb956229027e8e065a020424 (patch) | |
tree | c480f351c7ba24f67f191101ecd98811337923b2 | |
parent | 0cfabb3780b23de06e8fd52bfe15b2aea7b56f42 (diff) | |
download | gcc-2821fc6b76973dd6cb956229027e8e065a020424.zip gcc-2821fc6b76973dd6cb956229027e8e065a020424.tar.gz gcc-2821fc6b76973dd6cb956229027e8e065a020424.tar.bz2 |
re PR c++/65801 (Allow -Wno-narrowing to silence stricter C++11 narrowing rules)
/cp
2015-04-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/65801
* typeck2.c (check_narrowing): In C++11 mode too, -Wno-narrowing
suppresses the diagnostic.
2015-04-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/65801
* doc/invoke.texi ([-Wnarrowing]): Update.
/testsuite
2015-04-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/65801
* g++.dg/cpp0x/Wnarrowing2.C: New.
From-SVN: r222249
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/typeck2.c | 10 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 8 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/Wnarrowing2.C | 5 |
6 files changed, 32 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2262e09..659ac013 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-04-20 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/65801 + * doc/invoke.texi ([-Wnarrowing]): Update. + 2015-04-20 Jeff Law <law@redhat.com> PR tree-optimization/65658 diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index f7da7c6..91c3890 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2015-04-20 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/65801 + * typeck2.c (check_narrowing): In C++11 mode too, -Wno-narrowing + suppresses the diagnostic. + 2015-04-20 Ville Voutilainen <ville.voutilainen@gmail.com> Reject trailing return type for an operator auto(). diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c index 80a6939..884957b 100644 --- a/gcc/cp/typeck2.c +++ b/gcc/cp/typeck2.c @@ -957,9 +957,13 @@ check_narrowing (tree type, tree init, tsubst_flags_t complain) } } else if (complain & tf_error) - error_at (EXPR_LOC_OR_LOC (init, input_location), - "narrowing conversion of %qE from %qT to %qT inside { }", - init, ftype, type); + { + global_dc->pedantic_errors = 1; + pedwarn (EXPR_LOC_OR_LOC (init, input_location), OPT_Wnarrowing, + "narrowing conversion of %qE from %qT to %qT inside { }", + init, ftype, type); + global_dc->pedantic_errors = flag_pedantic_errors; + } } return cxx_dialect == cxx98 || ok; diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index f5f79b8..c20dd4d 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -2706,10 +2706,10 @@ int i = @{ 2.2 @}; // error: narrowing from double to int This flag is included in @option{-Wall} and @option{-Wc++11-compat}. -With @option{-std=c++11}, @option{-Wno-narrowing} suppresses for -non-constants the diagnostic required by the standard. Note that this -does not affect the meaning of well-formed code; narrowing conversions -are still considered ill-formed in SFINAE context. +With @option{-std=c++11}, @option{-Wno-narrowing} suppresses the diagnostic +required by the standard. Note that this does not affect the meaning +of well-formed code; narrowing conversions are still considered +ill-formed in SFINAE context. @item -Wnoexcept @r{(C++ and Objective-C++ only)} @opindex Wnoexcept diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e768f57..8ffe2ea 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-04-20 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/65801 + * g++.dg/cpp0x/Wnarrowing2.C: New. + 2015-04-20 Jeff Law <law@redhat.com> PR tree-optimization/65658 diff --git a/gcc/testsuite/g++.dg/cpp0x/Wnarrowing2.C b/gcc/testsuite/g++.dg/cpp0x/Wnarrowing2.C new file mode 100644 index 0000000..fc806f9 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/Wnarrowing2.C @@ -0,0 +1,5 @@ +// PR c++/65801 +// { dg-do compile { target c++11 } } +// { dg-options "-Wno-narrowing" } + +static struct zai { unsigned int x; } x = {-1}; |