From: Nathan Sidwell Date: Thu, 17 Aug 2000 12:24:24 +0000 (+0000) Subject: crash44.C: Remove XFAIL. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=07745bdb36b003562aadda9564917e0413c7b403;p=gcc.git crash44.C: Remove XFAIL. * g++.old-deja/g++.pt/crash44.C: Remove XFAIL. Add ERROR. * g++.old-deja/g++.pt/friend38.C: Remove XFAIL. Add extra test. * g++.old-deja/g++.pt/friend45.C: New test. * g++.old-deja/g++.other/friend8.C: New test. From-SVN: r35754 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7199ee4966b..e99e2797ee8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2000-08-17 Nathan Sidwell + + * g++.old-deja/g++.pt/crash44.C: Remove XFAIL. Add ERROR. + * g++.old-deja/g++.pt/friend38.C: Remove XFAIL. Add extra test. + * g++.old-deja/g++.pt/friend45.C: New test. + * g++.old-deja/g++.other/friend8.C: New test. + 2000-08-15 Richard Henderson * gcc.c-torture/execute/20000815-1.c: New test. diff --git a/gcc/testsuite/g++.old-deja/g++.other/friend8.C b/gcc/testsuite/g++.old-deja/g++.other/friend8.C new file mode 100644 index 00000000000..5da7183aa31 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/friend8.C @@ -0,0 +1,16 @@ +// Build don't link: +// +// Copyright (C) 2000 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 14 Aug 2000 + +// We failed to diagnose when a class friend declaration did not use an +// elaborated type specifier. + +struct Y; +struct Z; +struct X +{ + friend class Z; + friend Y; // ERROR - friend must use aggr tag +}; + diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash44.C b/gcc/testsuite/g++.old-deja/g++.pt/crash44.C index 3e7b1754659..9fba1bcafac 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash44.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash44.C @@ -1,13 +1,11 @@ // Build don't link: // Origin: Mark Mitchell -// crash test - XFAIL *-*-* - template struct S { template - friend S; + friend S; // ERROR - friend must use tag }; template struct S; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend38.C b/gcc/testsuite/g++.old-deja/g++.pt/friend38.C index e3a6a060ef6..a7363013f3b 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend38.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend38.C @@ -2,7 +2,8 @@ // Overly simplified from testcase by "B. K. Oxley" -template struct foo { +template struct foo { typedef P parent_type; - friend parent_type; // ERROR - template parameters cannot be friends - XFAIL *-*-* + friend parent_type; // ERROR - template parameters cannot be friends + friend Q; // ERROR - template parameters cannot be friends }; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend45.C b/gcc/testsuite/g++.old-deja/g++.pt/friend45.C new file mode 100644 index 00000000000..17f8dd56598 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend45.C @@ -0,0 +1,13 @@ +// Build don't link: +// +// Copyright (C) 2000 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 14 Aug 2000 + +// bug 42. We ICE'd on instantiating a template with a bogus templated friend. + +template struct X +{ + template friend X; // ERROR - friend must use aggr tag +}; + +X g;