Home | History | Annotate | Download | only in Frontend

Lines Matching full:builder

34 static void DefineBuiltinMacro(MacroBuilder &Builder, StringRef Macro,
45 Builder.defineMacro(MacroName, MacroBody.substr(0, End));
48 Builder.defineMacro(Macro);
54 static void AddImplicitInclude(MacroBuilder &Builder, StringRef File,
56 Builder.append(Twine("#include \"") +
60 static void AddImplicitIncludeMacros(MacroBuilder &Builder,
63 Builder.append(Twine("#__include_macros \"") +
66 Builder.append("##"); // ##?
71 static void AddImplicitIncludePTH(MacroBuilder &Builder, Preprocessor &PP,
83 AddImplicitInclude(Builder, OriginalFile, PP.getFileManager());
104 static void DefineFloatMacros(MacroBuilder &Builder, StringRef Prefix,
135 Builder.defineMacro(DefPrefix + "DENORM_MIN__", DenormMin);
136 Builder.defineMacro(DefPrefix + "HAS_DENORM__");
137 Builder.defineMacro(DefPrefix + "DIG__", Twine(Digits));
138 Builder.defineMacro(DefPrefix + "EPSILON__", Twine(Epsilon));
139 Builder.defineMacro(DefPrefix + "HAS_INFINITY__");
140 Builder.defineMacro(DefPrefix + "HAS_QUIET_NAN__");
141 Builder.defineMacro(DefPrefix + "MANT_DIG__", Twine(MantissaDigits));
143 Builder.defineMacro(DefPrefix + "MAX_10_EXP__", Twine(Max10Exp));
144 Builder.defineMacro(DefPrefix + "MAX_EXP__", Twine(MaxExp));
145 Builder.defineMacro(DefPrefix + "MAX__", Twine(Max));
147 Builder.defineMacro(DefPrefix + "MIN_10_EXP__","("+Twine(Min10Exp)+")");
148 Builder.defineMacro(DefPrefix + "MIN_EXP__", "("+Twine(MinExp)+")");
149 Builder.defineMacro(DefPrefix + "MIN__", Twine(Min));
158 MacroBuilder &Builder) {
161 Builder.defineMacro(MacroName, MaxVal.toString(10, isSigned) + ValSuffix);
167 const TargetInfo &TI, MacroBuilder &Builder) {
169 TI.isTypeSigned(Ty), Builder);
173 MacroBuilder &Builder) {
174 Builder.defineMacro(MacroName, TargetInfo::getTypeName(Ty));
178 const TargetInfo &TI, MacroBuilder &Builder) {
179 Builder.defineMacro(MacroName, Twine(TI.getTypeWidth(Ty)));
183 const TargetInfo &TI, MacroBuilder &Builder) {
184 Builder.defineMacro(MacroName,
189 const TargetInfo &TI, MacroBuilder &Builder) {
197 DefineType("__INT" + Twine(TypeWidth) + "_TYPE__", Ty, Builder);
201 Builder.defineMacro("__INT" + Twine(TypeWidth) + "_C_SUFFIX__",
222 MacroBuilder &Builder) {
223 Builder.defineMacro("_GLIBCXX_PREDEFINED_OBJC_ARC_IS_SCALAR");
269 Builder.append(Result);
275 MacroBuilder &Builder) {
277 Builder.defineMacro("__STDC__");
279 Builder.defineMacro("__STDC_HOSTED__", "0");
281 Builder.defineMacro("__STDC_HOSTED__");
285 Builder.defineMacro("__STDC_VERSION__", "201112L");
287 Builder.defineMacro("__STDC_VERSION__", "199901L");
289 Builder.defineMacro("__STDC_VERSION__", "199409L");
292 Builder.defineMacro("__cplusplus");
298 Builder.defineMacro("__cplusplus", "201103L");
303 Builder.defineMacro("__cplusplus", "199711L");
308 Builder.defineMacro("__OBJC__");
312 Builder.defineMacro("__ASSEMBLER__");
318 MacroBuilder &Builder) {
320 Builder.defineMacro("__llvm__"); // LLVM Backend
321 Builder.defineMacro("__clang__"); // Clang Frontend
324 Builder.defineMacro("__clang_major__", TOSTR(CLANG_VERSION_MAJOR));
325 Builder.defineMacro("__clang_minor__", TOSTR(CLANG_VERSION_MINOR));
327 Builder.defineMacro("__clang_patchlevel__", TOSTR(CLANG_VERSION_PATCHLEVEL));
329 Builder.defineMacro("__clang_patchlevel__", "0");
331 Builder.defineMacro("__clang_version__",
339 Builder.defineMacro("__GNUC_MINOR__", "2");
340 Builder.defineMacro("__GNUC_PATCHLEVEL__", "1");
341 Builder.defineMacro("__GNUC__", "4");
342 Builder.defineMacro("__GXX_ABI_VERSION", "1002");
346 Builder.defineMacro("__ATOMIC_RELAXED", "0");
347 Builder.defineMacro("__ATOMIC_CONSUME", "1");
348 Builder.defineMacro("__ATOMIC_ACQUIRE", "2");
349 Builder.defineMacro("__ATOMIC_RELEASE", "3");
350 Builder.defineMacro("__ATOMIC_ACQ_REL", "4");
351 Builder.defineMacro("__ATOMIC_SEQ_CST", "5");
354 Builder.defineMacro("__PRAGMA_REDEFINE_EXTNAME", "1");
359 Builder.defineMacro("__VERSION__", "\"4.2.1 Compatible " +
366 Builder.defineMacro("__STRICT_ANSI__");
369 Builder.defineMacro("__GXX_EXPERIMENTAL_CXX0X__");
373 Builder.defineMacro("__OBJC2__");
376 Builder.defineMacro("OBJC_ZEROCOST_EXCEPTIONS");
380 Builder.defineMacro("__OBJC_GC__");
383 Builder.defineMacro("__NEXT_RUNTIME__");
389 Builder.defineMacro("__CONSTANT_CFSTRINGS__");
392 Builder.defineMacro("OBJC_NEW_PROPERTIES");
395 Builder.defineMacro("__PASCAL_STRINGS__");
398 Builder.defineMacro("__block", "__attribute__((__blocks__(byref)))");
399 Builder.defineMacro("__BLOCKS__");
403 Builder.defineMacro("__EXCEPTIONS");
405 Builder
407 Builder.defineMacro("__USING_SJLJ_EXCEPTIONS__");
410 Builder.defineMacro("__DEPRECATED");
413 Builder.defineMacro("__GNUG__", "4");
414 Builder.defineMacro("__GXX_WEAK__");
415 Builder.defineMacro("__private_extern__", "extern");
421 Builder.defineMacro("__PRETTY_FUNCTION__", "__FUNCTION__");
425 Builder.defineMacro("_WCHAR_T_DEFINED");
426 Builder.defineMacro("_NATIVE_WCHAR_T_DEFINED");
428 Builder.append("#define __identifier(x) x");
429 Builder.append("class type_info;");
433 Builder.defineMacro("_HAS_CHAR16_T_LANGUAGE_SUPPORT", "1");
438 Builder.defineMacro("__OPTIMIZE__");
440 Builder.defineMacro("__OPTIMIZE_SIZE__");
443 Builder.defineMacro("__FAST_MATH__");
449 Builder.defineMacro("__CHAR_BIT__", "8");
451 DefineTypeSize("__SCHAR_MAX__", TI.getCharWidth(), "", true, Builder);
452 DefineTypeSize("__SHRT_MAX__", TargetInfo::SignedShort, TI, Builder);
453 DefineTypeSize("__INT_MAX__", TargetInfo::SignedInt, TI, Builder);
454 DefineTypeSize("__LONG_MAX__", TargetInfo::SignedLong, TI, Builder);
455 DefineTypeSize("__LONG_LONG_MAX__", TargetInfo::SignedLongLong, TI, Builder);
456 DefineTypeSize("__WCHAR_MAX__", TI.getWCharType(), TI, Builder);
457 DefineTypeSize("__INTMAX_MAX__", TI.getIntMaxType(), TI, Builder);
459 DefineTypeSizeof("__SIZEOF_DOUBLE__", TI.getDoubleWidth(), TI, Builder);
460 DefineTypeSizeof("__SIZEOF_FLOAT__", TI.getFloatWidth(), TI, Builder);
461 DefineTypeSizeof("__SIZEOF_INT__", TI.getIntWidth(), TI, Builder);
462 DefineTypeSizeof("__SIZEOF_LONG__", TI.getLongWidth(), TI, Builder);
463 DefineTypeSizeof("__SIZEOF_LONG_DOUBLE__",TI.getLongDoubleWidth(),TI,Builder);
464 DefineTypeSizeof("__SIZEOF_LONG_LONG__", TI.getLongLongWidth(), TI, Builder);
465 DefineTypeSizeof("__SIZEOF_POINTER__", TI.getPointerWidth(0), TI, Builder);
466 DefineTypeSizeof("__SIZEOF_SHORT__", TI.getShortWidth(), TI, Builder);
468 TI.getTypeWidth(TI.getPtrDiffType(0)), TI, Builder);
470 TI.getTypeWidth(TI.getSizeType()), TI, Builder);
472 TI.getTypeWidth(TI.getWCharType()), TI, Builder);
474 TI.getTypeWidth(TI.getWIntType()), TI, Builder);
476 DefineType("__INTMAX_TYPE__", TI.getIntMaxType(), Builder);
477 DefineType("__UINTMAX_TYPE__", TI.getUIntMaxType(), Builder);
478 DefineTypeWidth("__INTMAX_WIDTH__", TI.getIntMaxType(), TI, Builder);
479 DefineType("__PTRDIFF_TYPE__", TI.getPtrDiffType(0), Builder);
480 DefineTypeWidth("__PTRDIFF_WIDTH__", TI.getPtrDiffType(0), TI, Builder);
481 DefineType("__INTPTR_TYPE__", TI.getIntPtrType(), Builder);
482 DefineTypeWidth("__INTPTR_WIDTH__", TI.getIntPtrType(), TI, Builder);
483 DefineType("__SIZE_TYPE__", TI.getSizeType(), Builder);
484 DefineTypeWidth("__SIZE_WIDTH__", TI.getSizeType(), TI, Builder);
485 DefineType("__WCHAR_TYPE__", TI.getWCharType(), Builder);
486 DefineTypeWidth("__WCHAR_WIDTH__", TI.getWCharType(), TI, Builder);
487 DefineType("__WINT_TYPE__", TI.getWIntType(), Builder);
488 DefineTypeWidth("__WINT_WIDTH__", TI.getWIntType(), TI, Builder);
489 DefineTypeWidth("__SIG_ATOMIC_WIDTH__", TI.getSigAtomicType(), TI, Builder);
490 DefineType("__CHAR16_TYPE__", TI.getChar16Type(), Builder);
491 DefineType("__CHAR32_TYPE__", TI.getChar32Type(), Builder);
493 DefineFloatMacros(Builder, "FLT", &TI.getFloatFormat());
494 DefineFloatMacros(Builder, "DBL", &TI.getDoubleFormat());
495 DefineFloatMacros(Builder, "LDBL", &TI.getLongDoubleFormat());
498 Builder.defineMacro("__POINTER_WIDTH__",
502 Builder.defineMacro("__CHAR_UNSIGNED__");
505 Builder.defineMacro("__WINT_UNSIGNED__");
508 Builder.defineMacro("__INT" + Twine(TI.getCharWidth()) + "_TYPE__",
512 DefineExactWidthIntType(TargetInfo::SignedShort, TI, Builder);
515 DefineExactWidthIntType(TargetInfo::SignedInt, TI, Builder);
518 DefineExactWidthIntType(TargetInfo::SignedLong, TI, Builder);
521 DefineExactWidthIntType(TargetInfo::SignedLongLong, TI, Builder);
524 Builder.append(TI.getVAListDeclaration());
527 Builder.defineMacro("__USER_LABEL_PREFIX__", Prefix);
531 Builder.defineMacro("__FINITE_MATH_ONLY__", "0");
534 Builder.defineMacro("__GNUC_GNU_INLINE__");
536 Builder.defineMacro("__GNUC_STDC_INLINE__");
540 Builder.defineMacro("__GCC_ATOMIC_TEST_AND_SET_TRUEVAL", "1");
545 Builder.defineMacro("__GCC_ATOMIC_" #TYPE "_LOCK_FREE", \
558 Builder.defineMacro("__GCC_ATOMIC_POINTER_LOCK_FREE",
565 Builder.defineMacro("__NO_INLINE__");
568 Builder.defineMacro("__PIC__", Twine(PICLevel));
569 Builder.defineMacro("__pic__", Twine(PICLevel));
572 Builder.defineMacro("__PIE__", Twine(PIELevel));
573 Builder.defineMacro("__pie__", Twine(PIELevel));
577 Builder.defineMacro("__FLT_EVAL_METHOD__", Twine(TI.getFloatEvalMethod()));
578 Builder.defineMacro("__FLT_RADIX__", "2");
580 Builder.defineMacro("__DECIMAL_DIG__", Twine(Dig));
583 Builder.defineMacro("__SSP__");
585 Builder.defineMacro("__SSP_ALL__", "2");
588 Builder.defineMacro("__weak", "__attribute__((objc_gc(weak)))");
592 Builder.defineMacro("__clang_analyzer__");
595 Builder.defineMacro("__FAST_RELAXED_MATH__");
598 Builder.defineMacro("__weak", "__attribute__((objc_ownership(weak)))");
599 Builder.defineMacro("__strong", "__attribute__((objc_ownership(strong)))");
600 Builder.defineMacro("__autoreleasing",
602 Builder.defineMacro("__unsafe_unretained",
607 TI.getTargetDefines(LangOpts, Builder);
683 MacroBuilder Builder(Predefines);
692 Builder.append("# 1 \"<built-in>\" 3");
696 InitializePredefinedMacros(PP.getTargetInfo(), LangOpts, FEOpts, Builder);
707 AddObjCXXARCLibstdcxxDefines(LangOpts, Builder);
717 FEOpts, Builder);
722 Builder.append("# 1 \"<command line>\" 1");
727 Builder.undefineMacro(InitOpts.Macros[i].first);
729 DefineBuiltinMacro(Builder, InitOpts.Macros[i].first,
736 AddImplicitIncludeMacros(Builder, InitOpts.MacroIncludes[i],
743 AddImplicitIncludePTH(Builder, PP, Path);
745 AddImplicitInclude(Builder, Path, PP.getFileManager());
750 Builder.append("# 1 \"<built-in>\" 2");