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);
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
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:
258 case llvm::Triple::riscv64be:
265template <
typename Target>
273 Builder.defineMacro(
"__FreeBSD_kernel__");
274 Builder.defineMacro(
"__GLIBC__");
275 if (Opts.POSIXThreads)
276 Builder.defineMacro(
"_REENTRANT");
278 Builder.defineMacro(
"_GNU_SOURCE");
286template <
typename Target>
292 Builder.defineMacro(
"__HAIKU__");
294 if (this->HasFloat128)
295 Builder.defineMacro(
"__FLOAT128__");
305 switch (Triple.getArch()) {
308 case llvm::Triple::x86:
309 case llvm::Triple::x86_64:
310 this->HasFloat128 = true;
317template <
typename Target>
324 Builder.defineMacro(
"__GNU__");
325 Builder.defineMacro(
"__gnu_hurd__");
326 Builder.defineMacro(
"__MACH__");
327 Builder.defineMacro(
"__GLIBC__");
328 if (Opts.POSIXThreads)
329 Builder.defineMacro(
"_REENTRANT");
331 Builder.defineMacro(
"_GNU_SOURCE");
332 if (this->HasFloat128)
333 Builder.defineMacro(
"__FLOAT128__");
338 switch (Triple.getArch()) {
341 case llvm::Triple::x86:
342 case llvm::Triple::x86_64:
343 this->HasFloat128 = true;
350template <
typename Target>
358 if (Triple.isAndroid()) {
359 Builder.defineMacro(
"__ANDROID__",
"1");
360 this->PlatformName =
"android";
361 this->PlatformMinVersion = Triple.getEnvironmentVersion();
362 const unsigned Maj = this->PlatformMinVersion.getMajor();
364 Builder.defineMacro(
"__ANDROID_MIN_SDK_VERSION__", Twine(Maj));
367 Builder.defineMacro(
"__ANDROID_API__",
"__ANDROID_MIN_SDK_VERSION__");
370 Builder.defineMacro(
"__gnu_linux__");
372 if (Opts.POSIXThreads)
373 Builder.defineMacro(
"_REENTRANT");
375 Builder.defineMacro(
"_GNU_SOURCE");
376 if (this->HasFloat128)
377 Builder.defineMacro(
"__FLOAT128__");
378 if (Triple.isTime64ABI()) {
379 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
380 Builder.defineMacro(
"_TIME_BITS",
"64");
389 switch (Triple.getArch()) {
392 case llvm::Triple::mips:
393 case llvm::Triple::mipsel:
394 case llvm::Triple::mips64:
395 case llvm::Triple::mips64el:
396 case llvm::Triple::ppc:
397 case llvm::Triple::ppcle:
398 case llvm::Triple::ppc64:
399 case llvm::Triple::ppc64le:
400 this->MCountName =
"_mcount";
402 case llvm::Triple::x86:
403 case llvm::Triple::x86_64:
404 this->HasFloat128 = true;
410 return ".text.startup";
415 bool setABI(
const std::string &Name)
override {
421template <
typename Target>
427 Builder.defineMacro(
"__managarm__");
428 if (Opts.POSIXThreads)
429 Builder.defineMacro(
"_REENTRANT");
431 Builder.defineMacro(
"_GNU_SOURCE");
432 if (this->HasFloat128)
433 Builder.defineMacro(
"__FLOAT128__");
439 switch (Triple.getArch()) {
442 case llvm::Triple::x86:
443 case llvm::Triple::x86_64:
444 this->HasFloat128 = true;
451template <
typename Target>
457 Builder.defineMacro(
"__NetBSD__");
458 Builder.defineMacro(
"__unix__");
459 if (Opts.POSIXThreads)
460 Builder.defineMacro(
"_REENTRANT");
461 if (this->HasFloat128)
462 Builder.defineMacro(
"__FLOAT128__");
468 this->MCountName =
"__mcount";
469 switch (Triple.getArch()) {
472 case llvm::Triple::x86:
473 case llvm::Triple::x86_64:
474 this->HasFloat128 = true;
481template <
typename Target>
488 Builder.defineMacro(
"__OpenBSD__");
490 if (Opts.POSIXThreads)
491 Builder.defineMacro(
"_REENTRANT");
492 if (this->HasFloat128)
493 Builder.defineMacro(
"__FLOAT128__");
496 Builder.defineMacro(
"__STDC_NO_THREADS__");
502 this->WCharType = this->WIntType = this->SignedInt;
505 switch (Triple.getArch()) {
506 case llvm::Triple::x86:
507 case llvm::Triple::x86_64:
508 this->HasFloat128 = true;
511 this->MCountName =
"__mcount";
513 case llvm::Triple::mips64:
514 case llvm::Triple::mips64el:
515 case llvm::Triple::ppc:
516 case llvm::Triple::ppc64:
517 case llvm::Triple::ppc64le:
518 case llvm::Triple::sparcv9:
519 this->MCountName =
"_mcount";
521 case llvm::Triple::loongarch64:
522 case llvm::Triple::riscv64:
523 case llvm::Triple::riscv64be:
530template <
typename Target>
536 Builder.defineMacro(
"__PPU__");
537 Builder.defineMacro(
"__CELLOS_LV2__");
538 Builder.defineMacro(
"__LP32__");
539 Builder.defineMacro(
"_ARCH_PPC64");
540 Builder.defineMacro(
"__powerpc64__");
546 this->LongWidth = this->LongAlign = 32;
547 this->PointerWidth = this->PointerAlign = 32;
551 this->resetDataLayout();
556template <
typename Target>
561 Builder.defineMacro(
"__FreeBSD__",
"9");
562 Builder.defineMacro(
"__FreeBSD_cc_version",
"900001");
563 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
565 Builder.defineMacro(
"__SCE__");
566 Builder.defineMacro(
"__STDC_NO_COMPLEX__");
567 Builder.defineMacro(
"__STDC_NO_THREADS__");
577 this->MaxTLSAlign = 256;
581 this->UseExplicitBitFieldAlignment =
false;
583 this->MCountName =
".mcount";
584 this->NewAlign = 256;
585 this->SuitableAlign = 256;
599template <
typename Target>
607 Builder.defineMacro(
"__ORBIS__");
615template <
typename Target>
623 Builder.defineMacro(
"__PROSPERO__");
631template <
typename Target>
638 Builder.defineMacro(
"__rtems__");
640 Builder.defineMacro(
"_GNU_SOURCE");
646 switch (Triple.getArch()) {
648 case llvm::Triple::x86:
651 case llvm::Triple::mips:
652 case llvm::Triple::mipsel:
653 case llvm::Triple::ppc:
654 case llvm::Triple::ppc64:
655 case llvm::Triple::ppc64le:
658 case llvm::Triple::arm:
666template <
typename Target>
673 Builder.defineMacro(
"__svr4__");
674 Builder.defineMacro(
"__SVR4");
675 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
676 if (Opts.CPlusPlus) {
677 Builder.defineMacro(
"__C99FEATURES__");
678 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
681 Builder.defineMacro(
"_LARGEFILE_SOURCE");
682 Builder.defineMacro(
"_LARGEFILE64_SOURCE");
683 Builder.defineMacro(
"__EXTENSIONS__");
684 if (Opts.POSIXThreads)
685 Builder.defineMacro(
"_REENTRANT");
686 if (this->HasFloat128)
687 Builder.defineMacro(
"__FLOAT128__");
693 if (this->PointerWidth == 64) {
694 this->WCharType = this->WIntType = this->SignedInt;
696 this->WCharType = this->WIntType = this->SignedLong;
698 switch (Triple.getArch()) {
701 case llvm::Triple::x86:
702 case llvm::Triple::x86_64:
703 this->HasFloat128 = true;
710template <
typename Target>
716 Builder.defineMacro(
"_IBMR2");
717 Builder.defineMacro(
"_POWER");
718 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
720 Builder.defineMacro(
"_AIX");
721 Builder.defineMacro(
"__TOS_AIX__");
722 Builder.defineMacro(
"__HOS_AIX__");
725 Builder.defineMacro(
"__STDC_NO_ATOMICS__");
726 Builder.defineMacro(
"__STDC_NO_THREADS__");
729 if (Opts.EnableAIXExtendedAltivecABI)
730 Builder.defineMacro(
"__EXTABI__");
732 VersionTuple OsVersion = Triple.getOSVersion();
736 if (OsVersion >= VersionTuple(3, 2))
737 Builder.defineMacro(
"_AIX32");
738 if (OsVersion >= VersionTuple(4, 1))
739 Builder.defineMacro(
"_AIX41");
740 if (OsVersion >= VersionTuple(4, 3))
741 Builder.defineMacro(
"_AIX43");
742 if (OsVersion >= VersionTuple(5, 0))
743 Builder.defineMacro(
"_AIX50");
744 if (OsVersion >= VersionTuple(5, 1))
745 Builder.defineMacro(
"_AIX51");
746 if (OsVersion >= VersionTuple(5, 2))
747 Builder.defineMacro(
"_AIX52");
748 if (OsVersion >= VersionTuple(5, 3))
749 Builder.defineMacro(
"_AIX53");
750 if (OsVersion >= VersionTuple(6, 1))
751 Builder.defineMacro(
"_AIX61");
752 if (OsVersion >= VersionTuple(7, 1))
753 Builder.defineMacro(
"_AIX71");
754 if (OsVersion >= VersionTuple(7, 2))
755 Builder.defineMacro(
"_AIX72");
756 if (OsVersion >= VersionTuple(7, 3))
757 Builder.defineMacro(
"_AIX73");
760 Builder.defineMacro(
"_LONG_LONG");
762 if (Opts.POSIXThreads) {
763 Builder.defineMacro(
"_THREAD_SAFE");
766 if (this->PointerWidth == 64) {
767 Builder.defineMacro(
"__64BIT__");
772 if (Opts.CPlusPlus && Opts.WChar) {
773 Builder.defineMacro(
"_WCHAR_T");
780 this->MCountName =
"__mcount";
781 this->TheCXXABI.set(TargetCXXABI::XL);
783 if (this->PointerWidth == 64) {
784 this->WCharType = this->UnsignedInt;
786 this->WCharType = this->UnsignedShort;
788 this->UseZeroLengthBitfieldAlignment =
true;
804template <
typename Target>
810 Builder.defineMacro(
"_LONG_LONG");
811 Builder.defineMacro(
"__370__");
812 Builder.defineMacro(
"__BFP__");
814 Builder.defineMacro(
"__BOOL__");
815 Builder.defineMacro(
"__COMPILER_VER__",
"0x50000000");
816 Builder.defineMacro(
"__LONGNAME__");
817 Builder.defineMacro(
"__MVS__");
818 Builder.defineMacro(
"__THW_370__");
819 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
820 Builder.defineMacro(
"__TOS_390__");
821 Builder.defineMacro(
"__TOS_MVS__");
822 Builder.defineMacro(
"__XPLINK__");
824 if (this->PointerWidth == 64)
825 Builder.defineMacro(
"__64BIT__");
827 if (Opts.CPlusPlus && Opts.WChar) {
830 Builder.defineMacro(
"__wchar_t");
833 this->PlatformName = llvm::Triple::getOSTypeName(Triple.getOS());
840 this->MaxAlignedAttribute = 128;
841 this->UseBitFieldTypeAlignment =
false;
842 this->UseZeroLengthBitfieldAlignment =
true;
843 this->UseLeadingZeroLengthBitfield =
false;
844 this->ZeroLengthBitfieldBoundary = 32;
845 this->TheCXXABI.set(TargetCXXABI::XL);
854template <
typename Target>
859 Builder.defineMacro(
"__UEFI__");
867 this->UseMicrosoftManglingForC =
true;
871void addWindowsDefines(
const llvm::Triple &Triple,
const LangOptions &Opts,
875template <
typename Target>
888 this->UseMicrosoftManglingForC =
true;
893template <
typename Target>
898 Builder.defineMacro(
"__Fuchsia__");
899 if (Opts.POSIXThreads)
900 Builder.defineMacro(
"_REENTRANT");
903 Builder.defineMacro(
"_GNU_SOURCE");
904 Builder.defineMacro(
"__Fuchsia_API_level__", Twine(Opts.FuchsiaAPILevel));
905 this->PlatformName =
"fuchsia";
906 this->PlatformMinVersion = VersionTuple(Opts.FuchsiaAPILevel);
913 this->MCountName =
"__mcount";
914 this->TheCXXABI.set(TargetCXXABI::Fuchsia);
919template <
typename Target>
926 if (Opts.POSIXThreads)
927 Builder.defineMacro(
"_REENTRANT");
930 Builder.defineMacro(
"_GNU_SOURCE");
932 Builder.defineMacro(
"__FLOAT128__");
939 this->MCountName =
"__mcount";
940 this->TheCXXABI.set(TargetCXXABI::WebAssembly);
941 this->HasFloat128 =
true;
946template <
typename Target>
949 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
952 Builder.defineMacro(
"__wasi__");
953 Builder.defineMacro(
"__wasip1__");
961template <
typename Target>
964 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
967 Builder.defineMacro(
"__wasi__");
968 Builder.defineMacro(
"__wasip2__");
976template <
typename Target>
979 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
982 Builder.defineMacro(
"__wasi__");
983 Builder.defineMacro(
"__wasip3__");
991template <
typename Target>
994 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
1000 Builder.defineMacro(
"__wali__");
1008template <
typename Target>
1011 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
1015 Builder.defineMacro(
"__EMSCRIPTEN__");
1016 if (Opts.POSIXThreads)
1017 Builder.defineMacro(
"__EMSCRIPTEN_PTHREADS__");
1029 this->LongDoubleAlign = 64;
1030 this->Float128Align = 64;
1035template <
typename Target>
1044 if (Triple.isOHOSFamily()) {
1045 Builder.defineMacro(
"__OHOS_FAMILY__",
"1");
1047 auto Version = Triple.getEnvironmentVersion();
1048 this->PlatformName =
"ohos";
1049 this->PlatformMinVersion = Version;
1050 Builder.defineMacro(
"__OHOS_Major__", Twine(Version.getMajor()));
1051 if (
auto Minor = Version.getMinor())
1052 Builder.defineMacro(
"__OHOS_Minor__", Twine(*Minor));
1053 if (
auto Subminor = Version.getSubminor())
1054 Builder.defineMacro(
"__OHOS_Micro__", Twine(*Subminor));
1057 if (Triple.isOpenHOS())
1058 Builder.defineMacro(
"__OHOS__");
1060 if (Triple.isOSLinux()) {
1062 }
else if (Triple.isOSLiteOS()) {
1063 Builder.defineMacro(
"__LITEOS__");
1066 if (Opts.POSIXThreads)
1067 Builder.defineMacro(
"_REENTRANT");
1069 Builder.defineMacro(
"_GNU_SOURCE");
1070 if (this->HasFloat128)
1071 Builder.defineMacro(
"__FLOAT128__");
1079 switch (Triple.getArch()) {
1082 case llvm::Triple::x86:
1083 case llvm::Triple::x86_64:
1084 this->HasFloat128 = true;
1090 return ".text.startup";
1095template <
typename Target>
1100 Builder.defineMacro(
"__qurt__");
#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...
virtual IntType getLeastIntTypeByWidth(unsigned BitWidth, bool IsSigned) const
Return the smallest integer type with at least the specified width.
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)
HurdTargetInfo(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
bool setABI(const std::string &Name) 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
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.
if(T->getSizeExpr()) TRY_TO(TraverseStmt(const_cast< Expr * >(T -> getSizeExpr())))
CallingConv
CallingConv - Specifies the calling convention that a function uses.
IntType
===-— Target Data Type Query Methods ----------------------------—===//