From af076391718fc76aa651c641e67663f8e295b395 Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Mon, 5 Jul 1999 09:36:05 +0000 Subject: [PATCH] * typename1.C, typename2.C: New tests. From-SVN: r27945 --- .../g++.old-deja/g++.oliva/ChangeLog | 2 ++ .../g++.old-deja/g++.oliva/typename1.C | 19 +++++++++++++ .../g++.old-deja/g++.oliva/typename2.C | 28 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 gcc/testsuite/g++.old-deja/g++.oliva/typename1.C create mode 100644 gcc/testsuite/g++.old-deja/g++.oliva/typename2.C diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog b/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog index a1a53c4d295..8cf06bf80f0 100644 --- a/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog +++ b/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog @@ -1,5 +1,7 @@ 1999-07-05 Alexandre Oliva + * typename1.C, typename2.C: New tests. + * template3.C: Fixed. * ns3.C: New test. diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/typename1.C b/gcc/testsuite/g++.old-deja/g++.oliva/typename1.C new file mode 100644 index 00000000000..af3d658f3fa --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.oliva/typename1.C @@ -0,0 +1,19 @@ +// Build don't link: + +// Copyright (C) 1999 Free Software Foundation + +// by Alexandre Oliva +// based on bug report by Nick Rasmussen + +// crash test - XFAIL *-*-* + +template struct foo; + +template struct bar { + typedef int foo; +}; + +template struct baz { + typedef bar::foo foo; // ERROR - missing typename + void m(foo); +}; diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/typename2.C b/gcc/testsuite/g++.old-deja/g++.oliva/typename2.C new file mode 100644 index 00000000000..f50ef48196f --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.oliva/typename2.C @@ -0,0 +1,28 @@ +// Build don't link: +// Special g++ Options: + +// Copyright (C) 1999 Free Software Foundation + +// by Alexandre Oliva +// based on bug report by Nick Rasmussen + +// This is slightly different from typename1.C. This one tests +// whether the implicit typename extension works. gcc 2.95 reports: + +// warning: lookup of `foo' finds `struct foo' +// warning: instead of `baz::foo' from dependent base class +// warning: (use `typename baz::foo' if that's what you meant) + +// But baz::foo is not a base class, and `foo' should have been +// found in baz's scope. + +struct foo; + +template struct bar { + typedef int foo; +}; + +template struct baz { + typedef bar::foo foo; // ERROR - implicit typename - XFAIL *-*-* + void m(foo); // gets bogus error - dependent base class - XFAIL *-*-* +}; -- 2.30.2