This function generates RTL from an expression to see how many RTL insns it is. But this causes a problem compiling the Ada ACATS test cxa4006.
The problem is when part of the expression has a location. In that case, record_block_change is called and that relies on cfun->ib_boundaries_block being set. But it isn't because we aren't expanding stuff "for real". A kludge would be to test that field, but what's the proper way? Also, seq_cost really should be looking at next_real_insn, not NEXT_INSN, since any notes shouldn't be counted.