summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2011-05-09 02:19:37 +0000
committerJohn McCall <rjmccall@apple.com>2011-05-09 02:19:37 +0000
commite155a3d8aab15eb1f59bb514cae1800a527a0580 (patch)
tree4b4295b92a965039d96c2c0120578ec57ad7e5d9 /clang
parent1a414cfb5d0d28dbf0b4c496b916e2d0498e4a8b (diff)
downloadbcm5719-llvm-e155a3d8aab15eb1f59bb514cae1800a527a0580.tar.gz
bcm5719-llvm-e155a3d8aab15eb1f59bb514cae1800a527a0580.zip
__builtin_va_list is void* on ARM, not char*.
rdar://problem/9391966 llvm-svn: 131080
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Basic/Targets.cpp2
-rw-r--r--clang/test/Sema/builtins-arm.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 97109caf123..09a2f56b420 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -2020,7 +2020,7 @@ public:
NumRecords = clang::ARM::LastTSBuiltin-Builtin::FirstTSBuiltin;
}
virtual const char *getVAListDeclaration() const {
- return "typedef char* __builtin_va_list;";
+ return "typedef void* __builtin_va_list;";
}
virtual void getGCCRegNames(const char * const *&Names,
unsigned &NumNames) const;
diff --git a/clang/test/Sema/builtins-arm.c b/clang/test/Sema/builtins-arm.c
index 4dd31e72405..4077240ce49 100644
--- a/clang/test/Sema/builtins-arm.c
+++ b/clang/test/Sema/builtins-arm.c
@@ -9,3 +9,8 @@ void __clear_cache(char*, char*);
void __clear_cache(void*, void*);
#endif
+// va_list on ARM is void*.
+void test2() {
+ __builtin_va_list ptr = "x";
+ *ptr = '0'; // expected-error {{incomplete type 'void' is not assignable}}
+}
OpenPOWER on IntegriCloud