forked from OSchip/llvm-project
More fallout from r58501: primary fix is some more corrections to make
the types for size_t and ptrdiff_t more accurate. I think all of these are correct, but please compare the defines for __PTRDIFF_TYPE__ and __SIZE_TYPE__ to gcc to double-check; this particularly applies to those on BSD variants, since I'm not sure what they do here; I assume here that they're the same as on Linux. Fixes wchar_t to be "int", not "unsigned int" (which I think is correct on everything but Windows). Fixes ptrdiff_t to be "int" rather than "short" on PIC16; "short" is an somewhat strange choice because it normally gets promoted, and it's not consistent with the choice for size_t. llvm-svn: 58556
This commit is contained in:
parent
8d8acf327b
commit
d50881c6a9
|
@ -35,10 +35,10 @@ TargetInfo::TargetInfo(const std::string &T) : Triple(T) {
|
|||
LongDoubleWidth = 64;
|
||||
LongDoubleAlign = 64;
|
||||
SizeType = UnsignedLong;
|
||||
PtrDiffType = SignedLong;
|
||||
IntMaxType = SignedLongLong;
|
||||
UIntMaxType = UnsignedLongLong;
|
||||
PtrDiffType = SignedLongLong;
|
||||
WCharType = UnsignedInt;
|
||||
WCharType = SignedInt;
|
||||
FloatFormat = &llvm::APFloat::IEEEsingle;
|
||||
DoubleFormat = &llvm::APFloat::IEEEdouble;
|
||||
LongDoubleFormat = &llvm::APFloat::IEEEdouble;
|
||||
|
|
|
@ -534,7 +534,10 @@ namespace {
|
|||
// x86-32 FreeBSD target
|
||||
class FreeBSDX86_32TargetInfo : public X86_32TargetInfo {
|
||||
public:
|
||||
FreeBSDX86_32TargetInfo(const std::string& triple) : X86_32TargetInfo(triple) {
|
||||
FreeBSDX86_32TargetInfo(const std::string& triple) :
|
||||
X86_32TargetInfo(triple) {
|
||||
SizeType = UnsignedInt;
|
||||
PtrDiffType = SignedInt;
|
||||
}
|
||||
virtual void getTargetDefines(std::vector<char> &Defines) const {
|
||||
X86_32TargetInfo::getTargetDefines(Defines);
|
||||
|
@ -547,7 +550,10 @@ namespace {
|
|||
// x86-32 DragonFly target
|
||||
class DragonFlyX86_32TargetInfo : public X86_32TargetInfo {
|
||||
public:
|
||||
DragonFlyX86_32TargetInfo(const std::string& triple) : X86_32TargetInfo(triple) {
|
||||
DragonFlyX86_32TargetInfo(const std::string& triple) :
|
||||
X86_32TargetInfo(triple) {
|
||||
SizeType = UnsignedInt;
|
||||
PtrDiffType = SignedInt;
|
||||
}
|
||||
virtual void getTargetDefines(std::vector<char> &Defines) const {
|
||||
X86_32TargetInfo::getTargetDefines(Defines);
|
||||
|
@ -562,6 +568,8 @@ class LinuxX86_32TargetInfo : public X86_32TargetInfo {
|
|||
public:
|
||||
LinuxX86_32TargetInfo(const std::string& triple) : X86_32TargetInfo(triple) {
|
||||
UserLabelPrefix = "";
|
||||
SizeType = UnsignedInt;
|
||||
PtrDiffType = SignedInt;
|
||||
}
|
||||
virtual void getTargetDefines(std::vector<char> &Defines) const {
|
||||
X86_32TargetInfo::getTargetDefines(Defines);
|
||||
|
@ -579,6 +587,8 @@ public:
|
|||
// FIXME: Fix wchar_t.
|
||||
// FIXME: We should probably enable -fms-extensions by default for
|
||||
// this target.
|
||||
SizeType = UnsignedInt;
|
||||
PtrDiffType = SignedInt;
|
||||
}
|
||||
virtual void getTargetDefines(std::vector<char> &Defines) const {
|
||||
X86_32TargetInfo::getTargetDefines(Defines);
|
||||
|
@ -626,8 +636,7 @@ namespace {
|
|||
// x86-64 FreeBSD target
|
||||
class FreeBSDX86_64TargetInfo : public X86_64TargetInfo {
|
||||
public:
|
||||
FreeBSDX86_64TargetInfo(const std::string& triple) : X86_64TargetInfo(triple) {
|
||||
}
|
||||
FreeBSDX86_64TargetInfo(const std::string& triple) : X86_64TargetInfo(triple) {}
|
||||
virtual void getTargetDefines(std::vector<char> &Defines) const {
|
||||
X86_64TargetInfo::getTargetDefines(Defines);
|
||||
getFreeBSDDefines(Defines, 1, getTargetTriple());
|
||||
|
@ -788,7 +797,10 @@ namespace {
|
|||
class SolarisSparcV8TargetInfo : public SparcV8TargetInfo {
|
||||
public:
|
||||
SolarisSparcV8TargetInfo(const std::string& triple) :
|
||||
SparcV8TargetInfo(triple) {}
|
||||
SparcV8TargetInfo(triple) {
|
||||
SizeType = UnsignedInt;
|
||||
PtrDiffType = SignedInt;
|
||||
}
|
||||
|
||||
virtual void getTargetDefines(std::vector<char> &Defines) const {
|
||||
SparcV8TargetInfo::getTargetDefines(Defines);
|
||||
|
@ -810,8 +822,7 @@ namespace {
|
|||
SizeType = UnsignedInt;
|
||||
IntMaxType = SignedLong;
|
||||
UIntMaxType = UnsignedLong;
|
||||
PtrDiffType = SignedShort;
|
||||
WCharType = UnsignedInt;
|
||||
PtrDiffType = SignedInt;
|
||||
DescriptionString = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8";
|
||||
}
|
||||
virtual uint64_t getPointerWidthV(unsigned AddrSpace) const { return 16; }
|
||||
|
|
Loading…
Reference in New Issue