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__");
182 switch (Triple.getArch()) {
184 case llvm::Triple::x86:
185 case llvm::Triple::x86_64:
186 this->HasFloat128 =
true;
187 this->MCountName =
".mcount";
193#ifndef FREEBSD_CC_VERSION
194#define FREEBSD_CC_VERSION 0U
198template <
typename Target>
205 unsigned Release = Triple.getOSMajorVersion();
210 CCVersion = Release * 100000U + 1U;
212 Builder.defineMacro(
"__FreeBSD__", Twine(Release));
213 Builder.defineMacro(
"__FreeBSD_cc_version", Twine(CCVersion));
214 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
216 if (this->HasFloat128)
217 Builder.defineMacro(
"__FLOAT128__");
228 Builder.defineMacro(
"__STDC_MB_MIGHT_NEQ_WC__",
"1");
234 switch (Triple.getArch()) {
235 case llvm::Triple::x86:
236 case llvm::Triple::x86_64:
237 this->HasFloat128 =
true;
240 this->MCountName =
".mcount";
242 case llvm::Triple::mips:
243 case llvm::Triple::mipsel:
244 case llvm::Triple::ppc:
245 case llvm::Triple::ppcle:
246 case llvm::Triple::ppc64:
247 case llvm::Triple::ppc64le:
248 this->MCountName =
"_mcount";
250 case llvm::Triple::arm:
251 this->MCountName =
"__mcount";
253 case llvm::Triple::riscv32:
254 case llvm::Triple::riscv64:
256 case llvm::Triple::loongarch32:
257 case llvm::Triple::loongarch64:
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(
"__NetBSD__");
409 Builder.defineMacro(
"__unix__");
410 if (Opts.POSIXThreads)
411 Builder.defineMacro(
"_REENTRANT");
412 if (this->HasFloat128)
413 Builder.defineMacro(
"__FLOAT128__");
419 this->MCountName =
"__mcount";
420 switch (Triple.getArch()) {
423 case llvm::Triple::x86:
424 case llvm::Triple::x86_64:
425 this->HasFloat128 =
true;
432template <
typename Target>
439 Builder.defineMacro(
"__OpenBSD__");
441 if (Opts.POSIXThreads)
442 Builder.defineMacro(
"_REENTRANT");
443 if (this->HasFloat128)
444 Builder.defineMacro(
"__FLOAT128__");
447 Builder.defineMacro(
"__STDC_NO_THREADS__");
453 this->WCharType = this->WIntType = this->SignedInt;
454 this->IntMaxType = TargetInfo::SignedLongLong;
455 this->Int64Type = TargetInfo::SignedLongLong;
456 switch (Triple.getArch()) {
457 case llvm::Triple::x86:
458 case llvm::Triple::x86_64:
459 this->HasFloat128 =
true;
462 this->MCountName =
"__mcount";
464 case llvm::Triple::mips64:
465 case llvm::Triple::mips64el:
466 case llvm::Triple::ppc:
467 case llvm::Triple::ppc64:
468 case llvm::Triple::ppc64le:
469 case llvm::Triple::sparcv9:
470 this->MCountName =
"_mcount";
472 case llvm::Triple::riscv64:
479template <
typename Target>
485 Builder.defineMacro(
"__PPU__");
486 Builder.defineMacro(
"__CELLOS_LV2__");
487 Builder.defineMacro(
"__LP32__");
488 Builder.defineMacro(
"_ARCH_PPC64");
489 Builder.defineMacro(
"__powerpc64__");
495 this->LongWidth = this->LongAlign = 32;
496 this->PointerWidth = this->PointerAlign = 32;
497 this->IntMaxType = TargetInfo::SignedLongLong;
498 this->Int64Type = TargetInfo::SignedLongLong;
499 this->SizeType = TargetInfo::UnsignedInt;
500 this->resetDataLayout(
"E-m:e-p:32:32-Fi64-i64:64-i128:128-n32:64");
505template <
typename Target>
510 Builder.defineMacro(
"__FreeBSD__",
"9");
511 Builder.defineMacro(
"__FreeBSD_cc_version",
"900001");
512 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
514 Builder.defineMacro(
"__SCE__");
515 Builder.defineMacro(
"__STDC_NO_COMPLEX__");
516 Builder.defineMacro(
"__STDC_NO_THREADS__");
522 this->WCharType = TargetInfo::UnsignedShort;
526 this->MaxTLSAlign = 256;
530 this->UseExplicitBitFieldAlignment =
false;
532 this->MCountName =
".mcount";
533 this->NewAlign = 256;
534 this->SuitableAlign = 256;
539 return (CC ==
CC_C) ? TargetInfo::CCCR_OK : TargetInfo::CCCR_Error;
548template <
typename Target>
556 Builder.defineMacro(
"__ORBIS__");
564template <
typename Target>
572 Builder.defineMacro(
"__PROSPERO__");
580template <
typename Target>
587 Builder.defineMacro(
"__rtems__");
589 Builder.defineMacro(
"_GNU_SOURCE");
595 switch (Triple.getArch()) {
597 case llvm::Triple::x86:
600 case llvm::Triple::mips:
601 case llvm::Triple::mipsel:
602 case llvm::Triple::ppc:
603 case llvm::Triple::ppc64:
604 case llvm::Triple::ppc64le:
607 case llvm::Triple::arm:
615template <
typename Target>
622 Builder.defineMacro(
"__svr4__");
623 Builder.defineMacro(
"__SVR4");
629 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
631 Builder.defineMacro(
"_XOPEN_SOURCE",
"500");
632 if (Opts.CPlusPlus) {
633 Builder.defineMacro(
"__C99FEATURES__");
634 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
637 Builder.defineMacro(
"_LARGEFILE_SOURCE");
638 Builder.defineMacro(
"_LARGEFILE64_SOURCE");
639 Builder.defineMacro(
"__EXTENSIONS__");
640 if (Opts.POSIXThreads)
641 Builder.defineMacro(
"_REENTRANT");
642 if (this->HasFloat128)
643 Builder.defineMacro(
"__FLOAT128__");
649 if (this->PointerWidth == 64) {
650 this->WCharType = this->WIntType = this->SignedInt;
652 this->WCharType = this->WIntType = this->SignedLong;
654 switch (Triple.getArch()) {
657 case llvm::Triple::x86:
658 case llvm::Triple::x86_64:
659 this->HasFloat128 =
true;
666template <
typename Target>
672 Builder.defineMacro(
"_IBMR2");
673 Builder.defineMacro(
"_POWER");
674 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
676 Builder.defineMacro(
"_AIX");
677 Builder.defineMacro(
"__TOS_AIX__");
678 Builder.defineMacro(
"__HOS_AIX__");
681 Builder.defineMacro(
"__STDC_NO_ATOMICS__");
682 Builder.defineMacro(
"__STDC_NO_THREADS__");
685 if (Opts.EnableAIXExtendedAltivecABI)
686 Builder.defineMacro(
"__EXTABI__");
688 VersionTuple OsVersion = Triple.getOSVersion();
692 if (OsVersion >= VersionTuple(3, 2))
693 Builder.defineMacro(
"_AIX32");
694 if (OsVersion >= VersionTuple(4, 1))
695 Builder.defineMacro(
"_AIX41");
696 if (OsVersion >= VersionTuple(4, 3))
697 Builder.defineMacro(
"_AIX43");
698 if (OsVersion >= VersionTuple(5, 0))
699 Builder.defineMacro(
"_AIX50");
700 if (OsVersion >= VersionTuple(5, 1))
701 Builder.defineMacro(
"_AIX51");
702 if (OsVersion >= VersionTuple(5, 2))
703 Builder.defineMacro(
"_AIX52");
704 if (OsVersion >= VersionTuple(5, 3))
705 Builder.defineMacro(
"_AIX53");
706 if (OsVersion >= VersionTuple(6, 1))
707 Builder.defineMacro(
"_AIX61");
708 if (OsVersion >= VersionTuple(7, 1))
709 Builder.defineMacro(
"_AIX71");
710 if (OsVersion >= VersionTuple(7, 2))
711 Builder.defineMacro(
"_AIX72");
712 if (OsVersion >= VersionTuple(7, 3))
713 Builder.defineMacro(
"_AIX73");
716 Builder.defineMacro(
"_LONG_LONG");
718 if (Opts.POSIXThreads) {
719 Builder.defineMacro(
"_THREAD_SAFE");
722 if (this->PointerWidth == 64) {
723 Builder.defineMacro(
"__64BIT__");
728 if (Opts.CPlusPlus && Opts.WChar) {
729 Builder.defineMacro(
"_WCHAR_T");
736 this->MCountName =
"__mcount";
737 this->TheCXXABI.set(TargetCXXABI::XL);
739 if (this->PointerWidth == 64) {
740 this->WCharType = this->UnsignedInt;
742 this->WCharType = this->UnsignedShort;
744 this->UseZeroLengthBitfieldAlignment =
true;
760template <
typename Target>
766 Builder.defineMacro(
"_LONG_LONG");
767 Builder.defineMacro(
"__370__");
768 Builder.defineMacro(
"__BFP__");
770 Builder.defineMacro(
"__BOOL__");
771 Builder.defineMacro(
"__COMPILER_VER__",
"0x50000000");
772 Builder.defineMacro(
"__LONGNAME__");
773 Builder.defineMacro(
"__MVS__");
774 Builder.defineMacro(
"__THW_370__");
775 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
776 Builder.defineMacro(
"__TOS_390__");
777 Builder.defineMacro(
"__TOS_MVS__");
778 Builder.defineMacro(
"__XPLINK__");
780 if (this->PointerWidth == 64)
781 Builder.defineMacro(
"__64BIT__");
783 if (Opts.CPlusPlus && Opts.WChar) {
786 Builder.defineMacro(
"__wchar_t");
789 this->PlatformName = llvm::Triple::getOSTypeName(Triple.getOS());
795 this->WCharType = TargetInfo::UnsignedInt;
796 this->MaxAlignedAttribute = 128;
797 this->UseBitFieldTypeAlignment =
false;
798 this->UseZeroLengthBitfieldAlignment =
true;
799 this->UseLeadingZeroLengthBitfield =
false;
800 this->ZeroLengthBitfieldBoundary = 32;
801 this->TheCXXABI.set(TargetCXXABI::XL);
810template <
typename Target>
815 Builder.defineMacro(
"__UEFI__");
821 this->WCharType = TargetInfo::UnsignedShort;
822 this->WIntType = TargetInfo::UnsignedShort;
830template <
typename Target>
841 this->WCharType = TargetInfo::UnsignedShort;
842 this->WIntType = TargetInfo::UnsignedShort;
846template <
typename Target>
851 if (Opts.POSIXThreads)
852 Builder.defineMacro(
"_REENTRANT");
854 Builder.defineMacro(
"_GNU_SOURCE");
857 Builder.defineMacro(
"__native_client__");
863 this->LongAlign = 32;
864 this->LongWidth = 32;
865 this->PointerAlign = 32;
866 this->PointerWidth = 32;
867 this->IntMaxType = TargetInfo::SignedLongLong;
868 this->Int64Type = TargetInfo::SignedLongLong;
869 this->DoubleAlign = 64;
870 this->LongDoubleWidth = 64;
871 this->LongDoubleAlign = 64;
872 this->LongLongWidth = 64;
873 this->LongLongAlign = 64;
874 this->SizeType = TargetInfo::UnsignedInt;
875 this->PtrDiffType = TargetInfo::SignedInt;
876 this->IntPtrType = TargetInfo::SignedInt;
878 this->LongDoubleFormat = &llvm::APFloat::IEEEdouble();
879 if (Triple.getArch() == llvm::Triple::arm) {
881 }
else if (Triple.getArch() == llvm::Triple::x86) {
882 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
883 "i64:64-i128:128-n8:16:32-S128");
884 }
else if (Triple.getArch() == llvm::Triple::x86_64) {
885 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
886 "i64:64-i128:128-n8:16:32:64-S128");
887 }
else if (Triple.getArch() == llvm::Triple::mipsel) {
894template <
typename Target>
899 Builder.defineMacro(
"__Fuchsia__");
900 if (Opts.POSIXThreads)
901 Builder.defineMacro(
"_REENTRANT");
904 Builder.defineMacro(
"_GNU_SOURCE");
905 Builder.defineMacro(
"__Fuchsia_API_level__", Twine(Opts.FuchsiaAPILevel));
906 this->PlatformName =
"fuchsia";
907 this->PlatformMinVersion = VersionTuple(Opts.FuchsiaAPILevel);
913 this->WIntType = TargetInfo::UnsignedInt;
914 this->MCountName =
"__mcount";
915 this->TheCXXABI.set(TargetCXXABI::Fuchsia);
920template <
typename Target>
927 if (Opts.POSIXThreads)
928 Builder.defineMacro(
"_REENTRANT");
931 Builder.defineMacro(
"_GNU_SOURCE");
933 Builder.defineMacro(
"__FLOAT128__");
940 this->MCountName =
"__mcount";
941 this->TheCXXABI.set(TargetCXXABI::WebAssembly);
942 this->HasFloat128 =
true;
947template <
typename Target>
950 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
953 Builder.defineMacro(
"__wasi__");
961template <
typename Target>
964 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
968 Builder.defineMacro(
"__EMSCRIPTEN__");
969 if (Opts.POSIXThreads)
970 Builder.defineMacro(
"__EMSCRIPTEN_PTHREADS__");
982 this->LongDoubleAlign = 64;
987template <
typename Target>
996 if (Triple.isOHOSFamily()) {
997 Builder.defineMacro(
"__OHOS_FAMILY__",
"1");
999 auto Version = Triple.getEnvironmentVersion();
1000 this->PlatformName =
"ohos";
1001 this->PlatformMinVersion = Version;
1002 Builder.defineMacro(
"__OHOS_Major__", Twine(Version.getMajor()));
1003 if (
auto Minor = Version.getMinor())
1004 Builder.defineMacro(
"__OHOS_Minor__", Twine(*Minor));
1005 if (
auto Subminor = Version.getSubminor())
1006 Builder.defineMacro(
"__OHOS_Micro__", Twine(*Subminor));
1009 if (Triple.isOpenHOS())
1010 Builder.defineMacro(
"__OHOS__");
1012 if (Triple.isOSLinux()) {
1014 }
else if (Triple.isOSLiteOS()) {
1015 Builder.defineMacro(
"__LITEOS__");
1018 if (Opts.POSIXThreads)
1019 Builder.defineMacro(
"_REENTRANT");
1021 Builder.defineMacro(
"_GNU_SOURCE");
1022 if (this->HasFloat128)
1023 Builder.defineMacro(
"__FLOAT128__");
1029 this->WIntType = TargetInfo::UnsignedInt;
1031 switch (Triple.getArch()) {
1034 case llvm::Triple::x86:
1035 case llvm::Triple::x86_64:
1036 this->HasFloat128 =
true;
1042 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
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)
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 ----------------------------—===//