#define ENDIANBIG __attribute((scalar_storage_order ("big-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;
}
