Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/ext/varargs1.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// Test that passing an object with non-trivial copy constructor and // destructor is (conditionally) supported and has sensible semantics. #include <stdarg.h> extern "C" void abort(); void *as[5]; int i; struct A { A() { as[i++] = this; } A(const A& a) { if (&a != as[i-1]) abort(); as[i++] = this; } ~A() { if (this != as[--i]) abort(); } }; void f(int i, ...) { va_list ap; va_start (ap, i); A ar = va_arg (ap, A); } int main() { f(42,A()); if (i != 0) abort(); }