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);
38template <
typename Target>
43 Builder.defineMacro(
"__CloudABI__");
46 Builder.defineMacro(
"__STDC_ISO_10646__",
"201206L");
54template <
typename Target>
60 Builder.defineMacro(
"__Ananas__");
68 const llvm::Triple &Triple, StringRef &PlatformName,
69 VersionTuple &PlatformMinVersion);
71template <
typename Target>
77 this->PlatformMinVersion);
85 this->TLSSupported =
false;
87 if (Triple.isMacOSX())
88 this->TLSSupported = !Triple.isMacOSXVersionLT(10, 7);
89 else if (Triple.isiOS()) {
92 if (Triple.isArch64Bit())
93 this->TLSSupported = !Triple.isOSVersionLT(8);
94 else if (Triple.isArch32Bit()) {
95 if (!Triple.isSimulatorEnvironment())
96 this->TLSSupported = !Triple.isOSVersionLT(9);
98 this->TLSSupported = !Triple.isOSVersionLT(10);
100 }
else if (Triple.isWatchOS()) {
101 if (!Triple.isSimulatorEnvironment())
102 this->TLSSupported = !Triple.isOSVersionLT(2);
104 this->TLSSupported = !Triple.isOSVersionLT(3);
105 }
else if (Triple.isDriverKit()) {
109 this->MCountName =
"\01mcount";
114 return "__TEXT,__StaticInit,regular,pure_instructions";
126 llvm::VersionTuple MinVersion;
127 const llvm::Triple &T = this->getTriple();
131 case llvm::Triple::Darwin:
132 case llvm::Triple::MacOSX:
133 MinVersion = llvm::VersionTuple(10U, 14U);
135 case llvm::Triple::IOS:
136 case llvm::Triple::TvOS:
137 MinVersion = llvm::VersionTuple(12U);
139 case llvm::Triple::WatchOS:
140 MinVersion = llvm::VersionTuple(5U);
147 if (T.getOSVersion() < MinVersion)
153 bool IsSigned)
const final {
155 return BitWidth == 64
156 ? (IsSigned ? TargetInfo::SignedLongLong
157 : TargetInfo::UnsignedLongLong)
158 : TargetInfo::getLeastIntTypeByWidth(BitWidth, IsSigned);
167template <
typename Target>
174 Builder.defineMacro(
"__DragonFly__");
175 Builder.defineMacro(
"__DragonFly_cc_version",
"100001");
176 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
177 Builder.defineMacro(
"__tune_i386__");
179 if (this->HasFloat128)
180 Builder.defineMacro(
"__FLOAT128__");
186 switch (Triple.getArch()) {
188 case llvm::Triple::x86:
189 case llvm::Triple::x86_64:
190 this->HasFloat128 =
true;
191 this->MCountName =
".mcount";
197#ifndef FREEBSD_CC_VERSION
198#define FREEBSD_CC_VERSION 0U
202template <
typename Target>
209 unsigned Release = Triple.getOSMajorVersion();
214 CCVersion = Release * 100000U + 1U;
216 Builder.defineMacro(
"__FreeBSD__", Twine(Release));
217 Builder.defineMacro(
"__FreeBSD_cc_version", Twine(CCVersion));
218 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
230 Builder.defineMacro(
"__STDC_MB_MIGHT_NEQ_WC__",
"1");
236 switch (Triple.getArch()) {
238 case llvm::Triple::x86:
239 case llvm::Triple::x86_64:
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:
261template <
typename Target>
269 Builder.defineMacro(
"__FreeBSD_kernel__");
270 Builder.defineMacro(
"__GLIBC__");
271 if (Opts.POSIXThreads)
272 Builder.defineMacro(
"_REENTRANT");
274 Builder.defineMacro(
"_GNU_SOURCE");
282template <
typename Target>
288 Builder.defineMacro(
"__HAIKU__");
290 if (this->HasFloat128)
291 Builder.defineMacro(
"__FLOAT128__");
297 this->SizeType = TargetInfo::UnsignedLong;
298 this->IntPtrType = TargetInfo::SignedLong;
299 this->PtrDiffType = TargetInfo::SignedLong;
300 this->ProcessIDType = TargetInfo::SignedLong;
301 this->TLSSupported =
false;
302 switch (Triple.getArch()) {
305 case llvm::Triple::x86:
306 case llvm::Triple::x86_64:
307 this->HasFloat128 =
true;
314template <
typename Target>
321 Builder.defineMacro(
"__GNU__");
322 Builder.defineMacro(
"__gnu_hurd__");
323 Builder.defineMacro(
"__MACH__");
324 Builder.defineMacro(
"__GLIBC__");
325 if (Opts.POSIXThreads)
326 Builder.defineMacro(
"_REENTRANT");
328 Builder.defineMacro(
"_GNU_SOURCE");
335template <
typename Target>
342 Builder.defineMacro(
"__minix",
"3");
343 Builder.defineMacro(
"_EM_WSIZE",
"4");
344 Builder.defineMacro(
"_EM_PSIZE",
"4");
345 Builder.defineMacro(
"_EM_SSIZE",
"2");
346 Builder.defineMacro(
"_EM_LSIZE",
"4");
347 Builder.defineMacro(
"_EM_FSIZE",
"4");
348 Builder.defineMacro(
"_EM_DSIZE",
"8");
357template <
typename Target>
365 if (Triple.isAndroid()) {
366 Builder.defineMacro(
"__ANDROID__",
"1");
367 this->PlatformName =
"android";
368 this->PlatformMinVersion = Triple.getEnvironmentVersion();
369 const unsigned Maj = this->PlatformMinVersion.getMajor();
371 Builder.defineMacro(
"__ANDROID_MIN_SDK_VERSION__", Twine(Maj));
374 Builder.defineMacro(
"__ANDROID_API__",
"__ANDROID_MIN_SDK_VERSION__");
377 Builder.defineMacro(
"__gnu_linux__");
379 if (Opts.POSIXThreads)
380 Builder.defineMacro(
"_REENTRANT");
382 Builder.defineMacro(
"_GNU_SOURCE");
383 if (this->HasFloat128)
384 Builder.defineMacro(
"__FLOAT128__");
390 this->WIntType = TargetInfo::UnsignedInt;
392 switch (Triple.getArch()) {
395 case llvm::Triple::mips:
396 case llvm::Triple::mipsel:
397 case llvm::Triple::mips64:
398 case llvm::Triple::mips64el:
399 case llvm::Triple::ppc:
400 case llvm::Triple::ppcle:
401 case llvm::Triple::ppc64:
402 case llvm::Triple::ppc64le:
403 this->MCountName =
"_mcount";
405 case llvm::Triple::x86:
406 case llvm::Triple::x86_64:
407 this->HasFloat128 =
true;
413 return ".text.startup";
418template <
typename Target>
424 Builder.defineMacro(
"__NetBSD__");
425 Builder.defineMacro(
"__unix__");
426 if (Opts.POSIXThreads)
427 Builder.defineMacro(
"_REENTRANT");
433 this->MCountName =
"__mcount";
438template <
typename Target>
445 Builder.defineMacro(
"__OpenBSD__");
447 if (Opts.POSIXThreads)
448 Builder.defineMacro(
"_REENTRANT");
449 if (this->HasFloat128)
450 Builder.defineMacro(
"__FLOAT128__");
453 Builder.defineMacro(
"__STDC_NO_THREADS__");
459 this->WCharType = this->WIntType = this->SignedInt;
460 this->IntMaxType = TargetInfo::SignedLongLong;
461 this->Int64Type = TargetInfo::SignedLongLong;
462 switch (Triple.getArch()) {
463 case llvm::Triple::x86:
464 case llvm::Triple::x86_64:
465 this->HasFloat128 =
true;
468 this->MCountName =
"__mcount";
470 case llvm::Triple::mips64:
471 case llvm::Triple::mips64el:
472 case llvm::Triple::ppc:
473 case llvm::Triple::ppc64:
474 case llvm::Triple::ppc64le:
475 case llvm::Triple::sparcv9:
476 this->MCountName =
"_mcount";
478 case llvm::Triple::riscv32:
479 case llvm::Triple::riscv64:
486template <
typename Target>
492 Builder.defineMacro(
"__PPU__");
493 Builder.defineMacro(
"__CELLOS_LV2__");
494 Builder.defineMacro(
"__LP32__");
495 Builder.defineMacro(
"_ARCH_PPC64");
496 Builder.defineMacro(
"__powerpc64__");
502 this->LongWidth = this->LongAlign = 32;
503 this->PointerWidth = this->PointerAlign = 32;
504 this->IntMaxType = TargetInfo::SignedLongLong;
505 this->Int64Type = TargetInfo::SignedLongLong;
506 this->SizeType = TargetInfo::UnsignedInt;
507 this->resetDataLayout(
"E-m:e-p:32:32-Fi64-i64:64-n32:64");
512template <
typename Target>
517 Builder.defineMacro(
"__FreeBSD__",
"9");
518 Builder.defineMacro(
"__FreeBSD_cc_version",
"900001");
519 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
521 Builder.defineMacro(
"__SCE__");
522 Builder.defineMacro(
"__STDC_NO_COMPLEX__");
523 Builder.defineMacro(
"__STDC_NO_THREADS__");
529 this->WCharType = TargetInfo::UnsignedShort;
533 this->MaxTLSAlign = 256;
537 this->UseExplicitBitFieldAlignment =
false;
539 this->MCountName =
".mcount";
540 this->NewAlign = 256;
541 this->SuitableAlign = 256;
546 return (CC ==
CC_C) ? TargetInfo::CCCR_OK : TargetInfo::CCCR_Error;
555template <
typename Target>
563 Builder.defineMacro(
"__ORBIS__");
571template <
typename Target>
579 Builder.defineMacro(
"__PROSPERO__");
587template <
typename Target>
594 Builder.defineMacro(
"__rtems__");
596 Builder.defineMacro(
"_GNU_SOURCE");
602 switch (Triple.getArch()) {
604 case llvm::Triple::x86:
607 case llvm::Triple::mips:
608 case llvm::Triple::mipsel:
609 case llvm::Triple::ppc:
610 case llvm::Triple::ppc64:
611 case llvm::Triple::ppc64le:
614 case llvm::Triple::arm:
622template <
typename Target>
629 Builder.defineMacro(
"__svr4__");
630 Builder.defineMacro(
"__SVR4");
636 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
638 Builder.defineMacro(
"_XOPEN_SOURCE",
"500");
639 if (Opts.CPlusPlus) {
640 Builder.defineMacro(
"__C99FEATURES__");
641 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
644 Builder.defineMacro(
"_LARGEFILE_SOURCE");
645 Builder.defineMacro(
"_LARGEFILE64_SOURCE");
646 Builder.defineMacro(
"__EXTENSIONS__");
647 if (Opts.POSIXThreads)
648 Builder.defineMacro(
"_REENTRANT");
649 if (this->HasFloat128)
650 Builder.defineMacro(
"__FLOAT128__");
656 if (this->PointerWidth == 64) {
657 this->WCharType = this->WIntType = this->SignedInt;
659 this->WCharType = this->WIntType = this->SignedLong;
661 switch (Triple.getArch()) {
664 case llvm::Triple::x86:
665 case llvm::Triple::x86_64:
666 this->HasFloat128 =
true;
673template <
typename Target>
679 Builder.defineMacro(
"_IBMR2");
680 Builder.defineMacro(
"_POWER");
681 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
683 Builder.defineMacro(
"_AIX");
684 Builder.defineMacro(
"__TOS_AIX__");
685 Builder.defineMacro(
"__HOS_AIX__");
688 Builder.defineMacro(
"__STDC_NO_ATOMICS__");
689 Builder.defineMacro(
"__STDC_NO_THREADS__");
692 if (Opts.EnableAIXExtendedAltivecABI)
693 Builder.defineMacro(
"__EXTABI__");
695 VersionTuple OsVersion = Triple.getOSVersion();
699 if (OsVersion >= VersionTuple(3, 2))
700 Builder.defineMacro(
"_AIX32");
701 if (OsVersion >= VersionTuple(4, 1))
702 Builder.defineMacro(
"_AIX41");
703 if (OsVersion >= VersionTuple(4, 3))
704 Builder.defineMacro(
"_AIX43");
705 if (OsVersion >= VersionTuple(5, 0))
706 Builder.defineMacro(
"_AIX50");
707 if (OsVersion >= VersionTuple(5, 1))
708 Builder.defineMacro(
"_AIX51");
709 if (OsVersion >= VersionTuple(5, 2))
710 Builder.defineMacro(
"_AIX52");
711 if (OsVersion >= VersionTuple(5, 3))
712 Builder.defineMacro(
"_AIX53");
713 if (OsVersion >= VersionTuple(6, 1))
714 Builder.defineMacro(
"_AIX61");
715 if (OsVersion >= VersionTuple(7, 1))
716 Builder.defineMacro(
"_AIX71");
717 if (OsVersion >= VersionTuple(7, 2))
718 Builder.defineMacro(
"_AIX72");
719 if (OsVersion >= VersionTuple(7, 3))
720 Builder.defineMacro(
"_AIX73");
723 Builder.defineMacro(
"_LONG_LONG");
725 if (Opts.POSIXThreads) {
726 Builder.defineMacro(
"_THREAD_SAFE");
729 if (this->PointerWidth == 64) {
730 Builder.defineMacro(
"__64BIT__");
735 if (Opts.CPlusPlus && Opts.WChar) {
736 Builder.defineMacro(
"_WCHAR_T");
743 this->MCountName =
"__mcount";
744 this->TheCXXABI.set(TargetCXXABI::XL);
746 if (this->PointerWidth == 64) {
747 this->WCharType = this->UnsignedInt;
749 this->WCharType = this->UnsignedShort;
751 this->UseZeroLengthBitfieldAlignment =
true;
767template <
typename Target>
773 Builder.defineMacro(
"_LONG_LONG");
774 Builder.defineMacro(
"_OPEN_DEFAULT");
776 Builder.defineMacro(
"_UNIX03_WITHDRAWN");
777 Builder.defineMacro(
"__370__");
778 Builder.defineMacro(
"__BFP__");
780 Builder.defineMacro(
"__BOOL__");
781 Builder.defineMacro(
"__LONGNAME__");
782 Builder.defineMacro(
"__MVS__");
783 Builder.defineMacro(
"__THW_370__");
784 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
785 Builder.defineMacro(
"__TOS_390__");
786 Builder.defineMacro(
"__TOS_MVS__");
787 Builder.defineMacro(
"__XPLINK__");
789 if (this->PointerWidth == 64)
790 Builder.defineMacro(
"__64BIT__");
792 if (Opts.CPlusPlus) {
793 Builder.defineMacro(
"__DLL__");
795 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
799 Builder.defineMacro(
"_MI_BUILTIN");
800 Builder.defineMacro(
"_EXT");
803 if (Opts.CPlusPlus && Opts.WChar) {
806 Builder.defineMacro(
"__wchar_t");
809 this->PlatformName = llvm::Triple::getOSTypeName(Triple.getOS());
815 this->WCharType = TargetInfo::UnsignedInt;
816 this->MaxAlignedAttribute = 128;
817 this->UseBitFieldTypeAlignment =
false;
818 this->UseZeroLengthBitfieldAlignment =
true;
819 this->UseLeadingZeroLengthBitfield =
false;
820 this->ZeroLengthBitfieldBoundary = 32;
832template <
typename Target>
843 this->WCharType = TargetInfo::UnsignedShort;
844 this->WIntType = TargetInfo::UnsignedShort;
848template <
typename Target>
853 if (Opts.POSIXThreads)
854 Builder.defineMacro(
"_REENTRANT");
856 Builder.defineMacro(
"_GNU_SOURCE");
859 Builder.defineMacro(
"__native_client__");
865 this->LongAlign = 32;
866 this->LongWidth = 32;
867 this->PointerAlign = 32;
868 this->PointerWidth = 32;
869 this->IntMaxType = TargetInfo::SignedLongLong;
870 this->Int64Type = TargetInfo::SignedLongLong;
871 this->DoubleAlign = 64;
872 this->LongDoubleWidth = 64;
873 this->LongDoubleAlign = 64;
874 this->LongLongWidth = 64;
875 this->LongLongAlign = 64;
876 this->SizeType = TargetInfo::UnsignedInt;
877 this->PtrDiffType = TargetInfo::SignedInt;
878 this->IntPtrType = TargetInfo::SignedInt;
880 this->LongDoubleFormat = &llvm::APFloat::IEEEdouble();
881 if (Triple.getArch() == llvm::Triple::arm) {
883 }
else if (Triple.getArch() == llvm::Triple::x86) {
884 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
885 "i64:64-n8:16:32-S128");
886 }
else if (Triple.getArch() == llvm::Triple::x86_64) {
887 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
888 "i64:64-n8:16:32:64-S128");
889 }
else if (Triple.getArch() == llvm::Triple::mipsel) {
892 assert(Triple.getArch() == llvm::Triple::le32);
893 this->resetDataLayout(
"e-p:32:32-i64:64");
899template <
typename Target>
904 Builder.defineMacro(
"__Fuchsia__");
905 if (Opts.POSIXThreads)
906 Builder.defineMacro(
"_REENTRANT");
909 Builder.defineMacro(
"_GNU_SOURCE");
910 Builder.defineMacro(
"__Fuchsia_API_level__", Twine(Opts.FuchsiaAPILevel));
911 this->PlatformName =
"fuchsia";
912 this->PlatformMinVersion = VersionTuple(Opts.FuchsiaAPILevel);
918 this->MCountName =
"__mcount";
919 this->TheCXXABI.set(TargetCXXABI::Fuchsia);
924template <
typename Target>
931 if (Opts.POSIXThreads)
932 Builder.defineMacro(
"_REENTRANT");
935 Builder.defineMacro(
"_GNU_SOURCE");
937 Builder.defineMacro(
"__FLOAT128__");
944 this->MCountName =
"__mcount";
945 this->TheCXXABI.set(TargetCXXABI::WebAssembly);
946 this->HasFloat128 =
true;
951template <
typename Target>
954 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
957 Builder.defineMacro(
"__wasi__");
965template <
typename Target>
968 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
972 Builder.defineMacro(
"__EMSCRIPTEN__");
973 if (Opts.POSIXThreads)
974 Builder.defineMacro(
"__EMSCRIPTEN_PTHREADS__");
986 this->LongDoubleAlign = 64;
991template <
typename Target>
1000 if (Triple.isOHOSFamily()) {
1001 Builder.defineMacro(
"__OHOS_FAMILY__",
"1");
1003 auto Version = Triple.getEnvironmentVersion();
1004 this->PlatformName =
"ohos";
1005 this->PlatformMinVersion = Version;
1006 Builder.defineMacro(
"__OHOS_Major__", Twine(Version.getMajor()));
1007 if (
auto Minor = Version.getMinor())
1008 Builder.defineMacro(
"__OHOS_Minor__", Twine(*Minor));
1009 if (
auto Subminor = Version.getSubminor())
1010 Builder.defineMacro(
"__OHOS_Micro__", Twine(*Subminor));
1013 if (Triple.isOpenHOS())
1014 Builder.defineMacro(
"__OHOS__");
1016 if (Triple.isOSLinux()) {
1018 }
else if (Triple.isOSLiteOS()) {
1019 Builder.defineMacro(
"__LITEOS__");
1022 if (Opts.POSIXThreads)
1023 Builder.defineMacro(
"_REENTRANT");
1025 Builder.defineMacro(
"_GNU_SOURCE");
1026 if (this->HasFloat128)
1027 Builder.defineMacro(
"__FLOAT128__");
1033 this->WIntType = TargetInfo::UnsignedInt;
1035 switch (Triple.getArch()) {
1038 case llvm::Triple::x86:
1039 case llvm::Triple::x86_64:
1040 this->HasFloat128 =
true;
1046 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
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
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
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) 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 ----------------------------—===//