diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-07-16 00:31:23 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-07-16 00:31:23 +0000 |
commit | 1058253c364b2c98e6cecfe15d18d3562db245f4 (patch) | |
tree | 5e3734f1530a144f08fc56a2b2a9e5d4abf941ce | |
parent | 754b9fbaa13749c61393cc613eec7c79efe60ddf (diff) |
Builtins/ARM: __clear_cache doesn't seem to have a consistent prototype, declare
the builtin as void __clear_cache(...) to workaround this, which appears to
match what GCC does.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108487 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/Basic/BuiltinsARM.def | 2 | ||||
-rw-r--r-- | test/CodeGen/builtins-arm.c | 2 | ||||
-rw-r--r-- | test/Sema/builtins-arm.c | 11 |
3 files changed, 13 insertions, 2 deletions
diff --git a/include/clang/Basic/BuiltinsARM.def b/include/clang/Basic/BuiltinsARM.def index 54e4c2b208..60c59bc05b 100644 --- a/include/clang/Basic/BuiltinsARM.def +++ b/include/clang/Basic/BuiltinsARM.def @@ -15,7 +15,7 @@ // The format of this database matches clang/Basic/Builtins.def. // In libgcc -BUILTIN(__clear_cache, "vc*c*", "") +BUILTIN(__clear_cache, "v.", "") BUILTIN(__builtin_thread_pointer, "v*", "") // NEON diff --git a/test/CodeGen/builtins-arm.c b/test/CodeGen/builtins-arm.c index 546f57a4a1..09df1ef42c 100644 --- a/test/CodeGen/builtins-arm.c +++ b/test/CodeGen/builtins-arm.c @@ -9,4 +9,4 @@ void f1(char *a, char *b) { __clear_cache(a,b); } -// CHECK: call void @__clear_cache +// CHECK: call {{.*}} @__clear_cache diff --git a/test/Sema/builtins-arm.c b/test/Sema/builtins-arm.c new file mode 100644 index 0000000000..4dd31e7240 --- /dev/null +++ b/test/Sema/builtins-arm.c @@ -0,0 +1,11 @@ +// RUN: %clang_cc1 -triple armv7 -fsyntax-only -verify -DTEST0 %s +// RUN: %clang_cc1 -triple armv7 -fsyntax-only -verify -DTEST1 %s + +#ifdef TEST0 +void __clear_cache(char*, char*); +#endif + +#ifdef TEST1 +void __clear_cache(void*, void*); +#endif + |