PR c++/53661
	* typeck2.c (check_narrowing): Avoid false positives on conversion
	from enumeral type.
From-SVN: r191395
+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
 
   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.
 
--- /dev/null
+// PR c++/53661
+
+enum Code {
+  SUCCESS = 0
+};
+
+Code a;
+
+int r[] = {a};