diff options
Diffstat (limited to 'gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi')
18 files changed, 0 insertions, 527 deletions
diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp deleted file mode 100644 index c13961ab7..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright (C) 2009-2013 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# <http://www.gnu.org/licenses/>. - -# GCC testsuite that uses the `dg.exp' driver. - -# Load support procs. -load_lib gcc-dg.exp - -if { (![istarget x86_64-*-*] && ![istarget i?86-*-*]) - || [is-effective-target ilp32] } then { - return -} - -# If a testcase doesn't have special options, use these. -global DEFAULT_CFLAGS -if ![info exists DEFAULT_CFLAGS] then { - set DEFAULT_CFLAGS " -ansi -pedantic-errors" -} - -dg-init -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] \ - "" $DEFAULT_CFLAGS -dg-finish diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.h b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.h deleted file mode 100644 index d008ad659..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.h +++ /dev/null @@ -1,50 +0,0 @@ -/* First the default target definition. */ -#ifndef __GNUC_VA_LIST -#define __GNUC_VA_LIST - typedef __builtin_va_list __gnuc_va_list; -#endif - -#ifndef _VA_LIST_DEFINED -#define _VA_LIST_DEFINED - typedef __gnuc_va_list va_list; -#endif - -#define __va_copy(d,s) __builtin_va_copy(d,s) -#define __va_start(v,l) __builtin_va_start(v,l) -#define __va_arg(v,l) __builtin_va_arg(v,l) -#define __va_end(v) __builtin_va_end(v) - -#define __ms_va_copy(d,s) __builtin_ms_va_copy(d,s) -#define __ms_va_start(v,l) __builtin_ms_va_start(v,l) -#define __ms_va_arg(v,l) __builtin_va_arg(v,l) -#define __ms_va_end(v) __builtin_ms_va_end(v) - -#define __sysv_va_copy(d,s) __builtin_sysv_va_copy(d,s) -#define __sysv_va_start(v,l) __builtin_sysv_va_start(v,l) -#define __sysv_va_arg(v,l) __builtin_va_arg(v,l) -#define __sysv_va_end(v) __builtin_sysv_va_end(v) - -#define CALLABI_NATIVE - -#ifdef _WIN64 -#define CALLABI_CROSS __attribute__ ((sysv_abi)) - -#define CROSS_VA_LIST __builtin_sysv_va_list - -#define CROSS_VA_COPY(d,s) __sysv_va_copy(d,s) -#define CROSS_VA_START(v,l) __sysv_va_start(v,l) -#define CROSS_VA_ARG(v,l) __sysv_va_arg(v,l) -#define CROSS_VA_END(v) __sysv_va_end(v) - -#else - -#define CALLABI_CROSS __attribute__ ((ms_abi)) - -#define CROSS_VA_LIST __builtin_ms_va_list - -#define CROSS_VA_COPY(d,s) __ms_va_copy(d,s) -#define CROSS_VA_START(v,l) __ms_va_start(v,l) -#define CROSS_VA_ARG(v,l) __ms_va_arg(v,l) -#define CROSS_VA_END(v) __ms_va_end(v) - -#endif
\ No newline at end of file diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-1.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-1.c deleted file mode 100644 index 7d0b50636..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-1.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Test for cross x86_64<->w64 abi standard calls. -*/ -/* Origin: Kai Tietz <kai.tietz@onevision.com> */ -/* { dg-do run } */ -/* { dg-options "-std=gnu99 -ffast-math" } */ -#include "callabi.h" - -extern void abort (void); - -long double -CALLABI_CROSS func_cross (long double a, double b, float c, long d, int e, - char f) -{ - long double ret; - ret = a + (long double) b + (long double) c; - ret *= (long double) (d + (long) e); - if (f>0) - ret += func_cross (a,b,c,d,e,-f); - return ret; -} - -long double -CALLABI_NATIVE func_native (long double a, double b, float c, long d, int e, - char f) -{ - long double ret; - ret = a + (long double) b + (long double) c; - ret *= (long double) (d + (long) e); - if (f>0) - ret += func_native (a,b,c,d,e,-f); - return ret; -} - -int main () -{ - if (func_cross (1.0,2.0,3.0,1,2,3) - != func_native (1.0,2.0,3.0,1,2,3)) - abort (); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c deleted file mode 100644 index 048da6e56..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Test for cross x86_64<->w64 abi standard calls. */ -/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */ -/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */ -/* { dg-additional-sources "func-2b.c" } */ - -extern void __attribute__ ((sysv_abi)) abort (void); -long double func_cross (long double, double, float, long, int, char); - -long double __attribute__ ((sysv_abi)) -func_native (long double a, double b, float c, long d, int e, char f) -{ - long double ret; - ret = a + (long double) b + (long double) c; - ret *= (long double) (d + (long) e); - if (f>0) - ret += func_native (a,b,c,d,e,-f); - return ret; -} - -int __attribute__ ((sysv_abi)) -main () -{ - if (func_cross (1.0,2.0,3.0,1,2,3) - != func_native (1.0,2.0,3.0,1,2,3)) - abort (); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2b.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2b.c deleted file mode 100644 index fe85dd186..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2b.c +++ /dev/null @@ -1,13 +0,0 @@ -/* Test for cross x86_64<->w64 abi standard calls. */ -/* { dg-options "-mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */ - -long double func_cross (long double a, double b, float c, long d, int e, - char f) -{ - long double ret; - ret = a + (long double) b + (long double) c; - ret *= (long double) (d + (long) e); - if (f>0) - ret += func_cross (a,b,c,d,e,-f); - return ret; -} diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2a.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2a.c deleted file mode 100644 index 730b8db9c..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2a.c +++ /dev/null @@ -1,17 +0,0 @@ -/* Test for cross x86_64<->w64 abi standard calls via variable. */ -/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */ -/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */ -/* { dg-additional-sources "func-indirect-2b.c" } */ - -extern void __attribute__ ((sysv_abi)) abort (void); -typedef int (*func)(void *, char *, char *, short, long long); -extern func get_callback (void); - -int __attribute__ ((sysv_abi)) -main () -{ - func callme = get_callback (); - if (callme (0, 0, 0, 0x1234, 0x1234567890abcdefLL)) - abort (); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c deleted file mode 100644 index 1a9fccd97..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c +++ /dev/null @@ -1,24 +0,0 @@ -/* Test for cross x86_64<->w64 abi standard calls via variable. */ -/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */ - -typedef int (*func)(void *, char *, char *, short, long long); - -static int -callback (void *ptr, char *string1, char *string2, short number, - long long rand) -{ - if (ptr != 0 - || string1 != 0 - || string2 != 0 - || number != 0x1234 - || rand != 0x1234567890abcdefLL) - return 1; - else - return 0; -} - -func -get_callback (void) -{ - return callback; -} diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect.c deleted file mode 100644 index 0c0cbb271..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect.c +++ /dev/null @@ -1,24 +0,0 @@ -/* Test for cross x86_64<->w64 abi standard calls via variable. -*/ -/* Origin: Kai Tietz <kai.tietz@onevision.com> */ -/* { dg-do run } */ -/* { dg-options "-std=gnu99 -ffast-math" } */ -#include "callabi.h" - -extern void abort (void); - -typedef int (CALLABI_CROSS *func)(void *, char *, char *, short, long long); - -int CALLABI_CROSS -callback(void * ptr, char *string1, char *string2, short number, long long rand) -{ - return (rand != 0x1234567890abcdefLL); -} - -int main() -{ - volatile func callme = callback; - if(callme(0, 0, 0, 0, 0x1234567890abcdefLL)) - abort(); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-1.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-1.c deleted file mode 100644 index 35f8b53ca..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-1.c +++ /dev/null @@ -1,11 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O2 -mabi=sysv" } */ - -__attribute__ ((ms_abi)) -int foo (void) -{ - return 0; -} - -/* { dg-final { scan-assembler-not "%rsp" } } */ - diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-2.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-2.c deleted file mode 100644 index 2a54bc89c..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-2.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O2 -mabi=sysv" } */ - -extern int glb1, gbl2, gbl3; - -__attribute__ ((ms_abi)) -int foo (void) -{ - int r = 1; - int i, j, k; - for (i = 0; i < glb1; i++) - { - r *= (i + 1); - for (j = gbl2; j > 0; --j) - { - for (k = 0; k < gbl3; k++) - r += (i + k * j); - } - } - - return r; -} - -/* { dg-final { scan-assembler-not "%rsp" } } */ - diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/pr38891.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/pr38891.c deleted file mode 100644 index d31b8c377..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/pr38891.c +++ /dev/null @@ -1,10 +0,0 @@ -/* Test for cross x86_64<->w64 abi standard calls. -*/ -/* { dg-do compile } */ -/* { dg-options "-mno-sse" } */ -#include "callabi.h" - -long double -CALLABI_CROSS func_cross () -{ -} diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-1.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-1.c deleted file mode 100644 index a6d8463ed..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-1.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Test for cross x86_64<->w64 abi va_list calls. -*/ -/* Origin: Kai Tietz <kai.tietz@onevision.com> */ -/* { dg-do run } */ -/* { dg-options "-std=gnu99" } */ -#include "callabi.h" - -extern __SIZE_TYPE__ strlen (const char *); -extern int sprintf (char *,const char *, ...); -extern void abort (void); - -static -void CALLABI_CROSS vdo_cpy (char *s, CROSS_VA_LIST argp) -{ - __SIZE_TYPE__ len; - char *r = s; - char *e; - *r = 0; - for (;;) { - e = CROSS_VA_ARG (argp,char *); - if (*e == 0) break; - sprintf (r,"%s", e); - r += strlen (r); - } -} - -static -void CALLABI_CROSS do_cpy (char *s, ...) -{ - CROSS_VA_LIST argp; - CROSS_VA_START (argp, s); - vdo_cpy (s, argp); - CROSS_VA_END (argp); -} - -int main () -{ - char s[256]; - - do_cpy (s, "1","2","3","4", "5", "6", "7", ""); - - if (s[0] != '1' || s[1] !='2' || s[2] != '3' || s[3] != '4' - || s[4] != '5' || s[5] != '6' || s[6] != '7' || s[7] != 0) - abort (); - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-2.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-2.c deleted file mode 100644 index e281e860f..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-2.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Test for cross x86_64<->w64 abi va_list calls. -*/ -/* Origin: Kai Tietz <kai.tietz@onevision.com> */ -/* { dg-do run } */ -/* { dg-options "-std=gnu99" } */ -#include "callabi.h" - -extern void abort (void); - -#define SZ_ARGS 1ll,2ll,3ll,4ll,5ll,6ll,7ll,0ll - -static -int CALLABI_CROSS fct1 (va_list argp, ...) -{ - long long p1,p2; - int ret = 1; - CROSS_VA_LIST argp_2; - CROSS_VA_START (argp_2,argp); - - do { - p1 = CROSS_VA_ARG (argp_2, long long); - p2 = __va_arg (argp, long long); - if (p1 != p2) - ret = 0; - } while (ret && p1 != 0); - CROSS_VA_END (argp_2); - return ret; -} - -static -int fct2 (int dummy, ...) -{ - va_list argp; - int ret = dummy; - - __va_start (argp, dummy); - ret += fct1 (argp, SZ_ARGS); - __va_end (argp); - return ret; -} - -int main() -{ - if (fct2 (-1, SZ_ARGS) != 0) - abort (); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-3.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-3.c deleted file mode 100644 index 7cca7ac87..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-3.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Test for cross x86_64<->w64 abi va_list calls. -*/ -/* Origin: Kai Tietz <kai.tietz@onevision.com> */ -/* { dg-do run } */ -/* { dg-options "-std=gnu99" } */ -#include "callabi.h" - -extern void abort (void); - -#define SZ_ARGS 1ll,2ll,3ll,4ll,5ll,6ll,7ll,0ll - -static -int fct1 (CROSS_VA_LIST argp, ...) -{ - long long p1,p2; - int ret = 1; - va_list argp_2; - - __va_start (argp_2,argp); - do { - p1 = __va_arg (argp_2, long long); - p2 = CROSS_VA_ARG (argp, long long); - if (p1 != p2) - ret = 0; - } while (ret && p1 != 0); - __va_end (argp_2); - return ret; -} - -static -int CALLABI_CROSS fct2 (int dummy, ...) -{ - CROSS_VA_LIST argp; - int ret = dummy; - - CROSS_VA_START (argp, dummy); - ret += fct1 (argp, SZ_ARGS); - CROSS_VA_END (argp); - return ret; -} - -int main() -{ - if (fct2 (-1, SZ_ARGS) != 0) - abort (); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c deleted file mode 100644 index a44470431..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c +++ /dev/null @@ -1,24 +0,0 @@ -/* Test for cross x86_64<->w64 abi va_list calls. */ -/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */ -/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */ -/* { dg-additional-sources "vaarg-4b.c" } */ - -extern __SIZE_TYPE__ __attribute__ ((sysv_abi)) strlen (const char *); -extern int __attribute__ ((sysv_abi)) sprintf (char *,const char *, ...); -extern void __attribute__ ((sysv_abi)) abort (void); - -extern void do_cpy (char *, ...); - -int __attribute__ ((sysv_abi)) -main () -{ - char s[256]; - - do_cpy (s, "1","2","3","4", "5", "6", "7", ""); - - if (s[0] != '1' || s[1] !='2' || s[2] != '3' || s[3] != '4' - || s[4] != '5' || s[5] != '6' || s[6] != '7' || s[7] != 0) - abort (); - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4b.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4b.c deleted file mode 100644 index f33906bd2..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4b.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Test for cross x86_64<->w64 abi va_list calls. */ -/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */ - -#include <stdarg.h> - -extern __SIZE_TYPE__ __attribute__ ((sysv_abi)) strlen (const char *); -extern int __attribute__ ((sysv_abi)) sprintf (char *, const char *, ...); - -static void -vdo_cpy (char *s, va_list argp) -{ - __SIZE_TYPE__ len; - char *r = s; - char *e; - *r = 0; - for (;;) { - e = va_arg (argp, char *); - if (*e == 0) break; - sprintf (r,"%s", e); - r += strlen (r); - } -} - -void -do_cpy (char *s, ...) -{ - va_list argp; - va_start (argp, s); - vdo_cpy (s, argp); - va_end (argp); -} diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5a.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5a.c deleted file mode 100644 index e9912957e..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5a.c +++ /dev/null @@ -1,17 +0,0 @@ -/* Test for cross x86_64<->w64 abi va_list calls. */ -/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */ -/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */ -/* { dg-additional-sources "vaarg-5b.c" } */ - -extern void __attribute__ ((sysv_abi)) abort (void); -extern int fct2 (int, ...); - -#define SZ_ARGS 1ll,2ll,3ll,4ll,5ll,6ll,7ll,0ll - -int __attribute__ ((sysv_abi)) -main() -{ - if (fct2 (-1, SZ_ARGS) != 0) - abort (); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5b.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5b.c deleted file mode 100644 index e5dd4727b..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5b.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Test for cross x86_64<->w64 abi va_list calls. */ -/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */ - -#include <stdarg.h> - -#define SZ_ARGS 1ll,2ll,3ll,4ll,5ll,6ll,7ll,0ll - -static int __attribute__ ((sysv_abi)) -fct1 (va_list argp, ...) -{ - long long p1,p2; - int ret = 1; - __builtin_sysv_va_list argp_2; - - __builtin_sysv_va_start (argp_2, argp); - do { - p1 = va_arg (argp_2, long long); - p2 = va_arg (argp, long long); - if (p1 != p2) - ret = 0; - } while (ret && p1 != 0); - __builtin_sysv_va_end (argp_2); - - return ret; -} - -int -fct2 (int dummy, ...) -{ - va_list argp; - int ret = dummy; - - va_start (argp, dummy); - ret += fct1 (argp, SZ_ARGS); - va_end (argp); - return ret; -} |