diff options
author | Dan Albert <danalbert@google.com> | 2016-02-24 13:48:45 -0800 |
---|---|---|
committer | Dan Albert <danalbert@google.com> | 2016-02-24 13:51:18 -0800 |
commit | b9de1157289455b0ca26daff519d4a0ddcd1fa13 (patch) | |
tree | 4c56cc0a34b91f17033a40a455f26652304f7b8d /gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/test_varargs.c | |
parent | 098157a754787181cfa10e71325832448ddcea98 (diff) | |
download | toolchain_gcc-b9de1157289455b0ca26daff519d4a0ddcd1fa13.tar.gz toolchain_gcc-b9de1157289455b0ca26daff519d4a0ddcd1fa13.tar.bz2 toolchain_gcc-b9de1157289455b0ca26daff519d4a0ddcd1fa13.zip |
Update 4.8.1 to 4.8.3.
My previous drop was the wrong version. The platform mingw is
currently using 4.8.3, not 4.8.1 (not sure how I got that wrong).
From ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.3/gcc-4.8.3.tar.bz2.
Bug: http://b/26523949
Change-Id: Id85f1bdcbbaf78c7d0b5a69e74c798a08f341c35
Diffstat (limited to 'gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/test_varargs.c')
-rw-r--r-- | gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/test_varargs.c | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/test_varargs.c b/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/test_varargs.c deleted file mode 100644 index e6d99461d..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.target/x86_64/abi/test_varargs.c +++ /dev/null @@ -1,97 +0,0 @@ -/* Test variable number of arguments passed to functions. For now this is - just a simple test to see if it's working. */ - -#include <stdarg.h> -#include "defines.h" - - -#define ARG_INT 1 -#define ARG_DOUBLE 2 -#define ARG_POINTER 3 - -union types -{ - int ivalue; - double dvalue; - void *pvalue; -}; - -struct arg -{ - int type; - union types value; -}; - -struct arg *arglist; - -/* This tests the argumentlist to see if it matches the format string which - is printf-like. Nothing will be printed of course. It can handle ints, - doubles and void pointers. The given value will be tested against the - values given in arglist. - This test only assures that the variable argument passing is working. - No attempt is made to see if argument passing is done the right way. - Since the ABI doesn't say how it's done, checking this is not really - relevant. */ -void -my_noprintf (char *format, ...) -{ - va_list va_arglist; - char *c; - - int ivalue; - double dvalue; - void *pvalue; - struct arg *argp = arglist; - - va_start (va_arglist, format); - for (c = format; *c; c++) - if (*c == '%') - { - switch (*++c) - { - case 'd': - assert (argp->type == ARG_INT); - ivalue = va_arg (va_arglist, int); - assert (argp->value.ivalue == ivalue); - break; - case 'f': - assert (argp->type == ARG_DOUBLE); - dvalue = va_arg (va_arglist, double); - assert (argp->value.dvalue == dvalue); - break; - case 'p': - assert (argp->type == ARG_POINTER); - pvalue = va_arg (va_arglist, void *); - assert (argp->value.pvalue == pvalue); - break; - default: - abort (); - } - - argp++; - } -} - -int -main (void) -{ -#ifdef CHECK_VARARGS - struct arg al[5]; - - al[0].type = ARG_INT; - al[0].value.ivalue = 256; - al[1].type = ARG_DOUBLE; - al[1].value.dvalue = 257.0; - al[2].type = ARG_POINTER; - al[2].value.pvalue = al; - al[3].type = ARG_DOUBLE; - al[3].value.dvalue = 258.0; - al[4].type = ARG_INT; - al[4].value.ivalue = 259; - - arglist = al; - my_noprintf("%d%f%p%f%d", 256, 257.0, al, 258.0, 259); -#endif - - return 0; -} |