aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBrendan Kehoe <brendan@gcc.gnu.org>1998-08-18 11:19:21 -0400
committerBrendan Kehoe <brendan@gcc.gnu.org>1998-08-18 11:19:21 -0400
commita5a406af6492a832d56b9cb4e49c1b4d0461381d (patch)
tree0d9eb848e15bd607191be0c2c409a3116e05debc /gcc
parentba6ac69e478e4f2c56d284664a0a7400e1068e89 (diff)
downloadgcc-a5a406af6492a832d56b9cb4e49c1b4d0461381d.zip
gcc-a5a406af6492a832d56b9cb4e49c1b4d0461381d.tar.gz
gcc-a5a406af6492a832d56b9cb4e49c1b4d0461381d.tar.bz2
another expr/decl ambiguity test
From-SVN: r21826
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/parse4.C24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/parse4.C b/gcc/testsuite/g++.old-deja/g++.brendan/parse4.C
new file mode 100644
index 0000000..95995ff
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/parse4.C
@@ -0,0 +1,24 @@
+// Build don't link:
+
+// this is marked as an expected error because it evidences an
+// ambiguity in the grammar between expressions and declarations.
+// when the parser's been cleaned up or rewritten, the error
+// marker can go away, since it'll no longer occur.
+
+class B
+{
+public:
+ B( int t ) {}
+ void f() {}
+};
+
+int g() { return 0; }
+
+main()
+{
+ int try1;
+ B( try1 ).f(); // no syntax error
+ B b( g() ); // no syntax error
+ B( ::g() ).f(); // no syntax error
+ B( g() ).f(); // syntax error before `.' // ERROR -
+}