This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug testsuite/25766] objc.dg/stret-2.m fails on i686-darwin
- From: "iains at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 6 Apr 2010 23:39:51 -0000
- Subject: [Bug testsuite/25766] objc.dg/stret-2.m fails on i686-darwin
- References: <bug-25766-6528@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #2 from iains at gcc dot gnu dot org 2010-04-06 23:39 -------
according to PP50 of
http://developer.apple.com/Mac/library/documentation/DeveloperTools/Conceptual/LowLevelABI/100-32-bit_PowerPC_Function_Calling_Conventions/32bitPowerPC.html#//apple_ref/doc/uid/TP40002438-SW20
it's doing the Right Thing. Structs <=8 bytes should be returned in EAX:EDX.
Conversely, the PPC ABI calls for structs to be returned into an area pointed
to by GPR3.
So, it seems that what we need to do is to make the struct > 8 bytes and then
the same test should apply to PPC and i686.
We should not be running this for m64 code (I had already included the /* {
dg-require-effective-target ilp32 } */ as part of the remaining patches for
PR35165 ... )
try this:
Index: gcc/testsuite/objc.dg/stret-2.m
===================================================================
--- gcc/testsuite/objc.dg/stret-2.m (revision 158016)
+++ gcc/testsuite/objc.dg/stret-2.m (working copy)
@@ -3,13 +3,15 @@
points). */
/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-require-effective-target ilp32 } */
/* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
#include "../objc-obj-c++-shared/Object1.h"
struct astruct {
float a, b;
-} glob = { 1.0, 2.0 };
+ char makeMeBiggerThan8Bytes;
+} glob = { 1.0, 2.0, 'P' };
struct bstruct {
float a, b, c, d, e, f;
--
iains at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |iains at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25766