Commit 09b1ccd6 by Jakub Jelinek Committed by Jakub Jelinek

re PR c++/34068 (ICE using pseudo-destructor for invalid expression)

	PR c++/34068
	* semantics.c (finish_pseudo_destructor_expr): Handle
	object == error_mark_node.

	* g++.dg/template/pseudodtor4.C: New test.

From-SVN: r130087
parent c31ab059
2007-11-11 Jakub Jelinek <jakub@redhat.com>
PR c++/34068
* semantics.c (finish_pseudo_destructor_expr): Handle
object == error_mark_node.
2007-11-10 Jakub Jelinek <jakub@redhat.com> 2007-11-10 Jakub Jelinek <jakub@redhat.com>
PR c++/32241 PR c++/32241
......
...@@ -1998,7 +1998,7 @@ finish_this_expr (void) ...@@ -1998,7 +1998,7 @@ finish_this_expr (void)
tree tree
finish_pseudo_destructor_expr (tree object, tree scope, tree destructor) finish_pseudo_destructor_expr (tree object, tree scope, tree destructor)
{ {
if (destructor == error_mark_node) if (object == error_mark_node || destructor == error_mark_node)
return error_mark_node; return error_mark_node;
gcc_assert (TYPE_P (destructor)); gcc_assert (TYPE_P (destructor));
......
2007-11-11 Jakub Jelinek <jakub@redhat.com>
PR c++/34068
* g++.dg/template/pseudodtor4.C: New test.
2007-11-10 Jakub Jelinek <jakub@redhat.com> 2007-11-10 Jakub Jelinek <jakub@redhat.com>
PR middle-end/34018 PR middle-end/34018
// PR c++/34068
// { dg-do compile }
template <typename> struct A
{
typedef int X;
A () { T (). ~X (); } // { dg-error "there are no arguments to|fpermissive|was not declared in this scope" }
};
A <int> 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