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

ABI breakage in 3.2.1, 3.3 and mainline


Jan,

unless I am completely mistaken, the following patch is responsible for an
ABI change I am seeing on FreeBSD (and apparently also Cygwin, Interix,
OpenBSD, NetBSD) on i386 platforms for GCC 3.2.1 as well as the 3.3 branch
and mainline:

  Thu Oct 31 18:08:00 CET 2002  Jan Hubicka  <jh@suse.cz>

        * i386.c (override_options): Set defaults for flag_omit_frame_pointer,
        flag_asynchronous_unwind_tables, flag_pcc_struct_return.
        * i386.c (optimization_options): Set flag_omit_frame_pointer,
        flag_asynchronous_unwind_tables, flag_pcc_struct_return to 2.
        Do not clear -momit-leaf-frame-pointer when profiling.
        (ix86_frame_pointer_required): Frame pointer is always required when
        profiling.

  http://gcc.gnu.org/ml/gcc-patches/2002-10/msg01887.html


What I believe is wrong with this patch is that it _completely_ ignores
DEFAULT_PCC_STRUCT_RETURN when setting flag_pcc_struct_return:

  gcc/config/i386% grep DEFAULT_PCC_STRUCT_RETURN *.h | wc -l
      19
  gcc/config/i386% grep DEFAULT_PCC_STRUCT_RETURN i386.c | wc -l
      0


This is most critical, and I believe this is a showstopper for GCC 3.2.2
(where I believe we ought to restore the ABI of GCC 3.2).

I created PR/9506 which also has a small testcase.

Gerald
-- 
Gerald "Jerry"   pfeifer@dbai.tuwien.ac.at   http://www.pfeifer.com/gerald/


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