Lines Matching full:builder

41 static void DefineBuiltinMacro(MacroBuilder &Builder, StringRef Macro,
57 Builder.defineMacro(MacroName, Twine(MacroBody) + "\\\n");
59 Builder.defineMacro(MacroName, MacroBody);
62 Builder.defineMacro(Macro);
70 static void AddImplicitInclude(MacroBuilder &Builder, StringRef File) {
71 Builder.append(Twine("#include \"") + File + "\"");
74 static void AddImplicitIncludeMacros(MacroBuilder &Builder, StringRef File) {
75 Builder.append(Twine("#__include_macros \"") + File + "\"");
77 Builder.append("##"); // ##?
82 static void AddImplicitIncludePCH(MacroBuilder &Builder, Preprocessor &PP,
91 AddImplicitInclude(Builder, OriginalFile);
114 static void DefineFloatMacros(MacroBuilder &Builder, StringRef Prefix,
150 Builder.defineMacro(DefPrefix + "DENORM_MIN__", Twine(DenormMin)+Ext);
151 Builder.defineMacro(DefPrefix + "NORM_MAX__", Twine(NormMax)+Ext);
152 Builder.defineMacro(DefPrefix + "HAS_DENORM__");
153 Builder.defineMacro(DefPrefix + "DIG__", Twine(Digits));
154 Builder.defineMacro(DefPrefix + "DECIMAL_DIG__", Twine(DecimalDigits));
155 Builder.defineMacro(DefPrefix + "EPSILON__", Twine(Epsilon)+Ext);
156 Builder.defineMacro(DefPrefix + "HAS_INFINITY__");
157 Builder.defineMacro(DefPrefix + "HAS_QUIET_NAN__");
158 Builder.defineMacro(DefPrefix + "MANT_DIG__", Twine(MantissaDigits));
160 Builder.defineMacro(DefPrefix + "MAX_10_EXP__", Twine(Max10Exp));
161 Builder.defineMacro(DefPrefix + "MAX_EXP__", Twine(MaxExp));
162 Builder.defineMacro(DefPrefix + "MAX__", Twine(Max)+Ext);
164 Builder.defineMacro(DefPrefix + "MIN_10_EXP__","("+Twine(Min10Exp)+")");
165 Builder.defineMacro(DefPrefix + "MIN_EXP__", "("+Twine(MinExp)+")");
166 Builder.defineMacro(DefPrefix + "MIN__", Twine(Min)+Ext);
175 MacroBuilder &Builder) {
178 Builder.defineMacro(MacroName, toString(MaxVal, 10, isSigned) + ValSuffix);
184 const TargetInfo &TI, MacroBuilder &Builder) {
186 TI.isTypeSigned(Ty), Builder);
191 MacroBuilder &Builder) {
194 Builder.defineMacro(Prefix + "_FMT" + Twine(Fmt) + "__",
207 MacroBuilder &Builder) {
208 Builder.defineMacro(MacroName, TargetInfo::getTypeName(Ty));
212 const TargetInfo &TI, MacroBuilder &Builder) {
213 Builder.defineMacro(MacroName, Twine(TI.getTypeWidth(Ty)));
217 const TargetInfo &TI, MacroBuilder &Builder) {
218 Builder.defineMacro(MacroName,
227 MacroBuilder &Builder) {
228 DefineTypeSize(Prefix + "_MAX__", Ty, TI, Builder);
229 DefineTypeWidth(Prefix + "_WIDTH__", Ty, TI, Builder);
235 MacroBuilder &Builder) {
251 DefineType(Prefix + Twine(TypeWidth) + "_TYPE__", Ty, Builder);
252 DefineFmt(LangOpts, Prefix + Twine(TypeWidth), Ty, TI, Builder);
255 Builder.defineMacro(Prefix + Twine(TypeWidth) + "_C_SUFFIX__", ConstSuffix);
260 MacroBuilder &Builder) {
272 DefineTypeSize(Prefix + Twine(TypeWidth) + "_MAX__", Ty, TI, Builder);
278 MacroBuilder &Builder) {
284 DefineType(Prefix + Twine(TypeWidth) + "_TYPE__", Ty, Builder);
288 DefineTypeSizeAndWidth(Prefix + Twine(TypeWidth), Ty, TI, Builder);
290 DefineTypeSize(Prefix + Twine(TypeWidth) + "_MAX__", Ty, TI, Builder);
291 DefineFmt(LangOpts, Prefix + Twine(TypeWidth), Ty, TI, Builder);
296 MacroBuilder &Builder) {
304 DefineType(Prefix + Twine(TypeWidth) + "_TYPE__", Ty, Builder);
308 DefineTypeSizeAndWidth(Prefix + Twine(TypeWidth), Ty, TI, Builder);
310 DefineTypeSize(Prefix + Twine(TypeWidth) + "_MAX__", Ty, TI, Builder);
311 DefineFmt(LangOpts, Prefix + Twine(TypeWidth), Ty, TI, Builder);
332 MacroBuilder &Builder) {
333 Builder.defineMacro("_GLIBCXX_PREDEFINED_OBJC_ARC_IS_SCALAR");
383 Builder.append(Result);
389 MacroBuilder &Builder) {
391 Builder.defineMacro("__hlsl_clang");
393 Builder.defineMacro("__HLSL_VERSION",
397 Builder.defineMacro("__HLSL_ENABLE_16_BIT", "1");
401 Builder.defineMacro("__SHADER_STAGE_VERTEX",
403 Builder.defineMacro("__SHADER_STAGE_PIXEL",
405 Builder.defineMacro("__SHADER_STAGE_GEOMETRY",
407 Builder.defineMacro("__SHADER_STAGE_HULL",
409 Builder.defineMacro("__SHADER_STAGE_DOMAIN",
411 Builder.defineMacro("__SHADER_STAGE_COMPUTE",
413 Builder.defineMacro("__SHADER_STAGE_AMPLIFICATION",
415 Builder.defineMacro("__SHADER_STAGE_MESH",
417 Builder.defineMacro("__SHADER_STAGE_LIBRARY",
423 Builder.defineMacro("__SHADER_TARGET_STAGE", Twine(StageInteger));
427 Builder.defineMacro("__SHADER_TARGET_MAJOR", Twine(Version.getMajor()));
429 Builder.defineMacro("__SHADER_TARGET_MINOR", Twine(Minor));
442 Builder.defineMacro("__STDC__");
447 Builder.defineMacro("__STDC_HOSTED__", "0");
449 Builder.defineMacro("__STDC_HOSTED__");
457 Builder.defineMacro("__STDC_VERSION__", "202400L");
459 Builder.defineMacro("__STDC_VERSION__", "202311L");
461 Builder.defineMacro("__STDC_VERSION__", "201710L");
463 Builder.defineMacro("__STDC_VERSION__", "201112L");
465 Builder.defineMacro("__STDC_VERSION__", "199901L");
467 Builder.defineMacro("__STDC_VERSION__", "199409L");
472 Builder.defineMacro("__cplusplus", "202400L");
474 Builder.defineMacro("__cplusplus", "202302L");
477 Builder.defineMacro("__cplusplus", "202002L");
480 Builder.defineMacro("__cplusplus", "201703L");
484 Builder.defineMacro("__cplusplus", "201402L");
488 Builder.defineMacro("__cplusplus", "201103L");
492 Builder.defineMacro("__cplusplus", "199711L");
499 Builder.defineMacro("__STDCPP_DEFAULT_NEW_ALIGNMENT__",
507 Builder.defineMacro("__STDCPP_THREADS__", "1");
515 Builder.defineMacro("__STDC_UTF_16__", "1");
516 Builder.defineMacro("__STDC_UTF_32__", "1");
519 Builder.defineMacro("__STDC_EMBED_NOT_FOUND__",
521 Builder.defineMacro("__STDC_EMBED_FOUND__",
523 Builder.defineMacro("__STDC_EMBED_EMPTY__",
527 Builder.defineMacro("__OBJC__");
534 Builder.defineMacro("__OPENCL_CPP_VERSION__", "100");
537 Builder.defineMacro("__OPENCL_CPP_VERSION__", "202100");
542 Builder.defineMacro("__CL_CPP_VERSION_1_0__", "100");
543 Builder.defineMacro("__CL_CPP_VERSION_2021__", "202100");
554 Builder.defineMacro("__OPENCL_C_VERSION__", "100");
557 Builder.defineMacro("__OPENCL_C_VERSION__", "110");
560 Builder.defineMacro("__OPENCL_C_VERSION__", "120");
563 Builder.defineMacro("__OPENCL_C_VERSION__", "200");
566 Builder.defineMacro("__OPENCL_C_VERSION__", "300");
572 Builder.defineMacro("CL_VERSION_1_0", "100");
573 Builder.defineMacro("CL_VERSION_1_1", "110");
574 Builder.defineMacro("CL_VERSION_1_2", "120");
575 Builder.defineMacro("CL_VERSION_2_0", "200");
576 Builder.defineMacro("CL_VERSION_3_0", "300");
579 Builder.defineMacro("__ENDIAN_LITTLE__");
582 Builder.defineMacro("__FAST_RELAXED_MATH__");
588 Builder.defineMacro("CL_SYCL_LANGUAGE_VERSION", "121");
590 Builder.defineMacro("SYCL_LANGUAGE_VERSION", "202001");
595 Builder.defineMacro("__ASSEMBLER__");
598 Builder.defineMacro("__CLANG_RDC__");
600 Builder.defineMacro("__CUDA__");
603 Builder.defineMacro("CUDA_API_PER_THREAD_DEFAULT_STREAM");
606 Builder.defineMacro("__HIP__");
607 Builder.defineMacro("__HIPCC__");
608 Builder.defineMacro("__HIP_MEMORY_SCOPE_SINGLETHREAD", "1");
609 Builder.defineMacro("__HIP_MEMORY_SCOPE_WAVEFRONT", "2");
610 Builder.defineMacro("__HIP_MEMORY_SCOPE_WORKGROUP", "3");
611 Builder.defineMacro("__HIP_MEMORY_SCOPE_AGENT", "4");
612 Builder.defineMacro("__HIP_MEMORY_SCOPE_SYSTEM", "5");
614 Builder.defineMacro("__HIPSTDPAR__");
616 Builder.defineMacro("__HIPSTDPAR_INTERPOSE_ALLOC__");
619 Builder.defineMacro("__HIP_DEVICE_COMPILE__");
621 Builder.defineMacro("__HIP_NO_IMAGE_SUPPORT__", "1");
623 Builder.defineMacro("__HIP_NO_IMAGE_SUPPORT", "1");
628 Builder.defineMacro("__HIP_API_PER_THREAD_DEFAULT_STREAM__");
630 Builder.defineMacro("HIP_API_PER_THREAD_DEFAULT_STREAM");
640 Builder.defineMacro("_OPENACC", LangOpts.OpenACCMacroOverride);
642 Builder.defineMacro("_OPENACC", "1");
649 MacroBuilder &Builder) {
652 Builder.defineMacro("__cpp_rtti", "199711L");
654 Builder.defineMacro("__cpp_exceptions", "199711L");
658 Builder.defineMacro("__cpp_unicode_characters", "200704L");
659 Builder.defineMacro("__cpp_raw_strings", "200710L");
660 Builder.defineMacro("__cpp_unicode_literals", "200710L");
661 Builder.defineMacro("__cpp_user_defined_literals", "200809L");
662 Builder.defineMacro("__cpp_lambdas", "200907L");
663 Builder.defineMacro("__cpp_constexpr", LangOpts.CPlusPlus26 ? "202306L"
669 Builder.defineMacro("__cpp_constexpr_in_decltype", "201711L");
670 Builder.defineMacro("__cpp_range_based_for",
674 Builder.defineMacro("__cpp_static_assert", LangOpts.CPlusPlus26 ? "202306L"
678 Builder.defineMacro("__cpp_decltype", "200707L");
679 Builder.defineMacro("__cpp_attributes", "200809L");
680 Builder.defineMacro("__cpp_rvalue_references", "200610L");
681 Builder.defineMacro("__cpp_variadic_templates", "200704L");
682 Builder.defineMacro("__cpp_initializer_lists", "200806L");
683 Builder.defineMacro("__cpp_delegating_constructors", "200604L");
684 Builder.defineMacro("__cpp_nsdmi", "200809L");
685 Builder.defineMacro("__cpp_inheriting_constructors", "201511L");
686 Builder.defineMacro("__cpp_ref_qualifiers", "200710L");
687 Builder.defineMacro("__cpp_alias_templates", "200704L");
690 Builder.defineMacro("__cpp_threadsafe_static_init", "200806L");
694 Builder.defineMacro("__cpp_binary_literals", "201304L");
695 Builder.defineMacro("__cpp_digit_separators", "201309L");
696 Builder.defineMacro("__cpp_init_captures",
698 Builder.defineMacro("__cpp_generic_lambdas",
700 Builder.defineMacro("__cpp_decltype_auto", "201304L");
701 Builder.defineMacro("__cpp_return_type_deduction", "201304L");
702 Builder.defineMacro("__cpp_aggregate_nsdmi", "201304L");
703 Builder.defineMacro("__cpp_variable_templates", "201304L");
706 Builder.defineMacro("__cpp_sized_deallocation", "201309L");
710 Builder.defineMacro("__cpp_hex_float", "201603L");
711 Builder.defineMacro("__cpp_inline_variables", "201606L");
712 Builder.defineMacro("__cpp_noexcept_function_type", "201510L");
713 Builder.defineMacro("__cpp_capture_star_this", "201603L");
714 Builder.defineMacro("__cpp_if_constexpr", "201606L");
715 Builder.defineMacro("__cpp_deduction_guides", "201703L"); // (not latest)
716 Builder.defineMacro("__cpp_template_auto", "201606L"); // (old name)
717 Builder.defineMacro("__cpp_namespace_attributes", "201411L");
718 Builder.defineMacro("__cpp_enumerator_attributes", "201411L");
719 Builder.defineMacro("__cpp_nested_namespace_definitions", "201411L");
720 Builder.defineMacro("__cpp_variadic_using", "201611L");
721 Builder.defineMacro("__cpp_aggregate_bases", "201603L");
722 Builder.defineMacro("__cpp_structured_bindings", "202403L");
723 Builder.defineMacro("__cpp_nontype_template_args",
725 Builder.defineMacro("__cpp_fold_expressions", "201603L");
726 Builder.defineMacro("__cpp_guaranteed_copy_elision", "201606L");
727 Builder.defineMacro("__cpp_nontype_template_parameter_auto", "201606L");
730 Builder.defineMacro("__cpp_aligned_new", "201606L");
732 Builder.defineMacro("__cpp_template_template_args", "201611L");
736 Builder.defineMacro("__cpp_aggregate_paren_init", "201902L");
738 Builder.defineMacro("__cpp_concepts", "202002");
739 Builder.defineMacro("__cpp_conditional_explicit", "201806L");
740 Builder.defineMacro("__cpp_consteval", "202211L");
741 Builder.defineMacro("__cpp_constexpr_dynamic_alloc", "201907L");
742 Builder.defineMacro("__cpp_constinit", "201907L");
743 Builder.defineMacro("__cpp_impl_coroutine", "201902L");
744 Builder.defineMacro("__cpp_designated_initializers", "201707L");
745 Builder.defineMacro("__cpp_impl_three_way_comparison", "201907L");
746 //Builder.defineMacro("__cpp_modules", "201907L");
747 Builder.defineMacro("__cpp_using_enum", "201907L");
751 Builder.defineMacro("__cpp_implicit_move", "202207L");
752 Builder.defineMacro("__cpp_size_t_suffix", "202011L");
753 Builder.defineMacro("__cpp_if_consteval", "202106L");
754 Builder.defineMacro("__cpp_multidimensional_subscript", "202211L");
755 Builder.defineMacro("__cpp_auto_cast", "202110L");
761 Builder.defineMacro("__cpp_static_call_operator", "202207L");
762 Builder.defineMacro("__cpp_named_character_escapes", "202207L");
763 Builder.defineMacro("__cpp_placeholder_variables", "202306L");
766 Builder.defineMacro("__cpp_pack_indexing", "202311L");
767 Builder.defineMacro("__cpp_deleted_function", "202403L");
770 Builder.defineMacro("__cpp_char8_t", "202207L");
771 Builder.defineMacro("__cpp_impl_destroying_delete", "201806L");
778 MacroBuilder &Builder) {
787 Builder.defineMacro(Name);
794 Builder.defineMacro("__opencl_c_int64");
825 void DefineFixedPointMacros(const TargetInfo &TI, MacroBuilder &Builder,
835 Builder.defineMacro(MacroPrefix + "_EPSILON__",
838 Builder.defineMacro(MacroPrefix + "_FBIT__", Twine(Scale));
839 Builder.defineMacro(
846 Builder.defineMacro(
855 MacroBuilder &Builder) {
857 Builder.defineMacro("__llvm__"); // LLVM Backend
858 Builder.defineMacro("__clang__"); // Clang Frontend
861 Builder.defineMacro("__clang_major__", TOSTR(CLANG_VERSION_MAJOR));
862 Builder.defineMacro("__clang_minor__", TOSTR(CLANG_VERSION_MINOR));
863 Builder.defineMacro("__clang_patchlevel__", TOSTR(CLANG_VERSION_PATCHLEVEL));
866 Builder.defineMacro("__clang_version__",
876 Builder.defineMacro("__GNUC__", Twine(GNUCMajor));
877 Builder.defineMacro("__GNUC_MINOR__", Twine(GNUCMinor));
878 Builder.defineMacro("__GNUC_PATCHLEVEL__", Twine(GNUCPatch));
879 Builder.defineMacro("__GXX_ABI_VERSION", "1002");
882 Builder.defineMacro("__GNUG__", Twine(GNUCMajor));
883 Builder.defineMacro("__GXX_WEAK__");
888 Builder.defineMacro("__ATOMIC_RELAXED", "0");
889 Builder.defineMacro("__ATOMIC_CONSUME", "1");
890 Builder.defineMacro("__ATOMIC_ACQUIRE", "2");
891 Builder.defineMacro("__ATOMIC_RELEASE", "3");
892 Builder.defineMacro("__ATOMIC_ACQ_REL", "4");
893 Builder.defineMacro("__ATOMIC_SEQ_CST", "5");
896 Builder.defineMacro("__MEMORY_SCOPE_SYSTEM", "0");
897 Builder.defineMacro("__MEMORY_SCOPE_DEVICE", "1");
898 Builder.defineMacro("__MEMORY_SCOPE_WRKGRP", "2");
899 Builder.defineMacro("__MEMORY_SCOPE_WVFRNT", "3");
900 Builder.defineMacro("__MEMORY_SCOPE_SINGLE", "4");
910 Builder.defineMacro("__OPENCL_MEMORY_SCOPE_WORK_ITEM", "0");
911 Builder.defineMacro("__OPENCL_MEMORY_SCOPE_WORK_GROUP", "1");
912 Builder.defineMacro("__OPENCL_MEMORY_SCOPE_DEVICE", "2");
913 Builder.defineMacro("__OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES", "3");
914 Builder.defineMacro("__OPENCL_MEMORY_SCOPE_SUB_GROUP", "4");
917 Builder.defineMacro("__FPCLASS_SNAN", "0x0001");
918 Builder.defineMacro("__FPCLASS_QNAN", "0x0002");
919 Builder.defineMacro("__FPCLASS_NEGINF", "0x0004");
920 Builder.defineMacro("__FPCLASS_NEGNORMAL", "0x0008");
921 Builder.defineMacro("__FPCLASS_NEGSUBNORMAL", "0x0010");
922 Builder.defineMacro("__FPCLASS_NEGZERO", "0x0020");
923 Builder.defineMacro("__FPCLASS_POSZERO", "0x0040");
924 Builder.defineMacro("__FPCLASS_POSSUBNORMAL", "0x0080");
925 Builder.defineMacro("__FPCLASS_POSNORMAL", "0x0100");
926 Builder.defineMacro("__FPCLASS_POSINF", "0x0200");
929 Builder.defineMacro("__PRAGMA_REDEFINE_EXTNAME", "1");
933 Builder.defineMacro("__VERSION__", "\"" +
940 Builder.defineMacro("__STRICT_ANSI__");
943 Builder.defineMacro("__GXX_EXPERIMENTAL_CXX0X__");
948 Builder.defineMacro("__GXX_TYPEINFO_EQUALITY_INLINE", "0");
953 Builder.defineMacro("__OBJC2__");
956 Builder.defineMacro("OBJC_ZEROCOST_EXCEPTIONS");
960 Builder.defineMacro("__OBJC_GC__");
963 Builder.defineMacro("__NEXT_RUNTIME__");
972 Builder.defineMacro("__OBJC_GNUSTEP_RUNTIME_ABI__", "20");
974 Builder.defineMacro(
983 Builder.defineMacro("__OBJFW_RUNTIME_ABI__",
988 Builder.defineMacro("IBOutlet", "__attribute__((iboutlet))");
989 Builder.defineMacro("IBOutletCollection(ClassName)",
991 Builder.defineMacro("IBAction", "void)__attribute__((ibaction)");
992 Builder.defineMacro("IBInspectable", "");
993 Builder.defineMacro("IB_DESIGNABLE", "");
998 Builder.defineMacro("__OBJC_BOOL_IS_BOOL",
1002 InitializeCPlusPlusFeatureTestMacros(LangOpts, Builder);
1007 Builder.defineMacro("__CONSTANT_CFSTRINGS__");
1010 Builder.defineMacro("OBJC_NEW_PROPERTIES");
1013 Builder.defineMacro("__PASCAL_STRINGS__");
1016 Builder.defineMacro("__block", "__attribute__((__blocks__(byref)))");
1017 Builder.defineMacro("__BLOCKS__");
1021 Builder.defineMacro("__EXCEPTIONS");
1023 Builder.defineMacro("__GXX_RTTI");
1026 Builder.defineMacro("__USING_SJLJ_EXCEPTIONS__");
1028 Builder.defineMacro("__SEH__");
1031 Builder.defineMacro("__ARM_DWARF_EH__");
1033 Builder.defineMacro("__WASM_EXCEPTIONS__");
1036 Builder.defineMacro("__DEPRECATED");
1039 Builder.defineMacro("__private_extern__", "extern");
1044 Builder.defineMacro("_WCHAR_T_DEFINED");
1045 Builder.defineMacro("_NATIVE_WCHAR_T_DEFINED");
1052 Builder.defineMacro("__clang_literal_encoding__", "\"UTF-8\"");
1056 Builder.defineMacro("__clang_wide_literal_encoding__", "\"UTF-32\"");
1061 Builder.defineMacro("__clang_wide_literal_encoding__", "\"UTF-16\"");
1065 Builder.defineMacro("__OPTIMIZE__");
1067 Builder.defineMacro("__OPTIMIZE_SIZE__");
1070 Builder.defineMacro("__FAST_MATH__");
1079 Builder.defineMacro("__ORDER_LITTLE_ENDIAN__", "1234");
1080 Builder.defineMacro("__ORDER_BIG_ENDIAN__", "4321");
1081 Builder.defineMacro("__ORDER_PDP_ENDIAN__", "3412");
1083 Builder.defineMacro("__BYTE_ORDER__", "__ORDER_BIG_ENDIAN__");
1084 Builder.defineMacro("__BIG_ENDIAN__");
1086 Builder.defineMacro("__BYTE_ORDER__", "__ORDER_LITTLE_ENDIAN__");
1087 Builder.defineMacro("__LITTLE_ENDIAN__");
1092 Builder.defineMacro("_LP64");
1093 Builder.defineMacro("__LP64__");
1098 Builder.defineMacro("_ILP32");
1099 Builder.defineMacro("__ILP32__");
1104 Builder.defineMacro("__CHAR_BIT__", Twine(TI.getCharWidth()));
1106 Builder.defineMacro("__BOOL_WIDTH__", Twine(TI.getBoolWidth()));
1107 Builder.defineMacro("__SHRT_WIDTH__", Twine(TI.getShortWidth()));
1108 Builder.defineMacro("__INT_WIDTH__", Twine(TI.getIntWidth()));
1109 Builder.defineMacro("__LONG_WIDTH__", Twine(TI.getLongWidth()));
1110 Builder.defineMacro("__LLONG_WIDTH__", Twine(TI.getLongLongWidth()));
1117 Builder.defineMacro("__BITINT_MAXWIDTH__", Twine(BitIntMaxWidth));
1119 DefineTypeSize("__SCHAR_MAX__", TargetInfo::SignedChar, TI, Builder);
1120 DefineTypeSize("__SHRT_MAX__", TargetInfo::SignedShort, TI, Builder);
1121 DefineTypeSize("__INT_MAX__", TargetInfo::SignedInt, TI, Builder);
1122 DefineTypeSize("__LONG_MAX__", TargetInfo::SignedLong, TI, Builder);
1123 DefineTypeSize("__LONG_LONG_MAX__", TargetInfo::SignedLongLong, TI, Builder);
1124 DefineTypeSizeAndWidth("__WCHAR", TI.getWCharType(), TI, Builder);
1125 DefineTypeSizeAndWidth("__WINT", TI.getWIntType(), TI, Builder);
1126 DefineTypeSizeAndWidth("__INTMAX", TI.getIntMaxType(), TI, Builder);
1127 DefineTypeSizeAndWidth("__SIZE", TI.getSizeType(), TI, Builder);
1129 DefineTypeSizeAndWidth("__UINTMAX", TI.getUIntMaxType(), TI, Builder);
1131 Builder);
1132 DefineTypeSizeAndWidth("__INTPTR", TI.getIntPtrType(), TI, Builder);
1133 DefineTypeSizeAndWidth("__UINTPTR", TI.getUIntPtrType(), TI, Builder);
1135 DefineTypeSizeof("__SIZEOF_DOUBLE__", TI.getDoubleWidth(), TI, Builder);
1136 DefineTypeSizeof("__SIZEOF_FLOAT__", TI.getFloatWidth(), TI, Builder);
1137 DefineTypeSizeof("__SIZEOF_INT__", TI.getIntWidth(), TI, Builder);
1138 DefineTypeSizeof("__SIZEOF_LONG__", TI.getLongWidth(), TI, Builder);
1139 DefineTypeSizeof("__SIZEOF_LONG_DOUBLE__",TI.getLongDoubleWidth(),TI,Builder);
1140 DefineTypeSizeof("__SIZEOF_LONG_LONG__", TI.getLongLongWidth(), TI, Builder);
1142 TI, Builder);
1143 DefineTypeSizeof("__SIZEOF_SHORT__", TI.getShortWidth(), TI, Builder);
1146 Builder);
1148 TI.getTypeWidth(TI.getSizeType()), TI, Builder);
1150 TI.getTypeWidth(TI.getWCharType()), TI, Builder);
1152 TI.getTypeWidth(TI.getWIntType()), TI, Builder);
1154 DefineTypeSizeof("__SIZEOF_INT128__", 128, TI, Builder);
1156 DefineType("__INTMAX_TYPE__", TI.getIntMaxType(), Builder);
1157 DefineFmt(LangOpts, "__INTMAX", TI.getIntMaxType(), TI, Builder);
1158 Builder.defineMacro("__INTMAX_C_SUFFIX__",
1160 DefineType("__UINTMAX_TYPE__", TI.getUIntMaxType(), Builder);
1161 DefineFmt(LangOpts, "__UINTMAX", TI.getUIntMaxType(), TI, Builder);
1162 Builder.defineMacro("__UINTMAX_C_SUFFIX__",
1164 DefineType("__PTRDIFF_TYPE__", TI.getPtrDiffType(LangAS::Default), Builder);
1166 Builder);
1167 DefineType("__INTPTR_TYPE__", TI.getIntPtrType(), Builder);
1168 DefineFmt(LangOpts, "__INTPTR", TI.getIntPtrType(), TI, Builder);
1169 DefineType("__SIZE_TYPE__", TI.getSizeType(), Builder);
1170 DefineFmt(LangOpts, "__SIZE", TI.getSizeType(), TI, Builder);
1171 DefineType("__WCHAR_TYPE__", TI.getWCharType(), Builder);
1172 DefineType("__WINT_TYPE__", TI.getWIntType(), Builder);
1173 DefineTypeSizeAndWidth("__SIG_ATOMIC", TI.getSigAtomicType(), TI, Builder);
1175 DefineType("__CHAR8_TYPE__", TI.UnsignedChar, Builder);
1176 DefineType("__CHAR16_TYPE__", TI.getChar16Type(), Builder);
1177 DefineType("__CHAR32_TYPE__", TI.getChar32Type(), Builder);
1179 DefineType("__UINTPTR_TYPE__", TI.getUIntPtrType(), Builder);
1180 DefineFmt(LangOpts, "__UINTPTR", TI.getUIntPtrType(), TI, Builder);
1193 DefineFixedPointMacros(TI, Builder, "SFRACT", "HR", TI.getShortFractWidth(),
1195 DefineFixedPointMacros(TI, Builder, "USFRACT", "UHR",
1198 DefineFixedPointMacros(TI, Builder, "FRACT", "R", TI.getFractWidth(),
1200 DefineFixedPointMacros(TI, Builder, "UFRACT", "UR", TI.getFractWidth(),
1202 DefineFixedPointMacros(TI, Builder, "LFRACT", "LR", TI.getLongFractWidth(),
1204 DefineFixedPointMacros(TI, Builder, "ULFRACT", "ULR",
1207 DefineFixedPointMacros(TI, Builder, "SACCUM", "HK", TI.getShortAccumWidth(),
1209 DefineFixedPointMacros(TI, Builder, "USACCUM", "UHK",
1212 DefineFixedPointMacros(TI, Builder, "ACCUM", "K", TI.getAccumWidth(),
1214 DefineFixedPointMacros(TI, Builder, "UACCUM", "UK", TI.getAccumWidth(),
1216 DefineFixedPointMacros(TI, Builder, "LACCUM", "LK", TI.getLongAccumWidth(),
1218 DefineFixedPointMacros(TI, Builder, "ULACCUM", "ULK",
1222 Builder.defineMacro("__SACCUM_IBIT__", Twine(TI.getShortAccumIBits()));
1223 Builder.defineMacro("__USACCUM_IBIT__",
1225 Builder.defineMacro("__ACCUM_IBIT__", Twine(TI.getAccumIBits()));
1226 Builder.defineMacro("__UACCUM_IBIT__", Twine(TI.getUnsignedAccumIBits()));
1227 Builder.defineMacro("__LACCUM_IBIT__", Twine(TI.getLongAccumIBits()));
1228 Builder.defineMacro("__ULACCUM_IBIT__",
1233 DefineFloatMacros(Builder, "FLT16", &TI.getHalfFormat(), "F16");
1234 DefineFloatMacros(Builder, "FLT", &TI.getFloatFormat(), "F");
1235 DefineFloatMacros(Builder, "DBL", &TI.getDoubleFormat(), "");
1236 DefineFloatMacros(Builder, "LDBL", &TI.getLongDoubleFormat(), "L");
1239 Builder.defineMacro("__POINTER_WIDTH__",
1243 Builder.defineMacro("__BIGGEST_ALIGNMENT__",
1247 Builder.defineMacro("__CHAR_UNSIGNED__");
1250 Builder.defineMacro("__WCHAR_UNSIGNED__");
1253 Builder.defineMacro("__WINT_UNSIGNED__");
1256 DefineExactWidthIntType(LangOpts, TargetInfo::SignedChar, TI, Builder);
1259 DefineExactWidthIntType(LangOpts, TargetInfo::SignedShort, TI, Builder);
1262 DefineExactWidthIntType(LangOpts, TargetInfo::SignedInt, TI, Builder);
1265 DefineExactWidthIntType(LangOpts, TargetInfo::SignedLong, TI, Builder);
1268 DefineExactWidthIntType(LangOpts, TargetInfo::SignedLongLong, TI, Builder);
1270 DefineExactWidthIntType(LangOpts, TargetInfo::UnsignedChar, TI, Builder);
1271 DefineExactWidthIntTypeSize(TargetInfo::UnsignedChar, TI, Builder);
1272 DefineExactWidthIntTypeSize(TargetInfo::SignedChar, TI, Builder);
1275 DefineExactWidthIntType(LangOpts, TargetInfo::UnsignedShort, TI, Builder);
1276 DefineExactWidthIntTypeSize(TargetInfo::UnsignedShort, TI, Builder);
1277 DefineExactWidthIntTypeSize(TargetInfo::SignedShort, TI, Builder);
1281 DefineExactWidthIntType(LangOpts, TargetInfo::UnsignedInt, TI, Builder);
1282 DefineExactWidthIntTypeSize(TargetInfo::UnsignedInt, TI, Builder);
1283 DefineExactWidthIntTypeSize(TargetInfo::SignedInt, TI, Builder);
1287 DefineExactWidthIntType(LangOpts, TargetInfo::UnsignedLong, TI, Builder);
1288 DefineExactWidthIntTypeSize(TargetInfo::UnsignedLong, TI, Builder);
1289 DefineExactWidthIntTypeSize(TargetInfo::SignedLong, TI, Builder);
1294 Builder);
1295 DefineExactWidthIntTypeSize(TargetInfo::UnsignedLongLong, TI, Builder);
1296 DefineExactWidthIntTypeSize(TargetInfo::SignedLongLong, TI, Builder);
1299 DefineLeastWidthIntType(LangOpts, 8, true, TI, Builder);
1300 DefineLeastWidthIntType(LangOpts, 8, false, TI, Builder);
1301 DefineLeastWidthIntType(LangOpts, 16, true, TI, Builder);
1302 DefineLeastWidthIntType(LangOpts, 16, false, TI, Builder);
1303 DefineLeastWidthIntType(LangOpts, 32, true, TI, Builder);
1304 DefineLeastWidthIntType(LangOpts, 32, false, TI, Builder);
1305 DefineLeastWidthIntType(LangOpts, 64, true, TI, Builder);
1306 DefineLeastWidthIntType(LangOpts, 64, false, TI, Builder);
1308 DefineFastIntType(LangOpts, 8, true, TI, Builder);
1309 DefineFastIntType(LangOpts, 8, false, TI, Builder);
1310 DefineFastIntType(LangOpts, 16, true, TI, Builder);
1311 DefineFastIntType(LangOpts, 16, false, TI, Builder);
1312 DefineFastIntType(LangOpts, 32, true, TI, Builder);
1313 DefineFastIntType(LangOpts, 32, false, TI, Builder);
1314 DefineFastIntType(LangOpts, 64, true, TI, Builder);
1315 DefineFastIntType(LangOpts, 64, false, TI, Builder);
1317 Builder.defineMacro("__USER_LABEL_PREFIX__", TI.getUserLabelPrefix());
1320 Builder.defineMacro("__NO_MATH_ERRNO__");
1323 Builder.defineMacro("__FINITE_MATH_ONLY__", "1");
1325 Builder.defineMacro("__FINITE_MATH_ONLY__", "0");
1329 Builder.defineMacro("__GNUC_GNU_INLINE__");
1331 Builder.defineMacro("__GNUC_STDC_INLINE__");
1335 Builder.defineMacro("__GCC_ATOMIC_TEST_AND_SET_TRUEVAL", "1");
1341 Builder.defineMacro("__GCC_DESTRUCTIVE_SIZE", Twine(Destructive));
1342 Builder.defineMacro("__GCC_CONSTRUCTIVE_SIZE", Twine(Constructive));
1345 Builder.append("#pragma push_macro(\"__GCC_DESTRUCTIVE_SIZE\")");
1346 Builder.append("#pragma push_macro(\"__GCC_CONSTRUCTIVE_SIZE\")");
1351 Builder.defineMacro(Prefix + #TYPE "_LOCK_FREE", \
1366 Builder.defineMacro(
1376 Builder.defineMacro("__NO_INLINE__");
1379 Builder.defineMacro("__PIC__", Twine(PICLevel));
1380 Builder.defineMacro("__pic__", Twine(PICLevel));
1382 Builder.defineMacro("__PIE__", Twine(PICLevel));
1383 Builder.defineMacro("__pie__", Twine(PICLevel));
1388 Builder.defineMacro("__FLT_RADIX__", "2");
1389 Builder.defineMacro("__DECIMAL_DIG__", "__LDBL_DECIMAL_DIG__");
1392 Builder.defineMacro("__SSP__");
1394 Builder.defineMacro("__SSP_STRONG__", "2");
1396 Builder.defineMacro("__SSP_ALL__", "3");
1399 Builder.defineMacro("__clang_analyzer__");
1402 Builder.defineMacro("__FAST_RELAXED_MATH__");
1406 Builder.defineMacro("__weak", "__attribute__((objc_gc(weak)))");
1407 Builder.defineMacro("__strong", "__attribute__((objc_gc(strong)))");
1408 Builder.defineMacro("__autoreleasing", "");
1409 Builder.defineMacro("__unsafe_unretained", "");
1411 Builder.defineMacro("__weak", "__attribute__((objc_ownership(weak)))");
1412 Builder.defineMacro("__strong", "__attribute__((objc_ownership(strong)))");
1413 Builder.defineMacro("__autoreleasing",
1415 Builder.defineMacro("__unsafe_unretained",
1422 Builder.defineMacro("__nonnull", "_Nonnull");
1423 Builder.defineMacro("__null_unspecified", "_Null_unspecified");
1424 Builder.defineMacro("__nullable", "_Nullable");
1430 Builder.defineMacro("__APPLE_EMBEDDED_SIMULATOR__", "1");
1443 Builder.defineMacro("_OPENMP", "201107");
1446 Builder.defineMacro("_OPENMP", "201307");
1449 Builder.defineMacro("_OPENMP", "201511");
1452 Builder.defineMacro("_OPENMP", "201811");
1455 Builder.defineMacro("_OPENMP", "202111");
1459 Builder.defineMacro("_OPENMP", "202011");
1468 Builder.defineMacro("__CUDA_ARCH__");
1474 Builder.defineMacro("__CLANG_GPU_APPROX_TRANSCENDENTALS__");
1479 Builder.defineMacro("__SYCL_DEVICE_ONLY__", "1");
1484 InitializeOpenCLFeatureTestMacros(TI, LangOpts, Builder);
1487 Builder.defineMacro("__IMAGE_SUPPORT__");
1494 Builder.defineMacro("__GLIBCXX_TYPE_INT_N_0", "__int128");
1495 Builder.defineMacro("__GLIBCXX_BITSIZE_INT_N_0", "128");
1500 Builder.defineMacro("__ELF__");
1506 Builder.defineMacro(#Name, (Predicate) ? "1" : "0");
1512 TI.getTargetDefines(LangOpts, Builder);
1516 MacroBuilder &Builder) {
1518 Builder.defineMacro("__LLVM_INSTR_PROFILE_GENERATE");
1521 Builder.defineMacro("__LLVM_INSTR_PROFILE_USE");
1535 MacroBuilder Builder(Predefines);
1540 Builder.append("# 1 \"<built-in>\" 3");
1550 PP.getPreprocessorOpts(), Builder);
1553 PP.getPreprocessorOpts(), Builder);
1565 AddObjCXXARCLibstdcxxDefines(LangOpts, Builder);
1575 FEOpts, Builder);
1580 InitializePGOProfileMacros(CodeGenOpts, Builder);
1584 Builder.append("# 1 \"<command line>\" 1");
1589 Builder.undefineMacro(InitOpts.Macros[i].first);
1591 DefineBuiltinMacro(Builder, InitOpts.Macros[i].first,
1596 Builder.append("# 1 \"<built-in>\" 2");
1601 AddImplicitIncludeMacros(Builder, InitOpts.MacroIncludes[i]);
1605 AddImplicitIncludePCH(Builder, PP, PCHContainerRdr,
1611 AddImplicitInclude(Builder, Path);