Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/20070725-1.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* This used to fail due to a ifcombine problem wrecking 64bit checks. Fixed with rev. 126876. */ /* { dg-do run } */ /* { dg-options "-O1" } */ struct tree_base { unsigned code:16; unsigned side_effects_flag:1; unsigned constant_flag:1; unsigned addressable_flag:1; unsigned volatile_flag:1; unsigned readonly_flag:1; unsigned unsigned_flag:1; unsigned asm_written_flag:1; unsigned nowarning_flag:1; unsigned used_flag:1; unsigned nothrow_flag:1; unsigned static_flag:1; unsigned public_flag:1; unsigned private_flag:1; unsigned protected_flag:1; unsigned deprecated_flag:1; unsigned invariant_flag:1; unsigned lang_flag_0:1; unsigned lang_flag_1:1; unsigned lang_flag_2:1; unsigned lang_flag_3:1; unsigned lang_flag_4:1; unsigned lang_flag_5:1; unsigned lang_flag_6:1; unsigned visited:1; unsigned spare1:16; unsigned spare2:8; unsigned long a; }; int foo (struct tree_base *rhs) { if (({const struct tree_base* __t = (rhs); __t;})->readonly_flag && (rhs)->static_flag) return 1; return 0; } extern void abort (void); int main () { struct tree_base t; t.readonly_flag = t.static_flag = 0; if (foo (&t)) abort (); return 0; }