Hi,

while looking into building GCC with 4 bytes alignment by default on
m68k, I ran into the following definition in gcc/config/m68k/linux.h:

/* For m68k SVR4, structures are returned using the reentrant                   
                                                                                
           
   technique.  */
#undef PCC_STATIC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 0

For NetBSD (gcc/config/m68k/netbsd-elf.h), we have:

/* The svr4 ABI for the m68k says that records and unions are returned          
                                                                                
           
   in memory.  */

#undef DEFAULT_PCC_STRUCT_RETURN 
#define DEFAULT_PCC_STRUCT_RETURN 1

Two questions:

Shouldn't the #undef in linux.h undefine DEFAULT_PCC_STRUCT_RETURN and not
PCC_STATIC_STRUCT_RETURN? And, secondly, shouldn't the comment in linux.h
be corrected since apparently linux.h and netbsd-elf.h disagree on what
the SVR4 ABI specifies how structs and unions are returned?

In particular, it seems that DEFAULT_PCC_STRUCT_RETURN is always 0 on Linux
and always 1 on NetBSD according to a brief "git grep 
DEFAULT_PCC_STRUCT_RETURN".

Thanks,
Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

Reply via email to