From 7c712dcc2b30ee6466a89ba586c9e00c4f378794 Mon Sep 17 00:00:00 2001 From: "Loren J. Rittle" Date: Fri, 31 Jan 2003 21:59:38 +0000 Subject: [PATCH] re PR target/9506 (ABI breakage: structure return) PR c/9506 * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN. * gcc.dg/struct-ret-libc.c: New test. From-SVN: r62204 --- gcc/ChangeLog | 9 +++++++++ gcc/config/i386/i386.c | 2 +- gcc/testsuite/gcc.dg/struct-ret-libc.c | 16 ++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/struct-ret-libc.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9a506e7a00a..1fa403806a6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2003-01-31 Jan Hubicka + + PR c/9506 + * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN. + +2003-01-31 Loren J. Rittle + + * gcc.dg/struct-ret-libc.c: New test. + 2003-01-31 John David Anglin * pa32-regs.h (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Delete diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 9abff89a052..d70054b069c 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -1118,7 +1118,7 @@ override_options () if (flag_asynchronous_unwind_tables == 2) flag_asynchronous_unwind_tables = 0; if (flag_pcc_struct_return == 2) - flag_pcc_struct_return = 1; + flag_pcc_struct_return = DEFAULT_PCC_STRUCT_RETURN; } #ifdef SUBTARGET_OVERRIDE_OPTIONS diff --git a/gcc/testsuite/gcc.dg/struct-ret-libc.c b/gcc/testsuite/gcc.dg/struct-ret-libc.c new file mode 100644 index 00000000000..723e1cd029b --- /dev/null +++ b/gcc/testsuite/gcc.dg/struct-ret-libc.c @@ -0,0 +1,16 @@ +/* Test evolved from source from Simona Perri + and Gerald Pfeifer. + + Copyright (C) 2003 Free Software Foundation */ + +/* { dg-do run } */ + +#include + +int main () +{ + div_t d = div (20, 5); + if ((d.quot != 4) || (d.rem)) + abort (); + exit (0); +} -- 2.30.2