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:
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__");
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");
331 if (this->HasFloat128)
332 Builder.defineMacro(
"__FLOAT128__");
337 switch (Triple.getArch()) {
340 case llvm::Triple::x86:
341 case llvm::Triple::x86_64:
342 this->HasFloat128 = true;
349template <
typename Target>
357 if (Triple.isAndroid()) {
358 Builder.defineMacro(
"__ANDROID__",
"1");
359 this->PlatformName =
"android";
360 this->PlatformMinVersion = Triple.getEnvironmentVersion();
361 const unsigned Maj = this->PlatformMinVersion.getMajor();
363 Builder.defineMacro(
"__ANDROID_MIN_SDK_VERSION__", Twine(Maj));
366 Builder.defineMacro(
"__ANDROID_API__",
"__ANDROID_MIN_SDK_VERSION__");
369 Builder.defineMacro(
"__gnu_linux__");
371 if (Opts.POSIXThreads)
372 Builder.defineMacro(
"_REENTRANT");
374 Builder.defineMacro(
"_GNU_SOURCE");
375 if (this->HasFloat128)
376 Builder.defineMacro(
"__FLOAT128__");
377 if (Triple.isTime64ABI()) {
378 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
379 Builder.defineMacro(
"_TIME_BITS",
"64");
388 switch (Triple.getArch()) {
391 case llvm::Triple::mips:
392 case llvm::Triple::mipsel:
393 case llvm::Triple::mips64:
394 case llvm::Triple::mips64el:
395 case llvm::Triple::ppc:
396 case llvm::Triple::ppcle:
397 case llvm::Triple::ppc64:
398 case llvm::Triple::ppc64le:
399 this->MCountName =
"_mcount";
401 case llvm::Triple::x86:
402 case llvm::Triple::x86_64:
403 this->HasFloat128 = true;
409 return ".text.startup";
414 bool setABI(
const std::string &Name)
override {
420template <
typename Target>
426 Builder.defineMacro(
"__managarm__");
427 if (Opts.POSIXThreads)
428 Builder.defineMacro(
"_REENTRANT");
430 Builder.defineMacro(
"_GNU_SOURCE");
431 if (this->HasFloat128)
432 Builder.defineMacro(
"__FLOAT128__");
438 switch (Triple.getArch()) {
441 case llvm::Triple::x86:
442 case llvm::Triple::x86_64:
443 this->HasFloat128 = true;
450template <
typename Target>
456 Builder.defineMacro(
"__NetBSD__");
457 Builder.defineMacro(
"__unix__");
458 if (Opts.POSIXThreads)
459 Builder.defineMacro(
"_REENTRANT");
460 if (this->HasFloat128)
461 Builder.defineMacro(
"__FLOAT128__");
467 this->MCountName =
"__mcount";
468 switch (Triple.getArch()) {
471 case llvm::Triple::x86:
472 case llvm::Triple::x86_64:
473 this->HasFloat128 = true;
480template <
typename Target>
487 Builder.defineMacro(
"__OpenBSD__");
489 if (Opts.POSIXThreads)
490 Builder.defineMacro(
"_REENTRANT");
491 if (this->HasFloat128)
492 Builder.defineMacro(
"__FLOAT128__");
495 Builder.defineMacro(
"__STDC_NO_THREADS__");
501 this->WCharType = this->WIntType = this->SignedInt;
504 switch (Triple.getArch()) {
505 case llvm::Triple::x86:
506 case llvm::Triple::x86_64:
507 this->HasFloat128 = true;
510 this->MCountName =
"__mcount";
512 case llvm::Triple::mips64:
513 case llvm::Triple::mips64el:
514 case llvm::Triple::ppc:
515 case llvm::Triple::ppc64:
516 case llvm::Triple::ppc64le:
517 case llvm::Triple::sparcv9:
518 this->MCountName =
"_mcount";
520 case llvm::Triple::loongarch64:
521 case llvm::Triple::riscv64:
528template <
typename Target>
534 Builder.defineMacro(
"__PPU__");
535 Builder.defineMacro(
"__CELLOS_LV2__");
536 Builder.defineMacro(
"__LP32__");
537 Builder.defineMacro(
"_ARCH_PPC64");
538 Builder.defineMacro(
"__powerpc64__");
544 this->LongWidth = this->LongAlign = 32;
545 this->PointerWidth = this->PointerAlign = 32;
549 this->resetDataLayout(
"E-m:e-p:32:32-Fi64-i64:64-i128:128-n32:64");
554template <
typename Target>
559 Builder.defineMacro(
"__FreeBSD__",
"9");
560 Builder.defineMacro(
"__FreeBSD_cc_version",
"900001");
561 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
563 Builder.defineMacro(
"__SCE__");
564 Builder.defineMacro(
"__STDC_NO_COMPLEX__");
565 Builder.defineMacro(
"__STDC_NO_THREADS__");
575 this->MaxTLSAlign = 256;
579 this->UseExplicitBitFieldAlignment =
false;
581 this->MCountName =
".mcount";
582 this->NewAlign = 256;
583 this->SuitableAlign = 256;
597template <
typename Target>
605 Builder.defineMacro(
"__ORBIS__");
613template <
typename Target>
621 Builder.defineMacro(
"__PROSPERO__");
629template <
typename Target>
636 Builder.defineMacro(
"__rtems__");
638 Builder.defineMacro(
"_GNU_SOURCE");
644 switch (Triple.getArch()) {
646 case llvm::Triple::x86:
649 case llvm::Triple::mips:
650 case llvm::Triple::mipsel:
651 case llvm::Triple::ppc:
652 case llvm::Triple::ppc64:
653 case llvm::Triple::ppc64le:
656 case llvm::Triple::arm:
664template <
typename Target>
671 Builder.defineMacro(
"__svr4__");
672 Builder.defineMacro(
"__SVR4");
673 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
674 if (Opts.CPlusPlus) {
675 Builder.defineMacro(
"__C99FEATURES__");
676 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
679 Builder.defineMacro(
"_LARGEFILE_SOURCE");
680 Builder.defineMacro(
"_LARGEFILE64_SOURCE");
681 Builder.defineMacro(
"__EXTENSIONS__");
682 if (Opts.POSIXThreads)
683 Builder.defineMacro(
"_REENTRANT");
684 if (this->HasFloat128)
685 Builder.defineMacro(
"__FLOAT128__");
691 if (this->PointerWidth == 64) {
692 this->WCharType = this->WIntType = this->SignedInt;
694 this->WCharType = this->WIntType = this->SignedLong;
696 switch (Triple.getArch()) {
699 case llvm::Triple::x86:
700 case llvm::Triple::x86_64:
701 this->HasFloat128 = true;
708template <
typename Target>
714 Builder.defineMacro(
"_IBMR2");
715 Builder.defineMacro(
"_POWER");
716 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
718 Builder.defineMacro(
"_AIX");
719 Builder.defineMacro(
"__TOS_AIX__");
720 Builder.defineMacro(
"__HOS_AIX__");
723 Builder.defineMacro(
"__STDC_NO_ATOMICS__");
724 Builder.defineMacro(
"__STDC_NO_THREADS__");
727 if (Opts.EnableAIXExtendedAltivecABI)
728 Builder.defineMacro(
"__EXTABI__");
730 VersionTuple OsVersion = Triple.getOSVersion();
734 if (OsVersion >= VersionTuple(3, 2))
735 Builder.defineMacro(
"_AIX32");
736 if (OsVersion >= VersionTuple(4, 1))
737 Builder.defineMacro(
"_AIX41");
738 if (OsVersion >= VersionTuple(4, 3))
739 Builder.defineMacro(
"_AIX43");
740 if (OsVersion >= VersionTuple(5, 0))
741 Builder.defineMacro(
"_AIX50");
742 if (OsVersion >= VersionTuple(5, 1))
743 Builder.defineMacro(
"_AIX51");
744 if (OsVersion >= VersionTuple(5, 2))
745 Builder.defineMacro(
"_AIX52");
746 if (OsVersion >= VersionTuple(5, 3))
747 Builder.defineMacro(
"_AIX53");
748 if (OsVersion >= VersionTuple(6, 1))
749 Builder.defineMacro(
"_AIX61");
750 if (OsVersion >= VersionTuple(7, 1))
751 Builder.defineMacro(
"_AIX71");
752 if (OsVersion >= VersionTuple(7, 2))
753 Builder.defineMacro(
"_AIX72");
754 if (OsVersion >= VersionTuple(7, 3))
755 Builder.defineMacro(
"_AIX73");
758 Builder.defineMacro(
"_LONG_LONG");
760 if (Opts.POSIXThreads) {
761 Builder.defineMacro(
"_THREAD_SAFE");
764 if (this->PointerWidth == 64) {
765 Builder.defineMacro(
"__64BIT__");
770 if (Opts.CPlusPlus && Opts.WChar) {
771 Builder.defineMacro(
"_WCHAR_T");
778 this->MCountName =
"__mcount";
779 this->TheCXXABI.set(TargetCXXABI::XL);
781 if (this->PointerWidth == 64) {
782 this->WCharType = this->UnsignedInt;
784 this->WCharType = this->UnsignedShort;
786 this->UseZeroLengthBitfieldAlignment =
true;
802template <
typename Target>
808 Builder.defineMacro(
"_LONG_LONG");
809 Builder.defineMacro(
"__370__");
810 Builder.defineMacro(
"__BFP__");
812 Builder.defineMacro(
"__BOOL__");
813 Builder.defineMacro(
"__COMPILER_VER__",
"0x50000000");
814 Builder.defineMacro(
"__LONGNAME__");
815 Builder.defineMacro(
"__MVS__");
816 Builder.defineMacro(
"__THW_370__");
817 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
818 Builder.defineMacro(
"__TOS_390__");
819 Builder.defineMacro(
"__TOS_MVS__");
820 Builder.defineMacro(
"__XPLINK__");
822 if (this->PointerWidth == 64)
823 Builder.defineMacro(
"__64BIT__");
825 if (Opts.CPlusPlus && Opts.WChar) {
828 Builder.defineMacro(
"__wchar_t");
831 this->PlatformName = llvm::Triple::getOSTypeName(Triple.getOS());
838 this->MaxAlignedAttribute = 128;
839 this->UseBitFieldTypeAlignment =
false;
840 this->UseZeroLengthBitfieldAlignment =
true;
841 this->UseLeadingZeroLengthBitfield =
false;
842 this->ZeroLengthBitfieldBoundary = 32;
843 this->TheCXXABI.set(TargetCXXABI::XL);
852template <
typename Target>
857 Builder.defineMacro(
"__UEFI__");
865 this->UseMicrosoftManglingForC =
true;
869void addWindowsDefines(
const llvm::Triple &Triple,
const LangOptions &Opts,
873template <
typename Target>
886 this->UseMicrosoftManglingForC =
true;
891template <
typename Target>
896 Builder.defineMacro(
"__Fuchsia__");
897 if (Opts.POSIXThreads)
898 Builder.defineMacro(
"_REENTRANT");
901 Builder.defineMacro(
"_GNU_SOURCE");
902 Builder.defineMacro(
"__Fuchsia_API_level__", Twine(Opts.FuchsiaAPILevel));
903 this->PlatformName =
"fuchsia";
904 this->PlatformMinVersion = VersionTuple(Opts.FuchsiaAPILevel);
911 this->MCountName =
"__mcount";
912 this->TheCXXABI.set(TargetCXXABI::Fuchsia);
917template <
typename Target>
924 if (Opts.POSIXThreads)
925 Builder.defineMacro(
"_REENTRANT");
928 Builder.defineMacro(
"_GNU_SOURCE");
930 Builder.defineMacro(
"__FLOAT128__");
937 this->MCountName =
"__mcount";
938 this->TheCXXABI.set(TargetCXXABI::WebAssembly);
939 this->HasFloat128 =
true;
944template <
typename Target>
947 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
950 Builder.defineMacro(
"__wasi__");
958template <
typename Target>
961 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
967 Builder.defineMacro(
"__wali__");
975template <
typename Target>
978 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
982 Builder.defineMacro(
"__EMSCRIPTEN__");
983 if (Opts.POSIXThreads)
984 Builder.defineMacro(
"__EMSCRIPTEN_PTHREADS__");
996 this->LongDoubleAlign = 64;
997 this->Float128Align = 64;
1002template <
typename Target>
1011 if (Triple.isOHOSFamily()) {
1012 Builder.defineMacro(
"__OHOS_FAMILY__",
"1");
1014 auto Version = Triple.getEnvironmentVersion();
1015 this->PlatformName =
"ohos";
1016 this->PlatformMinVersion = Version;
1017 Builder.defineMacro(
"__OHOS_Major__", Twine(Version.getMajor()));
1018 if (
auto Minor = Version.getMinor())
1019 Builder.defineMacro(
"__OHOS_Minor__", Twine(*Minor));
1020 if (
auto Subminor = Version.getSubminor())
1021 Builder.defineMacro(
"__OHOS_Micro__", Twine(*Subminor));
1024 if (Triple.isOpenHOS())
1025 Builder.defineMacro(
"__OHOS__");
1027 if (Triple.isOSLinux()) {
1029 }
else if (Triple.isOSLiteOS()) {
1030 Builder.defineMacro(
"__LITEOS__");
1033 if (Opts.POSIXThreads)
1034 Builder.defineMacro(
"_REENTRANT");
1036 Builder.defineMacro(
"_GNU_SOURCE");
1037 if (this->HasFloat128)
1038 Builder.defineMacro(
"__FLOAT128__");
1046 switch (Triple.getArch()) {
1049 case llvm::Triple::x86:
1050 case llvm::Triple::x86_64:
1051 this->HasFloat128 = true;
1057 return ".text.startup";
#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
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())))
const FunctionProtoType * T
CallingConv
CallingConv - Specifies the calling convention that a function uses.
IntType
===-— Target Data Type Query Methods ----------------------------—===//