2009-11-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/42060
* except.c (build_throw): Check the tree returned by
decay_conversion for error_mark_node.
testsuite/
2009-11-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/42060
* g++.dg/cpp0x/initlist28.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154371
138bc75d-0d04-0410-961f-
82ee72b054a4
+2009-11-20 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/42060
+ * except.c (build_throw): Check the tree returned by
+ decay_conversion for error_mark_node.
+
2009-11-20 Shujing Zhao <pearly.zhao@oracle.com>
PR c++/29017
}
}
else
- exp = build2 (INIT_EXPR, temp_type, object,
- decay_conversion (exp));
+ {
+ tmp = decay_conversion (exp);
+ if (tmp == error_mark_node)
+ return error_mark_node;
+ exp = build2 (INIT_EXPR, temp_type, object, tmp);
+ }
/* Pre-evaluate the thrown expression first, since if we allocated
the space first we would have to deal with cleaning it up if
+2009-11-20 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/42060
+ * g++.dg/cpp0x/initlist28.C: New.
+
2009-11-20 H.J. Lu <hongjiu.lu@intel.com>
* gfortran.dg/proc_ptr_comp_23.f90: Add a missing space.
--- /dev/null
+// PR c++/42060
+// { dg-options "-std=c++0x" }
+
+void foo()
+{
+ int a[1];
+ throw a = {}; // { dg-error "invalid use of non-lvalue array" }
+}