re PR c++/66007 (Narrowing conversion inside { } results in all zero elements in C++11 mode with -Wno-error=narrowing)
/cp 2015-05-04 Paolo Carlini <paolo.carlini@oracle.com> Jakub Jelinek <jakub@redhat.com> PR c++/66007 * typeck2.c (check_narrowing): Check by-hand that the pedwarn didn't result in an actual error. /testsuite 2015-05-04 Paolo Carlini <paolo.carlini@oracle.com> Jakub Jelinek <jakub@redhat.com> PR c++/66007 * g++.dg/cpp0x/Wnarrowing4.C: New. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r222778
This commit is contained in:
parent
467d8d51f1
commit
f5322614a6
@ -1,3 +1,10 @@
|
||||
2015-05-04 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/66007
|
||||
* typeck2.c (check_narrowing): Check by-hand that the pedwarn didn't
|
||||
result in an actual error.
|
||||
|
||||
2015-05-01 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
Prathamesh Kulharni <prathamesh.kulkarni@linaro.org>
|
||||
|
||||
|
@ -958,10 +958,12 @@ check_narrowing (tree type, tree init, tsubst_flags_t complain)
|
||||
}
|
||||
else if (complain & tf_error)
|
||||
{
|
||||
int savederrorcount = errorcount;
|
||||
global_dc->pedantic_errors = 1;
|
||||
if (!pedwarn (EXPR_LOC_OR_LOC (init, input_location), OPT_Wnarrowing,
|
||||
"narrowing conversion of %qE from %qT to %qT "
|
||||
"inside { }", init, ftype, type))
|
||||
pedwarn (EXPR_LOC_OR_LOC (init, input_location), OPT_Wnarrowing,
|
||||
"narrowing conversion of %qE from %qT to %qT "
|
||||
"inside { }", init, ftype, type);
|
||||
if (errorcount == savederrorcount)
|
||||
ok = true;
|
||||
global_dc->pedantic_errors = flag_pedantic_errors;
|
||||
}
|
||||
|
@ -1,3 +1,9 @@
|
||||
2015-05-04 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/66007
|
||||
* g++.dg/cpp0x/Wnarrowing4.C: New.
|
||||
|
||||
2015-05-04 Sandra Loosemore <sandra@codesourcery.com>
|
||||
|
||||
* lib/target-supports.exp
|
||||
|
14
gcc/testsuite/g++.dg/cpp0x/Wnarrowing4.C
Normal file
14
gcc/testsuite/g++.dg/cpp0x/Wnarrowing4.C
Normal file
@ -0,0 +1,14 @@
|
||||
// PR c++/66007
|
||||
// { dg-do run { target c++11 } }
|
||||
// { dg-options "-Wno-error=narrowing" }
|
||||
|
||||
extern "C" void abort();
|
||||
|
||||
int main()
|
||||
{
|
||||
unsigned foo[] = { 1, -1, 3 };
|
||||
if (foo[0] != 1 || foo[1] != __INT_MAX__ * 2U + 1 || foo[2] != 3)
|
||||
abort();
|
||||
}
|
||||
|
||||
// { dg-prune-output "narrowing conversion" }
|
Loading…
Reference in New Issue
Block a user