URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 328 |
Rev 338 |
/* Test for cross x86_64<->w64 abi va_list calls. */
|
/* Test for cross x86_64<->w64 abi va_list calls. */
|
/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
|
/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
|
|
|
#include <stdarg.h>
|
#include <stdarg.h>
|
|
|
extern __SIZE_TYPE__ __attribute__ ((sysv_abi)) strlen (const char *);
|
extern __SIZE_TYPE__ __attribute__ ((sysv_abi)) strlen (const char *);
|
extern int __attribute__ ((sysv_abi)) sprintf (char *, const char *, ...);
|
extern int __attribute__ ((sysv_abi)) sprintf (char *, const char *, ...);
|
|
|
static void
|
static void
|
vdo_cpy (char *s, va_list argp)
|
vdo_cpy (char *s, va_list argp)
|
{
|
{
|
__SIZE_TYPE__ len;
|
__SIZE_TYPE__ len;
|
char *r = s;
|
char *r = s;
|
char *e;
|
char *e;
|
*r = 0;
|
*r = 0;
|
for (;;) {
|
for (;;) {
|
e = va_arg (argp, char *);
|
e = va_arg (argp, char *);
|
if (*e == 0) break;
|
if (*e == 0) break;
|
sprintf (r,"%s", e);
|
sprintf (r,"%s", e);
|
r += strlen (r);
|
r += strlen (r);
|
}
|
}
|
}
|
}
|
|
|
void
|
void
|
do_cpy (char *s, ...)
|
do_cpy (char *s, ...)
|
{
|
{
|
va_list argp;
|
va_list argp;
|
va_start (argp, s);
|
va_start (argp, s);
|
vdo_cpy (s, argp);
|
vdo_cpy (s, argp);
|
va_end (argp);
|
va_end (argp);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.