aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>2013-02-12 11:32:30 -0500
committerJason Merrill <jason@gcc.gnu.org>2013-02-12 11:32:30 -0500
commitbf94424ce151e33c75157aea2428977df01590e8 (patch)
tree74573fc64772a5614d0d32ae0cb6f7c3a57bd16b /gcc
parent18a7895438fdfc98fc07f43eac156d8224c81943 (diff)
downloadgcc-bf94424ce151e33c75157aea2428977df01590e8.zip
gcc-bf94424ce151e33c75157aea2428977df01590e8.tar.gz
gcc-bf94424ce151e33c75157aea2428977df01590e8.tar.bz2
int128 tests
From-SVN: r195985
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/g++.dg/ext/int128-3.C12
-rw-r--r--gcc/testsuite/g++.dg/ext/int128-4.C19
2 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/ext/int128-3.C b/gcc/testsuite/g++.dg/ext/int128-3.C
new file mode 100644
index 0000000..f62b62d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/int128-3.C
@@ -0,0 +1,12 @@
+// Test for int128 enums.
+// { dg-do compile { target int128 } }
+// { dg-options "" }
+
+enum E {
+ e1 = 0xffffffffffffffff,
+ e2, e3
+} e = e3;
+
+#define SA(I,X) int a##I[(X)? 1 : -1]
+
+SA(1, sizeof(E) == sizeof(__int128));
diff --git a/gcc/testsuite/g++.dg/ext/int128-4.C b/gcc/testsuite/g++.dg/ext/int128-4.C
new file mode 100644
index 0000000..2d30a08
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/int128-4.C
@@ -0,0 +1,19 @@
+// Test for int128 arithmetic conversions.
+// { dg-do compile { target int128 } }
+// { dg-options "-std=gnu++11" }
+
+template <class T, class U> struct same;
+template <class T> struct same<T,T> { };
+#define assert_same(T,U) (same<T,U>())
+
+int main()
+{
+ long long ll;
+ unsigned long long ull;
+ __int128 i8;
+ unsigned __int128 u8;
+ assert_same (decltype (ll+i8), __int128);
+ assert_same (decltype (ull+i8), __int128);
+ assert_same (decltype (ll+u8), unsigned __int128);
+ assert_same (decltype (ull+u8), unsigned __int128);
+}