* g++.dg/parse/parse5.C: New test.
authorNeil Booth <neil@daikokuya.co.uk>
Wed, 1 Jan 2003 15:43:19 +0000 (15:43 +0000)
committerNeil Booth <neil@gcc.gnu.org>
Wed, 1 Jan 2003 15:43:19 +0000 (15:43 +0000)
From-SVN: r60750

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/parse/parse5.C [new file with mode: 0644]

index 7bbfb29950ab6bf865eecf15300c03f9ca5aee29..2a9f3f78c6fa98efd8c2776a38904d7454c66779 100644 (file)
@@ -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 (file)
index 0000000..d3e015a
--- /dev/null
@@ -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;
+}