mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-13 21:01:29 +08:00
vaarg2.C: New test.
* g++.old-deja/g++.pt/vaarg2.C: New test. * g++.old-deja/g++.pt/vaarg3.C: New test. From-SVN: r34646
This commit is contained in:
parent
ea333e1cea
commit
dc2a68d785
@ -1,3 +1,8 @@
|
||||
2000-06-22 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* g++.old-deja/g++.pt/vaarg2.C: New test.
|
||||
* g++.old-deja/g++.pt/vaarg3.C: New test.
|
||||
|
||||
2000-06-20 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* g++.old-deja/g++.other/dyncast6.C: New test.
|
||||
|
26
gcc/testsuite/g++.old-deja/g++.pt/vaarg2.C
Normal file
26
gcc/testsuite/g++.old-deja/g++.pt/vaarg2.C
Normal file
@ -0,0 +1,26 @@
|
||||
// Build don't link:
|
||||
// Copyright (C) 2000 Free Software Foundation
|
||||
// Contributed by Nathan Sidwell 22 June 2000 <nathan@codesourcery.com>
|
||||
|
||||
// Origin GNATS bug report 63 from Kurt Garloff <garloff@tue.nl>
|
||||
// We attempted to expand va_arg prematurely in a template function.
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
template <class Type>
|
||||
void PrintArgs (Type somearg, ...)
|
||||
{
|
||||
va_list argp;
|
||||
va_start (argp, somearg);
|
||||
Type value;
|
||||
while ( ( value = va_arg (argp, Type) ) > 0.0)
|
||||
continue;
|
||||
va_end (argp);
|
||||
}
|
||||
|
||||
int main (void)
|
||||
{
|
||||
double dummy = 0;
|
||||
PrintArgs (dummy, 1.0, 2.0, 3.0, -1.0);
|
||||
return 0;
|
||||
}
|
26
gcc/testsuite/g++.old-deja/g++.pt/vaarg3.C
Normal file
26
gcc/testsuite/g++.old-deja/g++.pt/vaarg3.C
Normal file
@ -0,0 +1,26 @@
|
||||
// Build don't link:
|
||||
// Copyright (C) 2000 Free Software Foundation
|
||||
// Contributed by Nathan Sidwell 22 June 2000 <nathan@codesourcery.com>
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
struct A {
|
||||
virtual ~A () {};
|
||||
};
|
||||
|
||||
template <class Type>
|
||||
void PrintArgs (Type somearg, ...)
|
||||
{
|
||||
va_list argp;
|
||||
va_start (argp, somearg); // ERROR - cannot pass non-POD
|
||||
Type value;
|
||||
value = va_arg (argp, Type); // ERROR - cannot pass non-POD
|
||||
va_end (argp);
|
||||
}
|
||||
|
||||
int main (void)
|
||||
{
|
||||
A dummy;
|
||||
PrintArgs (dummy, dummy); // ERROR - cannot pass non-POD
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user