aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/bitint-124.c
blob: 160a1e3394ab0bb796b373a2853a0c691b3c2aea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* PR tree-optimization/121131 */
/* { dg-do run { target bitint } } */
/* { dg-options "-O2" } */

#if __BITINT_MAXWIDTH__ >= 156
struct A { _BitInt(156) b : 135; };

static inline _BitInt(156)
foo (struct A *x)
{
  return x[1].b;
}

__attribute__((noipa)) _BitInt(156)
bar (void)
{
  struct A a[] = { 1, 1, -13055525270329736316393717310914023773847wb,
		   1, 1, 1, 1, 1, 1, 1, 1, 1 };
  return foo (&a[1]);
}
#endif

int
main ()
{
#if __BITINT_MAXWIDTH__ >= 156
  if (bar () != -13055525270329736316393717310914023773847wb)
    __builtin_abort ();
#endif
}