The insn when x==0 is this:
(call_insn 28 27 29 (parallel [
(set (reg:DI 30 $r0)
(call (mem:SI (symbol_ref:SI ("g") [flags 0x3]
<function_decl 0xb7f719b4 g>) [0 S4 A32])
(const_int 0 [0x0])))
(use (nil))
(clobber (reg:SI 2 $ra))
]) -1 (nil)
(nil)
(expr_list (use (reg:SI 15 $p3))
(expr_list (use (reg:SI 14 $p2))
(expr_list (use (reg:SI 13 $p1))
(expr_list (use (reg:SI 12 $p0))
(nil))))))
The only thing that looks a bit unusual to me in that is the DI
mode used in
the set.
use nil?
Anyway, thanks for the hint. I started thinking differently about
all this
at least.
Are there any usual suspects for this kind of problem then? As I
don't call
mark_jump_label directly I don't really feel responsible for the
NULL passed
to it although I'm sure it is my fault in some way... :-)
Well, it's likely the rtl that you're generating so, yeah, it'd be
likely your fault. :)
Otherwise you also might want to look to moving to 4.1/2 as long as
you're moving.
-eric