re PR c++/65858 (ICE in varpool_node::get_constructor during chromium build on arm-linux-gnueabihf with LTO during LINK chrome)

/cp
2015-05-01  Paolo Carlini  <paolo.carlini@oracle.com>
	    Prathamesh Kulharni  <prathamesh.kulkarni@linaro.org>

	PR c++/65858
	* typeck2.c (check_narrowing): Set ok = true when pedwarn returns
	false.

/testsuite
2015-05-01  Paolo Carlini  <paolo.carlini@oracle.com>
	    Prathamesh Kulharni  <prathamesh.kulkarni@linaro.org>

	PR c++/65858
	* g++.dg/cpp0x/Wnarrowing4.C: New.

Co-Authored-By: Prathamesh Kulharni <prathamesh.kulkarni@linaro.org>

From-SVN: r222699
This commit is contained in:
Paolo Carlini 2015-05-01 18:43:40 +00:00 committed by Paolo Carlini
parent 0f770b013e
commit 38920aec4c
4 changed files with 23 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2015-05-01 Paolo Carlini <paolo.carlini@oracle.com>
Prathamesh Kulharni <prathamesh.kulkarni@linaro.org>
PR c++/65858
* typeck2.c (check_narrowing): Set ok = true when pedwarn returns
false.
2015-04-30 David Malcolm <dmalcolm@redhat.com>
* cp-tree.h (ARGUMENT_PACK_SELECT_ARG): Remove spurious

View File

@ -959,9 +959,10 @@ check_narrowing (tree type, tree init, tsubst_flags_t complain)
else if (complain & tf_error)
{
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);
if (!pedwarn (EXPR_LOC_OR_LOC (init, input_location), OPT_Wnarrowing,
"narrowing conversion of %qE from %qT to %qT "
"inside { }", init, ftype, type))
ok = true;
global_dc->pedantic_errors = flag_pedantic_errors;
}
}

View File

@ -1,3 +1,9 @@
2015-05-01 Paolo Carlini <paolo.carlini@oracle.com>
Prathamesh Kulharni <prathamesh.kulkarni@linaro.org>
PR c++/65858
* g++.dg/cpp0x/Wnarrowing4.C: New.
2015-05-01 Rasmus Villemoes <rv@rasmusvillemoes.dk>
* gcc.dg/20150120-1.c: New test.

View File

@ -0,0 +1,6 @@
// PR c++/65858
// { dg-do compile { target c++11 } }
// { dg-require-effective-target lto }
// { dg-options "-flto -Wno-narrowing" }
int x { 0.5 };