In tree-ssa-reassoc.c the code assumes wrongly, that the 'long' scalar type has pointer size width. This is at least for w64 not true. As reference see insert_operand_rank(), and find_operand_rank.
-- Summary: Assume that long is scalar size of a pointer Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: critical Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ktietz at gcc dot gnu dot org GCC target triplet: x86_64-pc-mingw32 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36385