------- Comment #9 from pinskia at gcc dot gnu dot org  2005-11-21 15:35 -------
Here is the rtl which is produced by expanding foo(x):
(insn 15 13 16 (set (reg/f:DI 63)
        (symbol_ref:DI ("x") <var_decl 0x2aaaab15eb00 x>)) -1 (nil)
    (nil))

(insn 16 15 17 (set (reg:DI 62)
        (mem/s/c:DI (reg/f:DI 63) [4 x+0 S8 A32])) -1 (nil)
    (nil))

(insn 17 16 18 (set (reg:DI 5 di)
        (reg:DI 62)) -1 (nil)
    (nil))

(call_insn 18 17 0 (call (mem:QI (symbol_ref:DI ("foo") [flags 0x3]
<function_decl 0x2aaaab15fb00 foo>) [0 S1 A8])
        (const_int 0 [0x0])) -1 (nil)
    (expr_list:REG_EH_REGION (const_int 0 [0x0])
        (nil))
    (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
        (nil)))

Obviously this is wrong as it only passes one half of the struct.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24969

Reply via email to