Index: lib/Basic/TargetInfo.cpp =================================================================== --- lib/Basic/TargetInfo.cpp +++ lib/Basic/TargetInfo.cpp @@ -53,14 +53,14 @@ PtrDiffType = SignedLong; IntMaxType = SignedLongLong; UIntMaxType = UnsignedLongLong; - IntPtrType = SignedLong; WCharType = SignedInt; - WIntType = SignedInt; + WIntType = UnsignedInt; Char16Type = UnsignedShort; Char32Type = UnsignedInt; + IntPtrType = NoInt; Int64Type = SignedLongLong; - SigAtomicType = SignedInt; - ProcessIDType = SignedInt; + SigAtomicType = NoInt; + ProcessIDType = NoInt; UseSignedCharForObjCBool = true; UseBitFieldTypeAlignment = true; UseZeroLengthBitfieldAlignment = false; Index: lib/Basic/Targets.cpp =================================================================== --- lib/Basic/Targets.cpp +++ lib/Basic/Targets.cpp @@ -184,6 +184,28 @@ DarwinTargetInfo(const llvm::Triple &Triple) : OSTargetInfo(Triple) { this->TLSSupported = Triple.isMacOSX() && !Triple.isMacOSXVersionLT(10, 7); this->MCountName = "\01mcount"; + + this->WCharType = TargetInfo::SignedInt; + this->WIntType = TargetInfo::SignedInt; + + this->SizeType = TargetInfo::UnsignedLong; + this->IntPtrType = TargetInfo::SignedLong; + bool Is32BitArch = this->PointerWidth == 32; + if (Is32BitArch) { + this->PtrDiffType = TargetInfo::SignedInt; + + this->IntMaxType = TargetInfo::SignedLongLong; + this->UIntMaxType = TargetInfo::UnsignedLongLong; + } else { + this->PtrDiffType = TargetInfo::SignedLong; + + this->IntMaxType = TargetInfo::SignedLong; + this->UIntMaxType = TargetInfo::UnsignedLong; + } + this->Int64Type = TargetInfo::SignedLongLong; + + this->SigAtomicType = TargetInfo::SignedInt; + this->ProcessIDType = TargetInfo::SignedInt; } virtual std::string isValidSectionSpecifier(StringRef SR) const { @@ -235,6 +257,31 @@ this->MCountName = ".mcount"; break; } + + this->WCharType = TargetInfo::SignedInt; + this->WIntType = TargetInfo::SignedInt; + + bool Is32BitArch = this->PointerWidth == 32; + if (Is32BitArch) { + this->SizeType = TargetInfo::UnsignedInt; + this->IntPtrType = TargetInfo::SignedInt; + this->PtrDiffType = TargetInfo::SignedInt; + + this->Int64Type = TargetInfo::SignedLongLong; + this->IntMaxType = TargetInfo::SignedLongLong; + this->UIntMaxType = TargetInfo::UnsignedLongLong; + } else { + this->SizeType = TargetInfo::UnsignedLong; + this->IntPtrType = TargetInfo::SignedLong; + this->PtrDiffType = TargetInfo::SignedLong; + + this->Int64Type = TargetInfo::SignedLong; + this->IntMaxType = TargetInfo::SignedLong; + this->UIntMaxType = TargetInfo::UnsignedLong; + } + + this->SigAtomicType = TargetInfo::SignedInt; + this->ProcessIDType = TargetInfo::SignedInt; } }; @@ -282,6 +329,34 @@ this->MCountName = "__mcount"; break; } + + this->WCharType = TargetInfo::SignedInt; + this->WIntType = TargetInfo::SignedInt; + + bool Is32BitArch = this->PointerWidth == 32; + if (Is32BitArch) { + this->SizeType = TargetInfo::UnsignedInt; + this->IntPtrType = TargetInfo::SignedInt; + this->PtrDiffType = TargetInfo::SignedInt; + + this->Int64Type = TargetInfo::SignedLongLong; + this->IntMaxType = TargetInfo::SignedLongLong; + this->UIntMaxType = TargetInfo::UnsignedLongLong; + + this->SigAtomicType = TargetInfo::SignedInt; + } else { + this->SizeType = TargetInfo::UnsignedLong; + this->IntPtrType = TargetInfo::SignedLong; + this->PtrDiffType = TargetInfo::SignedLong; + + this->Int64Type = TargetInfo::SignedLong; + this->IntMaxType = TargetInfo::SignedLong; + this->UIntMaxType = TargetInfo::UnsignedLong; + + this->SigAtomicType = TargetInfo::SignedLong; + } + + this->ProcessIDType = TargetInfo::SignedInt; } }; @@ -305,6 +380,29 @@ public: KFreeBSDTargetInfo(const llvm::Triple &Triple) : OSTargetInfo(Triple) { this->UserLabelPrefix = ""; + this->WIntType = TargetInfo::UnsignedInt; + + bool Is32BitArch = this->PointerWidth == 32; + if (Is32BitArch) { + this->SizeType = TargetInfo::UnsignedInt; + this->IntPtrType = TargetInfo::SignedInt; + this->PtrDiffType = TargetInfo::SignedInt; + + this->Int64Type = TargetInfo::SignedLongLong; + this->IntMaxType = TargetInfo::SignedLongLong; + this->UIntMaxType = TargetInfo::UnsignedLongLong; + } else { + this->SizeType = TargetInfo::UnsignedLong; + this->IntPtrType = TargetInfo::SignedLong; + this->PtrDiffType = TargetInfo::SignedLong; + + this->Int64Type = TargetInfo::SignedLong; + this->IntMaxType = TargetInfo::SignedLong; + this->UIntMaxType = TargetInfo::UnsignedLong; + } + + this->SigAtomicType = TargetInfo::SignedInt; + this->ProcessIDType = TargetInfo::SignedInt; } }; @@ -329,6 +427,17 @@ public: MinixTargetInfo(const llvm::Triple &Triple) : OSTargetInfo(Triple) { this->UserLabelPrefix = ""; + + this->WCharType = TargetInfo::SignedInt; + this->WIntType = TargetInfo::SignedInt; + this->SizeType = TargetInfo::UnsignedInt; + this->IntPtrType = TargetInfo::SignedInt; + this->PtrDiffType = TargetInfo::SignedInt; + this->Int64Type = TargetInfo::SignedLongLong; + this->IntMaxType = TargetInfo::SignedLongLong; + this->UIntMaxType = TargetInfo::UnsignedLongLong; + this->SigAtomicType = TargetInfo::SignedInt; + this->ProcessIDType = TargetInfo::SignedInt; } }; @@ -353,7 +462,31 @@ public: LinuxTargetInfo(const llvm::Triple &Triple) : OSTargetInfo(Triple) { this->UserLabelPrefix = ""; + + this->WCharType = TargetInfo::SignedInt; this->WIntType = TargetInfo::UnsignedInt; + + bool Is32BitArch = this->PointerWidth == 32; + if (Is32BitArch) { + this->SizeType = TargetInfo::UnsignedInt; + this->IntPtrType = TargetInfo::SignedInt; + this->PtrDiffType = TargetInfo::SignedInt; + + this->Int64Type = TargetInfo::SignedLongLong; + this->IntMaxType = TargetInfo::SignedLongLong; + this->UIntMaxType = TargetInfo::UnsignedLongLong; + } else { + this->SizeType = TargetInfo::UnsignedLong; + this->IntPtrType = TargetInfo::SignedLong; + this->PtrDiffType = TargetInfo::SignedLong; + + this->Int64Type = TargetInfo::SignedLong; + this->IntMaxType = TargetInfo::SignedLong; + this->UIntMaxType = TargetInfo::UnsignedLong; + } + + this->SigAtomicType = TargetInfo::SignedInt; + this->ProcessIDType = TargetInfo::SignedInt; } virtual const char *getStaticInitSectionSpecifier() const { @@ -377,6 +510,25 @@ public: NetBSDTargetInfo(const llvm::Triple &Triple) : OSTargetInfo(Triple) { this->UserLabelPrefix = ""; + + this->WIntType = this->WCharType = TargetInfo::SignedInt; + + bool Is32BitArch = this->PointerWidth == 32; + if (Is32BitArch) { + this->SizeType = TargetInfo::UnsignedInt; + this->IntPtrType = TargetInfo::SignedInt; + this->PtrDiffType = TargetInfo::SignedInt; + } else { + this->SizeType = TargetInfo::UnsignedLong; + this->IntPtrType = TargetInfo::SignedLong; + this->PtrDiffType = TargetInfo::SignedLong; + } + this->Int64Type = TargetInfo::SignedLongLong; + this->IntMaxType = TargetInfo::SignedLongLong; + this->UIntMaxType = TargetInfo::UnsignedLongLong; + + this->SigAtomicType = TargetInfo::SignedInt; + this->ProcessIDType = TargetInfo::SignedInt; } }; @@ -414,6 +566,19 @@ this->MCountName = "_mcount"; break; } + + this->WIntType = this->WCharType = TargetInfo::SignedInt; + + this->SizeType = TargetInfo::UnsignedLong; + this->IntPtrType = TargetInfo::SignedLong; + this->PtrDiffType = TargetInfo::SignedLong; + + this->Int64Type = TargetInfo::SignedLongLong; + this->IntMaxType = TargetInfo::SignedLongLong; + this->UIntMaxType = TargetInfo::UnsignedLongLong; + + this->SigAtomicType = TargetInfo::SignedInt; + this->ProcessIDType = TargetInfo::SignedInt; } }; @@ -436,24 +601,19 @@ this->UserLabelPrefix = ""; this->TLSSupported = false; this->MCountName = "__mcount"; - } -}; -// PSP Target -template -class PSPTargetInfo : public OSTargetInfo { -protected: - virtual void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, - MacroBuilder &Builder) const { - // PSP defines; list based on the output of the pspdev gcc toolchain. - Builder.defineMacro("PSP"); - Builder.defineMacro("_PSP"); - Builder.defineMacro("__psp__"); - Builder.defineMacro("__ELF__"); - } -public: - PSPTargetInfo(const llvm::Triple &Triple) : OSTargetInfo(Triple) { - this->UserLabelPrefix = ""; + this->WIntType = this->WCharType = TargetInfo::SignedInt; + + this->SizeType = TargetInfo::UnsignedLong; + this->IntPtrType = TargetInfo::SignedLong; + this->PtrDiffType = TargetInfo::SignedLong; + + this->Int64Type = TargetInfo::SignedLongLong; + this->IntMaxType = TargetInfo::SignedLongLong; + this->UIntMaxType = TargetInfo::UnsignedLongLong; + + this->SigAtomicType = TargetInfo::SignedInt; + this->ProcessIDType = TargetInfo::SignedInt; } }; @@ -486,23 +646,6 @@ } }; -// FIXME: Need a real SPU target. -// PS3 SPU Target -template -class PS3SPUTargetInfo : public OSTargetInfo { -protected: - virtual void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, - MacroBuilder &Builder) const { - // PS3 PPU defines. - Builder.defineMacro("__SPU__"); - Builder.defineMacro("__ELF__"); - } -public: - PS3SPUTargetInfo(const llvm::Triple &Triple) : OSTargetInfo(Triple) { - this->UserLabelPrefix = ""; - } -}; - // AuroraUX target template class AuroraUXTargetInfo : public OSTargetInfo { @@ -519,8 +662,35 @@ AuroraUXTargetInfo(const llvm::Triple &Triple) : OSTargetInfo(Triple) { this->UserLabelPrefix = ""; - this->WCharType = this->SignedLong; - // FIXME: WIntType should be SignedLong + + bool Is32BitArch = this->PointerWidth == 32; + if (Is32BitArch) { + this->WCharType = this->WIntType = TargetInfo::SignedLong; + + this->SizeType = TargetInfo::UnsignedInt; + this->IntPtrType = TargetInfo::SignedInt; + this->PtrDiffType = TargetInfo::SignedInt; + + this->Int64Type = TargetInfo::SignedLongLong; + this->IntMaxType = TargetInfo::SignedLongLong; + this->UIntMaxType = TargetInfo::UnsignedLongLong; + + this->ProcessIDType = TargetInfo::SignedInt; + } else { + this->WCharType = this->WIntType = TargetInfo::SignedInt; + + this->SizeType = TargetInfo::SignedLong; + this->IntPtrType = TargetInfo::SignedLong; + this->PtrDiffType = TargetInfo::SignedLong; + + this->Int64Type = TargetInfo::SignedLong; + this->IntMaxType = TargetInfo::SignedLong; + this->UIntMaxType = TargetInfo::UnsignedLong; + + this->ProcessIDType = TargetInfo::SignedLong; + } + + this->SigAtomicType = TargetInfo::SignedInt; } }; @@ -553,8 +723,35 @@ public: SolarisTargetInfo(const llvm::Triple &Triple) : OSTargetInfo(Triple) { this->UserLabelPrefix = ""; - this->WCharType = this->SignedInt; - // FIXME: WIntType should be SignedLong + + bool Is32BitArch = this->PointerWidth == 32; + if (Is32BitArch) { + this->WCharType = this->WIntType = TargetInfo::SignedLong; + + this->SizeType = TargetInfo::UnsignedInt; + this->IntPtrType = TargetInfo::SignedInt; + this->PtrDiffType = TargetInfo::SignedInt; + + this->Int64Type = TargetInfo::SignedLongLong; + this->IntMaxType = TargetInfo::SignedLongLong; + this->UIntMaxType = TargetInfo::UnsignedLongLong; + + this->ProcessIDType = TargetInfo::SignedInt; + } else { + this->WCharType = this->WIntType = TargetInfo::SignedInt; + + this->SizeType = TargetInfo::SignedLong; + this->IntPtrType = TargetInfo::SignedLong; + this->PtrDiffType = TargetInfo::SignedLong; + + this->Int64Type = TargetInfo::SignedLong; + this->IntMaxType = TargetInfo::SignedLong; + this->UIntMaxType = TargetInfo::UnsignedLong; + + this->ProcessIDType = TargetInfo::SignedLong; + } + + this->SigAtomicType = TargetInfo::SignedInt; } }; @@ -670,6 +867,17 @@ BigEndian = (Triple.getArch() != llvm::Triple::ppc64le); LongDoubleWidth = LongDoubleAlign = 128; LongDoubleFormat = &llvm::APFloat::PPCDoubleDouble; + WCharType = UnsignedShort; + WIntType = UnsignedInt; + + // GCC, as of 4.8, has __PTRDIFF_TYPE__ set to int while __SIZE_TYPE__ is + // set to unsigned long. This is strange but they came first so we must + // follow. + SizeType = UnsignedLong; + PtrDiffType = SignedInt; + + IntMaxType = SignedLongLong; + UIntMaxType = UnsignedLongLong; } /// \brief Flags for architecture specific defines. @@ -1195,18 +1403,6 @@ DescriptionString = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-" "i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32"; - switch (getTriple().getOS()) { - case llvm::Triple::Linux: - case llvm::Triple::FreeBSD: - case llvm::Triple::NetBSD: - SizeType = UnsignedInt; - PtrDiffType = SignedInt; - IntPtrType = SignedInt; - break; - default: - break; - } - if (getTriple().getOS() == llvm::Triple::FreeBSD) { LongDoubleWidth = LongDoubleAlign = 64; LongDoubleFormat = &llvm::APFloat::IEEEdouble; @@ -1263,7 +1459,6 @@ : DarwinTargetInfo(Triple) { HasAlignMac68kSupport = true; BoolWidth = BoolAlign = 32; //XXX support -mone-byte-bool? - PtrDiffType = SignedInt; // for http://llvm.org/bugs/show_bug.cgi?id=15726 LongLongAlign = 32; SuitableAlign = 128; DescriptionString = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-" @@ -2990,30 +3185,6 @@ } // end anonymous namespace namespace { -class OpenBSDI386TargetInfo : public OpenBSDTargetInfo { -public: - OpenBSDI386TargetInfo(const llvm::Triple &Triple) - : OpenBSDTargetInfo(Triple) { - SizeType = UnsignedLong; - IntPtrType = SignedLong; - PtrDiffType = SignedLong; - } -}; -} // end anonymous namespace - -namespace { -class BitrigI386TargetInfo : public BitrigTargetInfo { -public: - BitrigI386TargetInfo(const llvm::Triple &Triple) - : BitrigTargetInfo(Triple) { - SizeType = UnsignedLong; - IntPtrType = SignedLong; - PtrDiffType = SignedLong; - } -}; -} // end anonymous namespace - -namespace { class DarwinI386TargetInfo : public DarwinTargetInfo { public: DarwinI386TargetInfo(const llvm::Triple &Triple) @@ -3022,8 +3193,6 @@ LongDoubleAlign = 128; SuitableAlign = 128; MaxVectorAlign = 256; - SizeType = UnsignedLong; - IntPtrType = SignedLong; DescriptionString = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-" "i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-" "a0:0:64-f80:128:128-n8:16:32-S128"; @@ -3133,6 +3302,8 @@ class HaikuX86_32TargetInfo : public X86_32TargetInfo { public: HaikuX86_32TargetInfo(const llvm::Triple &Triple) : X86_32TargetInfo(Triple) { + WCharType = SignedInt; + WIntType = UnsignedInt; SizeType = UnsignedLong; IntPtrType = SignedLong; PtrDiffType = SignedLong; @@ -3342,37 +3513,12 @@ public: DarwinX86_64TargetInfo(const llvm::Triple &Triple) : DarwinTargetInfo(Triple) { - Int64Type = SignedLongLong; MaxVectorAlign = 256; } }; } // end anonymous namespace namespace { -class OpenBSDX86_64TargetInfo : public OpenBSDTargetInfo { -public: - OpenBSDX86_64TargetInfo(const llvm::Triple &Triple) - : OpenBSDTargetInfo(Triple) { - IntMaxType = SignedLongLong; - UIntMaxType = UnsignedLongLong; - Int64Type = SignedLongLong; - } -}; -} // end anonymous namespace - -namespace { -class BitrigX86_64TargetInfo : public BitrigTargetInfo { -public: - BitrigX86_64TargetInfo(const llvm::Triple &Triple) - : BitrigTargetInfo(Triple) { - IntMaxType = SignedLongLong; - UIntMaxType = UnsignedLongLong; - Int64Type = SignedLongLong; - } -}; -} - -namespace { class AArch64TargetInfo : public TargetInfo { static const char * const GCCRegNames[]; static const TargetInfo::GCCRegAlias GCCRegAliases[]; @@ -3396,6 +3542,12 @@ "i64:64:64-i128:128:128-f32:32:32-f64:64:64-" "f128:128:128-n32:64-S128"; + SizeType = UnsignedLong; + PtrDiffType = SignedLong; + + IntMaxType = SignedLong; + UIntMaxType = UnsignedLong; + WCharType = UnsignedInt; LongDoubleFormat = &llvm::APFloat::IEEEquad; @@ -3675,6 +3827,9 @@ // AAPCS 7.1.1, ARM-Linux ABI 2.4: type of wchar_t is unsigned int. WCharType = UnsignedInt; + IntMaxType = SignedLongLong; + UIntMaxType = UnsignedLongLong; + // {} in inline assembly are neon specifiers, not assembly variant // specifiers. NoAsmVariants = true; @@ -3717,12 +3872,6 @@ // name. if (Name == "apcs-gnu") { DoubleAlign = LongLongAlign = LongDoubleAlign = SuitableAlign = 32; - // size_t is unsigned int on FreeBSD. - if (getTriple().getOS() != llvm::Triple::FreeBSD) - SizeType = UnsignedLong; - - // Revert to using SignedInt on apcs-gnu to comply with existing behaviour. - WCharType = SignedInt; // Do not respect the alignment of bit-field types when laying out // structures. This corresponds to PCC_BITFIELD_TYPE_MATTERS in gcc. @@ -3749,9 +3898,6 @@ // FIXME: Override "preferred align" for double and long long. } else if (Name == "aapcs" || Name == "aapcs-vfp") { - // size_t is unsigned long on Darwin. - if (getTriple().isOSDarwin()) - SizeType = UnsignedLong; IsAAPCS = true; // FIXME: Enumerated types are variable width in straight AAPCS. } else if (Name == "aapcs-linux") { @@ -3759,6 +3905,12 @@ } else return false; + if (!IsAAPCS && getTriple().getOS() == llvm::Triple::UnknownOS) { + WCharType = SignedInt; + SizeType = UnsignedLong; + PtrDiffType = SignedLong; + } + return true; } @@ -4158,6 +4310,18 @@ } // end anonymous namespace. namespace { +class NetBSDARMTargetInfo : public NetBSDTargetInfo { +public: + NetBSDARMTargetInfo(const llvm::Triple &Triple) + : NetBSDTargetInfo(Triple) { + this->SizeType = TargetInfo::SignedLong; + this->IntPtrType = TargetInfo::SignedLong; + this->PtrDiffType = TargetInfo::SignedLong; + } +}; +} // end anonymous namespace + +namespace { class DarwinARMTargetInfo : public DarwinTargetInfo { protected: @@ -4342,7 +4506,9 @@ static const char * const GCCRegNames[]; bool SoftFloat; public: - SparcTargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) {} + SparcTargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) { + WCharType = UnsignedShort; + } virtual bool handleTargetFeatures(std::vector &Features, DiagnosticsEngine &Diags) { @@ -4449,6 +4615,9 @@ public: SparcV8TargetInfo(const llvm::Triple &Triple) : SparcTargetInfo(Triple) { // FIXME: Support Sparc quad-precision long double? + PtrDiffType = SignedInt; + SizeType = UnsignedInt; + DescriptionString = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-" "i64:64:64-f32:32:32-f64:64:64-v64:64:64-n32-S64"; } @@ -4469,15 +4638,8 @@ "i64:64:64-f32:32:32-f64:64:64-v64:64:64-n32:64-S128"; // This is an LP64 platform. LongWidth = LongAlign = PointerWidth = PointerAlign = 64; - - // OpenBSD uses long long for int64_t and intmax_t. - if (getTriple().getOS() == llvm::Triple::OpenBSD) { - IntMaxType = SignedLongLong; - UIntMaxType = UnsignedLongLong; - } else { - IntMaxType = SignedLong; - UIntMaxType = UnsignedLong; - } + IntMaxType = SignedLong; + UIntMaxType = UnsignedLong; Int64Type = IntMaxType; } @@ -4500,20 +4662,21 @@ } // end anonymous namespace. namespace { -class AuroraUXSparcV8TargetInfo : public AuroraUXTargetInfo { +class NetBSDSparcV8TargetInfo : public NetBSDTargetInfo { public: - AuroraUXSparcV8TargetInfo(const llvm::Triple &Triple) - : AuroraUXTargetInfo(Triple) { - SizeType = UnsignedInt; - PtrDiffType = SignedInt; + NetBSDSparcV8TargetInfo(const llvm::Triple &Triple) + : NetBSDTargetInfo(Triple) { + SizeType = UnsignedLong; + PtrDiffType = SignedLong; } }; -class SolarisSparcV8TargetInfo : public SolarisTargetInfo { + +class NetBSDSparcV9TargetInfo : public NetBSDTargetInfo { public: - SolarisSparcV8TargetInfo(const llvm::Triple &Triple) - : SolarisTargetInfo(Triple) { - SizeType = UnsignedInt; - PtrDiffType = SignedInt; + NetBSDSparcV9TargetInfo(const llvm::Triple &Triple) + : NetBSDTargetInfo(Triple) { + SizeType = UnsignedLong; + PtrDiffType = SignedLong; } }; } // end anonymous namespace. @@ -4640,7 +4803,8 @@ UIntMaxType = UnsignedLongLong; IntPtrType = SignedInt; PtrDiffType = SignedInt; - SigAtomicType = SignedLong; + // sig_atomic_t comes from the MSP430 Embedded Application Binary Interface + SigAtomicType = SignedInt; DescriptionString = "e-p:16:16:16-i8:8:8-i16:16:16-i32:16:32-n8:16"; } virtual void getTargetDefines(const LangOptions &Opts, @@ -5105,6 +5269,9 @@ LongDoubleFormat = &llvm::APFloat::IEEEdouble; } SuitableAlign = 128; + IntMaxType = SignedLong; + UIntMaxType = UnsignedLong; + Int64Type = SignedLong; MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 64; } virtual bool setABI(const std::string &Name) { @@ -5489,7 +5656,7 @@ case llvm::Triple::FreeBSD: return new FreeBSDTargetInfo(Triple); case llvm::Triple::NetBSD: - return new NetBSDTargetInfo(Triple); + return new NetBSDARMTargetInfo(Triple); case llvm::Triple::OpenBSD: return new OpenBSDTargetInfo(Triple); case llvm::Triple::Bitrig: @@ -5630,11 +5797,11 @@ case llvm::Triple::Linux: return new LinuxTargetInfo(Triple); case llvm::Triple::AuroraUX: - return new AuroraUXSparcV8TargetInfo(Triple); + return new AuroraUXTargetInfo(Triple); case llvm::Triple::Solaris: - return new SolarisSparcV8TargetInfo(Triple); + return new SolarisTargetInfo(Triple); case llvm::Triple::NetBSD: - return new NetBSDTargetInfo(Triple); + return new NetBSDSparcV8TargetInfo(Triple); case llvm::Triple::OpenBSD: return new OpenBSDTargetInfo(Triple); case llvm::Triple::RTEMS: @@ -5652,7 +5819,7 @@ case llvm::Triple::Solaris: return new SolarisTargetInfo(Triple); case llvm::Triple::NetBSD: - return new NetBSDTargetInfo(Triple); + return new NetBSDSparcV9TargetInfo(Triple); case llvm::Triple::OpenBSD: return new OpenBSDTargetInfo(Triple); case llvm::Triple::FreeBSD: @@ -5686,9 +5853,9 @@ case llvm::Triple::NetBSD: return new NetBSDI386TargetInfo(Triple); case llvm::Triple::OpenBSD: - return new OpenBSDI386TargetInfo(Triple); + return new OpenBSDTargetInfo(Triple); case llvm::Triple::Bitrig: - return new BitrigI386TargetInfo(Triple); + return new BitrigTargetInfo(Triple); case llvm::Triple::FreeBSD: return new FreeBSDTargetInfo(Triple); case llvm::Triple::KFreeBSD: @@ -5727,9 +5894,9 @@ case llvm::Triple::NetBSD: return new NetBSDTargetInfo(Triple); case llvm::Triple::OpenBSD: - return new OpenBSDX86_64TargetInfo(Triple); + return new OpenBSDTargetInfo(Triple); case llvm::Triple::Bitrig: - return new BitrigX86_64TargetInfo(Triple); + return new BitrigTargetInfo(Triple); case llvm::Triple::FreeBSD: return new FreeBSDTargetInfo(Triple); case llvm::Triple::KFreeBSD: Index: lib/Frontend/InitPreprocessor.cpp =================================================================== --- lib/Frontend/InitPreprocessor.cpp +++ lib/Frontend/InitPreprocessor.cpp @@ -192,18 +192,23 @@ /// the width, suffix, and signedness of the given type static void DefineTypeSize(StringRef MacroName, TargetInfo::IntType Ty, const TargetInfo &TI, MacroBuilder &Builder) { + if (Ty == TargetInfo::NoInt) + return; + DefineTypeSize(MacroName, TI.getTypeWidth(Ty), TI.getTypeConstantSuffix(Ty), TI.isTypeSigned(Ty), Builder); } static void DefineType(const Twine &MacroName, TargetInfo::IntType Ty, MacroBuilder &Builder) { - Builder.defineMacro(MacroName, TargetInfo::getTypeName(Ty)); + if (Ty != TargetInfo::NoInt) + Builder.defineMacro(MacroName, TargetInfo::getTypeName(Ty)); } static void DefineTypeWidth(StringRef MacroName, TargetInfo::IntType Ty, const TargetInfo &TI, MacroBuilder &Builder) { - Builder.defineMacro(MacroName, Twine(TI.getTypeWidth(Ty))); + if (Ty != TargetInfo::NoInt) + Builder.defineMacro(MacroName, Twine(TI.getTypeWidth(Ty))); } static void DefineTypeSizeof(StringRef MacroName, unsigned BitWidth, @@ -221,6 +226,9 @@ if (TypeWidth == 64) Ty = TI.getInt64Type(); + if (Ty == TargetInfo::NoInt) + return; + DefineType("__INT" + Twine(TypeWidth) + "_TYPE__", Ty, Builder); StringRef ConstSuffix(TargetInfo::getTypeConstantSuffix(Ty)); Index: lib/Headers/stdint.h =================================================================== --- lib/Headers/stdint.h +++ lib/Headers/stdint.h @@ -254,23 +254,18 @@ /* C99 7.18.1.4 Integer types capable of holding object pointers. */ -#define __stdint_join3(a,b,c) a ## b ## c - -#define __intn_t(n) __stdint_join3( int, n, _t) -#define __uintn_t(n) __stdint_join3(uint, n, _t) - #ifndef _INTPTR_T #ifndef __intptr_t_defined -typedef __intn_t(__INTPTR_WIDTH__) intptr_t; +typedef signed __INTPTR_TYPE__ intptr_t; #define __intptr_t_defined #define _INTPTR_T -#endif -#endif +#endif /* __intptr_t_defined */ +#endif /* _INTPTR_T */ #ifndef _UINTPTR_T -typedef __uintn_t(__INTPTR_WIDTH__) uintptr_t; +typedef unsigned __INTPTR_TYPE__ uintptr_t; #define _UINTPTR_T -#endif +#endif /* _UINTPTR_T */ /* C99 7.18.1.5 Greatest-width integer types. */ @@ -651,6 +646,7 @@ #endif /* __INT_LEAST8_MIN */ /* Some utility macros */ +#define __stdint_join3(a,b,c) a ## b ## c #define __INTN_MIN(n) __stdint_join3( INT, n, _MIN) #define __INTN_MAX(n) __stdint_join3( INT, n, _MAX) #define __UINTN_MAX(n) __stdint_join3(UINT, n, _MAX) Index: lib/Sema/SemaType.cpp =================================================================== --- lib/Sema/SemaType.cpp +++ lib/Sema/SemaType.cpp @@ -4787,6 +4787,8 @@ BTy->getKind() == BuiltinType::UShort || BTy->getKind() == BuiltinType::Int || BTy->getKind() == BuiltinType::UInt || + BTy->getKind() == BuiltinType::Long || + BTy->getKind() == BuiltinType::ULong || BTy->getKind() == BuiltinType::LongLong || BTy->getKind() == BuiltinType::ULongLong || BTy->getKind() == BuiltinType::Float || Index: test/CodeGen/aarch64-type-sizes.c =================================================================== --- test/CodeGen/aarch64-type-sizes.c +++ test/CodeGen/aarch64-type-sizes.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -emit-llvm -w -o - %s | FileCheck %s +// RUN: %clang_cc1 -std=c11 -triple aarch64-none-linux-gnu -emit-llvm -w -o - %s | FileCheck %s // char by definition has size 1 @@ -23,6 +23,10 @@ // CHECK: ret i32 8 } +// Linux has int64_t map to a signed long on 64-bit targets. +_Static_assert(_Generic((__INT64_TYPE__)0, signed long: 1, default: 0), + "int64_t should be signed long"); + int check_int128() { return sizeof(__int128); // CHECK: ret i32 16 @@ -74,9 +78,9 @@ // CHECK: ret i32 4 } -int check_wchar_unsigned() { +int check_wchar_signed() { return (__WCHAR_TYPE__)-1 > (__WCHAR_TYPE__)0; -// CHECK: ret i32 1 +// CHECK: ret i32 0 } enum Small { Index: test/Lexer/wchar-signedness.c =================================================================== --- test/Lexer/wchar-signedness.c +++ test/Lexer/wchar-signedness.c @@ -5,4 +5,4 @@ // CHECK-X86: #define __WINT_UNSIGNED__ 1 // CHECK-ARM: #define __WCHAR_UNSIGNED__ 1 -// CHECK-ARM-NOT: #define __WINT_UNSIGNED__ 1 +// CHECK-ARM: #define __WINT_UNSIGNED__ 1 Index: test/Preprocessor/init.c =================================================================== --- test/Preprocessor/init.c +++ test/Preprocessor/init.c @@ -249,8 +249,6 @@ // ARM:#define __INTMAX_MAX__ 9223372036854775807LL // ARM:#define __INTMAX_TYPE__ long long int // ARM:#define __INTMAX_WIDTH__ 64 -// ARM:#define __INTPTR_TYPE__ long int -// ARM:#define __INTPTR_WIDTH__ 32 // ARM:#define __INT_MAX__ 2147483647 // ARM:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L // ARM:#define __LDBL_DIG__ 15 @@ -275,7 +273,6 @@ // ARM:#define __REGISTER_PREFIX__ // ARM:#define __SCHAR_MAX__ 127 // ARM:#define __SHRT_MAX__ 32767 -// ARM:#define __SIG_ATOMIC_WIDTH__ 32 // ARM:#define __SIZEOF_DOUBLE__ 8 // ARM:#define __SIZEOF_FLOAT__ 4 // ARM:#define __SIZEOF_INT__ 4 @@ -297,7 +294,7 @@ // ARM:#define __WCHAR_MAX__ 4294967295U // ARM:#define __WCHAR_TYPE__ unsigned int // ARM:#define __WCHAR_WIDTH__ 32 -// ARM:#define __WINT_TYPE__ int +// ARM:#define __WINT_TYPE__ unsigned int // ARM:#define __WINT_WIDTH__ 32 // ARM:#define __arm 1 // ARM:#define __arm__ 1 @@ -353,7 +350,7 @@ // ARMEABISOFTFP:#define __INTMAX_MAX__ 9223372036854775807LL // ARMEABISOFTFP:#define __INTMAX_TYPE__ long long int // ARMEABISOFTFP:#define __INTMAX_WIDTH__ 64 -// ARMEABISOFTFP:#define __INTPTR_TYPE__ long int +// ARMEABISOFTFP:#define __INTPTR_TYPE__ int // ARMEABISOFTFP:#define __INTPTR_WIDTH__ 32 // ARMEABISOFTFP:#define __INT_MAX__ 2147483647 // ARMEABISOFTFP:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L @@ -379,7 +376,6 @@ // ARMEABISOFTFP:#define __REGISTER_PREFIX__ // ARMEABISOFTFP:#define __SCHAR_MAX__ 127 // ARMEABISOFTFP:#define __SHRT_MAX__ 32767 -// ARMEABISOFTFP:#define __SIG_ATOMIC_WIDTH__ 32 // ARMEABISOFTFP:#define __SIZEOF_DOUBLE__ 8 // ARMEABISOFTFP:#define __SIZEOF_FLOAT__ 4 // ARMEABISOFTFP:#define __SIZEOF_INT__ 4 @@ -399,8 +395,8 @@ // ARMEABISOFTFP:#define __THUMB_INTERWORK__ 1 // ARMEABISOFTFP:#define __UINTMAX_TYPE__ long long unsigned int // ARMEABISOFTFP:#define __USER_LABEL_PREFIX__ -// ARMEABISOFTFP:#define __WCHAR_MAX__ 4294967295U -// ARMEABISOFTFP:#define __WCHAR_TYPE__ unsigned int +// ARMEABISOFTFP:#define __WCHAR_MAX__ 2147483647 +// ARMEABISOFTFP:#define __WCHAR_TYPE__ int // ARMEABISOFTFP:#define __WCHAR_WIDTH__ 32 // ARMEABISOFTFP:#define __WINT_TYPE__ unsigned int // ARMEABISOFTFP:#define __WINT_WIDTH__ 32 @@ -458,7 +454,7 @@ // ARMEABIHARDFP:#define __INTMAX_MAX__ 9223372036854775807LL // ARMEABIHARDFP:#define __INTMAX_TYPE__ long long int // ARMEABIHARDFP:#define __INTMAX_WIDTH__ 64 -// ARMEABIHARDFP:#define __INTPTR_TYPE__ long int +// ARMEABIHARDFP:#define __INTPTR_TYPE__ int // ARMEABIHARDFP:#define __INTPTR_WIDTH__ 32 // ARMEABIHARDFP:#define __INT_MAX__ 2147483647 // ARMEABIHARDFP:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L @@ -484,7 +480,6 @@ // ARMEABIHARDFP:#define __REGISTER_PREFIX__ // ARMEABIHARDFP:#define __SCHAR_MAX__ 127 // ARMEABIHARDFP:#define __SHRT_MAX__ 32767 -// ARMEABIHARDFP:#define __SIG_ATOMIC_WIDTH__ 32 // ARMEABIHARDFP:#define __SIZEOF_DOUBLE__ 8 // ARMEABIHARDFP:#define __SIZEOF_FLOAT__ 4 // ARMEABIHARDFP:#define __SIZEOF_INT__ 4 @@ -504,8 +499,8 @@ // ARMEABIHARDFP:#define __THUMB_INTERWORK__ 1 // ARMEABIHARDFP:#define __UINTMAX_TYPE__ long long unsigned int // ARMEABIHARDFP:#define __USER_LABEL_PREFIX__ -// ARMEABIHARDFP:#define __WCHAR_MAX__ 4294967295U -// ARMEABIHARDFP:#define __WCHAR_TYPE__ unsigned int +// ARMEABIHARDFP:#define __WCHAR_MAX__ 2147483647 +// ARMEABIHARDFP:#define __WCHAR_TYPE__ int // ARMEABIHARDFP:#define __WCHAR_WIDTH__ 32 // ARMEABIHARDFP:#define __WINT_TYPE__ unsigned int // ARMEABIHARDFP:#define __WINT_WIDTH__ 32 @@ -604,7 +599,6 @@ // I386:#define __REGISTER_PREFIX__ // I386:#define __SCHAR_MAX__ 127 // I386:#define __SHRT_MAX__ 32767 -// I386:#define __SIG_ATOMIC_WIDTH__ 32 // I386:#define __SIZEOF_DOUBLE__ 8 // I386:#define __SIZEOF_FLOAT__ 4 // I386:#define __SIZEOF_INT__ 4 @@ -625,7 +619,7 @@ // I386:#define __WCHAR_MAX__ 2147483647 // I386:#define __WCHAR_TYPE__ int // I386:#define __WCHAR_WIDTH__ 32 -// I386:#define __WINT_TYPE__ int +// I386:#define __WINT_TYPE__ unsigned int // I386:#define __WINT_WIDTH__ 32 // I386:#define __i386 1 // I386:#define __i386__ 1 @@ -784,8 +778,6 @@ // MIPS32BE:#define __INTMAX_MAX__ 9223372036854775807LL // MIPS32BE:#define __INTMAX_TYPE__ long long int // MIPS32BE:#define __INTMAX_WIDTH__ 64 -// MIPS32BE:#define __INTPTR_TYPE__ long int -// MIPS32BE:#define __INTPTR_WIDTH__ 32 // MIPS32BE:#define __INT_MAX__ 2147483647 // MIPS32BE:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L // MIPS32BE:#define __LDBL_DIG__ 15 @@ -812,7 +804,6 @@ // MIPS32BE:#define __REGISTER_PREFIX__ // MIPS32BE:#define __SCHAR_MAX__ 127 // MIPS32BE:#define __SHRT_MAX__ 32767 -// MIPS32BE:#define __SIG_ATOMIC_WIDTH__ 32 // MIPS32BE:#define __SIZEOF_DOUBLE__ 8 // MIPS32BE:#define __SIZEOF_FLOAT__ 4 // MIPS32BE:#define __SIZEOF_INT__ 4 @@ -836,7 +827,7 @@ // MIPS32BE:#define __WCHAR_MAX__ 2147483647 // MIPS32BE:#define __WCHAR_TYPE__ int // MIPS32BE:#define __WCHAR_WIDTH__ 32 -// MIPS32BE:#define __WINT_TYPE__ int +// MIPS32BE:#define __WINT_TYPE__ unsigned int // MIPS32BE:#define __WINT_WIDTH__ 32 // MIPS32BE:#define __clang__ 1 // MIPS32BE:#define __llvm__ 1 @@ -903,8 +894,6 @@ // MIPS32EL:#define __INTMAX_MAX__ 9223372036854775807LL // MIPS32EL:#define __INTMAX_TYPE__ long long int // MIPS32EL:#define __INTMAX_WIDTH__ 64 -// MIPS32EL:#define __INTPTR_TYPE__ long int -// MIPS32EL:#define __INTPTR_WIDTH__ 32 // MIPS32EL:#define __INT_MAX__ 2147483647 // MIPS32EL:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L // MIPS32EL:#define __LDBL_DIG__ 15 @@ -931,7 +920,6 @@ // MIPS32EL:#define __REGISTER_PREFIX__ // MIPS32EL:#define __SCHAR_MAX__ 127 // MIPS32EL:#define __SHRT_MAX__ 32767 -// MIPS32EL:#define __SIG_ATOMIC_WIDTH__ 32 // MIPS32EL:#define __SIZEOF_DOUBLE__ 8 // MIPS32EL:#define __SIZEOF_FLOAT__ 4 // MIPS32EL:#define __SIZEOF_INT__ 4 @@ -952,7 +940,7 @@ // MIPS32EL:#define __WCHAR_MAX__ 2147483647 // MIPS32EL:#define __WCHAR_TYPE__ int // MIPS32EL:#define __WCHAR_WIDTH__ 32 -// MIPS32EL:#define __WINT_TYPE__ int +// MIPS32EL:#define __WINT_TYPE__ unsigned int // MIPS32EL:#define __WINT_WIDTH__ 32 // MIPS32EL:#define __clang__ 1 // MIPS32EL:#define __llvm__ 1 @@ -1013,14 +1001,12 @@ // MIPS64BE:#define __FLT_RADIX__ 2 // MIPS64BE:#define __INT16_TYPE__ short // MIPS64BE:#define __INT32_TYPE__ int -// MIPS64BE:#define __INT64_C_SUFFIX__ LL -// MIPS64BE:#define __INT64_TYPE__ long long int +// MIPS64BE:#define __INT64_C_SUFFIX__ L +// MIPS64BE:#define __INT64_TYPE__ long int // MIPS64BE:#define __INT8_TYPE__ char -// MIPS64BE:#define __INTMAX_MAX__ 9223372036854775807LL -// MIPS64BE:#define __INTMAX_TYPE__ long long int +// MIPS64BE:#define __INTMAX_MAX__ 9223372036854775807L +// MIPS64BE:#define __INTMAX_TYPE__ long int // MIPS64BE:#define __INTMAX_WIDTH__ 64 -// MIPS64BE:#define __INTPTR_TYPE__ long int -// MIPS64BE:#define __INTPTR_WIDTH__ 64 // MIPS64BE:#define __INT_MAX__ 2147483647 // MIPS64BE:#define __LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L // MIPS64BE:#define __LDBL_DIG__ 33 @@ -1047,7 +1033,6 @@ // MIPS64BE:#define __REGISTER_PREFIX__ // MIPS64BE:#define __SCHAR_MAX__ 127 // MIPS64BE:#define __SHRT_MAX__ 32767 -// MIPS64BE:#define __SIG_ATOMIC_WIDTH__ 32 // MIPS64BE:#define __SIZEOF_DOUBLE__ 8 // MIPS64BE:#define __SIZEOF_FLOAT__ 4 // MIPS64BE:#define __SIZEOF_INT__ 4 @@ -1063,12 +1048,12 @@ // MIPS64BE:#define __SIZE_MAX__ 18446744073709551615UL // MIPS64BE:#define __SIZE_TYPE__ long unsigned int // MIPS64BE:#define __SIZE_WIDTH__ 64 -// MIPS64BE:#define __UINTMAX_TYPE__ long long unsigned int +// MIPS64BE:#define __UINTMAX_TYPE__ long unsigned int // MIPS64BE:#define __USER_LABEL_PREFIX__ _ // MIPS64BE:#define __WCHAR_MAX__ 2147483647 // MIPS64BE:#define __WCHAR_TYPE__ int // MIPS64BE:#define __WCHAR_WIDTH__ 32 -// MIPS64BE:#define __WINT_TYPE__ int +// MIPS64BE:#define __WINT_TYPE__ unsigned int // MIPS64BE:#define __WINT_WIDTH__ 32 // MIPS64BE:#define __clang__ 1 // MIPS64BE:#define __llvm__ 1 @@ -1131,14 +1116,12 @@ // MIPS64EL:#define __FLT_RADIX__ 2 // MIPS64EL:#define __INT16_TYPE__ short // MIPS64EL:#define __INT32_TYPE__ int -// MIPS64EL:#define __INT64_C_SUFFIX__ LL -// MIPS64EL:#define __INT64_TYPE__ long long int +// MIPS64EL:#define __INT64_C_SUFFIX__ L +// MIPS64EL:#define __INT64_TYPE__ long int // MIPS64EL:#define __INT8_TYPE__ char -// MIPS64EL:#define __INTMAX_MAX__ 9223372036854775807LL -// MIPS64EL:#define __INTMAX_TYPE__ long long int +// MIPS64EL:#define __INTMAX_MAX__ 9223372036854775807L +// MIPS64EL:#define __INTMAX_TYPE__ long int // MIPS64EL:#define __INTMAX_WIDTH__ 64 -// MIPS64EL:#define __INTPTR_TYPE__ long int -// MIPS64EL:#define __INTPTR_WIDTH__ 64 // MIPS64EL:#define __INT_MAX__ 2147483647 // MIPS64EL:#define __LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L // MIPS64EL:#define __LDBL_DIG__ 33 @@ -1165,7 +1148,6 @@ // MIPS64EL:#define __REGISTER_PREFIX__ // MIPS64EL:#define __SCHAR_MAX__ 127 // MIPS64EL:#define __SHRT_MAX__ 32767 -// MIPS64EL:#define __SIG_ATOMIC_WIDTH__ 32 // MIPS64EL:#define __SIZEOF_DOUBLE__ 8 // MIPS64EL:#define __SIZEOF_FLOAT__ 4 // MIPS64EL:#define __SIZEOF_INT__ 4 @@ -1181,12 +1163,12 @@ // MIPS64EL:#define __SIZE_MAX__ 18446744073709551615UL // MIPS64EL:#define __SIZE_TYPE__ long unsigned int // MIPS64EL:#define __SIZE_WIDTH__ 64 -// MIPS64EL:#define __UINTMAX_TYPE__ long long unsigned int +// MIPS64EL:#define __UINTMAX_TYPE__ long unsigned int // MIPS64EL:#define __USER_LABEL_PREFIX__ _ // MIPS64EL:#define __WCHAR_MAX__ 2147483647 // MIPS64EL:#define __WCHAR_TYPE__ int // MIPS64EL:#define __WCHAR_WIDTH__ 32 -// MIPS64EL:#define __WINT_TYPE__ int +// MIPS64EL:#define __WINT_TYPE__ unsigned int // MIPS64EL:#define __WINT_WIDTH__ 32 // MIPS64EL:#define __clang__ 1 // MIPS64EL:#define __llvm__ 1 @@ -1369,7 +1351,7 @@ // MSP430:#define __PTRDIFF_WIDTH__ 16 // MSP430:#define __SCHAR_MAX__ 127 // MSP430:#define __SHRT_MAX__ 32767 -// MSP430:#define __SIG_ATOMIC_WIDTH__ 32 +// MSP430:#define __SIG_ATOMIC_WIDTH__ 16 // MSP430:#define __SIZEOF_DOUBLE__ 8 // MSP430:#define __SIZEOF_FLOAT__ 4 // MSP430:#define __SIZEOF_INT__ 2 @@ -1390,7 +1372,7 @@ // MSP430:#define __WCHAR_MAX__ 32767 // MSP430:#define __WCHAR_TYPE__ int // MSP430:#define __WCHAR_WIDTH__ 16 -// MSP430:#define __WINT_TYPE__ int +// MSP430:#define __WINT_TYPE__ unsigned int // MSP430:#define __WINT_WIDTH__ 16 // MSP430:#define __clang__ 1 // @@ -1467,7 +1449,6 @@ // NVPTX32:#define __PTX__ 1 // NVPTX32:#define __SCHAR_MAX__ 127 // NVPTX32:#define __SHRT_MAX__ 32767 -// NVPTX32:#define __SIG_ATOMIC_WIDTH__ 32 // NVPTX32:#define __SIZEOF_DOUBLE__ 8 // NVPTX32:#define __SIZEOF_FLOAT__ 4 // NVPTX32:#define __SIZEOF_INT__ 4 @@ -1488,7 +1469,7 @@ // NVPTX32:#define __WCHAR_MAX__ 2147483647 // NVPTX32:#define __WCHAR_TYPE__ int // NVPTX32:#define __WCHAR_WIDTH__ 32 -// NVPTX32:#define __WINT_TYPE__ int +// NVPTX32:#define __WINT_TYPE__ unsigned int // NVPTX32:#define __WINT_WIDTH__ 32 // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=nvptx64-none-none < /dev/null | FileCheck -check-prefix NVPTX64 %s @@ -1564,7 +1545,6 @@ // NVPTX64:#define __PTX__ 1 // NVPTX64:#define __SCHAR_MAX__ 127 // NVPTX64:#define __SHRT_MAX__ 32767 -// NVPTX64:#define __SIG_ATOMIC_WIDTH__ 32 // NVPTX64:#define __SIZEOF_DOUBLE__ 8 // NVPTX64:#define __SIZEOF_FLOAT__ 4 // NVPTX64:#define __SIZEOF_INT__ 4 @@ -1585,7 +1565,7 @@ // NVPTX64:#define __WCHAR_MAX__ 2147483647 // NVPTX64:#define __WCHAR_TYPE__ int // NVPTX64:#define __WCHAR_WIDTH__ 32 -// NVPTX64:#define __WINT_TYPE__ int +// NVPTX64:#define __WINT_TYPE__ unsigned int // NVPTX64:#define __WINT_WIDTH__ 32 // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-none-none -target-cpu 603e < /dev/null | FileCheck -check-prefix PPC603E %s @@ -1638,8 +1618,6 @@ // PPC603E:#define __INTMAX_MAX__ 9223372036854775807LL // PPC603E:#define __INTMAX_TYPE__ long long int // PPC603E:#define __INTMAX_WIDTH__ 64 -// PPC603E:#define __INTPTR_TYPE__ long int -// PPC603E:#define __INTPTR_WIDTH__ 32 // PPC603E:#define __INT_MAX__ 2147483647 // PPC603E:#define __LDBL_DENORM_MIN__ 4.94065645841246544176568792868221e-324L // PPC603E:#define __LDBL_DIG__ 31 @@ -1662,12 +1640,11 @@ // PPC603E:#define __POINTER_WIDTH__ 32 // PPC603E:#define __POWERPC__ 1 // PPC603E:#define __PPC__ 1 -// PPC603E:#define __PTRDIFF_TYPE__ long int +// PPC603E:#define __PTRDIFF_TYPE__ int // PPC603E:#define __PTRDIFF_WIDTH__ 32 // PPC603E:#define __REGISTER_PREFIX__ // PPC603E:#define __SCHAR_MAX__ 127 // PPC603E:#define __SHRT_MAX__ 32767 -// PPC603E:#define __SIG_ATOMIC_WIDTH__ 32 // PPC603E:#define __SIZEOF_DOUBLE__ 8 // PPC603E:#define __SIZEOF_FLOAT__ 4 // PPC603E:#define __SIZEOF_INT__ 4 @@ -1678,17 +1655,17 @@ // PPC603E:#define __SIZEOF_PTRDIFF_T__ 4 // PPC603E:#define __SIZEOF_SHORT__ 2 // PPC603E:#define __SIZEOF_SIZE_T__ 4 -// PPC603E:#define __SIZEOF_WCHAR_T__ 4 +// PPC603E:#define __SIZEOF_WCHAR_T__ 2 // PPC603E:#define __SIZEOF_WINT_T__ 4 -// PPC603E:#define __SIZE_MAX__ 4294967295U +// PPC603E:#define __SIZE_MAX__ 4294967295UL // PPC603E:#define __SIZE_TYPE__ long unsigned int // PPC603E:#define __SIZE_WIDTH__ 32 // PPC603E:#define __UINTMAX_TYPE__ long long unsigned int // PPC603E:#define __USER_LABEL_PREFIX__ _ -// PPC603E:#define __WCHAR_MAX__ 2147483647 -// PPC603E:#define __WCHAR_TYPE__ int -// PPC603E:#define __WCHAR_WIDTH__ 32 -// PPC603E:#define __WINT_TYPE__ int +// PPC603E:#define __WCHAR_MAX__ 65535U +// PPC603E:#define __WCHAR_TYPE__ unsigned short +// PPC603E:#define __WCHAR_WIDTH__ 16 +// PPC603E:#define __WINT_TYPE__ unsigned int // PPC603E:#define __WINT_WIDTH__ 32 // PPC603E:#define __powerpc__ 1 // PPC603E:#define __ppc__ 1 @@ -1748,8 +1725,6 @@ // PPC64:#define __INTMAX_MAX__ 9223372036854775807L // PPC64:#define __INTMAX_TYPE__ long int // PPC64:#define __INTMAX_WIDTH__ 64 -// PPC64:#define __INTPTR_TYPE__ long int -// PPC64:#define __INTPTR_WIDTH__ 64 // PPC64:#define __INT_MAX__ 2147483647 // PPC64:#define __LDBL_DENORM_MIN__ 4.94065645841246544176568792868221e-324L // PPC64:#define __LDBL_DIG__ 31 @@ -1773,12 +1748,11 @@ // PPC64:#define __POWERPC__ 1 // PPC64:#define __PPC64__ 1 // PPC64:#define __PPC__ 1 -// PPC64:#define __PTRDIFF_TYPE__ long int -// PPC64:#define __PTRDIFF_WIDTH__ 64 +// PPC64:#define __PTRDIFF_TYPE__ int +// PPC64:#define __PTRDIFF_WIDTH__ 32 // PPC64:#define __REGISTER_PREFIX__ // PPC64:#define __SCHAR_MAX__ 127 // PPC64:#define __SHRT_MAX__ 32767 -// PPC64:#define __SIG_ATOMIC_WIDTH__ 32 // PPC64:#define __SIZEOF_DOUBLE__ 8 // PPC64:#define __SIZEOF_FLOAT__ 4 // PPC64:#define __SIZEOF_INT__ 4 @@ -1786,20 +1760,20 @@ // PPC64:#define __SIZEOF_LONG_LONG__ 8 // PPC64:#define __SIZEOF_LONG__ 8 // PPC64:#define __SIZEOF_POINTER__ 8 -// PPC64:#define __SIZEOF_PTRDIFF_T__ 8 +// PPC64:#define __SIZEOF_PTRDIFF_T__ 4 // PPC64:#define __SIZEOF_SHORT__ 2 // PPC64:#define __SIZEOF_SIZE_T__ 8 -// PPC64:#define __SIZEOF_WCHAR_T__ 4 +// PPC64:#define __SIZEOF_WCHAR_T__ 2 // PPC64:#define __SIZEOF_WINT_T__ 4 // PPC64:#define __SIZE_MAX__ 18446744073709551615UL // PPC64:#define __SIZE_TYPE__ long unsigned int // PPC64:#define __SIZE_WIDTH__ 64 // PPC64:#define __UINTMAX_TYPE__ long unsigned int // PPC64:#define __USER_LABEL_PREFIX__ _ -// PPC64:#define __WCHAR_MAX__ 2147483647 -// PPC64:#define __WCHAR_TYPE__ int -// PPC64:#define __WCHAR_WIDTH__ 32 -// PPC64:#define __WINT_TYPE__ int +// PPC64:#define __WCHAR_MAX__ 65535U +// PPC64:#define __WCHAR_TYPE__ unsigned short +// PPC64:#define __WCHAR_WIDTH__ 16 +// PPC64:#define __WINT_TYPE__ unsigned int // PPC64:#define __WINT_WIDTH__ 32 // PPC64:#define __ppc64__ 1 // PPC64:#define __ppc__ 1 @@ -1860,8 +1834,6 @@ // PPC64LE:#define __INTMAX_MAX__ 9223372036854775807L // PPC64LE:#define __INTMAX_TYPE__ long int // PPC64LE:#define __INTMAX_WIDTH__ 64 -// PPC64LE:#define __INTPTR_TYPE__ long int -// PPC64LE:#define __INTPTR_WIDTH__ 64 // PPC64LE:#define __INT_MAX__ 2147483647 // PPC64LE:#define __LDBL_DENORM_MIN__ 4.94065645841246544176568792868221e-324L // PPC64LE:#define __LDBL_DIG__ 31 @@ -1886,12 +1858,11 @@ // PPC64LE:#define __POWERPC__ 1 // PPC64LE:#define __PPC64__ 1 // PPC64LE:#define __PPC__ 1 -// PPC64LE:#define __PTRDIFF_TYPE__ long int -// PPC64LE:#define __PTRDIFF_WIDTH__ 64 +// PPC64LE:#define __PTRDIFF_TYPE__ int +// PPC64LE:#define __PTRDIFF_WIDTH__ 32 // PPC64LE:#define __REGISTER_PREFIX__ // PPC64LE:#define __SCHAR_MAX__ 127 // PPC64LE:#define __SHRT_MAX__ 32767 -// PPC64LE:#define __SIG_ATOMIC_WIDTH__ 32 // PPC64LE:#define __SIZEOF_DOUBLE__ 8 // PPC64LE:#define __SIZEOF_FLOAT__ 4 // PPC64LE:#define __SIZEOF_INT__ 4 @@ -1899,20 +1870,20 @@ // PPC64LE:#define __SIZEOF_LONG_LONG__ 8 // PPC64LE:#define __SIZEOF_LONG__ 8 // PPC64LE:#define __SIZEOF_POINTER__ 8 -// PPC64LE:#define __SIZEOF_PTRDIFF_T__ 8 +// PPC64LE:#define __SIZEOF_PTRDIFF_T__ 4 // PPC64LE:#define __SIZEOF_SHORT__ 2 // PPC64LE:#define __SIZEOF_SIZE_T__ 8 -// PPC64LE:#define __SIZEOF_WCHAR_T__ 4 +// PPC64LE:#define __SIZEOF_WCHAR_T__ 2 // PPC64LE:#define __SIZEOF_WINT_T__ 4 // PPC64LE:#define __SIZE_MAX__ 18446744073709551615UL // PPC64LE:#define __SIZE_TYPE__ long unsigned int // PPC64LE:#define __SIZE_WIDTH__ 64 // PPC64LE:#define __UINTMAX_TYPE__ long unsigned int // PPC64LE:#define __USER_LABEL_PREFIX__ _ -// PPC64LE:#define __WCHAR_MAX__ 2147483647 -// PPC64LE:#define __WCHAR_TYPE__ int -// PPC64LE:#define __WCHAR_WIDTH__ 32 -// PPC64LE:#define __WINT_TYPE__ int +// PPC64LE:#define __WCHAR_MAX__ 65535 +// PPC64LE:#define __WCHAR_TYPE__ unsigned short +// PPC64LE:#define __WCHAR_WIDTH__ 16 +// PPC64LE:#define __WINT_TYPE__ unsigned int // PPC64LE:#define __WINT_WIDTH__ 32 // PPC64LE:#define __ppc64__ 1 // PPC64LE:#define __ppc__ 1 @@ -2233,8 +2204,6 @@ // PPC:#define __INTMAX_MAX__ 9223372036854775807LL // PPC:#define __INTMAX_TYPE__ long long int // PPC:#define __INTMAX_WIDTH__ 64 -// PPC:#define __INTPTR_TYPE__ long int -// PPC:#define __INTPTR_WIDTH__ 32 // PPC:#define __INT_MAX__ 2147483647 // PPC:#define __LDBL_DENORM_MIN__ 4.94065645841246544176568792868221e-324L // PPC:#define __LDBL_DIG__ 31 @@ -2257,12 +2226,11 @@ // PPC:#define __POINTER_WIDTH__ 32 // PPC:#define __POWERPC__ 1 // PPC:#define __PPC__ 1 -// PPC:#define __PTRDIFF_TYPE__ long int +// PPC:#define __PTRDIFF_TYPE__ int // PPC:#define __PTRDIFF_WIDTH__ 32 // PPC:#define __REGISTER_PREFIX__ // PPC:#define __SCHAR_MAX__ 127 // PPC:#define __SHRT_MAX__ 32767 -// PPC:#define __SIG_ATOMIC_WIDTH__ 32 // PPC:#define __SIZEOF_DOUBLE__ 8 // PPC:#define __SIZEOF_FLOAT__ 4 // PPC:#define __SIZEOF_INT__ 4 @@ -2273,17 +2241,17 @@ // PPC:#define __SIZEOF_PTRDIFF_T__ 4 // PPC:#define __SIZEOF_SHORT__ 2 // PPC:#define __SIZEOF_SIZE_T__ 4 -// PPC:#define __SIZEOF_WCHAR_T__ 4 +// PPC:#define __SIZEOF_WCHAR_T__ 2 // PPC:#define __SIZEOF_WINT_T__ 4 // PPC:#define __SIZE_MAX__ 4294967295U // PPC:#define __SIZE_TYPE__ long unsigned int // PPC:#define __SIZE_WIDTH__ 32 // PPC:#define __UINTMAX_TYPE__ long long unsigned int // PPC:#define __USER_LABEL_PREFIX__ _ -// PPC:#define __WCHAR_MAX__ 2147483647 -// PPC:#define __WCHAR_TYPE__ int -// PPC:#define __WCHAR_WIDTH__ 32 -// PPC:#define __WINT_TYPE__ int +// PPC:#define __WCHAR_MAX__ 65535U +// PPC:#define __WCHAR_TYPE__ unsigned short +// PPC:#define __WCHAR_WIDTH__ 16 +// PPC:#define __WINT_TYPE__ unsigned int // PPC:#define __WINT_WIDTH__ 32 // PPC:#define __ppc__ 1 // @@ -2541,8 +2509,6 @@ // S390X:#define __INTMAX_MAX__ 9223372036854775807LL // S390X:#define __INTMAX_TYPE__ long long int // S390X:#define __INTMAX_WIDTH__ 64 -// S390X:#define __INTPTR_TYPE__ long int -// S390X:#define __INTPTR_WIDTH__ 64 // S390X:#define __INT_MAX__ 2147483647 // S390X:#define __LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L // S390X:#define __LDBL_DIG__ 33 @@ -2565,7 +2531,6 @@ // S390X:#define __PTRDIFF_WIDTH__ 64 // S390X:#define __SCHAR_MAX__ 127 // S390X:#define __SHRT_MAX__ 32767 -// S390X:#define __SIG_ATOMIC_WIDTH__ 32 // S390X:#define __SIZEOF_DOUBLE__ 8 // S390X:#define __SIZEOF_FLOAT__ 4 // S390X:#define __SIZEOF_INT__ 4 @@ -2585,7 +2550,7 @@ // S390X:#define __WCHAR_MAX__ 2147483647 // S390X:#define __WCHAR_TYPE__ int // S390X:#define __WCHAR_WIDTH__ 32 -// S390X:#define __WINT_TYPE__ int +// S390X:#define __WINT_TYPE__ unsigned int // S390X:#define __WINT_WIDTH__ 32 // S390X:#define __s390__ 1 // S390X:#define __s390x__ 1 @@ -2634,8 +2599,6 @@ // SPARC:#define __INTMAX_MAX__ 9223372036854775807LL // SPARC:#define __INTMAX_TYPE__ long long int // SPARC:#define __INTMAX_WIDTH__ 64 -// SPARC:#define __INTPTR_TYPE__ long int -// SPARC:#define __INTPTR_WIDTH__ 32 // SPARC:#define __INT_MAX__ 2147483647 // SPARC:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L // SPARC:#define __LDBL_DIG__ 15 @@ -2654,12 +2617,11 @@ // SPARC:#define __LONG_MAX__ 2147483647L // SPARC-NOT:#define __LP64__ // SPARC:#define __POINTER_WIDTH__ 32 -// SPARC:#define __PTRDIFF_TYPE__ long int +// SPARC:#define __PTRDIFF_TYPE__ int // SPARC:#define __PTRDIFF_WIDTH__ 32 // SPARC:#define __REGISTER_PREFIX__ // SPARC:#define __SCHAR_MAX__ 127 // SPARC:#define __SHRT_MAX__ 32767 -// SPARC:#define __SIG_ATOMIC_WIDTH__ 32 // SPARC:#define __SIZEOF_DOUBLE__ 8 // SPARC:#define __SIZEOF_FLOAT__ 4 // SPARC:#define __SIZEOF_INT__ 4 @@ -2670,18 +2632,18 @@ // SPARC:#define __SIZEOF_PTRDIFF_T__ 4 // SPARC:#define __SIZEOF_SHORT__ 2 // SPARC:#define __SIZEOF_SIZE_T__ 4 -// SPARC:#define __SIZEOF_WCHAR_T__ 4 +// SPARC:#define __SIZEOF_WCHAR_T__ 2 // SPARC:#define __SIZEOF_WINT_T__ 4 // SPARC:#define __SIZE_MAX__ 4294967295U -// SPARC:#define __SIZE_TYPE__ long unsigned int +// SPARC:#define __SIZE_TYPE__ unsigned int // SPARC:#define __SIZE_WIDTH__ 32 // SPARC:#define __UINTMAX_TYPE__ long long unsigned int // SPARC:#define __USER_LABEL_PREFIX__ _ // SPARC:#define __VERSION__ "4.2.1 Compatible -// SPARC:#define __WCHAR_MAX__ 2147483647 -// SPARC:#define __WCHAR_TYPE__ int -// SPARC:#define __WCHAR_WIDTH__ 32 -// SPARC:#define __WINT_TYPE__ int +// SPARC:#define __WCHAR_MAX__ 65535U +// SPARC:#define __WCHAR_TYPE__ unsigned short +// SPARC:#define __WCHAR_WIDTH__ 16 +// SPARC:#define __WINT_TYPE__ unsigned int // SPARC:#define __WINT_WIDTH__ 32 // SPARC:#define __sparc 1 // SPARC:#define __sparc__ 1 @@ -2754,7 +2716,6 @@ // TCE:#define __PTRDIFF_WIDTH__ 32 // TCE:#define __SCHAR_MAX__ 127 // TCE:#define __SHRT_MAX__ 32767 -// TCE:#define __SIG_ATOMIC_WIDTH__ 32 // TCE:#define __SIZEOF_DOUBLE__ 4 // TCE:#define __SIZEOF_FLOAT__ 4 // TCE:#define __SIZEOF_INT__ 4 @@ -2777,7 +2738,7 @@ // TCE:#define __WCHAR_MAX__ 2147483647 // TCE:#define __WCHAR_TYPE__ int // TCE:#define __WCHAR_WIDTH__ 32 -// TCE:#define __WINT_TYPE__ int +// TCE:#define __WINT_TYPE__ unsigned int // TCE:#define __WINT_WIDTH__ 32 // TCE:#define __tce 1 // TCE:#define __tce__ 1 @@ -2827,8 +2788,6 @@ // X86_64:#define __INTMAX_MAX__ 9223372036854775807L // X86_64:#define __INTMAX_TYPE__ long int // X86_64:#define __INTMAX_WIDTH__ 64 -// X86_64:#define __INTPTR_TYPE__ long int -// X86_64:#define __INTPTR_WIDTH__ 64 // X86_64:#define __INT_MAX__ 2147483647 // X86_64:#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L // X86_64:#define __LDBL_DIG__ 18 @@ -2855,7 +2814,6 @@ // X86_64:#define __REGISTER_PREFIX__ // X86_64:#define __SCHAR_MAX__ 127 // X86_64:#define __SHRT_MAX__ 32767 -// X86_64:#define __SIG_ATOMIC_WIDTH__ 32 // X86_64:#define __SIZEOF_DOUBLE__ 8 // X86_64:#define __SIZEOF_FLOAT__ 4 // X86_64:#define __SIZEOF_INT__ 4 @@ -2880,7 +2838,7 @@ // X86_64:#define __WCHAR_MAX__ 2147483647 // X86_64:#define __WCHAR_TYPE__ int // X86_64:#define __WCHAR_WIDTH__ 32 -// X86_64:#define __WINT_TYPE__ int +// X86_64:#define __WINT_TYPE__ unsigned int // X86_64:#define __WINT_WIDTH__ 32 // X86_64:#define __amd64 1 // X86_64:#define __amd64__ 1 @@ -3000,7 +2958,6 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=sparc64-none-none < /dev/null | FileCheck -check-prefix SPARCV9 %s // SPARCV9:#define __INT64_TYPE__ long int // SPARCV9:#define __INTMAX_TYPE__ long int -// SPARCV9:#define __INTPTR_TYPE__ long int // SPARCV9:#define __LONG_MAX__ 9223372036854775807L // SPARCV9:#define __LP64__ 1 // SPARCV9:#define __SIZEOF_LONG__ 8 Index: test/Preprocessor/stdint.c =================================================================== --- test/Preprocessor/stdint.c +++ test/Preprocessor/stdint.c @@ -28,9 +28,6 @@ // ARM:typedef int8_t int_fast8_t; // ARM:typedef uint8_t uint_fast8_t; // -// ARM:typedef int32_t intptr_t; -// ARM:typedef uint32_t uintptr_t; -// // ARM:typedef long long int intmax_t; // ARM:typedef long long unsigned int uintmax_t; // @@ -74,9 +71,6 @@ // ARM:INT_FAST64_MAX_ 9223372036854775807LL // ARM:UINT_FAST64_MAX_ 18446744073709551615ULL // -// ARM:INTPTR_MIN_ (-2147483647 -1) -// ARM:INTPTR_MAX_ 2147483647 -// ARM:UINTPTR_MAX_ 4294967295U // ARM:PTRDIFF_MIN_ (-2147483647 -1) // ARM:PTRDIFF_MAX_ 2147483647 // ARM:SIZE_MAX_ 4294967295U @@ -85,10 +79,8 @@ // ARM:INTMAX_MAX_ 9223372036854775807LL // ARM:UINTMAX_MAX_ 18446744073709551615ULL // -// ARM:SIG_ATOMIC_MIN_ (-2147483647 -1) -// ARM:SIG_ATOMIC_MAX_ 2147483647 -// ARM:WINT_MIN_ (-2147483647 -1) -// ARM:WINT_MAX_ 2147483647 +// ARM:WINT_MIN_ 0 +// ARM:WINT_MAX_ 4294967295U // // ARM:WCHAR_MAX_ 4294967295U // ARM:WCHAR_MIN_ 0U @@ -136,8 +128,8 @@ // I386:typedef int8_t int_fast8_t; // I386:typedef uint8_t uint_fast8_t; // -// I386:typedef int32_t intptr_t; -// I386:typedef uint32_t uintptr_t; +// I386:typedef signed int intptr_t; +// I386:typedef unsigned int uintptr_t; // // I386:typedef long long int intmax_t; // I386:typedef long long unsigned int uintmax_t; @@ -193,10 +185,8 @@ // I386:INTMAX_MAX_ 9223372036854775807LL // I386:UINTMAX_MAX_ 18446744073709551615ULL // -// I386:SIG_ATOMIC_MIN_ (-2147483647 -1) -// I386:SIG_ATOMIC_MAX_ 2147483647 -// I386:WINT_MIN_ (-2147483647 -1) -// I386:WINT_MAX_ 2147483647 +// I386:WINT_MIN_ 0U +// I386:WINT_MAX_ 4294967295U // // I386:WCHAR_MAX_ 2147483647 // I386:WCHAR_MIN_ (-2147483647 -1) @@ -236,8 +226,8 @@ // MSP430:typedef int8_t int_fast8_t; // MSP430:typedef uint8_t uint_fast8_t; // -// MSP430:typedef int16_t intptr_t; -// MSP430:typedef uint16_t uintptr_t; +// MSP430:typedef signed int intptr_t; +// MSP430:typedef unsigned int uintptr_t; // // MSP430:typedef long long int intmax_t; // MSP430:typedef long long unsigned int uintmax_t; @@ -293,10 +283,10 @@ // MSP430:INTMAX_MAX_ 9223372036854775807LL // MSP430:UINTMAX_MAX_ 18446744073709551615ULL // -// MSP430:SIG_ATOMIC_MIN_ (-2147483647L -1) -// MSP430:SIG_ATOMIC_MAX_ 2147483647L -// MSP430:WINT_MIN_ (-32767 -1) -// MSP430:WINT_MAX_ 32767 +// MSP430:SIG_ATOMIC_MIN_ (-32767 -1) +// MSP430:SIG_ATOMIC_MAX_ 32767 +// MSP430:WINT_MIN_ 0U +// MSP430:WINT_MAX_ 65535U // // MSP430:WCHAR_MAX_ 32767 // MSP430:WCHAR_MIN_ (-32767 -1) @@ -343,9 +333,6 @@ // PPC64:typedef int8_t int_fast8_t; // PPC64:typedef uint8_t uint_fast8_t; // -// PPC64:typedef int64_t intptr_t; -// PPC64:typedef uint64_t uintptr_t; -// // PPC64:typedef long int intmax_t; // PPC64:typedef long unsigned int uintmax_t; // @@ -389,24 +376,17 @@ // PPC64:INT_FAST64_MAX_ 9223372036854775807L // PPC64:UINT_FAST64_MAX_ 18446744073709551615UL // -// PPC64:INTPTR_MIN_ (-9223372036854775807L -1) -// PPC64:INTPTR_MAX_ 9223372036854775807L -// PPC64:UINTPTR_MAX_ 18446744073709551615UL -// PPC64:PTRDIFF_MIN_ (-9223372036854775807L -1) -// PPC64:PTRDIFF_MAX_ 9223372036854775807L // PPC64:SIZE_MAX_ 18446744073709551615UL // // PPC64:INTMAX_MIN_ (-9223372036854775807L -1) // PPC64:INTMAX_MAX_ 9223372036854775807L // PPC64:UINTMAX_MAX_ 18446744073709551615UL // -// PPC64:SIG_ATOMIC_MIN_ (-2147483647 -1) -// PPC64:SIG_ATOMIC_MAX_ 2147483647 -// PPC64:WINT_MIN_ (-2147483647 -1) -// PPC64:WINT_MAX_ 2147483647 +// PPC64:WINT_MIN_ 0U +// PPC64:WINT_MAX_ 4294967295U // -// PPC64:WCHAR_MAX_ 2147483647 -// PPC64:WCHAR_MIN_ (-2147483647 -1) +// PPC64:WCHAR_MAX_ 65535U +// PPC64:WCHAR_MIN_ 0U // // PPC64:INT8_C_(0) 0 // PPC64:UINT8_C_(0) 0U @@ -451,9 +431,6 @@ // PPC:typedef int8_t int_fast8_t; // PPC:typedef uint8_t uint_fast8_t; // -// PPC:typedef int32_t intptr_t; -// PPC:typedef uint32_t uintptr_t; -// // PPC:typedef long long int intmax_t; // PPC:typedef long long unsigned int uintmax_t; // @@ -497,9 +474,6 @@ // PPC:INT_FAST64_MAX_ 9223372036854775807LL // PPC:UINT_FAST64_MAX_ 18446744073709551615ULL // -// PPC:INTPTR_MIN_ (-2147483647 -1) -// PPC:INTPTR_MAX_ 2147483647 -// PPC:UINTPTR_MAX_ 4294967295U // PPC:PTRDIFF_MIN_ (-2147483647 -1) // PPC:PTRDIFF_MAX_ 2147483647 // PPC:SIZE_MAX_ 4294967295U @@ -508,13 +482,11 @@ // PPC:INTMAX_MAX_ 9223372036854775807LL // PPC:UINTMAX_MAX_ 18446744073709551615ULL // -// PPC:SIG_ATOMIC_MIN_ (-2147483647 -1) -// PPC:SIG_ATOMIC_MAX_ 2147483647 -// PPC:WINT_MIN_ (-2147483647 -1) -// PPC:WINT_MAX_ 2147483647 +// PPC:WINT_MIN_ 0U +// PPC:WINT_MAX_ 4294967295U // -// PPC:WCHAR_MAX_ 2147483647 -// PPC:WCHAR_MIN_ (-2147483647 -1) +// PPC:WCHAR_MAX_ 65535U +// PPC:WCHAR_MIN_ 0 // // PPC:INT8_C_(0) 0 // PPC:UINT8_C_(0) 0U @@ -558,9 +530,6 @@ // S390X:typedef int8_t int_fast8_t; // S390X:typedef uint8_t uint_fast8_t; // -// S390X:typedef int64_t intptr_t; -// S390X:typedef uint64_t uintptr_t; -// // S390X:typedef long long int intmax_t; // S390X:typedef long long unsigned int uintmax_t; // @@ -604,9 +573,6 @@ // S390X:INT_FAST64_MAX_ 9223372036854775807L // S390X:UINT_FAST64_MAX_ 18446744073709551615UL // -// S390X:INTPTR_MIN_ (-9223372036854775807LL -1) -// S390X:INTPTR_MAX_ 9223372036854775807L -// S390X:UINTPTR_MAX_ 18446744073709551615UL // S390X:PTRDIFF_MIN_ (-9223372036854775807LL -1) // S390X:PTRDIFF_MAX_ 9223372036854775807L // S390X:SIZE_MAX_ 18446744073709551615UL @@ -615,10 +581,8 @@ // S390X:INTMAX_MAX_ 9223372036854775807L // S390X:UINTMAX_MAX_ 18446744073709551615UL // -// S390X:SIG_ATOMIC_MIN_ (-2147483647 -1) -// S390X:SIG_ATOMIC_MAX_ 2147483647 -// S390X:WINT_MIN_ (-2147483647 -1) -// S390X:WINT_MAX_ 2147483647 +// S390X:WINT_MIN_ 0U +// S390X:WINT_MAX_ 4294967295U // // S390X:WCHAR_MAX_ 2147483647 // S390X:WCHAR_MIN_ (-2147483647 -1) @@ -665,9 +629,6 @@ // SPARC:typedef int8_t int_fast8_t; // SPARC:typedef uint8_t uint_fast8_t; // -// SPARC:typedef int32_t intptr_t; -// SPARC:typedef uint32_t uintptr_t; -// // SPARC:typedef long long int intmax_t; // SPARC:typedef long long unsigned int uintmax_t; // @@ -711,9 +672,6 @@ // SPARC:INT_FAST64_MAX_ 9223372036854775807LL // SPARC:UINT_FAST64_MAX_ 18446744073709551615ULL // -// SPARC:INTPTR_MIN_ (-2147483647 -1) -// SPARC:INTPTR_MAX_ 2147483647 -// SPARC:UINTPTR_MAX_ 4294967295U // SPARC:PTRDIFF_MIN_ (-2147483647 -1) // SPARC:PTRDIFF_MAX_ 2147483647 // SPARC:SIZE_MAX_ 4294967295U @@ -722,13 +680,11 @@ // SPARC:INTMAX_MAX_ 9223372036854775807LL // SPARC:UINTMAX_MAX_ 18446744073709551615ULL // -// SPARC:SIG_ATOMIC_MIN_ (-2147483647 -1) -// SPARC:SIG_ATOMIC_MAX_ 2147483647 -// SPARC:WINT_MIN_ (-2147483647 -1) -// SPARC:WINT_MAX_ 2147483647 +// SPARC:WINT_MIN_ 0U +// SPARC:WINT_MAX_ 4294967295U // -// SPARC:WCHAR_MAX_ 2147483647 -// SPARC:WCHAR_MIN_ (-2147483647 -1) +// SPARC:WCHAR_MAX_ 65535U +// SPARC:WCHAR_MIN_ 0U // // SPARC:INT8_C_(0) 0 // SPARC:UINT8_C_(0) 0U @@ -765,8 +721,8 @@ // TCE:typedef int8_t int_fast8_t; // TCE:typedef uint8_t uint_fast8_t; // -// TCE:typedef int32_t intptr_t; -// TCE:typedef uint32_t uintptr_t; +// TCE:typedef signed int intptr_t; +// TCE:typedef unsigned int uintptr_t; // // TCE:typedef long int intmax_t; // TCE:typedef long unsigned int uintmax_t; @@ -822,10 +778,8 @@ // TCE:INTMAX_MAX_ 2147483647 // TCE:UINTMAX_MAX_ 4294967295U // -// TCE:SIG_ATOMIC_MIN_ (-2147483647 -1) -// TCE:SIG_ATOMIC_MAX_ 2147483647 -// TCE:WINT_MIN_ (-2147483647 -1) -// TCE:WINT_MAX_ 2147483647 +// TCE:WINT_MIN_ 0U +// TCE:WINT_MAX_ 4294967295U // // TCE:WCHAR_MAX_ 2147483647 // TCE:WCHAR_MIN_ (-2147483647 -1) @@ -873,9 +827,6 @@ // X86_64:typedef int8_t int_fast8_t; // X86_64:typedef uint8_t uint_fast8_t; // -// X86_64:typedef int64_t intptr_t; -// X86_64:typedef uint64_t uintptr_t; -// // X86_64:typedef long int intmax_t; // X86_64:typedef long unsigned int uintmax_t; // @@ -919,9 +870,6 @@ // X86_64:INT_FAST64_MAX_ 9223372036854775807L // X86_64:UINT_FAST64_MAX_ 18446744073709551615UL // -// X86_64:INTPTR_MIN_ (-9223372036854775807L -1) -// X86_64:INTPTR_MAX_ 9223372036854775807L -// X86_64:UINTPTR_MAX_ 18446744073709551615UL // X86_64:PTRDIFF_MIN_ (-9223372036854775807L -1) // X86_64:PTRDIFF_MAX_ 9223372036854775807L // X86_64:SIZE_MAX_ 18446744073709551615UL @@ -930,10 +878,8 @@ // X86_64:INTMAX_MAX_ 9223372036854775807L // X86_64:UINTMAX_MAX_ 18446744073709551615UL // -// X86_64:SIG_ATOMIC_MIN_ (-2147483647 -1) -// X86_64:SIG_ATOMIC_MAX_ 2147483647 -// X86_64:WINT_MIN_ (-2147483647 -1) -// X86_64:WINT_MAX_ 2147483647 +// X86_64:WINT_MIN_ 0U +// X86_64:WINT_MAX_ 4294967295U // // X86_64:WCHAR_MAX_ 2147483647 // X86_64:WCHAR_MIN_ (-2147483647 -1) @@ -993,9 +939,6 @@ // XCORE:typedef int8_t int_fast8_t; // XCORE:typedef uint8_t uint_fast8_t; // -// XCORE:typedef int32_t intptr_t; -// XCORE:typedef uint32_t uintptr_t; -// // XCORE:typedef long long int intmax_t; // XCORE:typedef long long unsigned int uintmax_t; // @@ -1039,9 +982,6 @@ // XCORE:INT_FAST64_MAX_ 9223372036854775807LL // XCORE:UINT_FAST64_MAX_ 18446744073709551615ULL // -// XCORE:INTPTR_MIN_ (-2147483647 -1) -// XCORE:INTPTR_MAX_ 2147483647 -// XCORE:UINTPTR_MAX_ 4294967295U // XCORE:PTRDIFF_MIN_ (-2147483647 -1) // XCORE:PTRDIFF_MAX_ 2147483647 // XCORE:SIZE_MAX_ 4294967295U @@ -1050,10 +990,8 @@ // XCORE:INTMAX_MAX_ 9223372036854775807LL // XCORE:UINTMAX_MAX_ 18446744073709551615ULL // -// XCORE:SIG_ATOMIC_MIN_ (-2147483647 -1) -// XCORE:SIG_ATOMIC_MAX_ 2147483647 -// XCORE:WINT_MIN_ (-2147483647 -1) -// XCORE:WINT_MAX_ 2147483647 +// XCORE:WINT_MIN_ 0U +// XCORE:WINT_MAX_ 4294967295U // // XCORE:WCHAR_MAX_ 2147483647 // XCORE:WCHAR_MIN_ (-2147483647 -1) @@ -1077,9 +1015,9 @@ // the identifiers used in the operations (int, uint, _t, INT, UINT, _MIN, // _MAX, and _C(v)) are themselves macros. // -// RUN: %clang_cc1 -E -ffreestanding -U__UINTMAX_TYPE__ -U__INTMAX_TYPE__ -Dint=a -Duint=b -D_t=c -DINT=d -DUINT=e -D_MIN=f -D_MAX=g '-D_C(v)=h' -triple=i386-none-none %s | FileCheck -check-prefix JOIN %s -// JOIN:typedef int32_t intptr_t; -// JOIN:typedef uint32_t uintptr_t; +// RUN: %clang_cc1 -E -ffreestanding -U __INTPTR_TYPE__ -U__UINTMAX_TYPE__ -U__INTMAX_TYPE__ -Dint=a -Duint=b -D_t=c -DINT=d -DUINT=e -D_MIN=f -D_MAX=g '-D_C(v)=h' -triple=i386-none-none %s | FileCheck -check-prefix JOIN %s +// JOIN:typedef signed __INTPTR_TYPE__ intptr_t; +// JOIN:typedef unsigned __INTPTR_TYPE__ uintptr_t; // JOIN:typedef __INTMAX_TYPE__ intmax_t; // JOIN:typedef __UINTMAX_TYPE__ uintmax_t; // JOIN:INTPTR_MIN_ (-2147483647 -1) @@ -1091,10 +1029,8 @@ // JOIN:INTMAX_MIN_ (-9223372036854775807LL -1) // JOIN:INTMAX_MAX_ 9223372036854775807LL // JOIN:UINTMAX_MAX_ 18446744073709551615ULL -// JOIN:SIG_ATOMIC_MIN_ (-2147483647 -1) -// JOIN:SIG_ATOMIC_MAX_ 2147483647 -// JOIN:WINT_MIN_ (-2147483647 -1) -// JOIN:WINT_MAX_ 2147483647 +// JOIN:WINT_MIN_ 0U +// JOIN:WINT_MAX_ 4294967295U // JOIN:WCHAR_MAX_ 2147483647 // JOIN:WCHAR_MIN_ (-2147483647 -1) // JOIN:INTMAX_C_(0) 0LL