aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/enum17.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/cpp0x/enum17.C')
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/enum17.C17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/enum17.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/enum17.C
new file mode 100644
index 0000000..32c4609
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/enum17.C
@@ -0,0 +1,17 @@
+// PR c++/48536
+// { dg-do compile { target c++11 } }
+
+#include <climits>
+
+// According to C++11 / Clause 7.2/5 the following enumeration is
+// well-formed. It is also well-formed in C++03 if UINT_MAX < ULONG_MAX,
+// but C++11 adds long long.
+
+enum Enum_Inc { EI_1=UINT_MAX, EI_2 }; // #1
+
+// It is not equivalent to the following.
+enum Enum_Inc2 { FI_1=UINT_MAX, FI_2=FI_1+1 }; // #2
+
+#define SA(X) static_assert(X,#X)
+SA (EI_2 != 0);
+SA (FI_2 == 0);