aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2009-03-30 17:31:46 +0000
committerJoseph Myers <joseph@codesourcery.com>2009-03-30 17:31:46 +0000
commit821a687bb3bfa18eabfc9e717c5c9f480fd9647e (patch)
treea6e57b0336a8e766192d6b7b6f59bd62093e8234 /gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c
parente0b05a75af586156d675d122abddbe0d527b0c16 (diff)
svn merge -r144476:145289 svn+ssh://gcc.gnu.org/svn/gcc/trunkc-4_5-branch
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/c-4_5-branch@145306 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c')
-rw-r--r--gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c b/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c
new file mode 100644
index 00000000000..a44470431ff
--- /dev/null
+++ b/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c
@@ -0,0 +1,24 @@
+/* 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;
+}