summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Krasin <krasin@chromium.org>2011-09-20 14:56:54 +0000
committerIvan Krasin <krasin@chromium.org>2011-09-20 14:56:54 +0000
commit96a806199dc587608000f83a9e9bd919e848cab6 (patch)
treea8be4e93b74447e8e9fb0efb58199515edfd090a
parent011be5287134775e5d5564363ce5ca8de8843950 (diff)
downloadbcm5719-llvm-96a806199dc587608000f83a9e9bd919e848cab6.tar.gz
bcm5719-llvm-96a806199dc587608000f83a9e9bd919e848cab6.zip
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
-rw-r--r--clang/lib/Basic/Targets.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 48e4d8a048d..57bebf7003f 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;
OpenPOWER on IntegriCloud