My m32c port is generating tracking notes that look like this: (var_location 0x2a95758dd0 (parallel [ (expr_list:REG_DEP_TRUE (reg/v:SI 0 r0 [orig:123 remainder_size ] [123]) (const_int 0 [0x0])) (expr_list:REG_DEP_TRUE (reg:HI 1 r2 [ remainder_size+2 ]) (const_int 2 [0x2])) ]))
Note that registers are HI natively, and r2 is the upper half of the [r2:r0] pair. In other words, the location given above describes an overlap between the two pieces. The code itself refers to the variable in both SI (full) and HI (part) modes. The dwarf2 location lists generated from this are bogus. So, my question is - is the var_location correct? Do I need to debug the var tracking code, or the dwarf2 output code?