diff options
author | Jason Merrill <jason@gcc.gnu.org> | 2013-02-12 11:32:30 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2013-02-12 11:32:30 -0500 |
commit | bf94424ce151e33c75157aea2428977df01590e8 (patch) | |
tree | 74573fc64772a5614d0d32ae0cb6f7c3a57bd16b /gcc | |
parent | 18a7895438fdfc98fc07f43eac156d8224c81943 (diff) | |
download | gcc-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.C | 12 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/ext/int128-4.C | 19 |
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); +} |