Skip to content

Commit a3acbd0

Browse files
committed
Undo InitPreprocessor.cpp changes
1 parent 740fd6f commit a3acbd0

File tree

1 file changed

+59
-60
lines changed

1 file changed

+59
-60
lines changed

clang/lib/Frontend/InitPreprocessor.cpp

Lines changed: 59 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ static void DefineBuiltinMacro(MacroBuilder &Builder, StringRef Macro,
4747
// Per GCC -D semantics, the macro ends at \n if it exists.
4848
StringRef::size_type End = MacroBody.find_first_of("\n\r");
4949
if (End != StringRef::npos)
50-
Diags.Report(diag::warn_fe_macro_contains_embedded_newline) << MacroName;
50+
Diags.Report(diag::warn_fe_macro_contains_embedded_newline)
51+
<< MacroName;
5152
MacroBody = MacroBody.substr(0, End);
5253
// We handle macro bodies which end in a backslash by appending an extra
5354
// backslash+newline. This makes sure we don't accidentally treat the
@@ -96,17 +97,17 @@ template <typename T>
9697
static T PickFP(const llvm::fltSemantics *Sem, T IEEEHalfVal, T IEEESingleVal,
9798
T IEEEDoubleVal, T X87DoubleExtendedVal, T PPCDoubleDoubleVal,
9899
T IEEEQuadVal) {
99-
if (Sem == (const llvm::fltSemantics *)&llvm::APFloat::IEEEhalf())
100+
if (Sem == (const llvm::fltSemantics*)&llvm::APFloat::IEEEhalf())
100101
return IEEEHalfVal;
101-
if (Sem == (const llvm::fltSemantics *)&llvm::APFloat::IEEEsingle())
102+
if (Sem == (const llvm::fltSemantics*)&llvm::APFloat::IEEEsingle())
102103
return IEEESingleVal;
103-
if (Sem == (const llvm::fltSemantics *)&llvm::APFloat::IEEEdouble())
104+
if (Sem == (const llvm::fltSemantics*)&llvm::APFloat::IEEEdouble())
104105
return IEEEDoubleVal;
105-
if (Sem == (const llvm::fltSemantics *)&llvm::APFloat::x87DoubleExtended())
106+
if (Sem == (const llvm::fltSemantics*)&llvm::APFloat::x87DoubleExtended())
106107
return X87DoubleExtendedVal;
107-
if (Sem == (const llvm::fltSemantics *)&llvm::APFloat::PPCDoubleDouble())
108+
if (Sem == (const llvm::fltSemantics*)&llvm::APFloat::PPCDoubleDouble())
108109
return PPCDoubleDoubleVal;
109-
assert(Sem == (const llvm::fltSemantics *)&llvm::APFloat::IEEEquad());
110+
assert(Sem == (const llvm::fltSemantics*)&llvm::APFloat::IEEEquad());
110111
return IEEEQuadVal;
111112
}
112113

@@ -132,8 +133,8 @@ static void DefineFloatMacros(MacroBuilder &Builder, StringRef Prefix,
132133
int Max10Exp = PickFP(Sem, 4, 38, 308, 4932, 308, 4932);
133134
int MinExp = PickFP(Sem, -13, -125, -1021, -16381, -968, -16381);
134135
int MaxExp = PickFP(Sem, 16, 128, 1024, 16384, 1024, 16384);
135-
Min = PickFP(Sem, "6.103515625e-5", "1.17549435e-38",
136-
"2.2250738585072014e-308", "3.36210314311209350626e-4932",
136+
Min = PickFP(Sem, "6.103515625e-5", "1.17549435e-38", "2.2250738585072014e-308",
137+
"3.36210314311209350626e-4932",
137138
"2.00416836000897277799610805135016e-292",
138139
"3.36210314311209350626267781732175260e-4932");
139140
Max = PickFP(Sem, "6.5504e+4", "3.40282347e+38", "1.7976931348623157e+308",
@@ -146,25 +147,26 @@ static void DefineFloatMacros(MacroBuilder &Builder, StringRef Prefix,
146147
DefPrefix += Prefix;
147148
DefPrefix += "_";
148149

149-
Builder.defineMacro(DefPrefix + "DENORM_MIN__", Twine(DenormMin) + Ext);
150-
Builder.defineMacro(DefPrefix + "NORM_MAX__", Twine(NormMax) + Ext);
150+
Builder.defineMacro(DefPrefix + "DENORM_MIN__", Twine(DenormMin)+Ext);
151+
Builder.defineMacro(DefPrefix + "NORM_MAX__", Twine(NormMax)+Ext);
151152
Builder.defineMacro(DefPrefix + "HAS_DENORM__");
152153
Builder.defineMacro(DefPrefix + "DIG__", Twine(Digits));
153154
Builder.defineMacro(DefPrefix + "DECIMAL_DIG__", Twine(DecimalDigits));
154-
Builder.defineMacro(DefPrefix + "EPSILON__", Twine(Epsilon) + Ext);
155+
Builder.defineMacro(DefPrefix + "EPSILON__", Twine(Epsilon)+Ext);
155156
Builder.defineMacro(DefPrefix + "HAS_INFINITY__");
156157
Builder.defineMacro(DefPrefix + "HAS_QUIET_NAN__");
157158
Builder.defineMacro(DefPrefix + "MANT_DIG__", Twine(MantissaDigits));
158159

159160
Builder.defineMacro(DefPrefix + "MAX_10_EXP__", Twine(Max10Exp));
160161
Builder.defineMacro(DefPrefix + "MAX_EXP__", Twine(MaxExp));
161-
Builder.defineMacro(DefPrefix + "MAX__", Twine(Max) + Ext);
162+
Builder.defineMacro(DefPrefix + "MAX__", Twine(Max)+Ext);
162163

163-
Builder.defineMacro(DefPrefix + "MIN_10_EXP__", "(" + Twine(Min10Exp) + ")");
164-
Builder.defineMacro(DefPrefix + "MIN_EXP__", "(" + Twine(MinExp) + ")");
165-
Builder.defineMacro(DefPrefix + "MIN__", Twine(Min) + 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);
166167
}
167168

169+
168170
/// DefineTypeSize - Emit a macro to the predefines buffer that declares a macro
169171
/// named MacroName with the max value for a type with width 'TypeWidth' a
170172
/// signedness of 'isSigned' and with a value suffix of 'ValSuffix' (e.g. LL).
@@ -213,7 +215,8 @@ static void DefineTypeWidth(const Twine &MacroName, TargetInfo::IntType Ty,
213215

214216
static void DefineTypeSizeof(StringRef MacroName, unsigned BitWidth,
215217
const TargetInfo &TI, MacroBuilder &Builder) {
216-
Builder.defineMacro(MacroName, Twine(BitWidth / TI.getCharWidth()));
218+
Builder.defineMacro(MacroName,
219+
Twine(BitWidth / TI.getCharWidth()));
217220
}
218221

219222
// This will generate a macro based on the prefix with `_MAX__` as the suffix
@@ -310,6 +313,7 @@ static void DefineFastIntType(const LangOptions &LangOpts, unsigned TypeWidth,
310313
DefineFmt(LangOpts, Prefix + Twine(TypeWidth), Ty, TI, Builder);
311314
}
312315

316+
313317
/// Get the value the ATOMIC_*_LOCK_FREE macro should have for a type with
314318
/// the specified properties.
315319
static const char *getLockFreeValue(unsigned TypeWidth, const TargetInfo &TI) {
@@ -350,8 +354,7 @@ static void AddObjCXXARCLibstdcxxDefines(const LangOptions &LangOpts,
350354

351355
if (LangOpts.ObjCAutoRefCount) {
352356
Out << "template<typename _Tp>\n"
353-
<< "struct __is_scalar<__attribute__((objc_ownership(strong))) _Tp> "
354-
"{\n"
357+
<< "struct __is_scalar<__attribute__((objc_ownership(strong))) _Tp> {\n"
355358
<< " enum { __value = 0 };\n"
356359
<< " typedef __false_type __type;\n"
357360
<< "};\n"
@@ -546,12 +549,12 @@ static void InitializeStandardPredefinedMacros(const TargetInfo &TI,
546549
Builder.defineMacro("__CL_CPP_VERSION_2021__", "202100");
547550
} else {
548551
// OpenCL v1.0 and v1.1 do not have a predefined macro to indicate the
549-
// language standard with which the program is compiled.
550-
// __OPENCL_VERSION__ is for the OpenCL version supported by the OpenCL
551-
// device, which is not necessarily the language standard with which the
552-
// program is compiled. A shared OpenCL header file requires a macro to
553-
// indicate the language standard. As a workaround, __OPENCL_C_VERSION__
554-
// is defined for OpenCL v1.0 and v1.1.
552+
// language standard with which the program is compiled. __OPENCL_VERSION__
553+
// is for the OpenCL version supported by the OpenCL device, which is not
554+
// necessarily the language standard with which the program is compiled.
555+
// A shared OpenCL header file requires a macro to indicate the language
556+
// standard. As a workaround, __OPENCL_C_VERSION__ is defined for
557+
// OpenCL v1.0 and v1.1.
555558
switch (LangOpts.OpenCLVersion) {
556559
case 100:
557560
Builder.defineMacro("__OPENCL_C_VERSION__", "100");
@@ -717,7 +720,7 @@ static void InitializeCPlusPlusFeatureTestMacros(const LangOptions &LangOpts,
717720
Builder.defineMacro("__cpp_capture_star_this", "201603L");
718721
Builder.defineMacro("__cpp_if_constexpr", "201606L");
719722
Builder.defineMacro("__cpp_deduction_guides", "201703L"); // (not latest)
720-
Builder.defineMacro("__cpp_template_auto", "201606L"); // (old name)
723+
Builder.defineMacro("__cpp_template_auto", "201606L"); // (old name)
721724
Builder.defineMacro("__cpp_namespace_attributes", "201411L");
722725
Builder.defineMacro("__cpp_enumerator_attributes", "201411L");
723726
Builder.defineMacro("__cpp_nested_namespace_definitions", "201411L");
@@ -747,7 +750,7 @@ static void InitializeCPlusPlusFeatureTestMacros(const LangOptions &LangOpts,
747750
Builder.defineMacro("__cpp_impl_coroutine", "201902L");
748751
Builder.defineMacro("__cpp_designated_initializers", "201707L");
749752
Builder.defineMacro("__cpp_impl_three_way_comparison", "201907L");
750-
// Builder.defineMacro("__cpp_modules", "201907L");
753+
//Builder.defineMacro("__cpp_modules", "201907L");
751754
Builder.defineMacro("__cpp_using_enum", "201907L");
752755
}
753756
// C++23 features.
@@ -862,7 +865,6 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
862865
const LangOptions &LangOpts,
863866
const FrontendOptions &FEOpts,
864867
const PreprocessorOptions &PPOpts,
865-
const CodeGenOptions &CGOpts,
866868
MacroBuilder &Builder) {
867869
// Compiler version introspection macros.
868870
Builder.defineMacro("__llvm__"); // LLVM Backend
@@ -874,9 +876,9 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
874876
Builder.defineMacro("__clang_patchlevel__", TOSTR(CLANG_VERSION_PATCHLEVEL));
875877
#undef TOSTR
876878
#undef TOSTR2
877-
Builder.defineMacro("__clang_version__", "\"" CLANG_VERSION_STRING " " +
878-
getClangFullRepositoryVersion() +
879-
"\"");
879+
Builder.defineMacro("__clang_version__",
880+
"\"" CLANG_VERSION_STRING " "
881+
+ getClangFullRepositoryVersion() + "\"");
880882

881883
if (LangOpts.GNUCVersion != 0) {
882884
// Major, minor, patch, are given two decimal places each, so 4.2.1 becomes
@@ -941,8 +943,8 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
941943

942944
// Previously this macro was set to a string aiming to achieve compatibility
943945
// with GCC 4.2.1. Now, just return the full Clang version
944-
Builder.defineMacro("__VERSION__",
945-
"\"" + Twine(getClangFullCPPVersion()) + "\"");
946+
Builder.defineMacro("__VERSION__", "\"" +
947+
Twine(getClangFullCPPVersion()) + "\"");
946948

947949
// Initialize language-specific preprocessor defines.
948950

@@ -990,9 +992,9 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
990992
VersionTuple tuple = LangOpts.ObjCRuntime.getVersion();
991993
unsigned minor = tuple.getMinor().value_or(0);
992994
unsigned subminor = tuple.getSubminor().value_or(0);
993-
Builder.defineMacro(
994-
"__OBJFW_RUNTIME_ABI__",
995-
Twine(tuple.getMajor() * 10000 + minor * 100 + subminor));
995+
Builder.defineMacro("__OBJFW_RUNTIME_ABI__",
996+
Twine(tuple.getMajor() * 10000 + minor * 100 +
997+
subminor));
996998
}
997999

9981000
Builder.defineMacro("IBOutlet", "__attribute__((iboutlet))");
@@ -1014,7 +1016,7 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
10141016
// darwin_constant_cfstrings controls this. This is also dependent
10151017
// on other things like the runtime I believe. This is set even for C code.
10161018
if (!LangOpts.NoConstantCFStrings)
1017-
Builder.defineMacro("__CONSTANT_CFSTRINGS__");
1019+
Builder.defineMacro("__CONSTANT_CFSTRINGS__");
10181020

10191021
if (LangOpts.ObjC)
10201022
Builder.defineMacro("OBJC_NEW_PROPERTIES");
@@ -1071,9 +1073,9 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
10711073
Builder.defineMacro("__clang_wide_literal_encoding__", "\"UTF-16\"");
10721074
}
10731075

1074-
if (CGOpts.OptimizationLevel != 0)
1076+
if (LangOpts.Optimize)
10751077
Builder.defineMacro("__OPTIMIZE__");
1076-
if (CGOpts.OptimizeSize != 0)
1078+
if (LangOpts.OptimizeSize)
10771079
Builder.defineMacro("__OPTIMIZE_SIZE__");
10781080

10791081
if (LangOpts.FastMath)
@@ -1087,8 +1089,8 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
10871089
// We don't support the PDP-11 as a target, but include
10881090
// the define so it can still be compared against.
10891091
Builder.defineMacro("__ORDER_LITTLE_ENDIAN__", "1234");
1090-
Builder.defineMacro("__ORDER_BIG_ENDIAN__", "4321");
1091-
Builder.defineMacro("__ORDER_PDP_ENDIAN__", "3412");
1092+
Builder.defineMacro("__ORDER_BIG_ENDIAN__", "4321");
1093+
Builder.defineMacro("__ORDER_PDP_ENDIAN__", "3412");
10921094
if (TI.isBigEndian()) {
10931095
Builder.defineMacro("__BYTE_ORDER__", "__ORDER_BIG_ENDIAN__");
10941096
Builder.defineMacro("__BIG_ENDIAN__");
@@ -1154,21 +1156,20 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
11541156
DefineTypeSizeof("__SIZEOF_FLOAT__", TI.getFloatWidth(), TI, Builder);
11551157
DefineTypeSizeof("__SIZEOF_INT__", TI.getIntWidth(), TI, Builder);
11561158
DefineTypeSizeof("__SIZEOF_LONG__", TI.getLongWidth(), TI, Builder);
1157-
DefineTypeSizeof("__SIZEOF_LONG_DOUBLE__", TI.getLongDoubleWidth(), TI,
1158-
Builder);
1159+
DefineTypeSizeof("__SIZEOF_LONG_DOUBLE__",TI.getLongDoubleWidth(),TI,Builder);
11591160
DefineTypeSizeof("__SIZEOF_LONG_LONG__", TI.getLongLongWidth(), TI, Builder);
11601161
DefineTypeSizeof("__SIZEOF_POINTER__", TI.getPointerWidth(LangAS::Default),
11611162
TI, Builder);
11621163
DefineTypeSizeof("__SIZEOF_SHORT__", TI.getShortWidth(), TI, Builder);
11631164
DefineTypeSizeof("__SIZEOF_PTRDIFF_T__",
11641165
TI.getTypeWidth(TI.getPtrDiffType(LangAS::Default)), TI,
11651166
Builder);
1166-
DefineTypeSizeof("__SIZEOF_SIZE_T__", TI.getTypeWidth(TI.getSizeType()), TI,
1167-
Builder);
1168-
DefineTypeSizeof("__SIZEOF_WCHAR_T__", TI.getTypeWidth(TI.getWCharType()), TI,
1169-
Builder);
1170-
DefineTypeSizeof("__SIZEOF_WINT_T__", TI.getTypeWidth(TI.getWIntType()), TI,
1171-
Builder);
1167+
DefineTypeSizeof("__SIZEOF_SIZE_T__",
1168+
TI.getTypeWidth(TI.getSizeType()), TI, Builder);
1169+
DefineTypeSizeof("__SIZEOF_WCHAR_T__",
1170+
TI.getTypeWidth(TI.getWCharType()), TI, Builder);
1171+
DefineTypeSizeof("__SIZEOF_WINT_T__",
1172+
TI.getTypeWidth(TI.getWIntType()), TI, Builder);
11721173
if (TI.hasInt128Type())
11731174
DefineTypeSizeof("__SIZEOF_INT128__", 128, TI, Builder);
11741175

@@ -1264,7 +1265,7 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
12641265

12651266
// Define __BIGGEST_ALIGNMENT__ to be compatible with gcc.
12661267
Builder.defineMacro("__BIGGEST_ALIGNMENT__",
1267-
Twine(TI.getSuitableAlign() / TI.getCharWidth()));
1268+
Twine(TI.getSuitableAlign() / TI.getCharWidth()) );
12681269

12691270
if (!LangOpts.CharIsSigned)
12701271
Builder.defineMacro("__CHAR_UNSIGNED__");
@@ -1369,7 +1370,7 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
13691370
Builder.append("#pragma push_macro(\"__GCC_CONSTRUCTIVE_SIZE\")");
13701371

13711372
auto addLockFreeMacros = [&](const llvm::Twine &Prefix) {
1372-
// Used by libc++ and libstdc++ to implement ATOMIC_<foo>_LOCK_FREE.
1373+
// Used by libc++ and libstdc++ to implement ATOMIC_<foo>_LOCK_FREE.
13731374
#define DEFINE_LOCK_FREE_MACRO(TYPE, Type) \
13741375
Builder.defineMacro(Prefix + #TYPE "_LOCK_FREE", \
13751376
getLockFreeValue(TI.get##Type##Width(), TI));
@@ -1395,7 +1396,7 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
13951396
if (LangOpts.GNUCVersion)
13961397
addLockFreeMacros("__GCC_ATOMIC_");
13971398

1398-
if (CGOpts.getInlining() == CodeGenOptions::OnlyAlwaysInlining)
1399+
if (LangOpts.NoInlineDefine)
13991400
Builder.defineMacro("__NO_INLINE__");
14001401

14011402
if (unsigned PICLevel = LangOpts.PICLevel) {
@@ -1534,7 +1535,6 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
15341535
#define TARGET_OS(Name, Predicate) \
15351536
Builder.defineMacro(#Name, (Predicate) ? "1" : "0");
15361537
#include "clang/Basic/TargetOSMacros.def"
1537-
15381538
#undef TARGET_OS
15391539
}
15401540

@@ -1556,7 +1556,8 @@ static void InitializePGOProfileMacros(const CodeGenOptions &CodeGenOpts,
15561556
void clang::InitializePreprocessor(Preprocessor &PP,
15571557
const PreprocessorOptions &InitOpts,
15581558
const PCHContainerReader &PCHContainerRdr,
1559-
const FrontendOptions &FEOpts) {
1559+
const FrontendOptions &FEOpts,
1560+
const CodeGenOptions &CodeGenOpts) {
15601561
const LangOptions &LangOpts = PP.getLangOpts();
15611562
std::string PredefineBuffer;
15621563
PredefineBuffer.reserve(4080);
@@ -1574,12 +1575,10 @@ void clang::InitializePreprocessor(Preprocessor &PP,
15741575
// macros. This is not the right way to handle this.
15751576
if ((LangOpts.CUDA || LangOpts.isTargetDevice()) && PP.getAuxTargetInfo())
15761577
InitializePredefinedMacros(*PP.getAuxTargetInfo(), LangOpts, FEOpts,
1577-
PP.getPreprocessorOpts(), PP.getCodeGenOpts(),
1578-
Builder);
1578+
PP.getPreprocessorOpts(), Builder);
15791579

15801580
InitializePredefinedMacros(PP.getTargetInfo(), LangOpts, FEOpts,
1581-
PP.getPreprocessorOpts(), PP.getCodeGenOpts(),
1582-
Builder);
1581+
PP.getPreprocessorOpts(), Builder);
15831582

15841583
// Install definitions to make Objective-C++ ARC work well with various
15851584
// C++ Standard Library implementations.
@@ -1606,15 +1605,15 @@ void clang::InitializePreprocessor(Preprocessor &PP,
16061605
// The PGO instrumentation profile macros are driven by options
16071606
// -fprofile[-instr]-generate/-fcs-profile-generate/-fprofile[-instr]-use,
16081607
// hence they are not guarded by InitOpts.UsePredefines.
1609-
InitializePGOProfileMacros(PP.getCodeGenOpts(), Builder);
1608+
InitializePGOProfileMacros(CodeGenOpts, Builder);
16101609

16111610
// Add on the predefines from the driver. Wrap in a #line directive to report
16121611
// that they come from the command line.
16131612
Builder.append("# 1 \"<command line>\" 1");
16141613

16151614
// Process #define's and #undef's in the order they are given.
16161615
for (unsigned i = 0, e = InitOpts.Macros.size(); i != e; ++i) {
1617-
if (InitOpts.Macros[i].second) // isUndef
1616+
if (InitOpts.Macros[i].second) // isUndef
16181617
Builder.undefineMacro(InitOpts.Macros[i].first);
16191618
else
16201619
DefineBuiltinMacro(Builder, InitOpts.Macros[i].first,

0 commit comments

Comments
 (0)