From ba6ac69e478e4f2c56d284664a0a7400e1068e89 Mon Sep 17 00:00:00 2001 From: Brendan Kehoe Date: Tue, 18 Aug 1998 11:11:05 -0400 Subject: add expr/decl ambiguity test From-SVN: r21825 --- gcc/testsuite/g++.old-deja/g++.brendan/parse3.C | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 gcc/testsuite/g++.old-deja/g++.brendan/parse3.C (limited to 'gcc') diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/parse3.C b/gcc/testsuite/g++.old-deja/g++.brendan/parse3.C new file mode 100644 index 0000000..c346a28 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.brendan/parse3.C @@ -0,0 +1,22 @@ +// Build don't link: + +// these are marked as expected errors because they evidence an +// ambiguity in the grammar between expressions and declarations. +// when the parser's been cleaned up or rewritten, these two error +// markers can go away, since they'll no longer occur. + +class A +{ + public: + int high; + unsigned int low; + A operator+(const A in); +}; + +A A::operator+(const A in) +{ + if (high==0) + return A(); // this works + else + return (A()); // this works not !! -> why ?? // ERROR - +} // ERROR - -- cgit v1.1