aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/opt/operator1.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/opt/operator1.C')
-rw-r--r--gcc/testsuite/g++.dg/opt/operator1.C10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/opt/operator1.C b/gcc/testsuite/g++.dg/opt/operator1.C
new file mode 100644
index 00000000000..9f286b9f98c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/operator1.C
@@ -0,0 +1,10 @@
+// Tests whether g++ can handle large number of operators
+// { dg-do compile }
+
+#define OP0(n) struct I##n { int i; }; operator I##n ();
+#define OP1(n) OP0(n)
+#define OP2(n) OP1(n##0) OP1(n##1) OP1(n##2) OP1(n##3) OP1(n##4)
+#define OP3(n) OP2(n##0) OP2(n##1) OP2(n##2) OP2(n##3) OP2(n##4)
+struct S {
+ OP3(0) OP3(1) OP3(2) OP3(3) OP3(4) OP3(5)
+};