aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>2003-12-08 23:08:20 -0500
committerJason Merrill <jason@gcc.gnu.org>2003-12-08 23:08:20 -0500
commit0b24b248db4bbf7e872cc523200e7468da686ef6 (patch)
tree5bee3a7e01a47cfa78aca61bca39a283f9fca9ac /gcc
parent23131008f626e045108878a27e9aec497c1ffd5f (diff)
downloadgcc-0b24b248db4bbf7e872cc523200e7468da686ef6.zip
gcc-0b24b248db4bbf7e872cc523200e7468da686ef6.tar.gz
gcc-0b24b248db4bbf7e872cc523200e7468da686ef6.tar.bz2
re PR c++/11929 (Cannot obtain variable arguments list in function with last named argument being of non-POD type)
PR c++/11929 * call.c (magic_varargs_p): New fn. (build_over_call): Do no ellipsis conversions for arguments to functions with magic varargs. From-SVN: r74461
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/g++.dg/other/stdarg2.C12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/other/stdarg2.C b/gcc/testsuite/g++.dg/other/stdarg2.C
new file mode 100644
index 0000000..99e9040
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/stdarg2.C
@@ -0,0 +1,12 @@
+// PR c++/11929
+// Bug: We were complaining about the call to va_start because o is of
+// non-POD type.
+
+struct s {
+ s(int);
+};
+
+void test(s o, ...) {
+ __builtin_va_list varg;
+ __builtin_va_start(varg, o);
+}