aboutsummaryrefslogtreecommitdiff
path: root/lib
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
commit68018db76756c6959db15160055fd8da6bec5bec (patch)
tree3f10b9991c35858d49f37862eb5a19781ed15275 /lib
parent8be0c74e4a779b13c2d8fd8482dcd438eeb089d3 (diff)
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! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140144 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Basic/Targets.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 48e4d8a048..57bebf7003 100644
--- a/lib/Basic/Targets.cpp
+++ b/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;