This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/14580] [3.5 Regression] symbol emitted instead of a non_lazy_symbol


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-03-15 16:09 -------
Before .combine:
(call_insn 33 32 41 0 (parallel [
            (set (reg:SI 3 r3)
                (call (mem:SI (reg/v/u/f:SI 118 [ munmap ]) [0 S4 A8])
                    (const_int 32 [0x20])))
            (use (const_int 0 [0x0]))
            (clobber (scratch:SI))
        ]) 388 {*call_value_indirect_nonlocal_sysv} (insn_list 16 (insn_list 31 (insn_list 32 
(nil))))
    (expr_list:REG_DEAD (reg:SI 4 r4 [ sizet ])
        (expr_list:REG_DEAD (reg/v/u/f:SI 118 [ munmap ])
            (expr_list:REG_UNUSED (scratch:SI)
                (expr_list:REG_UNUSED (reg:SI 3 r3)
                    (nil)))))
    (expr_list (use (reg:SI 4 r4 [ sizet ]))
        (expr_list (use (reg:SI 3 r3 [ caddr ]))
            (nil))))
After .combine:
(call_insn 33 32 41 0 (parallel [
            (set (reg:SI 3 r3)
                (call (mem:SI (symbol_ref:SI ("!t__munmap") [flags 0x41] <function_decl 
0x6c5600 munmap>) [0 S4 A8])
                    (const_int 32 [0x20])))
            (use (const_int 0 [0x0]))
            (clobber (scratch:SI))
        ]) 389 {*call_value_nonlocal_sysv} (insn_list 32 (insn_list 31 (nil)))
    (expr_list:REG_UNUSED (reg:SI 3 r3)
        (expr_list:REG_UNUSED (scratch:SI)
            (expr_list:REG_DEAD (reg:SI 4 r4 [ sizet ])
                (nil))))
    (expr_list (use (reg:SI 4 r4 [ sizet ]))
        (expr_list (use (reg:SI 3 r3 [ caddr ]))
            (nil))))

Since on Darwin extern (library) calls need to go through a stub, this is wrong.
One way of fixing this would be rewrite Darwin's back-end so that the decission about the 
stubs only happen at the last moment when compiling aka when writting out the asm 
from the RTL.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2004-03-15 16:09:44
               date|                            |


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]