summaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-6.c
blob: e2661e771491ce87ffa306b356867941e2089ce9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* Test __builtin_{add,sub,mul}_overflow.  */
/* { dg-do run { target int128 } } */
/* { dg-skip-if "" { ! run_expensive_tests }  { "*" } { "-O0" "-O2" } } */

#include "builtin-arith-overflow-1.h"

#define INT128_MAX ((signed __int128) (((unsigned __int128) 1 << (__SIZEOF_INT128__ * __CHAR_BIT__ - 1)) - 1))
#define INT128_MIN (-INT128_MAX - 1)

#define U(s, op) op
TESTS (__int128, INT128_MIN, INT128_MAX)

#undef T
#define T(n, t1, t2, tr, v1, v2, vr, b, o) t##n##b ();

int
main ()
{
  TESTS (__int128, INT128_MIN, INT128_MAX)
  return 0;
}