aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2013-02-28 15:36:47 -0500
committerJason Merrill <jason@gcc.gnu.org>2013-02-28 15:36:47 -0500
commit4b3bb3f347116edf9a2badd3ad3f461686583b33 (patch)
treed2f9f38e97342a8610d60abc5d2c9064e524f566 /gcc
parent728761beb09e1d14952d08ffe18cf1494e05c782 (diff)
downloadgcc-4b3bb3f347116edf9a2badd3ad3f461686583b33.zip
gcc-4b3bb3f347116edf9a2badd3ad3f461686583b33.tar.gz
gcc-4b3bb3f347116edf9a2badd3ad3f461686583b33.tar.bz2
re PR c++/56481 (endless loop compiling a C++ file)
PR c++/56481 * g++.dg/cpp0x/constexpr-and.C: New. From-SVN: r196359
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/constexpr-and.C20
2 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 08399b9..7c6afc2 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2013-02-28 Jason Merrill <jason@redhat.com>
+
+ PR c++/56481
+ * g++.dg/cpp0x/constexpr-and.C: New.
+
2013-02-28 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/56294
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-and.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-and.C
new file mode 100644
index 0000000..15ad252
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-and.C
@@ -0,0 +1,20 @@
+// PR c++/56481
+// Non-linearity in potential_constant_expression_1
+// { dg-options -std=c++11 }
+
+struct S
+{
+ constexpr bool foo ();
+#define A(n) , f##n##0, f##n##1, f##n##2, f##n##3
+#define B(n) A(n##0) A(n##1) A(n##2) A(n##3)
+#define C B(0) B(1) B(2) B(3)
+ bool f C;
+};
+
+constexpr bool
+S::foo ()
+{
+#undef A
+#define A(n) && f##n##0 && f##n##1 && f##n##2 && f##n##3
+ return f C;
+}