This is the mail archive of the gcc-patches@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]

fix middle-end/17367


The PR shows a case in which still assumed ADDRESSOF exists, so that
anything of a type that fits in a register should be put in a register.

The fix is to mind what use_register_for_decl says, and not put 
addressable variables into registers.


r~


        * function.c (assign_parm_setup_block): Only put PARALLELs into
        a register if use_register_for_decl.

Index: function.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/function.c,v
retrieving revision 1.574
diff -c -p -d -r1.574 function.c
*** function.c	8 Sep 2004 19:25:02 -0000	1.574
--- function.c	10 Sep 2004 00:48:50 -0000
*************** assign_parm_setup_block (tree parm, stru
*** 2535,2541 ****
    if (GET_CODE (entry_parm) == PARALLEL
        && data->nominal_mode != BLKmode
        && XVECLEN (entry_parm, 0) > 1
!       && optimize)
      {
        rtx parmreg = gen_reg_rtx (data->nominal_mode);
  
--- 2535,2541 ----
    if (GET_CODE (entry_parm) == PARALLEL
        && data->nominal_mode != BLKmode
        && XVECLEN (entry_parm, 0) > 1
!       && use_register_for_decl (parm))
      {
        rtx parmreg = gen_reg_rtx (data->nominal_mode);
  


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