re PR c++/28988 (g++ does not check first type name in pseudo-destructor-name)
2007-01-28 Andrew Pinski <pinskia@gmail.com> PR C++/28988 * semantics.c (finish_pseudo_destructor_expr): Check the destrutor name by calling check_dtor_name. 2007-01-28 Andrew Pinski <pinskia@gmail.com> PR C++/28988 * g++.dg/expr/dtor4.C: New test. From-SVN: r121261
This commit is contained in:
parent
7f9bc51b09
commit
5cf10afb0b
4 changed files with 28 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2007-01-28 Andrew Pinski <pinskia@gmail.com>
|
||||
|
||||
PR C++/28988
|
||||
* semantics.c (finish_pseudo_destructor_expr): Check the
|
||||
destrutor name by calling check_dtor_name.
|
||||
|
||||
2007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
|
||||
|
||||
* lex.c (D_CPP0X): Rename.
|
||||
|
|
|
@ -1956,6 +1956,13 @@ finish_pseudo_destructor_expr (tree object, tree scope, tree destructor)
|
|||
error ("invalid qualifying scope in pseudo-destructor name");
|
||||
return error_mark_node;
|
||||
}
|
||||
if (scope && TYPE_P (scope) && !check_dtor_name (scope, destructor))
|
||||
{
|
||||
error ("qualified type %qT does not match destructor name ~%qT",
|
||||
scope, destructor);
|
||||
return error_mark_node;
|
||||
}
|
||||
|
||||
|
||||
/* [expr.pseudo] says both:
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2007-01-28 Andrew Pinski <pinskia@gmail.com>
|
||||
|
||||
PR C++/28988
|
||||
* g++.dg/expr/dtor4.C: New test.
|
||||
|
||||
2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
|
||||
|
||||
* gcc.dg/tree-ssa/loop-23.c: New test.
|
||||
|
|
10
gcc/testsuite/g++.dg/expr/dtor4.C
Normal file
10
gcc/testsuite/g++.dg/expr/dtor4.C
Normal file
|
@ -0,0 +1,10 @@
|
|||
typedef int C;
|
||||
typedef double D;
|
||||
|
||||
void
|
||||
f ()
|
||||
{
|
||||
C o;
|
||||
|
||||
o.D::~C (); // { dg-error "" }
|
||||
}
|
Loading…
Add table
Reference in a new issue