Commit 5e23183b by Jason Merrill Committed by Jason Merrill

re PR c++/53661 (Wrong narrowing conversion warning with -std=c++11)

	PR c++/53661
	* typeck2.c (check_narrowing): Avoid false positives on conversion
	from enumeral type.

From-SVN: r191395
parent f57f20bb
2012-09-14 Jason Merrill <jason@redhat.com>
PR c++/53661
* typeck2.c (check_narrowing): Avoid false positives on conversion
from enumeral type.
2012-09-14 Marc Glisse <marc.glisse@inria.fr>
PR c++/54427
......
......@@ -787,6 +787,9 @@ check_narrowing (tree type, tree init)
else if (INTEGRAL_OR_ENUMERATION_TYPE_P (ftype)
&& CP_INTEGRAL_TYPE_P (type))
{
if (TREE_CODE (ftype) == ENUMERAL_TYPE)
/* Check for narrowing based on the values of the enumeration. */
ftype = ENUM_UNDERLYING_TYPE (ftype);
if ((tree_int_cst_lt (TYPE_MAX_VALUE (type),
TYPE_MAX_VALUE (ftype))
|| tree_int_cst_lt (TYPE_MIN_VALUE (ftype),
......
2012-09-14 Jason Merrill <jason@redhat.com>
PR c++/53661
* g++.dg/init/aggr9.C: New.
2012-09-17 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/loop_optimization12.ad[sb]: New test.
......
// PR c++/53661
enum Code {
SUCCESS = 0
};
Code a;
int r[] = {a};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment