]> granicus.if.org Git - clang/commitdiff
__builtin_va_list is void* on ARM, not char*.
authorJohn McCall <rjmccall@apple.com>
Mon, 9 May 2011 02:19:37 +0000 (02:19 +0000)
committerJohn McCall <rjmccall@apple.com>
Mon, 9 May 2011 02:19:37 +0000 (02:19 +0000)
rdar://problem/9391966

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131080 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/Targets.cpp
test/Sema/builtins-arm.c

index 97109caf123757fb26d488f2fa9dd32a5f11f8c0..09a2f56b420d59d54933c5d89593715f743f8d78 100644 (file)
@@ -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;
index 4dd31e724050eb54268b397447a2b701bc907fe4..4077240ce490b20e832156894dd74f189acacb6a 100644 (file)
@@ -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}}
+}