public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [Patch] libffi: Fix broken return_ul.c test.
@ 2007-08-01  8:20 David Daney
  2007-08-02 19:26 ` Andreas Tobler
  2007-08-05  9:50 ` Andrew Haley
  0 siblings, 2 replies; 3+ messages in thread
From: David Daney @ 2007-08-01  8:20 UTC (permalink / raw)
  To: GCJ-patches, GCC Patches; +Cc: andreast

[-- Attachment #1: Type: text/plain, Size: 511 bytes --]

The return_ul.c test is failing for mips64 n32 ABI.  The problem is that 
the return value location was too small and was overflowing into 
adjacent memory.

According to the libffi README, return values must be at least as large 
as ffi_arg, so that is what I used.

Tested on x86_64-pc-linux-gnu and mips64-linux-gnu.

OK to commit?

2007-08-01  David Daney  <ddaney@avtrex.com>

    * testsuite/libffi.call/return_ul.c (main): Define return type as
    ffi_arg.  Use proper printf conversion specifier.
   


[-- Attachment #2: ffi-ul.diff --]
[-- Type: text/x-patch, Size: 705 bytes --]

Index: testsuite/libffi.call/return_ul.c
===================================================================
--- testsuite/libffi.call/return_ul.c	(revision 127010)
+++ testsuite/libffi.call/return_ul.c	(working copy)
@@ -16,7 +16,7 @@ int main (void)
   ffi_cif cif;
   ffi_type *args[MAX_ARGS];
   void *values[MAX_ARGS];
-  unsigned long res;
+  ffi_arg res;
   unsigned long ul1, ul2;
 
   args[0] = &ffi_type_ulong;
@@ -31,7 +31,7 @@ int main (void)
   ul2 = 1073741824L;
 
   ffi_call(&cif, FFI_FN(return_ul), &res, values);
-  printf("res: %ld, %ld\n", res, ul1 + ul2);
+  printf("res: %lu, %lu\n", (unsigned long)res, ul1 + ul2);
   /* { dg-output "res: 2147483647, 2147483647" } */
 
   exit(0);

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Patch] libffi: Fix broken return_ul.c test.
  2007-08-01  8:20 [Patch] libffi: Fix broken return_ul.c test David Daney
@ 2007-08-02 19:26 ` Andreas Tobler
  2007-08-05  9:50 ` Andrew Haley
  1 sibling, 0 replies; 3+ messages in thread
From: Andreas Tobler @ 2007-08-02 19:26 UTC (permalink / raw)
  To: David Daney; +Cc: GCJ-patches, GCC Patches, andreast

David Daney wrote:
> The return_ul.c test is failing for mips64 n32 ABI.  The problem is that 
> the return value location was too small and was overflowing into 
> adjacent memory.
> 
> According to the libffi README, return values must be at least as large 
> as ffi_arg, so that is what I used.
> 
> Tested on x86_64-pc-linux-gnu and mips64-linux-gnu.
> 
> OK to commit?
> 
> 2007-08-01  David Daney  <ddaney@avtrex.com>
> 
>    * testsuite/libffi.call/return_ul.c (main): Define return type as
>    ffi_arg.  Use proper printf conversion specifier.
>  

Looks ok, at least to my understanding.

Thanks,
Andreas

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Patch] libffi: Fix broken return_ul.c test.
  2007-08-01  8:20 [Patch] libffi: Fix broken return_ul.c test David Daney
  2007-08-02 19:26 ` Andreas Tobler
@ 2007-08-05  9:50 ` Andrew Haley
  1 sibling, 0 replies; 3+ messages in thread
From: Andrew Haley @ 2007-08-05  9:50 UTC (permalink / raw)
  To: David Daney; +Cc: GCJ-patches, GCC Patches, andreast

David Daney writes:
 > The return_ul.c test is failing for mips64 n32 ABI.  The problem is that 
 > the return value location was too small and was overflowing into 
 > adjacent memory.
 > 
 > According to the libffi README, return values must be at least as large 
 > as ffi_arg, so that is what I used.
 > 
 > Tested on x86_64-pc-linux-gnu and mips64-linux-gnu.
 > 
 > OK to commit?
 > 
 > 2007-08-01  David Daney  <ddaney@avtrex.com>
 > 
 >     * testsuite/libffi.call/return_ul.c (main): Define return type as
 >     ffi_arg.  Use proper printf conversion specifier.

Yeah, of course.

Andrew.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-08-05  9:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-01  8:20 [Patch] libffi: Fix broken return_ul.c test David Daney
2007-08-02 19:26 ` Andreas Tobler
2007-08-05  9:50 ` Andrew Haley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).