On Apr 26, 2015, at 10:55 PM, tbsaunde+...@tbsaunde.org wrote:
> From: Trevor Saunders <tbsaunde+...@tbsaunde.org>
> 
> gcc/ChangeLog:
> 
> 2015-04-27  Trevor Saunders  <tbsaunde+...@tbsaunde.org>
> 
>       * bb-reorder.c (HAVE_return): Don't check if its undefined.
>       * defaults.h (gen_simple_return): New function.
>       (gen_simple_return): Likewise.
>       (HAVE_return): Add default definition to false.
>       (HAVE_simple_return): Likewise.
>       * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
>       HAVE_return and HAVE_simple_return are defined.
>       * function.c (gen_return_pattern): Likewise.
>       (convert_jumps_to_returns): Likewise.
>       (thread_prologue_and_epilogue_insns): Likewise.
>       * reorg.c (find_end_label): Likewise.
>       (dbr_schedule): Likewise.
>       * shrink-wrap.c: Likewise.
>       * shrink-wrap.h: Likewise.

I’m seeing:

In file included from ./tm.h:30:0,
                 from ../../gcc/gcc/c-family/c-semantics.c:24:
../../gcc/gcc/defaults.h: In function ‘rtx_def* gen_simple_return()’:
../../gcc/gcc/defaults.h:1422:1: error: redefinition of ‘rtx_def* 
gen_simple_return()’
 gen_simple_return ()
 ^
In file included from ./tm.h:22:0,
                 from ../../gcc/gcc/c-family/c-semantics.c:24:
./insn-flags.h:1744:1: error: ‘rtx_def* gen_simple_return()’ previously defined 
here
 gen_simple_return(void)
 ^

in my port.

I have a simple_return and a return that is “0” enabled.

defaults.h has:

#ifndef HAVE_simple_return
#define HAVE_simple_return 0
static inline rtx
gen_simple_return ()
{
  gcc_unreachable ();
  return NULL;
}
#endif

and insn-flags.h has:

static inline rtx gen_simple_return                                      (void);
static inline rtx
gen_simple_return(void)
{
  return 0;
}

If I change the enable to “1” or “” then it compiles better.  Also, I can 
delete the pattern or change the name of the pattern and it works ok as well.

If they both did #ifndef HAVE_simple_return, and then insn-flags did #define 
HAVE_simple_return 0, I think it might work better.  I’ve not thought about it 
much.

Reply via email to