mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-11 07:29:32 +08:00
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
@ -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…
Reference in New Issue
Block a user