The following fails with 32bit pointers and 64bit long long if the compiler is
built with type-checking enabled.
void __lock_get_list(void *dp)
{
if (((unsigned int)dp + 1) & ~1ULL)
;
}
The original trees look ok:
if (((long long unsigned int) (dp + 1) & 0x0fffffffffffffffe) != 0)
{
(void) 0;
}
--
Summary: [4.3 Regression] Type verification failure with pointer
to long long conversion
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code, ice-checking
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org
GCC target triplet: i686-*-*
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33666