This is the mail archive of the libffi-discuss@sourceware.org mailing list for the libffi 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]

Re: Testresults of libffi-3.0.9rc10 for x64 mingw target



On Dec 29, 2009, at 5:39 AM, Andrew Haley wrote:


On 12/29/2009 08:01 AM, Kai Tietz wrote:
2009/12/28 Andrew Haley <aph@redhat.com>:
On 12/28/2009 07:15 PM, Kai Tietz wrote:
2009/12/28 Timothy Wall <twall@users.sf.net>:

On Dec 28, 2009, at 12:50 PM, Andrew Haley wrote:


On 12/28/2009 05:16 PM, Anthony Green wrote:

It looks like the failures are related to printing long long types.


Andrew - do you remember the origin of this addition to ffitest.h...

Yes. See http://sourceware.org/ml/libffi-discuss/2009/msg00159.html


Summary: mingw64 can't printf a long long.  According
to Timothy Wall, "PRId64" is supposed to work on mingw64.

I don't think "PRId64" is supposed to be in quotes, since it's a macro, but I can't test atm.

Indeed, PRId64 is a macro and has not to be quoted, as otherwise it simply gets a string, which isn't the intention here.

This use of quotes looks perfectly alright to me. What do you think is supposed to be wrong with it? The error messages suggest that there is some problem interpreting the printf specifier.

Index: testsuite/libffi.call/ffitest.h
===================================================================
RCS file: /cvs/libffi/libffi/testsuite/libffi.call/ffitest.h,v
retrieving revision 1.5
diff -u -r1.5 ffitest.h
--- testsuite/libffi.call/ffitest.h 22 Dec 2008 15:21:15 -0000 1.5
+++ testsuite/libffi.call/ffitest.h 16 Jun 2009 09:37:58 -0000
@@ -45,6 +45,15 @@


#endif

+/* MinGW kludge.  */
+#ifdef WIN64
+#define PRIdLL "PRId64"
+#define PRIuLL "PRIu64"
+#else
+#define PRIdLL "lld"
+#define PRIuLL "llu"
+#endif

Please take a look toe the PRIdLL for Non-WIN64 (and please use _WIN64
as this is defined by compiler!!), and the Win64 version. Do you
really believe that "PRId64" is a width specifier in a format string?

I assumed so. The change was provided here:


http://sourceware.org/ml/libffi-discuss/2009/msg00175.html

Is this really the first time this has been tested?

I tested the code originally without quotes, but somehow the quotes got into the actual change. Apparently whoever finally submitted the patch (I don't think it was me) made some final tweaks, and I overlooked it in the final patch.




It isn't PRId64 is a macro defined in inttypes.h, which is a string,
so please don't use quotes here in win64 case.

Sure, but we need someone to test it this time.


Andrew.


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