Command line: $ gcc -O1 -funroll-loops -fnon-call-exceptions testcase.c Valgrind output: ==17265== Invalid read of size 2 ==17265== at 0x82C2FB: rtx_equal_p (rtl.c:495) ==17265== by 0xA6781A: ix86_swap_binary_operands_p (i386.c:14395) ==17265== by 0xA8F448: ix86_binary_operator_ok (i386.c:14534) ==17265== by 0xDDE88E: recog (i386.md:8432) ==17265== by 0xECF613: recog_for_combine (combine.c:10165) ==17265== by 0xEFB8FF: try_combine (combine.c:3012) ==17265== by 0xF05BE3: rest_of_handle_combine (combine.c:1153) ==17265== by 0x7BF13B: execute_one_pass (passes.c:1567) ==17265== by 0x7BF3D4: execute_pass_list (passes.c:1622) ==17265== by 0x7BF3E6: execute_pass_list (passes.c:1623) ==17265== by 0x901335: tree_rest_of_compilation (tree-optimize.c:452) ==17265== by 0xABD765: cgraph_expand_function (cgraphunit.c:1643) ==17265== Address 0xabababababababab is not stack'd, malloc'd or (recently) free'd ==17265== testcase.c: In function 'foo': testcase.c:5:1: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions.
-------- testcase.c -------- int foo (int a, int b) { return (a == 0 && b == 0); } ---------------------------- Tested revisions: r163261 - crash r158969 - crash r158095 - OK 4.5 r160526 - OK -- Summary: [4.6 Regression] ICE: SIGSEGV in rtx_equal_p (rtl.c:496) with -O1 -funroll-loops -fnon-call-exceptions Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: zsojka at seznam dot cz GCC host triplet: x86_64-pc-linux-gnu GCC target triplet: x86_64-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45327