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);
41 const llvm::Triple &Triple, StringRef &PlatformName,
42 VersionTuple &PlatformMinVersion);
44template <
typename Target>
58 return "__TEXT,__StaticInit,regular,pure_instructions";
67template <
typename Target>
74 this->PlatformMinVersion);
82 this->TLSSupported =
false;
84 if (Triple.isMacOSX())
85 this->TLSSupported = !Triple.isMacOSXVersionLT(10, 7);
86 else if (Triple.isiOS()) {
89 if (Triple.isArch64Bit())
90 this->TLSSupported = !Triple.isOSVersionLT(8);
91 else if (Triple.isArch32Bit()) {
92 if (!Triple.isSimulatorEnvironment())
93 this->TLSSupported = !Triple.isOSVersionLT(9);
95 this->TLSSupported = !Triple.isOSVersionLT(10);
97 }
else if (Triple.isWatchOS()) {
98 if (!Triple.isSimulatorEnvironment())
99 this->TLSSupported = !Triple.isOSVersionLT(2);
101 this->TLSSupported = !Triple.isOSVersionLT(3);
102 }
else if (Triple.isDriverKit()) {
104 }
else if (Triple.isXROS())
105 this->TLSSupported =
true;
107 this->MCountName =
"\01mcount";
119 llvm::VersionTuple MinVersion;
120 const llvm::Triple &
T = this->getTriple();
124 case llvm::Triple::Darwin:
125 case llvm::Triple::MacOSX:
126 MinVersion = llvm::VersionTuple(10U, 14U);
128 case llvm::Triple::IOS:
129 case llvm::Triple::TvOS:
130 MinVersion = llvm::VersionTuple(12U);
132 case llvm::Triple::WatchOS:
133 MinVersion = llvm::VersionTuple(5U);
135 case llvm::Triple::XROS:
136 MinVersion = llvm::VersionTuple(0);
143 if (
T.getOSVersion() < MinVersion)
149 bool IsSigned)
const final {
151 return BitWidth == 64
152 ? (IsSigned ? TargetInfo::SignedLongLong
153 : TargetInfo::UnsignedLongLong)
154 : TargetInfo::getLeastIntTypeByWidth(BitWidth, IsSigned);
163template <
typename Target>
170 Builder.defineMacro(
"__DragonFly__");
171 Builder.defineMacro(
"__DragonFly_cc_version",
"100001");
172 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
173 Builder.defineMacro(
"__tune_i386__");
175 if (this->HasFloat128)
176 Builder.defineMacro(
"__FLOAT128__");
179 Builder.defineMacro(
"__STDC_NO_THREADS__");
185 switch (Triple.getArch()) {
187 case llvm::Triple::x86:
188 case llvm::Triple::x86_64:
189 this->HasFloat128 =
true;
190 this->MCountName =
".mcount";
196#ifndef FREEBSD_CC_VERSION
197#define FREEBSD_CC_VERSION 0U
201template <
typename Target>
208 unsigned Release = Triple.getOSMajorVersion();
213 CCVersion = Release * 100000U + 1U;
215 Builder.defineMacro(
"__FreeBSD__", Twine(Release));
216 Builder.defineMacro(
"__FreeBSD_cc_version", Twine(CCVersion));
217 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
219 if (this->HasFloat128)
220 Builder.defineMacro(
"__FLOAT128__");
231 Builder.defineMacro(
"__STDC_MB_MIGHT_NEQ_WC__",
"1");
237 switch (Triple.getArch()) {
238 case llvm::Triple::x86:
239 case llvm::Triple::x86_64:
240 this->HasFloat128 =
true;
243 this->MCountName =
".mcount";
245 case llvm::Triple::mips:
246 case llvm::Triple::mipsel:
247 case llvm::Triple::ppc:
248 case llvm::Triple::ppcle:
249 case llvm::Triple::ppc64:
250 case llvm::Triple::ppc64le:
251 this->MCountName =
"_mcount";
253 case llvm::Triple::arm:
254 this->MCountName =
"__mcount";
256 case llvm::Triple::loongarch64:
257 case llvm::Triple::riscv64:
264template <
typename Target>
272 Builder.defineMacro(
"__FreeBSD_kernel__");
273 Builder.defineMacro(
"__GLIBC__");
274 if (Opts.POSIXThreads)
275 Builder.defineMacro(
"_REENTRANT");
277 Builder.defineMacro(
"_GNU_SOURCE");
285template <
typename Target>
291 Builder.defineMacro(
"__HAIKU__");
293 if (this->HasFloat128)
294 Builder.defineMacro(
"__FLOAT128__");
300 this->SizeType = TargetInfo::UnsignedLong;
301 this->IntPtrType = TargetInfo::SignedLong;
302 this->PtrDiffType = TargetInfo::SignedLong;
303 this->ProcessIDType = TargetInfo::SignedLong;
304 switch (Triple.getArch()) {
307 case llvm::Triple::x86:
308 case llvm::Triple::x86_64:
309 this->HasFloat128 =
true;
316template <
typename Target>
323 Builder.defineMacro(
"__GNU__");
324 Builder.defineMacro(
"__gnu_hurd__");
325 Builder.defineMacro(
"__MACH__");
326 Builder.defineMacro(
"__GLIBC__");
327 if (Opts.POSIXThreads)
328 Builder.defineMacro(
"_REENTRANT");
330 Builder.defineMacro(
"_GNU_SOURCE");
337template <
typename Target>
345 if (Triple.isAndroid()) {
346 Builder.defineMacro(
"__ANDROID__",
"1");
347 this->PlatformName =
"android";
348 this->PlatformMinVersion = Triple.getEnvironmentVersion();
349 const unsigned Maj = this->PlatformMinVersion.getMajor();
351 Builder.defineMacro(
"__ANDROID_MIN_SDK_VERSION__", Twine(Maj));
354 Builder.defineMacro(
"__ANDROID_API__",
"__ANDROID_MIN_SDK_VERSION__");
357 Builder.defineMacro(
"__gnu_linux__");
359 if (Opts.POSIXThreads)
360 Builder.defineMacro(
"_REENTRANT");
362 Builder.defineMacro(
"_GNU_SOURCE");
363 if (this->HasFloat128)
364 Builder.defineMacro(
"__FLOAT128__");
365 if (Triple.isTime64ABI()) {
366 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
367 Builder.defineMacro(
"_TIME_BITS",
"64");
374 this->WIntType = TargetInfo::UnsignedInt;
376 switch (Triple.getArch()) {
379 case llvm::Triple::mips:
380 case llvm::Triple::mipsel:
381 case llvm::Triple::mips64:
382 case llvm::Triple::mips64el:
383 case llvm::Triple::ppc:
384 case llvm::Triple::ppcle:
385 case llvm::Triple::ppc64:
386 case llvm::Triple::ppc64le:
387 this->MCountName =
"_mcount";
389 case llvm::Triple::x86:
390 case llvm::Triple::x86_64:
391 this->HasFloat128 =
true;
397 return ".text.startup";
402template <
typename Target>
408 Builder.defineMacro(
"__managarm__");
409 if (Opts.POSIXThreads)
410 Builder.defineMacro(
"_REENTRANT");
412 Builder.defineMacro(
"_GNU_SOURCE");
413 if (this->HasFloat128)
414 Builder.defineMacro(
"__FLOAT128__");
420 switch (Triple.getArch()) {
423 case llvm::Triple::x86:
424 case llvm::Triple::x86_64:
425 this->HasFloat128 =
true;
432template <
typename Target>
438 Builder.defineMacro(
"__NetBSD__");
439 Builder.defineMacro(
"__unix__");
440 if (Opts.POSIXThreads)
441 Builder.defineMacro(
"_REENTRANT");
442 if (this->HasFloat128)
443 Builder.defineMacro(
"__FLOAT128__");
449 this->MCountName =
"__mcount";
450 switch (Triple.getArch()) {
453 case llvm::Triple::x86:
454 case llvm::Triple::x86_64:
455 this->HasFloat128 =
true;
462template <
typename Target>
469 Builder.defineMacro(
"__OpenBSD__");
471 if (Opts.POSIXThreads)
472 Builder.defineMacro(
"_REENTRANT");
473 if (this->HasFloat128)
474 Builder.defineMacro(
"__FLOAT128__");
477 Builder.defineMacro(
"__STDC_NO_THREADS__");
483 this->WCharType = this->WIntType = this->SignedInt;
484 this->IntMaxType = TargetInfo::SignedLongLong;
485 this->Int64Type = TargetInfo::SignedLongLong;
486 switch (Triple.getArch()) {
487 case llvm::Triple::x86:
488 case llvm::Triple::x86_64:
489 this->HasFloat128 =
true;
492 this->MCountName =
"__mcount";
494 case llvm::Triple::mips64:
495 case llvm::Triple::mips64el:
496 case llvm::Triple::ppc:
497 case llvm::Triple::ppc64:
498 case llvm::Triple::ppc64le:
499 case llvm::Triple::sparcv9:
500 this->MCountName =
"_mcount";
502 case llvm::Triple::loongarch64:
503 case llvm::Triple::riscv64:
510template <
typename Target>
516 Builder.defineMacro(
"__PPU__");
517 Builder.defineMacro(
"__CELLOS_LV2__");
518 Builder.defineMacro(
"__LP32__");
519 Builder.defineMacro(
"_ARCH_PPC64");
520 Builder.defineMacro(
"__powerpc64__");
526 this->LongWidth = this->LongAlign = 32;
527 this->PointerWidth = this->PointerAlign = 32;
528 this->IntMaxType = TargetInfo::SignedLongLong;
529 this->Int64Type = TargetInfo::SignedLongLong;
530 this->SizeType = TargetInfo::UnsignedInt;
531 this->resetDataLayout(
"E-m:e-p:32:32-Fi64-i64:64-i128:128-n32:64");
536template <
typename Target>
541 Builder.defineMacro(
"__FreeBSD__",
"9");
542 Builder.defineMacro(
"__FreeBSD_cc_version",
"900001");
543 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
545 Builder.defineMacro(
"__SCE__");
546 Builder.defineMacro(
"__STDC_NO_COMPLEX__");
547 Builder.defineMacro(
"__STDC_NO_THREADS__");
553 this->WCharType = TargetInfo::UnsignedShort;
557 this->MaxTLSAlign = 256;
561 this->UseExplicitBitFieldAlignment =
false;
563 this->MCountName =
".mcount";
564 this->NewAlign = 256;
565 this->SuitableAlign = 256;
570 return (CC ==
CC_C) ? TargetInfo::CCCR_OK : TargetInfo::CCCR_Error;
579template <
typename Target>
587 Builder.defineMacro(
"__ORBIS__");
595template <
typename Target>
603 Builder.defineMacro(
"__PROSPERO__");
611template <
typename Target>
618 Builder.defineMacro(
"__rtems__");
620 Builder.defineMacro(
"_GNU_SOURCE");
626 switch (Triple.getArch()) {
628 case llvm::Triple::x86:
631 case llvm::Triple::mips:
632 case llvm::Triple::mipsel:
633 case llvm::Triple::ppc:
634 case llvm::Triple::ppc64:
635 case llvm::Triple::ppc64le:
638 case llvm::Triple::arm:
646template <
typename Target>
653 Builder.defineMacro(
"__svr4__");
654 Builder.defineMacro(
"__SVR4");
655 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
656 if (Opts.CPlusPlus) {
657 Builder.defineMacro(
"__C99FEATURES__");
658 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
661 Builder.defineMacro(
"_LARGEFILE_SOURCE");
662 Builder.defineMacro(
"_LARGEFILE64_SOURCE");
663 Builder.defineMacro(
"__EXTENSIONS__");
664 if (Opts.POSIXThreads)
665 Builder.defineMacro(
"_REENTRANT");
666 if (this->HasFloat128)
667 Builder.defineMacro(
"__FLOAT128__");
673 if (this->PointerWidth == 64) {
674 this->WCharType = this->WIntType = this->SignedInt;
676 this->WCharType = this->WIntType = this->SignedLong;
678 switch (Triple.getArch()) {
681 case llvm::Triple::x86:
682 case llvm::Triple::x86_64:
683 this->HasFloat128 =
true;
690template <
typename Target>
696 Builder.defineMacro(
"_IBMR2");
697 Builder.defineMacro(
"_POWER");
698 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
700 Builder.defineMacro(
"_AIX");
701 Builder.defineMacro(
"__TOS_AIX__");
702 Builder.defineMacro(
"__HOS_AIX__");
705 Builder.defineMacro(
"__STDC_NO_ATOMICS__");
706 Builder.defineMacro(
"__STDC_NO_THREADS__");
709 if (Opts.EnableAIXExtendedAltivecABI)
710 Builder.defineMacro(
"__EXTABI__");
712 VersionTuple OsVersion = Triple.getOSVersion();
716 if (OsVersion >= VersionTuple(3, 2))
717 Builder.defineMacro(
"_AIX32");
718 if (OsVersion >= VersionTuple(4, 1))
719 Builder.defineMacro(
"_AIX41");
720 if (OsVersion >= VersionTuple(4, 3))
721 Builder.defineMacro(
"_AIX43");
722 if (OsVersion >= VersionTuple(5, 0))
723 Builder.defineMacro(
"_AIX50");
724 if (OsVersion >= VersionTuple(5, 1))
725 Builder.defineMacro(
"_AIX51");
726 if (OsVersion >= VersionTuple(5, 2))
727 Builder.defineMacro(
"_AIX52");
728 if (OsVersion >= VersionTuple(5, 3))
729 Builder.defineMacro(
"_AIX53");
730 if (OsVersion >= VersionTuple(6, 1))
731 Builder.defineMacro(
"_AIX61");
732 if (OsVersion >= VersionTuple(7, 1))
733 Builder.defineMacro(
"_AIX71");
734 if (OsVersion >= VersionTuple(7, 2))
735 Builder.defineMacro(
"_AIX72");
736 if (OsVersion >= VersionTuple(7, 3))
737 Builder.defineMacro(
"_AIX73");
740 Builder.defineMacro(
"_LONG_LONG");
742 if (Opts.POSIXThreads) {
743 Builder.defineMacro(
"_THREAD_SAFE");
746 if (this->PointerWidth == 64) {
747 Builder.defineMacro(
"__64BIT__");
752 if (Opts.CPlusPlus && Opts.WChar) {
753 Builder.defineMacro(
"_WCHAR_T");
760 this->MCountName =
"__mcount";
761 this->TheCXXABI.set(TargetCXXABI::XL);
763 if (this->PointerWidth == 64) {
764 this->WCharType = this->UnsignedInt;
766 this->WCharType = this->UnsignedShort;
768 this->UseZeroLengthBitfieldAlignment =
true;
784template <
typename Target>
790 Builder.defineMacro(
"_LONG_LONG");
791 Builder.defineMacro(
"__370__");
792 Builder.defineMacro(
"__BFP__");
794 Builder.defineMacro(
"__BOOL__");
795 Builder.defineMacro(
"__COMPILER_VER__",
"0x50000000");
796 Builder.defineMacro(
"__LONGNAME__");
797 Builder.defineMacro(
"__MVS__");
798 Builder.defineMacro(
"__THW_370__");
799 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
800 Builder.defineMacro(
"__TOS_390__");
801 Builder.defineMacro(
"__TOS_MVS__");
802 Builder.defineMacro(
"__XPLINK__");
804 if (this->PointerWidth == 64)
805 Builder.defineMacro(
"__64BIT__");
807 if (Opts.CPlusPlus && Opts.WChar) {
810 Builder.defineMacro(
"__wchar_t");
813 this->PlatformName = llvm::Triple::getOSTypeName(Triple.getOS());
819 this->WCharType = TargetInfo::UnsignedInt;
820 this->MaxAlignedAttribute = 128;
821 this->UseBitFieldTypeAlignment =
false;
822 this->UseZeroLengthBitfieldAlignment =
true;
823 this->UseLeadingZeroLengthBitfield =
false;
824 this->ZeroLengthBitfieldBoundary = 32;
825 this->TheCXXABI.set(TargetCXXABI::XL);
834template <
typename Target>
839 Builder.defineMacro(
"__UEFI__");
845 this->WCharType = TargetInfo::UnsignedShort;
846 this->WIntType = TargetInfo::UnsignedShort;
847 this->UseMicrosoftManglingForC =
true;
855template <
typename Target>
866 this->WCharType = TargetInfo::UnsignedShort;
867 this->WIntType = TargetInfo::UnsignedShort;
868 this->UseMicrosoftManglingForC =
true;
873template <
typename Target>
878 Builder.defineMacro(
"__Fuchsia__");
879 if (Opts.POSIXThreads)
880 Builder.defineMacro(
"_REENTRANT");
883 Builder.defineMacro(
"_GNU_SOURCE");
884 Builder.defineMacro(
"__Fuchsia_API_level__", Twine(Opts.FuchsiaAPILevel));
885 this->PlatformName =
"fuchsia";
886 this->PlatformMinVersion = VersionTuple(Opts.FuchsiaAPILevel);
892 this->WIntType = TargetInfo::UnsignedInt;
893 this->MCountName =
"__mcount";
894 this->TheCXXABI.set(TargetCXXABI::Fuchsia);
899template <
typename Target>
906 if (Opts.POSIXThreads)
907 Builder.defineMacro(
"_REENTRANT");
910 Builder.defineMacro(
"_GNU_SOURCE");
912 Builder.defineMacro(
"__FLOAT128__");
919 this->MCountName =
"__mcount";
920 this->TheCXXABI.set(TargetCXXABI::WebAssembly);
921 this->HasFloat128 =
true;
926template <
typename Target>
929 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
932 Builder.defineMacro(
"__wasi__");
940template <
typename Target>
943 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
947 Builder.defineMacro(
"__EMSCRIPTEN__");
948 if (Opts.POSIXThreads)
949 Builder.defineMacro(
"__EMSCRIPTEN_PTHREADS__");
961 this->LongDoubleAlign = 64;
962 this->Float128Align = 64;
967template <
typename Target>
976 if (Triple.isOHOSFamily()) {
977 Builder.defineMacro(
"__OHOS_FAMILY__",
"1");
979 auto Version = Triple.getEnvironmentVersion();
980 this->PlatformName =
"ohos";
981 this->PlatformMinVersion = Version;
982 Builder.defineMacro(
"__OHOS_Major__", Twine(Version.getMajor()));
983 if (
auto Minor = Version.getMinor())
984 Builder.defineMacro(
"__OHOS_Minor__", Twine(*Minor));
985 if (
auto Subminor = Version.getSubminor())
986 Builder.defineMacro(
"__OHOS_Micro__", Twine(*Subminor));
989 if (Triple.isOpenHOS())
990 Builder.defineMacro(
"__OHOS__");
992 if (Triple.isOSLinux()) {
994 }
else if (Triple.isOSLiteOS()) {
995 Builder.defineMacro(
"__LITEOS__");
998 if (Opts.POSIXThreads)
999 Builder.defineMacro(
"_REENTRANT");
1001 Builder.defineMacro(
"_GNU_SOURCE");
1002 if (this->HasFloat128)
1003 Builder.defineMacro(
"__FLOAT128__");
1009 this->WIntType = TargetInfo::UnsignedInt;
1011 switch (Triple.getArch()) {
1014 case llvm::Triple::x86:
1015 case llvm::Triple::x86_64:
1016 this->HasFloat128 =
true;
1022 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
const char * getStaticInitSectionSpecifier() const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
AppleMachOTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
bool hasProtectedVisibility() const override
Apple Mach-O does not support protected visibility.
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)
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
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
ManagarmTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
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)
UEFITargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
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 getAppleMachODefines(MacroBuilder &Builder, const LangOptions &Opts, const llvm::Triple &Triple)
LLVM_LIBRARY_VISIBILITY void DefineStd(clang::MacroBuilder &Builder, llvm::StringRef MacroName, const clang::LangOptions &Opts)
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 ----------------------------—===//