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

Reply via email to