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()) {
77 }
else if (Triple.isXROS())
78 this->TLSSupported =
true;
80 this->MCountName =
"\01mcount";
85 return "__TEXT,__StaticInit,regular,pure_instructions";
97 llvm::VersionTuple MinVersion;
98 const llvm::Triple &
T = this->getTriple();
102 case llvm::Triple::Darwin:
103 case llvm::Triple::MacOSX:
104 MinVersion = llvm::VersionTuple(10U, 14U);
106 case llvm::Triple::IOS:
107 case llvm::Triple::TvOS:
108 MinVersion = llvm::VersionTuple(12U);
110 case llvm::Triple::WatchOS:
111 MinVersion = llvm::VersionTuple(5U);
113 case llvm::Triple::XROS:
114 MinVersion = llvm::VersionTuple(0);
121 if (
T.getOSVersion() < MinVersion)
127 bool IsSigned)
const final {
129 return BitWidth == 64
130 ? (IsSigned ? TargetInfo::SignedLongLong
131 : TargetInfo::UnsignedLongLong)
132 : TargetInfo::getLeastIntTypeByWidth(BitWidth, IsSigned);
141template <
typename Target>
148 Builder.defineMacro(
"__DragonFly__");
149 Builder.defineMacro(
"__DragonFly_cc_version",
"100001");
150 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
151 Builder.defineMacro(
"__tune_i386__");
153 if (this->HasFloat128)
154 Builder.defineMacro(
"__FLOAT128__");
160 switch (Triple.getArch()) {
162 case llvm::Triple::x86:
163 case llvm::Triple::x86_64:
164 this->HasFloat128 =
true;
165 this->MCountName =
".mcount";
171#ifndef FREEBSD_CC_VERSION
172#define FREEBSD_CC_VERSION 0U
176template <
typename Target>
183 unsigned Release = Triple.getOSMajorVersion();
188 CCVersion = Release * 100000U + 1U;
190 Builder.defineMacro(
"__FreeBSD__", Twine(Release));
191 Builder.defineMacro(
"__FreeBSD_cc_version", Twine(CCVersion));
192 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
194 if (this->HasFloat128)
195 Builder.defineMacro(
"__FLOAT128__");
206 Builder.defineMacro(
"__STDC_MB_MIGHT_NEQ_WC__",
"1");
212 switch (Triple.getArch()) {
213 case llvm::Triple::x86:
214 case llvm::Triple::x86_64:
215 this->HasFloat128 =
true;
218 this->MCountName =
".mcount";
220 case llvm::Triple::mips:
221 case llvm::Triple::mipsel:
222 case llvm::Triple::ppc:
223 case llvm::Triple::ppcle:
224 case llvm::Triple::ppc64:
225 case llvm::Triple::ppc64le:
226 this->MCountName =
"_mcount";
228 case llvm::Triple::arm:
229 this->MCountName =
"__mcount";
231 case llvm::Triple::riscv32:
232 case llvm::Triple::riscv64:
239template <
typename Target>
247 Builder.defineMacro(
"__FreeBSD_kernel__");
248 Builder.defineMacro(
"__GLIBC__");
249 if (Opts.POSIXThreads)
250 Builder.defineMacro(
"_REENTRANT");
252 Builder.defineMacro(
"_GNU_SOURCE");
260template <
typename Target>
266 Builder.defineMacro(
"__HAIKU__");
268 if (this->HasFloat128)
269 Builder.defineMacro(
"__FLOAT128__");
275 this->SizeType = TargetInfo::UnsignedLong;
276 this->IntPtrType = TargetInfo::SignedLong;
277 this->PtrDiffType = TargetInfo::SignedLong;
278 this->ProcessIDType = TargetInfo::SignedLong;
279 switch (Triple.getArch()) {
282 case llvm::Triple::x86:
283 case llvm::Triple::x86_64:
284 this->HasFloat128 =
true;
291template <
typename Target>
298 Builder.defineMacro(
"__GNU__");
299 Builder.defineMacro(
"__gnu_hurd__");
300 Builder.defineMacro(
"__MACH__");
301 Builder.defineMacro(
"__GLIBC__");
302 if (Opts.POSIXThreads)
303 Builder.defineMacro(
"_REENTRANT");
305 Builder.defineMacro(
"_GNU_SOURCE");
312template <
typename Target>
320 if (Triple.isAndroid()) {
321 Builder.defineMacro(
"__ANDROID__",
"1");
322 this->PlatformName =
"android";
323 this->PlatformMinVersion = Triple.getEnvironmentVersion();
324 const unsigned Maj = this->PlatformMinVersion.getMajor();
326 Builder.defineMacro(
"__ANDROID_MIN_SDK_VERSION__", Twine(Maj));
329 Builder.defineMacro(
"__ANDROID_API__",
"__ANDROID_MIN_SDK_VERSION__");
332 Builder.defineMacro(
"__gnu_linux__");
334 if (Opts.POSIXThreads)
335 Builder.defineMacro(
"_REENTRANT");
337 Builder.defineMacro(
"_GNU_SOURCE");
338 if (this->HasFloat128)
339 Builder.defineMacro(
"__FLOAT128__");
345 this->WIntType = TargetInfo::UnsignedInt;
347 switch (Triple.getArch()) {
350 case llvm::Triple::mips:
351 case llvm::Triple::mipsel:
352 case llvm::Triple::mips64:
353 case llvm::Triple::mips64el:
354 case llvm::Triple::ppc:
355 case llvm::Triple::ppcle:
356 case llvm::Triple::ppc64:
357 case llvm::Triple::ppc64le:
358 this->MCountName =
"_mcount";
360 case llvm::Triple::x86:
361 case llvm::Triple::x86_64:
362 this->HasFloat128 =
true;
368 return ".text.startup";
373template <
typename Target>
379 Builder.defineMacro(
"__NetBSD__");
380 Builder.defineMacro(
"__unix__");
381 if (Opts.POSIXThreads)
382 Builder.defineMacro(
"_REENTRANT");
383 if (this->HasFloat128)
384 Builder.defineMacro(
"__FLOAT128__");
390 this->MCountName =
"__mcount";
391 switch (Triple.getArch()) {
394 case llvm::Triple::x86:
395 case llvm::Triple::x86_64:
396 this->HasFloat128 =
true;
403template <
typename Target>
410 Builder.defineMacro(
"__OpenBSD__");
412 if (Opts.POSIXThreads)
413 Builder.defineMacro(
"_REENTRANT");
414 if (this->HasFloat128)
415 Builder.defineMacro(
"__FLOAT128__");
418 Builder.defineMacro(
"__STDC_NO_THREADS__");
424 this->WCharType = this->WIntType = this->SignedInt;
425 this->IntMaxType = TargetInfo::SignedLongLong;
426 this->Int64Type = TargetInfo::SignedLongLong;
427 switch (Triple.getArch()) {
428 case llvm::Triple::x86:
429 case llvm::Triple::x86_64:
430 this->HasFloat128 =
true;
433 this->MCountName =
"__mcount";
435 case llvm::Triple::mips64:
436 case llvm::Triple::mips64el:
437 case llvm::Triple::ppc:
438 case llvm::Triple::ppc64:
439 case llvm::Triple::ppc64le:
440 case llvm::Triple::sparcv9:
441 this->MCountName =
"_mcount";
443 case llvm::Triple::riscv32:
444 case llvm::Triple::riscv64:
451template <
typename Target>
457 Builder.defineMacro(
"__PPU__");
458 Builder.defineMacro(
"__CELLOS_LV2__");
459 Builder.defineMacro(
"__LP32__");
460 Builder.defineMacro(
"_ARCH_PPC64");
461 Builder.defineMacro(
"__powerpc64__");
467 this->LongWidth = this->LongAlign = 32;
468 this->PointerWidth = this->PointerAlign = 32;
469 this->IntMaxType = TargetInfo::SignedLongLong;
470 this->Int64Type = TargetInfo::SignedLongLong;
471 this->SizeType = TargetInfo::UnsignedInt;
472 this->resetDataLayout(
"E-m:e-p:32:32-Fi64-i64:64-n32:64");
477template <
typename Target>
482 Builder.defineMacro(
"__FreeBSD__",
"9");
483 Builder.defineMacro(
"__FreeBSD_cc_version",
"900001");
484 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
486 Builder.defineMacro(
"__SCE__");
487 Builder.defineMacro(
"__STDC_NO_COMPLEX__");
488 Builder.defineMacro(
"__STDC_NO_THREADS__");
494 this->WCharType = TargetInfo::UnsignedShort;
498 this->MaxTLSAlign = 256;
502 this->UseExplicitBitFieldAlignment =
false;
504 this->MCountName =
".mcount";
505 this->NewAlign = 256;
506 this->SuitableAlign = 256;
511 return (CC ==
CC_C) ? TargetInfo::CCCR_OK : TargetInfo::CCCR_Error;
520template <
typename Target>
528 Builder.defineMacro(
"__ORBIS__");
536template <
typename Target>
544 Builder.defineMacro(
"__PROSPERO__");
552template <
typename Target>
559 Builder.defineMacro(
"__rtems__");
561 Builder.defineMacro(
"_GNU_SOURCE");
567 switch (Triple.getArch()) {
569 case llvm::Triple::x86:
572 case llvm::Triple::mips:
573 case llvm::Triple::mipsel:
574 case llvm::Triple::ppc:
575 case llvm::Triple::ppc64:
576 case llvm::Triple::ppc64le:
579 case llvm::Triple::arm:
587template <
typename Target>
594 Builder.defineMacro(
"__svr4__");
595 Builder.defineMacro(
"__SVR4");
601 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
603 Builder.defineMacro(
"_XOPEN_SOURCE",
"500");
604 if (Opts.CPlusPlus) {
605 Builder.defineMacro(
"__C99FEATURES__");
606 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
609 Builder.defineMacro(
"_LARGEFILE_SOURCE");
610 Builder.defineMacro(
"_LARGEFILE64_SOURCE");
611 Builder.defineMacro(
"__EXTENSIONS__");
612 if (Opts.POSIXThreads)
613 Builder.defineMacro(
"_REENTRANT");
614 if (this->HasFloat128)
615 Builder.defineMacro(
"__FLOAT128__");
621 if (this->PointerWidth == 64) {
622 this->WCharType = this->WIntType = this->SignedInt;
624 this->WCharType = this->WIntType = this->SignedLong;
626 switch (Triple.getArch()) {
629 case llvm::Triple::x86:
630 case llvm::Triple::x86_64:
631 this->HasFloat128 =
true;
638template <
typename Target>
644 Builder.defineMacro(
"_IBMR2");
645 Builder.defineMacro(
"_POWER");
646 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
648 Builder.defineMacro(
"_AIX");
649 Builder.defineMacro(
"__TOS_AIX__");
650 Builder.defineMacro(
"__HOS_AIX__");
653 Builder.defineMacro(
"__STDC_NO_ATOMICS__");
654 Builder.defineMacro(
"__STDC_NO_THREADS__");
657 if (Opts.EnableAIXExtendedAltivecABI)
658 Builder.defineMacro(
"__EXTABI__");
660 VersionTuple OsVersion = Triple.getOSVersion();
664 if (OsVersion >= VersionTuple(3, 2))
665 Builder.defineMacro(
"_AIX32");
666 if (OsVersion >= VersionTuple(4, 1))
667 Builder.defineMacro(
"_AIX41");
668 if (OsVersion >= VersionTuple(4, 3))
669 Builder.defineMacro(
"_AIX43");
670 if (OsVersion >= VersionTuple(5, 0))
671 Builder.defineMacro(
"_AIX50");
672 if (OsVersion >= VersionTuple(5, 1))
673 Builder.defineMacro(
"_AIX51");
674 if (OsVersion >= VersionTuple(5, 2))
675 Builder.defineMacro(
"_AIX52");
676 if (OsVersion >= VersionTuple(5, 3))
677 Builder.defineMacro(
"_AIX53");
678 if (OsVersion >= VersionTuple(6, 1))
679 Builder.defineMacro(
"_AIX61");
680 if (OsVersion >= VersionTuple(7, 1))
681 Builder.defineMacro(
"_AIX71");
682 if (OsVersion >= VersionTuple(7, 2))
683 Builder.defineMacro(
"_AIX72");
684 if (OsVersion >= VersionTuple(7, 3))
685 Builder.defineMacro(
"_AIX73");
688 Builder.defineMacro(
"_LONG_LONG");
690 if (Opts.POSIXThreads) {
691 Builder.defineMacro(
"_THREAD_SAFE");
694 if (this->PointerWidth == 64) {
695 Builder.defineMacro(
"__64BIT__");
700 if (Opts.CPlusPlus && Opts.WChar) {
701 Builder.defineMacro(
"_WCHAR_T");
708 this->MCountName =
"__mcount";
709 this->TheCXXABI.set(TargetCXXABI::XL);
711 if (this->PointerWidth == 64) {
712 this->WCharType = this->UnsignedInt;
714 this->WCharType = this->UnsignedShort;
716 this->UseZeroLengthBitfieldAlignment =
true;
732template <
typename Target>
738 Builder.defineMacro(
"_LONG_LONG");
739 Builder.defineMacro(
"__370__");
740 Builder.defineMacro(
"__BFP__");
742 Builder.defineMacro(
"__BOOL__");
743 Builder.defineMacro(
"__COMPILER_VER__",
"0x50000000");
744 Builder.defineMacro(
"__LONGNAME__");
745 Builder.defineMacro(
"__MVS__");
746 Builder.defineMacro(
"__THW_370__");
747 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
748 Builder.defineMacro(
"__TOS_390__");
749 Builder.defineMacro(
"__TOS_MVS__");
750 Builder.defineMacro(
"__XPLINK__");
752 if (this->PointerWidth == 64)
753 Builder.defineMacro(
"__64BIT__");
755 if (Opts.CPlusPlus && Opts.WChar) {
758 Builder.defineMacro(
"__wchar_t");
761 this->PlatformName = llvm::Triple::getOSTypeName(Triple.getOS());
767 this->WCharType = TargetInfo::UnsignedInt;
768 this->MaxAlignedAttribute = 128;
769 this->UseBitFieldTypeAlignment =
false;
770 this->UseZeroLengthBitfieldAlignment =
true;
771 this->UseLeadingZeroLengthBitfield =
false;
772 this->ZeroLengthBitfieldBoundary = 32;
773 this->TheCXXABI.set(TargetCXXABI::XL);
785template <
typename Target>
796 this->WCharType = TargetInfo::UnsignedShort;
797 this->WIntType = TargetInfo::UnsignedShort;
801template <
typename Target>
806 if (Opts.POSIXThreads)
807 Builder.defineMacro(
"_REENTRANT");
809 Builder.defineMacro(
"_GNU_SOURCE");
812 Builder.defineMacro(
"__native_client__");
818 this->LongAlign = 32;
819 this->LongWidth = 32;
820 this->PointerAlign = 32;
821 this->PointerWidth = 32;
822 this->IntMaxType = TargetInfo::SignedLongLong;
823 this->Int64Type = TargetInfo::SignedLongLong;
824 this->DoubleAlign = 64;
825 this->LongDoubleWidth = 64;
826 this->LongDoubleAlign = 64;
827 this->LongLongWidth = 64;
828 this->LongLongAlign = 64;
829 this->SizeType = TargetInfo::UnsignedInt;
830 this->PtrDiffType = TargetInfo::SignedInt;
831 this->IntPtrType = TargetInfo::SignedInt;
833 this->LongDoubleFormat = &llvm::APFloat::IEEEdouble();
834 if (Triple.getArch() == llvm::Triple::arm) {
836 }
else if (Triple.getArch() == llvm::Triple::x86) {
837 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
838 "i64:64-i128:128-n8:16:32-S128");
839 }
else if (Triple.getArch() == llvm::Triple::x86_64) {
840 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
841 "i64:64-i128:128-n8:16:32:64-S128");
842 }
else if (Triple.getArch() == llvm::Triple::mipsel) {
849template <
typename Target>
854 Builder.defineMacro(
"__Fuchsia__");
855 if (Opts.POSIXThreads)
856 Builder.defineMacro(
"_REENTRANT");
859 Builder.defineMacro(
"_GNU_SOURCE");
860 Builder.defineMacro(
"__Fuchsia_API_level__", Twine(Opts.FuchsiaAPILevel));
861 this->PlatformName =
"fuchsia";
862 this->PlatformMinVersion = VersionTuple(Opts.FuchsiaAPILevel);
868 this->WIntType = TargetInfo::UnsignedInt;
869 this->MCountName =
"__mcount";
870 this->TheCXXABI.set(TargetCXXABI::Fuchsia);
875template <
typename Target>
882 if (Opts.POSIXThreads)
883 Builder.defineMacro(
"_REENTRANT");
886 Builder.defineMacro(
"_GNU_SOURCE");
888 Builder.defineMacro(
"__FLOAT128__");
895 this->MCountName =
"__mcount";
896 this->TheCXXABI.set(TargetCXXABI::WebAssembly);
897 this->HasFloat128 =
true;
902template <
typename Target>
905 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
908 Builder.defineMacro(
"__wasi__");
916template <
typename Target>
919 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
923 Builder.defineMacro(
"__EMSCRIPTEN__");
924 if (Opts.POSIXThreads)
925 Builder.defineMacro(
"__EMSCRIPTEN_PTHREADS__");
937 this->LongDoubleAlign = 64;
942template <
typename Target>
951 if (Triple.isOHOSFamily()) {
952 Builder.defineMacro(
"__OHOS_FAMILY__",
"1");
954 auto Version = Triple.getEnvironmentVersion();
955 this->PlatformName =
"ohos";
956 this->PlatformMinVersion = Version;
957 Builder.defineMacro(
"__OHOS_Major__", Twine(Version.getMajor()));
958 if (
auto Minor = Version.getMinor())
959 Builder.defineMacro(
"__OHOS_Minor__", Twine(*Minor));
960 if (
auto Subminor = Version.getSubminor())
961 Builder.defineMacro(
"__OHOS_Micro__", Twine(*Subminor));
964 if (Triple.isOpenHOS())
965 Builder.defineMacro(
"__OHOS__");
967 if (Triple.isOSLinux()) {
969 }
else if (Triple.isOSLiteOS()) {
970 Builder.defineMacro(
"__LITEOS__");
973 if (Opts.POSIXThreads)
974 Builder.defineMacro(
"_REENTRANT");
976 Builder.defineMacro(
"_GNU_SOURCE");
977 if (this->HasFloat128)
978 Builder.defineMacro(
"__FLOAT128__");
984 this->WIntType = TargetInfo::UnsignedInt;
986 switch (Triple.getArch()) {
989 case llvm::Triple::x86:
990 case llvm::Triple::x86_64:
991 this->HasFloat128 =
true;
997 return ".text.startup";
llvm::MachO::Target Target
#define FREEBSD_CC_VERSION
FPEvalMethodKind
Possible float expression evaluation method choices.
@ FEM_Double
Use the type double for fp arithmetic.
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
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)
The JSON file list parser is used to communicate input to InstallAPI.
const FunctionProtoType * T
CallingConv
CallingConv - Specifies the calling convention that a function uses.
IntType
===-— Target Data Type Query Methods ----------------------------—===//