diff options
author | John McCall <rjmccall@apple.com> | 2011-05-09 02:19:37 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2011-05-09 02:19:37 +0000 |
commit | 0e9972ccccf4e2baf1f65d4cf70f26897d285442 (patch) | |
tree | e4255f3af8549023483147bf7b459571382b2bd1 | |
parent | b594fac7007281ef52e2746349abf970348661ff (diff) |
__builtin_va_list is void* on ARM, not char*.
rdar://problem/9391966
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131080 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Basic/Targets.cpp | 2 | ||||
-rw-r--r-- | test/Sema/builtins-arm.c | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 97109caf12..09a2f56b42 100644 --- a/lib/Basic/Targets.cpp +++ b/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/test/Sema/builtins-arm.c b/test/Sema/builtins-arm.c index 4dd31e7240..4077240ce4 100644 --- a/test/Sema/builtins-arm.c +++ b/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}} +} |