Hi, On Mon, Aug 16, 2021 at 11:03:19PM +0200, Mark Wielaard wrote: > Now having replicated it locally the rust.log shows: > > /srv/gccrs/gccrs/gcc/testsuite/rust/compile/torture/ifunaryexpr.rs: In function 'main': > /srv/gccrs/gccrs/gcc/testsuite/rust/compile/torture/ifunaryexpr.rs:8:5: error: mismatching comparison operand types > const i32 > bool > if (n != 0) goto ; else goto ; > /srv/gccrs/gccrs/gcc/testsuite/rust/compile/torture/ifunaryexpr.rs:8:5: internal compiler error: 'verify > _gimple' failed > 0xf38fbd verify_gimple_in_seq(gimple*) > ../../gccrs/gcc/tree-cfg.c:5157 > 0xc72346 gimplify_body(tree_node*, bool) > ../../gccrs/gcc/gimplify.c:15401 > 0xc724cd gimplify_function_tree(tree_node*) > ../../gccrs/gcc/gimplify.c:15472 > 0xab0dc7 cgraph_node::analyze() > ../../gccrs/gcc/cgraphunit.c:670 > 0xab38b7 analyze_functions > ../../gccrs/gcc/cgraphunit.c:1236 > 0xab454d symbol_table::finalize_compilation_unit() > ../../gccrs/gcc/cgraphunit.c:2514 > > So, my patch created bad gimple. I'll try to track it down. I figured it out. There was another bug in the ComparisonExpr type checker the result is a bool type but the argument types only need to have compatible types, they don't have to be bools. Fixed patch attached. Also on https://code.wildebeest.org/git/user/mjw/gccrs/commit/?h=bools_eq Cheers, Mark