http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58413
Bug ID: 58413 Summary: ubsan constant folding Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: jan.sm...@alcatel-lucent.com CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org variable-sized object may not be initialized unsigned short x[128 >> 5] = {}; initializer element is not constant static int x = ((int)( 0x00000000 | ((31 & ((1 << (4)) - 1)) << (((15) + 6) + 4)) | ((0) << ((15) + 6)) | ((0) << (15)) ) ); (yes, auch) unexpected size of type 'long long unsigned int:40' uint64_t start_of_buffer = ((res.ptr.s.addr >> 7) - res.ptr.s.back) << 7; .addr and .back are bitfield members of struct s. ptr is a pointer to an union. case label does not reduce to an integer constant switch(int) ... case (1<<1): .. They all seem related. Thanks!