aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2012-01-18 04:28:31 +0000
committerNick Lewycky <nicholas@mxc.ca>2012-01-18 04:28:31 +0000
commit8013afe5752551d72d290991046c3942138d2df1 (patch)
tree79cdff8ed0eb06b728e7992c5e2b521b358d1a7c
parent9bc291d5c00f47383ce7358e6309abf45324b028 (diff)
Add testcase for r148375!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148378 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/CodeGen/Inputs/stdio.h9
-rw-r--r--test/CodeGen/builtin-recursive.cc10
2 files changed, 19 insertions, 0 deletions
diff --git a/test/CodeGen/Inputs/stdio.h b/test/CodeGen/Inputs/stdio.h
new file mode 100644
index 0000000000..cfe359597b
--- /dev/null
+++ b/test/CodeGen/Inputs/stdio.h
@@ -0,0 +1,9 @@
+struct FILE;
+extern int vfprintf(struct FILE *s, const char *format, __builtin_va_list arg);
+extern int vprintf(const char *format, __builtin_va_list arg);
+
+extern __inline __attribute__((gnu_inline,always_inline)) int
+vprintf(const char *x, __builtin_va_list y)
+{
+ return vfprintf (0, 0, 0);
+}
diff --git a/test/CodeGen/builtin-recursive.cc b/test/CodeGen/builtin-recursive.cc
new file mode 100644
index 0000000000..81e9b9a37c
--- /dev/null
+++ b/test/CodeGen/builtin-recursive.cc
@@ -0,0 +1,10 @@
+// RUN: %clang_cc1 -nostdsysteminc -nobuiltininc -isystem Inputs -emit-llvm-only %s
+
+// This used to cause a read past the end of a global variable.
+
+#include <stdio.h>
+
+void testcase(void) {
+ vprintf(0, 0);
+}
+