From 96a806199dc587608000f83a9e9bd919e848cab6 Mon Sep 17 00:00:00 2001 From: Ivan Krasin Date: Tue, 20 Sep 2011 14:56:54 +0000 Subject: [PATCH] Clarify PNaCl target characteristics: set LongDoubleWidth, PtrDiffType, IntPtrType, change __builtin_va_list to from a structure to int[4] (same alignment and size, but with a simpler representation). Patch by David Meyer! llvm-svn: 140144 --- clang/lib/Basic/Targets.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 48e4d8a048dd..57bebf7003f7 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -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; -- GitLab