PR c++/56567
* semantics.c (apply_deduced_return_type): Don't allow returning
std::initializer_list.
From-SVN: r196548
+2013-03-08 Jason Merrill <jason@redhat.com>
+
+ PR c++/56567
+ * semantics.c (apply_deduced_return_type): Don't allow returning
+ std::initializer_list.
+
2013-03-06 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/56534
if (return_type == error_mark_node)
return;
+ if (is_std_init_list (return_type))
+ {
+ error ("returning %qT", return_type);
+ return_type = void_type_node;
+ }
+
if (LAMBDA_FUNCTION_P (fco))
{
tree lambda = CLASSTYPE_LAMBDA_EXPR (current_class_type);
--- /dev/null
+// PR c++/56567
+// { dg-require-effective-target c++11 }
+
+#include <initializer_list>
+
+int main()
+{
+ []{ return { 1, 2 }; }(); // { dg-error "initializer_list" }
+}
+
+// { dg-prune-output "return-statement with a value" }