From: Paolo Carlini Date: Thu, 27 Feb 2014 23:15:20 +0000 (+0000) Subject: re PR c++/60253 (ICE passing class object through ellipsis (...)) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ae9b3eb926ef6b7bd8d801e29ebc51fd4ac67fc8;p=gcc.git re PR c++/60253 (ICE passing class object through ellipsis (...)) /cp 2014-02-27 Paolo Carlini PR c++/60253 * call.c (convert_arg_to_ellipsis): Return error_mark_node after error_at. /testsuite 2014-02-27 Paolo Carlini PR c++/60253 * g++.dg/overload/ellipsis2.C: New. From-SVN: r208208 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index de06bad3052..eaec5222775 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2014-02-27 Paolo Carlini + + PR c++/60253 + * call.c (convert_arg_to_ellipsis): Return error_mark_node after + error_at. + 2014-02-27 Jason Merrill PR c++/60353 diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 700099d99dd..53b97d9db94 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -6411,8 +6411,7 @@ convert_arg_to_ellipsis (tree arg, tsubst_flags_t complain) if (complain & tf_error) error_at (loc, "cannot pass objects of non-trivially-copyable " "type %q#T through %<...%>", arg_type); - else - return error_mark_node; + return error_mark_node; } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b95bcfd02f9..0259ba4fa0f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-02-27 Paolo Carlini + + PR c++/60253 + * g++.dg/overload/ellipsis2.C: New. + 2014-02-27 Jeff Law PR rtl-optimization/52714 diff --git a/gcc/testsuite/g++.dg/overload/ellipsis2.C b/gcc/testsuite/g++.dg/overload/ellipsis2.C new file mode 100644 index 00000000000..d9118ba643c --- /dev/null +++ b/gcc/testsuite/g++.dg/overload/ellipsis2.C @@ -0,0 +1,13 @@ +// PR c++/60253 + +struct A +{ + ~A(); +}; + +struct B +{ + B(...); +}; + +B b(0, A()); // { dg-error "cannot pass" }