aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/pr86659-2.c
blob: 71b98d7fb46836df7d3f0092d5333e34ba442b40 (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
31
32
33
34
35
36
37
38
39
40
41
42
#define ENDIANBIG __attribute((scalar_storage_order ("little-endian")))

typedef struct ENDIANBIG 
{
  unsigned long long  field0:29;
  unsigned long long  field1:4; 
  unsigned long long  field2:31;
}struct1;  

int
main(void)
{
  int value1 = 0;
  int value2 = 0;
  int value3 = 0;
  unsigned int flag;
  struct1 var1;
  var1.field0 = 23;
  
  flag = var1.field0;
  value1 = ((var1.field0)?10:20);
  if(var1.field0)
    {
      value2 =  10;
    } else
    {
      value2 = 20;
    }

  value3 = ((flag)?10:20);

  if (value1 != 10)
    __builtin_abort ();

  if (value2 != 10)
    __builtin_abort ();

  if (value3 != 10)
    __builtin_abort ();

  return 0;
}