aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-08-25 15:47:31 +0000
committerDouglas Gregor <dgregor@apple.com>2010-08-25 15:47:31 +0000
commit1e32ca6e3007e09073ddafb3cb5e0adc1f83293c (patch)
treef39d8c53f4d3758820b7e3c119c598dfae7f39f3
parent993cdca0fed7deb646e4654dfb2607227a497faa (diff)
Implement __builtin_printf, __builtin_fprintf. Fixes <rdar://problem/8336581>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112049 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Basic/Builtins.def2
-rw-r--r--test/Sema/builtins.c5
2 files changed, 7 insertions, 0 deletions
diff --git a/include/clang/Basic/Builtins.def b/include/clang/Basic/Builtins.def
index 9228ab28a5..0da893899b 100644
--- a/include/clang/Basic/Builtins.def
+++ b/include/clang/Basic/Builtins.def
@@ -286,12 +286,14 @@ BUILTIN(__builtin_stdarg_start, "vA.", "n")
BUILTIN(__builtin_bcmp, "iv*v*z", "n")
BUILTIN(__builtin_bcopy, "vv*v*z", "n")
BUILTIN(__builtin_bzero, "vv*z", "nF")
+BUILTIN(__builtin_fprintf, "iP*cC*.", "Fp:1:")
BUILTIN(__builtin_memchr, "v*vC*iz", "nF")
BUILTIN(__builtin_memcmp, "ivC*vC*z", "nF")
BUILTIN(__builtin_memcpy, "v*v*vC*z", "nF")
BUILTIN(__builtin_memmove, "v*v*vC*z", "nF")
BUILTIN(__builtin_mempcpy, "v*v*vC*z", "nF")
BUILTIN(__builtin_memset, "v*v*iz", "nF")
+BUILTIN(__builtin_printf, "icC*.", "Fp:0:")
BUILTIN(__builtin_stpcpy, "c*c*cC*", "nF")
BUILTIN(__builtin_stpncpy, "c*c*cC*z", "nF")
BUILTIN(__builtin_strcasecmp, "icC*cC*", "nF")
diff --git a/test/Sema/builtins.c b/test/Sema/builtins.c
index 7d6d54dbce..787630c1a8 100644
--- a/test/Sema/builtins.c
+++ b/test/Sema/builtins.c
@@ -90,3 +90,8 @@ void test14() {
int old;
old = __sync_fetch_and_min((volatile int *)&old, 1);
}
+
+// <rdar://problem/8336581>
+void test15(const char *s) {
+ __builtin_printf("string is %s\n", s);
+}