summaryrefslogtreecommitdiffstats
path: root/clang/test/Sema/varargs.cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2013-05-24 23:31:57 +0000
committerNico Weber <nicolasweber@gmx.de>2013-05-24 23:31:57 +0000
commit9eea764a1fafb5883286b088422e2ec77db25dec (patch)
treefd0183607e3c98d63bf26460d9a2d72f1786506d /clang/test/Sema/varargs.cpp
parentba63e07f3a8b698b300b154abd2dcc49ba197f69 (diff)
downloadbcm5719-llvm-9eea764a1fafb5883286b088422e2ec77db25dec.tar.gz
bcm5719-llvm-9eea764a1fafb5883286b088422e2ec77db25dec.zip
Warn on va_start() when called with a reference parameter.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf 18.7p3 explicitly calls this (and some other things) out as undefined. Also move 2 other existing warnings behind the new -Wvarargs flag. llvm-svn: 182694
Diffstat (limited to 'clang/test/Sema/varargs.cpp')
-rw-r--r--clang/test/Sema/varargs.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/test/Sema/varargs.cpp b/clang/test/Sema/varargs.cpp
new file mode 100644
index 00000000000..48a7b2fdf10
--- /dev/null
+++ b/clang/test/Sema/varargs.cpp
@@ -0,0 +1,7 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+
+class string;
+void f(const string& s, ...) { // expected-note {{parameter of type 'const string &' is declared here}}
+ __builtin_va_list ap;
+ __builtin_va_start(ap, s); // expected-warning {{'va_start' has undefined behavior with reference types}}
+}
OpenPOWER on IntegriCloud