From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20648 invoked by alias); 15 Nov 2013 16:18:36 -0000 Mailing-List: contact libffi-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libffi-discuss-owner@sourceware.org Received: (qmail 20638 invoked by uid 89); 15 Nov 2013 16:18:35 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_50,RDNS_NONE,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from Unknown (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 15 Nov 2013 16:18:33 +0000 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rAFGIOaq004986 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 15 Nov 2013 11:18:24 -0500 Received: from zebedee.pink (ovpn-113-156.phx2.redhat.com [10.3.113.156]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id rAFGINOs017313; Fri, 15 Nov 2013 11:18:23 -0500 Message-ID: <5286494E.9080707@redhat.com> Date: Fri, 15 Nov 2013 16:18:00 -0000 From: Andrew Haley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131028 Thunderbird/17.0.10 MIME-Version: 1.0 To: Anthony Green CC: Anthony Green , libffi-discuss@sourceware.org Subject: Broken tests in libffi testsuite References: <20131008101354.43baeeeb@ygrex-mac> <5254428A.9080204@redhat.com> <1307910644.3010634.1381254018689.JavaMail.root@redhat.com> In-Reply-To: <1307910644.3010634.1381254018689.JavaMail.root@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2013/txt/msg00211.txt.bz2 Following our discussion about the fact that return values are full-word-sized, here are some tests that were using libffi incorrectly, and thus failing on (big-endian) powerpc64-redhat-linux-gnu. With these changes I get a clean test run. Andrew. 2013-11-15 Andrew Haley * testsuite/libffi.call/va_struct1.c (main): Fix broken test. * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise * testsuite/libffi.call/cls_struct_va1.c (test_fn): Likewise. * testsuite/libffi.call/va_1.c (main): Likewise. diff --git a/testsuite/libffi.call/cls_struct_va1.c b/testsuite/libffi.call/cls_struct_va1.c index 175ed96..6d1fdae 100644 --- a/testsuite/libffi.call/cls_struct_va1.c +++ b/testsuite/libffi.call/cls_struct_va1.c @@ -35,7 +35,7 @@ test_fn (ffi_cif* cif __UNUSED__, void* resp, printf ("%d %d %d %d %d %d %d %d %d %d\n", n, s1.a, s1.b, l1.a, l1.b, l1.c, l1.d, l1.e, s2.a, s2.b); - * (int*) resp = 42; + * (ffi_arg*) resp = 42; } int diff --git a/testsuite/libffi.call/cls_uint_va.c b/testsuite/libffi.call/cls_uint_va.c index 150fddd..548d8c6 100644 --- a/testsuite/libffi.call/cls_uint_va.c +++ b/testsuite/libffi.call/cls_uint_va.c @@ -10,12 +10,13 @@ typedef unsigned int T; -static void cls_ret_T_fn(ffi_cif* cif __UNUSED__, void* resp, void** args, +static void cls_ret_T_fn(ffi_cif* cif __UNUSED__, void *resp, void** args, void* userdata __UNUSED__) { - *(T *)resp = *(T *)args[0]; + *(ffi_arg*)resp = *(T *)args[0]; - printf("%d: %d %d\n", *(T *)resp, *(T *)args[0], *(T *)args[1]); + + printf("%d: %d %d\n", (int)*(ffi_arg *)resp, *(T *)args[0], *(T *)args[1]); } typedef T (*cls_ret_T)(T, ...); diff --git a/testsuite/libffi.call/va_1.c b/testsuite/libffi.call/va_1.c index cf4dd85..7f96809 100644 --- a/testsuite/libffi.call/va_1.c +++ b/testsuite/libffi.call/va_1.c @@ -94,7 +94,7 @@ main (void) struct large_tag l1; int n; - int res; + ffi_arg res; unsigned char uc; signed char sc; diff --git a/testsuite/libffi.call/va_struct1.c b/testsuite/libffi.call/va_struct1.c index 11d1f10..e645206 100644 --- a/testsuite/libffi.call/va_struct1.c +++ b/testsuite/libffi.call/va_struct1.c @@ -61,7 +61,7 @@ main (void) struct large_tag l1; int n; - int res; + ffi_arg res; s_type.size = 0; s_type.alignment = 0;