The problem is (?) that get_base_address for state_inD.6032_16->savedD.6026[regD.6037_3]
(which is of type <integer_type 0x4014a3cc char>) returns *state_inD.6032_16 (which is of type <record_type 0x4040621c>). The documentation of get_base_address does not talk about any type guarantees - but I guess IVOPTs rather wanted to have state_inD.6032_16->savedD.6026[0] ? I don't understand the global picture here - i.e. what rewrite_address_base is actually trying to do here.