12#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_OSTARGETS_H
13#define LLVM_CLANG_LIB_BASIC_TARGETS_OSTARGETS_H
20template <
typename TgtInfo>
32 TgtInfo::getTargetDefines(Opts, Builder);
33 getOSDefines(Opts, TgtInfo::getTriple(), Builder);
38 const llvm::Triple &Triple, StringRef &PlatformName,
39 VersionTuple &PlatformMinVersion);
41template <
typename Target>
47 this->PlatformMinVersion);
55 this->TLSSupported =
false;
57 if (Triple.isMacOSX())
58 this->TLSSupported = !Triple.isMacOSXVersionLT(10, 7);
59 else if (Triple.isiOS()) {
62 if (Triple.isArch64Bit())
63 this->TLSSupported = !Triple.isOSVersionLT(8);
64 else if (Triple.isArch32Bit()) {
65 if (!Triple.isSimulatorEnvironment())
66 this->TLSSupported = !Triple.isOSVersionLT(9);
68 this->TLSSupported = !Triple.isOSVersionLT(10);
70 }
else if (Triple.isWatchOS()) {
71 if (!Triple.isSimulatorEnvironment())
72 this->TLSSupported = !Triple.isOSVersionLT(2);
74 this->TLSSupported = !Triple.isOSVersionLT(3);
75 }
else if (Triple.isDriverKit()) {
79 this->MCountName =
"\01mcount";
84 return "__TEXT,__StaticInit,regular,pure_instructions";
96 llvm::VersionTuple MinVersion;
97 const llvm::Triple &T = this->getTriple();
101 case llvm::Triple::Darwin:
102 case llvm::Triple::MacOSX:
103 MinVersion = llvm::VersionTuple(10U, 14U);
105 case llvm::Triple::IOS:
106 case llvm::Triple::TvOS:
107 MinVersion = llvm::VersionTuple(12U);
109 case llvm::Triple::WatchOS:
110 MinVersion = llvm::VersionTuple(5U);
117 if (T.getOSVersion() < MinVersion)
123 bool IsSigned)
const final {
125 return BitWidth == 64
126 ? (IsSigned ? TargetInfo::SignedLongLong
127 : TargetInfo::UnsignedLongLong)
128 : TargetInfo::getLeastIntTypeByWidth(BitWidth, IsSigned);
137template <
typename Target>
144 Builder.defineMacro(
"__DragonFly__");
145 Builder.defineMacro(
"__DragonFly_cc_version",
"100001");
146 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
147 Builder.defineMacro(
"__tune_i386__");
149 if (this->HasFloat128)
150 Builder.defineMacro(
"__FLOAT128__");
156 switch (Triple.getArch()) {
158 case llvm::Triple::x86:
159 case llvm::Triple::x86_64:
160 this->HasFloat128 =
true;
161 this->MCountName =
".mcount";
167#ifndef FREEBSD_CC_VERSION
168#define FREEBSD_CC_VERSION 0U
172template <
typename Target>
179 unsigned Release = Triple.getOSMajorVersion();
184 CCVersion = Release * 100000U + 1U;
186 Builder.defineMacro(
"__FreeBSD__", Twine(Release));
187 Builder.defineMacro(
"__FreeBSD_cc_version", Twine(CCVersion));
188 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
190 if (this->HasFloat128)
191 Builder.defineMacro(
"__FLOAT128__");
202 Builder.defineMacro(
"__STDC_MB_MIGHT_NEQ_WC__",
"1");
208 switch (Triple.getArch()) {
209 case llvm::Triple::x86:
210 case llvm::Triple::x86_64:
211 this->HasFloat128 =
true;
214 this->MCountName =
".mcount";
216 case llvm::Triple::mips:
217 case llvm::Triple::mipsel:
218 case llvm::Triple::ppc:
219 case llvm::Triple::ppcle:
220 case llvm::Triple::ppc64:
221 case llvm::Triple::ppc64le:
222 this->MCountName =
"_mcount";
224 case llvm::Triple::arm:
225 this->MCountName =
"__mcount";
227 case llvm::Triple::riscv32:
228 case llvm::Triple::riscv64:
235template <
typename Target>
243 Builder.defineMacro(
"__FreeBSD_kernel__");
244 Builder.defineMacro(
"__GLIBC__");
245 if (Opts.POSIXThreads)
246 Builder.defineMacro(
"_REENTRANT");
248 Builder.defineMacro(
"_GNU_SOURCE");
256template <
typename Target>
262 Builder.defineMacro(
"__HAIKU__");
264 if (this->HasFloat128)
265 Builder.defineMacro(
"__FLOAT128__");
271 this->SizeType = TargetInfo::UnsignedLong;
272 this->IntPtrType = TargetInfo::SignedLong;
273 this->PtrDiffType = TargetInfo::SignedLong;
274 this->ProcessIDType = TargetInfo::SignedLong;
275 switch (Triple.getArch()) {
278 case llvm::Triple::x86:
279 case llvm::Triple::x86_64:
280 this->HasFloat128 =
true;
287template <
typename Target>
294 Builder.defineMacro(
"__GNU__");
295 Builder.defineMacro(
"__gnu_hurd__");
296 Builder.defineMacro(
"__MACH__");
297 Builder.defineMacro(
"__GLIBC__");
298 if (Opts.POSIXThreads)
299 Builder.defineMacro(
"_REENTRANT");
301 Builder.defineMacro(
"_GNU_SOURCE");
308template <
typename Target>
316 if (Triple.isAndroid()) {
317 Builder.defineMacro(
"__ANDROID__",
"1");
318 this->PlatformName =
"android";
319 this->PlatformMinVersion = Triple.getEnvironmentVersion();
320 const unsigned Maj = this->PlatformMinVersion.getMajor();
322 Builder.defineMacro(
"__ANDROID_MIN_SDK_VERSION__", Twine(Maj));
325 Builder.defineMacro(
"__ANDROID_API__",
"__ANDROID_MIN_SDK_VERSION__");
328 Builder.defineMacro(
"__gnu_linux__");
330 if (Opts.POSIXThreads)
331 Builder.defineMacro(
"_REENTRANT");
333 Builder.defineMacro(
"_GNU_SOURCE");
334 if (this->HasFloat128)
335 Builder.defineMacro(
"__FLOAT128__");
341 this->WIntType = TargetInfo::UnsignedInt;
343 switch (Triple.getArch()) {
346 case llvm::Triple::mips:
347 case llvm::Triple::mipsel:
348 case llvm::Triple::mips64:
349 case llvm::Triple::mips64el:
350 case llvm::Triple::ppc:
351 case llvm::Triple::ppcle:
352 case llvm::Triple::ppc64:
353 case llvm::Triple::ppc64le:
354 this->MCountName =
"_mcount";
356 case llvm::Triple::x86:
357 case llvm::Triple::x86_64:
358 this->HasFloat128 =
true;
364 return ".text.startup";
369template <
typename Target>
375 Builder.defineMacro(
"__NetBSD__");
376 Builder.defineMacro(
"__unix__");
377 if (Opts.POSIXThreads)
378 Builder.defineMacro(
"_REENTRANT");
379 if (this->HasFloat128)
380 Builder.defineMacro(
"__FLOAT128__");
386 this->MCountName =
"__mcount";
387 switch (Triple.getArch()) {
390 case llvm::Triple::x86:
391 case llvm::Triple::x86_64:
392 this->HasFloat128 =
true;
399template <
typename Target>
406 Builder.defineMacro(
"__OpenBSD__");
408 if (Opts.POSIXThreads)
409 Builder.defineMacro(
"_REENTRANT");
410 if (this->HasFloat128)
411 Builder.defineMacro(
"__FLOAT128__");
414 Builder.defineMacro(
"__STDC_NO_THREADS__");
420 this->WCharType = this->WIntType = this->SignedInt;
421 this->IntMaxType = TargetInfo::SignedLongLong;
422 this->Int64Type = TargetInfo::SignedLongLong;
423 switch (Triple.getArch()) {
424 case llvm::Triple::x86:
425 case llvm::Triple::x86_64:
426 this->HasFloat128 =
true;
429 this->MCountName =
"__mcount";
431 case llvm::Triple::mips64:
432 case llvm::Triple::mips64el:
433 case llvm::Triple::ppc:
434 case llvm::Triple::ppc64:
435 case llvm::Triple::ppc64le:
436 case llvm::Triple::sparcv9:
437 this->MCountName =
"_mcount";
439 case llvm::Triple::riscv32:
440 case llvm::Triple::riscv64:
447template <
typename Target>
453 Builder.defineMacro(
"__PPU__");
454 Builder.defineMacro(
"__CELLOS_LV2__");
455 Builder.defineMacro(
"__LP32__");
456 Builder.defineMacro(
"_ARCH_PPC64");
457 Builder.defineMacro(
"__powerpc64__");
463 this->LongWidth = this->LongAlign = 32;
464 this->PointerWidth = this->PointerAlign = 32;
465 this->IntMaxType = TargetInfo::SignedLongLong;
466 this->Int64Type = TargetInfo::SignedLongLong;
467 this->SizeType = TargetInfo::UnsignedInt;
468 this->resetDataLayout(
"E-m:e-p:32:32-Fi64-i64:64-n32:64");
473template <
typename Target>
478 Builder.defineMacro(
"__FreeBSD__",
"9");
479 Builder.defineMacro(
"__FreeBSD_cc_version",
"900001");
480 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
482 Builder.defineMacro(
"__SCE__");
483 Builder.defineMacro(
"__STDC_NO_COMPLEX__");
484 Builder.defineMacro(
"__STDC_NO_THREADS__");
490 this->WCharType = TargetInfo::UnsignedShort;
494 this->MaxTLSAlign = 256;
498 this->UseExplicitBitFieldAlignment =
false;
500 this->MCountName =
".mcount";
501 this->NewAlign = 256;
502 this->SuitableAlign = 256;
507 return (CC ==
CC_C) ? TargetInfo::CCCR_OK : TargetInfo::CCCR_Error;
516template <
typename Target>
524 Builder.defineMacro(
"__ORBIS__");
532template <
typename Target>
540 Builder.defineMacro(
"__PROSPERO__");
548template <
typename Target>
555 Builder.defineMacro(
"__rtems__");
557 Builder.defineMacro(
"_GNU_SOURCE");
563 switch (Triple.getArch()) {
565 case llvm::Triple::x86:
568 case llvm::Triple::mips:
569 case llvm::Triple::mipsel:
570 case llvm::Triple::ppc:
571 case llvm::Triple::ppc64:
572 case llvm::Triple::ppc64le:
575 case llvm::Triple::arm:
583template <
typename Target>
590 Builder.defineMacro(
"__svr4__");
591 Builder.defineMacro(
"__SVR4");
597 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
599 Builder.defineMacro(
"_XOPEN_SOURCE",
"500");
600 if (Opts.CPlusPlus) {
601 Builder.defineMacro(
"__C99FEATURES__");
602 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
605 Builder.defineMacro(
"_LARGEFILE_SOURCE");
606 Builder.defineMacro(
"_LARGEFILE64_SOURCE");
607 Builder.defineMacro(
"__EXTENSIONS__");
608 if (Opts.POSIXThreads)
609 Builder.defineMacro(
"_REENTRANT");
610 if (this->HasFloat128)
611 Builder.defineMacro(
"__FLOAT128__");
617 if (this->PointerWidth == 64) {
618 this->WCharType = this->WIntType = this->SignedInt;
620 this->WCharType = this->WIntType = this->SignedLong;
622 switch (Triple.getArch()) {
625 case llvm::Triple::x86:
626 case llvm::Triple::x86_64:
627 this->HasFloat128 =
true;
634template <
typename Target>
640 Builder.defineMacro(
"_IBMR2");
641 Builder.defineMacro(
"_POWER");
642 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
644 Builder.defineMacro(
"_AIX");
645 Builder.defineMacro(
"__TOS_AIX__");
646 Builder.defineMacro(
"__HOS_AIX__");
649 Builder.defineMacro(
"__STDC_NO_ATOMICS__");
650 Builder.defineMacro(
"__STDC_NO_THREADS__");
653 if (Opts.EnableAIXExtendedAltivecABI)
654 Builder.defineMacro(
"__EXTABI__");
656 VersionTuple OsVersion = Triple.getOSVersion();
660 if (OsVersion >= VersionTuple(3, 2))
661 Builder.defineMacro(
"_AIX32");
662 if (OsVersion >= VersionTuple(4, 1))
663 Builder.defineMacro(
"_AIX41");
664 if (OsVersion >= VersionTuple(4, 3))
665 Builder.defineMacro(
"_AIX43");
666 if (OsVersion >= VersionTuple(5, 0))
667 Builder.defineMacro(
"_AIX50");
668 if (OsVersion >= VersionTuple(5, 1))
669 Builder.defineMacro(
"_AIX51");
670 if (OsVersion >= VersionTuple(5, 2))
671 Builder.defineMacro(
"_AIX52");
672 if (OsVersion >= VersionTuple(5, 3))
673 Builder.defineMacro(
"_AIX53");
674 if (OsVersion >= VersionTuple(6, 1))
675 Builder.defineMacro(
"_AIX61");
676 if (OsVersion >= VersionTuple(7, 1))
677 Builder.defineMacro(
"_AIX71");
678 if (OsVersion >= VersionTuple(7, 2))
679 Builder.defineMacro(
"_AIX72");
680 if (OsVersion >= VersionTuple(7, 3))
681 Builder.defineMacro(
"_AIX73");
684 Builder.defineMacro(
"_LONG_LONG");
686 if (Opts.POSIXThreads) {
687 Builder.defineMacro(
"_THREAD_SAFE");
690 if (this->PointerWidth == 64) {
691 Builder.defineMacro(
"__64BIT__");
696 if (Opts.CPlusPlus && Opts.WChar) {
697 Builder.defineMacro(
"_WCHAR_T");
704 this->MCountName =
"__mcount";
705 this->TheCXXABI.set(TargetCXXABI::XL);
707 if (this->PointerWidth == 64) {
708 this->WCharType = this->UnsignedInt;
710 this->WCharType = this->UnsignedShort;
712 this->UseZeroLengthBitfieldAlignment =
true;
728template <
typename Target>
734 Builder.defineMacro(
"_LONG_LONG");
735 Builder.defineMacro(
"__370__");
736 Builder.defineMacro(
"__BFP__");
738 Builder.defineMacro(
"__BOOL__");
739 Builder.defineMacro(
"__COMPILER_VER__",
"0x50000000");
740 Builder.defineMacro(
"__LONGNAME__");
741 Builder.defineMacro(
"__MVS__");
742 Builder.defineMacro(
"__THW_370__");
743 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
744 Builder.defineMacro(
"__TOS_390__");
745 Builder.defineMacro(
"__TOS_MVS__");
746 Builder.defineMacro(
"__XPLINK__");
748 if (this->PointerWidth == 64)
749 Builder.defineMacro(
"__64BIT__");
751 if (Opts.CPlusPlus && Opts.WChar) {
754 Builder.defineMacro(
"__wchar_t");
757 this->PlatformName = llvm::Triple::getOSTypeName(Triple.getOS());
763 this->WCharType = TargetInfo::UnsignedInt;
764 this->MaxAlignedAttribute = 128;
765 this->UseBitFieldTypeAlignment =
false;
766 this->UseZeroLengthBitfieldAlignment =
true;
767 this->UseLeadingZeroLengthBitfield =
false;
768 this->ZeroLengthBitfieldBoundary = 32;
769 this->TheCXXABI.set(TargetCXXABI::XL);
781template <
typename Target>
792 this->WCharType = TargetInfo::UnsignedShort;
793 this->WIntType = TargetInfo::UnsignedShort;
797template <
typename Target>
802 if (Opts.POSIXThreads)
803 Builder.defineMacro(
"_REENTRANT");
805 Builder.defineMacro(
"_GNU_SOURCE");
808 Builder.defineMacro(
"__native_client__");
814 this->LongAlign = 32;
815 this->LongWidth = 32;
816 this->PointerAlign = 32;
817 this->PointerWidth = 32;
818 this->IntMaxType = TargetInfo::SignedLongLong;
819 this->Int64Type = TargetInfo::SignedLongLong;
820 this->DoubleAlign = 64;
821 this->LongDoubleWidth = 64;
822 this->LongDoubleAlign = 64;
823 this->LongLongWidth = 64;
824 this->LongLongAlign = 64;
825 this->SizeType = TargetInfo::UnsignedInt;
826 this->PtrDiffType = TargetInfo::SignedInt;
827 this->IntPtrType = TargetInfo::SignedInt;
829 this->LongDoubleFormat = &llvm::APFloat::IEEEdouble();
830 if (Triple.getArch() == llvm::Triple::arm) {
832 }
else if (Triple.getArch() == llvm::Triple::x86) {
833 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
834 "i64:64-i128:128-n8:16:32-S128");
835 }
else if (Triple.getArch() == llvm::Triple::x86_64) {
836 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
837 "i64:64-i128:128-n8:16:32:64-S128");
838 }
else if (Triple.getArch() == llvm::Triple::mipsel) {
841 assert(Triple.getArch() == llvm::Triple::le32);
842 this->resetDataLayout(
"e-p:32:32-i64:64");
848template <
typename Target>
853 Builder.defineMacro(
"__Fuchsia__");
854 if (Opts.POSIXThreads)
855 Builder.defineMacro(
"_REENTRANT");
858 Builder.defineMacro(
"_GNU_SOURCE");
859 Builder.defineMacro(
"__Fuchsia_API_level__", Twine(Opts.FuchsiaAPILevel));
860 this->PlatformName =
"fuchsia";
861 this->PlatformMinVersion = VersionTuple(Opts.FuchsiaAPILevel);
867 this->MCountName =
"__mcount";
868 this->TheCXXABI.set(TargetCXXABI::Fuchsia);
873template <
typename Target>
880 if (Opts.POSIXThreads)
881 Builder.defineMacro(
"_REENTRANT");
884 Builder.defineMacro(
"_GNU_SOURCE");
886 Builder.defineMacro(
"__FLOAT128__");
893 this->MCountName =
"__mcount";
894 this->TheCXXABI.set(TargetCXXABI::WebAssembly);
895 this->HasFloat128 =
true;
900template <
typename Target>
903 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
906 Builder.defineMacro(
"__wasi__");
914template <
typename Target>
917 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
921 Builder.defineMacro(
"__EMSCRIPTEN__");
922 if (Opts.POSIXThreads)
923 Builder.defineMacro(
"__EMSCRIPTEN_PTHREADS__");
935 this->LongDoubleAlign = 64;
940template <
typename Target>
949 if (Triple.isOHOSFamily()) {
950 Builder.defineMacro(
"__OHOS_FAMILY__",
"1");
952 auto Version = Triple.getEnvironmentVersion();
953 this->PlatformName =
"ohos";
954 this->PlatformMinVersion = Version;
955 Builder.defineMacro(
"__OHOS_Major__", Twine(Version.getMajor()));
956 if (
auto Minor = Version.getMinor())
957 Builder.defineMacro(
"__OHOS_Minor__", Twine(*Minor));
958 if (
auto Subminor = Version.getSubminor())
959 Builder.defineMacro(
"__OHOS_Micro__", Twine(*Subminor));
962 if (Triple.isOpenHOS())
963 Builder.defineMacro(
"__OHOS__");
965 if (Triple.isOSLinux()) {
967 }
else if (Triple.isOSLiteOS()) {
968 Builder.defineMacro(
"__LITEOS__");
971 if (Opts.POSIXThreads)
972 Builder.defineMacro(
"_REENTRANT");
974 Builder.defineMacro(
"_GNU_SOURCE");
975 if (this->HasFloat128)
976 Builder.defineMacro(
"__FLOAT128__");
982 this->WIntType = TargetInfo::UnsignedInt;
984 switch (Triple.getArch()) {
987 case llvm::Triple::x86:
988 case llvm::Triple::x86_64:
989 this->HasFloat128 =
true;
995 return ".text.startup";
#define FREEBSD_CC_VERSION
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
FPEvalMethodKind
Possible float expression evaluation method choices.
@ FEM_Double
Use the type double for fp arithmetic.
Options for controlling the target.
AIXTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
bool defaultsToAIXPowerAlignment() const override
LangOptions::FPEvalMethodKind getFPEvalMethod() const override
bool areDefaultedSMFStillPOD(const LangOptions &) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
bool areDefaultedSMFStillPOD(const LangOptions &) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
unsigned getExnObjectAlignment() const override
TargetInfo::IntType getLeastIntTypeByWidth(unsigned BitWidth, bool IsSigned) const final
DarwinTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
bool hasProtectedVisibility() const override
Darwin does not support protected visibility.
const char * getStaticInitSectionSpecifier() const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
DragonFlyBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
EmscriptenTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
FreeBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
FuchsiaTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
HaikuTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
LinuxTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
const char * getStaticInitSectionSpecifier() const override
NaClTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
NetBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
const char * getStaticInitSectionSpecifier() const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
OHOSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
virtual void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const =0
void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override
OSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
OpenBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
PS3PPUTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
bool areDefaultedSMFStillPOD(const LangOptions &) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
TargetInfo::CallingConvCheckResult checkCallingConvention(CallingConv CC) const override
PSOSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
RTEMSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
SolarisTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
WebAssemblyOSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
WindowsTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
bool areDefaultedSMFStillPOD(const LangOptions &) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
ZOSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void addWindowsDefines(const llvm::Triple &Triple, const LangOptions &Opts, MacroBuilder &Builder)
void DefineStd(MacroBuilder &Builder, StringRef MacroName, const LangOptions &Opts)
DefineStd - Define a macro name and standard variants.
void getDarwinDefines(MacroBuilder &Builder, const LangOptions &Opts, const llvm::Triple &Triple, StringRef &PlatformName, VersionTuple &PlatformMinVersion)
CallingConv
CallingConv - Specifies the calling convention that a function uses.
IntType
===-— Target Data Type Query Methods ----------------------------—===//