summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-01 15:43:19 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-01 15:43:19 +0000
commitddc1125e3e0cc8e76af1dc78e3c7e9df0cef4dfc (patch)
treed1062bcb3fbb2f7c7d94e368f510731f01b59846 /gcc
parenteb35baa2b2034f095ae2262043c8bd274c27637e (diff)
downloadgcc-ddc1125e3e0cc8e76af1dc78e3c7e9df0cef4dfc.tar.gz
* g++.dg/parse/parse5.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@60750 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.dg/parse/parse5.C33
2 files changed, 37 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7bbfb29950a..2a9f3f78c6f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2003-01-01 Neil Booth <neil@daikokuya.co.uk>
+
+ * g++.dg/parse/parse5.C: New test.
+
2003-01-01 Nathanael Nerode <neroden@gcc.gnu.org>
* g++.dg/parse/parens1.C: New test.
diff --git a/gcc/testsuite/g++.dg/parse/parse5.C b/gcc/testsuite/g++.dg/parse/parse5.C
new file mode 100644
index 00000000000..d3e015a9a3c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/parse5.C
@@ -0,0 +1,33 @@
+/* PR c++/590 */
+/* { dg-do compile } */
+
+#include <iostream>
+#include <sstream>
+using namespace std;
+
+enum ExternalEnum { EXTERNAL_VALUE = 2 };
+
+class BadStream : public ostringstream
+{
+public:
+ enum InternalEnum { VALUE = 0 };
+ BadStream( InternalEnum e ) {};
+ BadStream( InternalEnum e, int i ) {};
+};
+
+int main()
+{
+ ( BadStream( BadStream::VALUE ) ) << "foobar" << endl;
+
+ BadStream((BadStream::InternalEnum)BadStream::VALUE ) << "foobar";
+
+ BadStream::InternalEnum in = BadStream::VALUE;
+ BadStream( in ) << "foobar";
+
+ BadStream( BadStream::VALUE, 0 ) << "foobar" << endl;
+
+ // This didn't used to compile:
+ BadStream( BadStream::VALUE ) << "foobar" << endl;
+
+ return 0;
+}