URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 297 |
Rev 338 |
/* Undefined behavior from a call to va_arg with a type other than
|
/* Undefined behavior from a call to va_arg with a type other than
|
that of the argument passed (in particular, with a type such as
|
that of the argument passed (in particular, with a type such as
|
"float" that can never be the type of an argument passed through
|
"float" that can never be the type of an argument passed through
|
"...") does not appear until after the va_list expression is
|
"...") does not appear until after the va_list expression is
|
evaluated. PR 38483. */
|
evaluated. PR 38483. */
|
/* Origin: Joseph Myers <joseph@codesourcery.com> */
|
/* Origin: Joseph Myers <joseph@codesourcery.com> */
|
|
|
#include <stdarg.h>
|
#include <stdarg.h>
|
|
|
extern void exit (int);
|
extern void exit (int);
|
extern void abort (void);
|
extern void abort (void);
|
|
|
va_list ap;
|
va_list ap;
|
float f;
|
float f;
|
|
|
va_list *
|
va_list *
|
foo (void)
|
foo (void)
|
{
|
{
|
exit (0);
|
exit (0);
|
return ≈
|
return ≈
|
}
|
}
|
|
|
void
|
void
|
bar (int i, ...)
|
bar (int i, ...)
|
{
|
{
|
va_start (ap, i);
|
va_start (ap, i);
|
f = va_arg (*foo (), float);
|
f = va_arg (*foo (), float);
|
va_end (ap);
|
va_end (ap);
|
}
|
}
|
|
|
int
|
int
|
main (void)
|
main (void)
|
{
|
{
|
bar (1, 0);
|
bar (1, 0);
|
abort ();
|
abort ();
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.