]> granicus.if.org Git - clang/commitdiff
Clarify PNaCl target characteristics: set LongDoubleWidth, PtrDiffType, IntPtrType,
authorIvan Krasin <krasin@chromium.org>
Tue, 20 Sep 2011 14:56:54 +0000 (14:56 +0000)
committerIvan Krasin <krasin@chromium.org>
Tue, 20 Sep 2011 14:56:54 +0000 (14:56 +0000)
change __builtin_va_list to from a structure to int[4] (same alignment
and size, but with a simpler representation). Patch by David Meyer!

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

lib/Basic/Targets.cpp

index 48e4d8a048ddec5afec13ff518803984b33fe291..57bebf7003f7e30893c563dfe680812fa352f3d8 100644 (file)
@@ -2940,9 +2940,12 @@ public:
     this->IntMaxType = TargetInfo::SignedLongLong;
     this->UIntMaxType = TargetInfo::UnsignedLongLong;
     this->Int64Type = TargetInfo::SignedLongLong;
-    this->SizeType = TargetInfo::UnsignedInt;
     this->DoubleAlign = 64;
+    this->LongDoubleWidth = 64;
     this->LongDoubleAlign = 64;
+    this->SizeType = TargetInfo::UnsignedInt;
+    this->PtrDiffType = TargetInfo::SignedInt;
+    this->IntPtrType = TargetInfo::SignedInt;
     DescriptionString = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-"
                         "f32:32:32-f64:64:64-p:32:32:32-v128:32:32";
   }
@@ -2971,12 +2974,7 @@ public:
                                  unsigned &NumRecords) const {
   }
   virtual const char *getVAListDeclaration() const {
-    return "typedef struct __va_list_tag {"
-           "  void* ptr;"
-           "  void* padding1;"
-           "  void* padding2;"
-           "  void* padding3;"
-           "} __builtin_va_list[1];";
+    return "typedef int __builtin_va_list[4];";
   }
   virtual void getGCCRegNames(const char * const *&Names,
                               unsigned &NumNames) const;