summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.mike/eh46.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/eh46.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/eh46.C47
1 files changed, 47 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh46.C b/gcc/testsuite/g++.old-deja/g++.mike/eh46.C
new file mode 100644
index 000000000..9785e6ad1
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.mike/eh46.C
@@ -0,0 +1,47 @@
+// { dg-do assemble }
+// { dg-xfail-if "" { arm-*-pe } { "*" } { "" } }
+// { dg-options "-fexceptions" }
+
+int atoi(const char *);
+
+struct ios {
+ virtual ~ios();
+};
+
+class fstreambase : virtual public ios {
+};
+
+class ifstream : public fstreambase {
+};
+
+class ofstream : public fstreambase {
+};
+
+extern const short O;
+extern const short D;
+
+const short O= 0;
+const short D= -3;
+
+
+short glc(const char* const * const l,
+ short& n,short& x,short& y,
+ ifstream* i,ofstream* o)
+
+{
+ n=atoi(l[1]);
+
+ x=atoi(l[2]);
+ y=atoi(l[3]);
+
+ if((x < 0)||(y <0))
+ {
+ return D;
+ }
+
+ i = new ifstream[n];
+ o = new ofstream[2];
+
+ return O;
+
+}