diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/cp/error.c | 3 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/template/qualttp21.C | 17 |
4 files changed, 31 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1c4b06d..72eb660 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2002-07-07 Roger Sayle <roger@eyesopen.com> + + * error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for + constructor and destructor tests when passed a TEMPLATE_DECL. + 2002-07-05 Jason Merrill <jason@redhat.com> * cvt.c (cp_convert_to_pointer): Call force_fit_type for null diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 678ffd0..8bef22c 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -1236,6 +1236,9 @@ dump_function_name (t, flags) { tree name = DECL_NAME (t); + if (TREE_CODE (t) == TEMPLATE_DECL) + t = DECL_TEMPLATE_RESULT (t); + /* Don't let the user see __comp_ctor et al. */ if (DECL_CONSTRUCTOR_P (t) || DECL_DESTRUCTOR_P (t)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0d8df23..8a1273e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,9 +1,14 @@ +2002-07-07 Roger Sayle <roger@eyesopen.com> + + * g++.dg/template/qualttp21.C: New test case. + 2002-07-06 Alexandre Oliva <aoliva@redhat.com> * gcc.c-torture/compile/20020706-1.c: New test. * gcc.c-torture/compile/20020706-2.c: New test. -2002-07-06 Brian R. Gaeke <brg@dgate.ORG>, Alexandre Oliva <aoliva@redhat.com> +2002-07-06 Brian R. Gaeke <brg@dgate.ORG> + Alexandre Oliva <aoliva@redhat.com> * g++.dg/warn/incomplete1.C: New test. diff --git a/gcc/testsuite/g++.dg/template/qualttp21.C b/gcc/testsuite/g++.dg/template/qualttp21.C new file mode 100644 index 0000000..00fcf40 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/qualttp21.C @@ -0,0 +1,17 @@ +// Copyright (C) 2002 Free Software Foundation +// Contributed by Roger Sayle <roger@eyesopen.com> +// { dg-do compile } + +template <class A> +class foo { + int _foo; +public: + foo() {} +protected: + ~foo() {} // { dg-error "~foo" } +}; + +int main() +{ + foo<int> a; // { dg-error "context" } +} |
