From: Daniel Dunbar Date: Fri, 16 Jul 2010 00:31:23 +0000 (+0000) Subject: Builtins/ARM: __clear_cache doesn't seem to have a consistent prototype, declare X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1058253c364b2c98e6cecfe15d18d3562db245f4;p=clang 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 --- 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 +