Skip to content

Commit 65a5601

Browse files
committed
Merge remote-tracking branch 'origin/main' into vplan-simple-scalar-phi-recipe
2 parents b27b0ed + 0dbdc6d commit 65a5601

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+858
-388
lines changed

clang-tools-extra/docs/ReleaseNotes.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,10 @@ Changes in existing checks
228228
<clang-tidy/checks/misc/unconventional-assign-operator>` check to avoid
229229
false positive for C++23 deducing this.
230230

231+
- Improved :doc:`misc-use-internal-linkage
232+
<clang-tidy/checks/misc/use-internal-linkage>` check to insert ``static`` keyword
233+
before type qualifiers such as ``const`` and ``volatile``.
234+
231235
- Improved :doc:`modernize-avoid-c-arrays
232236
<clang-tidy/checks/modernize/avoid-c-arrays>` check to suggest using
233237
``std::span`` as a replacement for parameters of incomplete C array type in
@@ -237,10 +241,6 @@ Changes in existing checks
237241
<clang-tidy/checks/modernize/loop-convert>` check to fix false positive when
238242
using loop variable in initializer of lambda capture.
239243

240-
- Improved :doc:`misc-use-internal-linkage
241-
<clang-tidy/checks/misc/use-internal-linkage>` check to insert ``static`` keyword
242-
before type qualifiers such as ``const`` and ``volatile``.
243-
244244
- Improved :doc:`modernize-min-max-use-initializer-list
245245
<clang-tidy/checks/modernize/min-max-use-initializer-list>` check by fixing
246246
a false positive when only an implicit conversion happened inside an

clang/lib/AST/ASTConcept.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ static void
2222
CreateUnsatisfiedConstraintRecord(const ASTContext &C,
2323
const UnsatisfiedConstraintRecord &Detail,
2424
UnsatisfiedConstraintRecord *TrailingObject) {
25-
if (Detail.is<Expr *>())
26-
new (TrailingObject) UnsatisfiedConstraintRecord(Detail.get<Expr *>());
25+
if (auto *E = dyn_cast<Expr *>(Detail))
26+
new (TrailingObject) UnsatisfiedConstraintRecord(E);
2727
else {
2828
auto &SubstitutionDiagnostic =
29-
*Detail.get<std::pair<SourceLocation, StringRef> *>();
29+
*cast<std::pair<SourceLocation, StringRef> *>(Detail);
3030
StringRef Message = C.backupStr(SubstitutionDiagnostic.second);
3131
auto *NewSubstDiag = new (C) std::pair<SourceLocation, StringRef>(
3232
SubstitutionDiagnostic.first, Message);

clang/lib/AST/ASTContext.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -374,10 +374,10 @@ static const Decl &adjustDeclToTemplate(const Decl &D) {
374374
llvm::PointerUnion<ClassTemplateDecl *,
375375
ClassTemplatePartialSpecializationDecl *>
376376
PU = CTSD->getSpecializedTemplateOrPartial();
377-
return PU.is<ClassTemplateDecl *>()
378-
? *static_cast<const Decl *>(PU.get<ClassTemplateDecl *>())
377+
return isa<ClassTemplateDecl *>(PU)
378+
? *static_cast<const Decl *>(cast<ClassTemplateDecl *>(PU))
379379
: *static_cast<const Decl *>(
380-
PU.get<ClassTemplatePartialSpecializationDecl *>());
380+
cast<ClassTemplatePartialSpecializationDecl *>(PU));
381381
}
382382

383383
// Class is instantiated from a member definition of a class template?

clang/lib/AST/ByteCode/Compiler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4033,7 +4033,7 @@ unsigned Compiler<Emitter>::allocateLocalPrimitive(DeclTy &&Src, PrimType Ty,
40334033
// (int){12} in C. Consider using Expr::isTemporaryObject() instead
40344034
// or isa<MaterializeTemporaryExpr>().
40354035
Descriptor *D = P.createDescriptor(Src, Ty, Descriptor::InlineDescMD, IsConst,
4036-
Src.is<const Expr *>());
4036+
isa<const Expr *>(Src));
40374037
Scope::Local Local = this->createLocal(D);
40384038
if (auto *VD = dyn_cast_if_present<ValueDecl>(Src.dyn_cast<const Decl *>()))
40394039
Locals.insert({VD, Local});

clang/lib/AST/ByteCode/Program.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ unsigned Program::getOrCreateDummy(const DeclTy &D) {
158158
if (const auto *E = D.dyn_cast<const Expr *>()) {
159159
QT = E->getType();
160160
} else {
161-
const ValueDecl *VD = cast<ValueDecl>(D.get<const Decl *>());
161+
const ValueDecl *VD = cast<ValueDecl>(cast<const Decl *>(D));
162162
IsWeak = VD->isWeak();
163163
QT = VD->getType();
164164
if (const auto *RT = QT->getAs<ReferenceType>())

clang/lib/AST/Decl.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1991,7 +1991,7 @@ void DeclaratorDecl::setQualifierInfo(NestedNameSpecifierLoc QualifierLoc) {
19911991
// Make sure the extended decl info is allocated.
19921992
if (!hasExtInfo()) {
19931993
// Save (non-extended) type source info pointer.
1994-
auto *savedTInfo = DeclInfo.get<TypeSourceInfo*>();
1994+
auto *savedTInfo = cast<TypeSourceInfo *>(DeclInfo);
19951995
// Allocate external info struct.
19961996
DeclInfo = new (getASTContext()) ExtInfo;
19971997
// Restore savedTInfo into (extended) decl info.
@@ -2010,7 +2010,7 @@ void DeclaratorDecl::setTrailingRequiresClause(Expr *TrailingRequiresClause) {
20102010
// Make sure the extended decl info is allocated.
20112011
if (!hasExtInfo()) {
20122012
// Save (non-extended) type source info pointer.
2013-
auto *savedTInfo = DeclInfo.get<TypeSourceInfo*>();
2013+
auto *savedTInfo = cast<TypeSourceInfo *>(DeclInfo);
20142014
// Allocate external info struct.
20152015
DeclInfo = new (getASTContext()) ExtInfo;
20162016
// Restore savedTInfo into (extended) decl info.
@@ -2026,7 +2026,7 @@ void DeclaratorDecl::setTemplateParameterListsInfo(
20262026
// Make sure the extended decl info is allocated.
20272027
if (!hasExtInfo()) {
20282028
// Save (non-extended) type source info pointer.
2029-
auto *savedTInfo = DeclInfo.get<TypeSourceInfo*>();
2029+
auto *savedTInfo = cast<TypeSourceInfo *>(DeclInfo);
20302030
// Allocate external info struct.
20312031
DeclInfo = new (getASTContext()) ExtInfo;
20322032
// Restore savedTInfo into (extended) decl info.
@@ -2534,7 +2534,7 @@ EvaluatedStmt *VarDecl::ensureEvaluatedStmt() const {
25342534
// work to avoid leaking those, but we do so in VarDecl::evaluateValue
25352535
// where we can detect whether there's anything to clean up or not.
25362536
Eval = new (getASTContext()) EvaluatedStmt;
2537-
Eval->Value = Init.get<Stmt *>();
2537+
Eval->Value = cast<Stmt *>(Init);
25382538
Init = Eval;
25392539
}
25402540
return Eval;
@@ -3017,7 +3017,7 @@ void ParmVarDecl::setUninstantiatedDefaultArg(Expr *arg) {
30173017
Expr *ParmVarDecl::getUninstantiatedDefaultArg() {
30183018
assert(hasUninstantiatedDefaultArg() &&
30193019
"Wrong kind of initialization expression!");
3020-
return cast_if_present<Expr>(Init.get<Stmt *>());
3020+
return cast_if_present<Expr>(cast<Stmt *>(Init));
30213021
}
30223022

30233023
bool ParmVarDecl::hasDefaultArg() const {
@@ -4010,12 +4010,12 @@ FunctionDecl::TemplatedKind FunctionDecl::getTemplatedKind() const {
40104010
"No other valid types in NamedDecl");
40114011
return TK_FunctionTemplate;
40124012
}
4013-
if (TemplateOrSpecialization.is<MemberSpecializationInfo *>())
4013+
if (isa<MemberSpecializationInfo *>(TemplateOrSpecialization))
40144014
return TK_MemberSpecialization;
4015-
if (TemplateOrSpecialization.is<FunctionTemplateSpecializationInfo *>())
4015+
if (isa<FunctionTemplateSpecializationInfo *>(TemplateOrSpecialization))
40164016
return TK_FunctionTemplateSpecialization;
4017-
if (TemplateOrSpecialization.is
4018-
<DependentFunctionTemplateSpecializationInfo*>())
4017+
if (isa<DependentFunctionTemplateSpecializationInfo *>(
4018+
TemplateOrSpecialization))
40194019
return TK_DependentFunctionTemplateSpecialization;
40204020

40214021
llvm_unreachable("Did we miss a TemplateOrSpecialization type?");
@@ -4062,9 +4062,9 @@ void FunctionDecl::setDescribedFunctionTemplate(
40624062
}
40634063

40644064
bool FunctionDecl::isFunctionTemplateSpecialization() const {
4065-
return TemplateOrSpecialization.is<FunctionTemplateSpecializationInfo *>() ||
4066-
TemplateOrSpecialization
4067-
.is<DependentFunctionTemplateSpecializationInfo *>();
4065+
return isa<FunctionTemplateSpecializationInfo *>(TemplateOrSpecialization) ||
4066+
isa<DependentFunctionTemplateSpecializationInfo *>(
4067+
TemplateOrSpecialization);
40684068
}
40694069

40704070
void FunctionDecl::setInstantiatedFromDecl(FunctionDecl *FD) {
@@ -4216,7 +4216,7 @@ void FunctionDecl::setFunctionTemplateSpecialization(
42164216
const TemplateArgumentListInfo *TemplateArgsAsWritten,
42174217
SourceLocation PointOfInstantiation) {
42184218
assert((TemplateOrSpecialization.isNull() ||
4219-
TemplateOrSpecialization.is<MemberSpecializationInfo *>()) &&
4219+
isa<MemberSpecializationInfo *>(TemplateOrSpecialization)) &&
42204220
"Member function is already a specialization");
42214221
assert(TSK != TSK_Undeclared &&
42224222
"Must specify the type of function template specialization");
@@ -4287,8 +4287,8 @@ TemplateSpecializationKind FunctionDecl::getTemplateSpecializationKind() const {
42874287

42884288
// A dependent function template specialization is an explicit specialization,
42894289
// except when it's a friend declaration.
4290-
if (TemplateOrSpecialization
4291-
.is<DependentFunctionTemplateSpecializationInfo *>() &&
4290+
if (isa<DependentFunctionTemplateSpecializationInfo *>(
4291+
TemplateOrSpecialization) &&
42924292
getFriendObjectKind() == FOK_None)
42934293
return TSK_ExplicitSpecialization;
42944294

@@ -4331,8 +4331,8 @@ FunctionDecl::getTemplateSpecializationKindForInstantiation() const {
43314331
TemplateOrSpecialization.dyn_cast<MemberSpecializationInfo *>())
43324332
return MSInfo->getTemplateSpecializationKind();
43334333

4334-
if (TemplateOrSpecialization
4335-
.is<DependentFunctionTemplateSpecializationInfo *>() &&
4334+
if (isa<DependentFunctionTemplateSpecializationInfo *>(
4335+
TemplateOrSpecialization) &&
43364336
getFriendObjectKind() == FOK_None)
43374337
return TSK_ExplicitSpecialization;
43384338

clang/lib/AST/DeclCXX.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2733,14 +2733,14 @@ int64_t CXXCtorInitializer::getID(const ASTContext &Context) const {
27332733

27342734
TypeLoc CXXCtorInitializer::getBaseClassLoc() const {
27352735
if (isBaseInitializer())
2736-
return Initializee.get<TypeSourceInfo*>()->getTypeLoc();
2736+
return cast<TypeSourceInfo *>(Initializee)->getTypeLoc();
27372737
else
27382738
return {};
27392739
}
27402740

27412741
const Type *CXXCtorInitializer::getBaseClass() const {
27422742
if (isBaseInitializer())
2743-
return Initializee.get<TypeSourceInfo*>()->getType().getTypePtr();
2743+
return cast<TypeSourceInfo *>(Initializee)->getType().getTypePtr();
27442744
else
27452745
return nullptr;
27462746
}
@@ -2752,7 +2752,7 @@ SourceLocation CXXCtorInitializer::getSourceLocation() const {
27522752
if (isAnyMemberInitializer())
27532753
return getMemberLocation();
27542754

2755-
if (const auto *TSInfo = Initializee.get<TypeSourceInfo *>())
2755+
if (const auto *TSInfo = cast<TypeSourceInfo *>(Initializee))
27562756
return TSInfo->getTypeLoc().getBeginLoc();
27572757

27582758
return {};

clang/lib/AST/DeclFriend.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ FriendDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L,
3636
SourceLocation EllipsisLoc,
3737
ArrayRef<TemplateParameterList *> FriendTypeTPLists) {
3838
#ifndef NDEBUG
39-
if (Friend.is<NamedDecl *>()) {
40-
const auto *D = Friend.get<NamedDecl*>();
39+
if (const auto *D = dyn_cast<NamedDecl *>(Friend)) {
4140
assert(isa<FunctionDecl>(D) ||
4241
isa<CXXRecordDecl>(D) ||
4342
isa<FunctionTemplateDecl>(D) ||

clang/lib/AST/DeclTemplate.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -992,7 +992,7 @@ ClassTemplateSpecializationDecl::getSpecializedTemplate() const {
992992
if (const auto *PartialSpec =
993993
SpecializedTemplate.dyn_cast<SpecializedPartialSpecialization*>())
994994
return PartialSpec->PartialSpecialization->getSpecializedTemplate();
995-
return SpecializedTemplate.get<ClassTemplateDecl*>();
995+
return cast<ClassTemplateDecl *>(SpecializedTemplate);
996996
}
997997

998998
SourceRange
@@ -1008,7 +1008,7 @@ ClassTemplateSpecializationDecl::getSourceRange() const {
10081008
if (const auto *CTPSD =
10091009
Pattern.dyn_cast<ClassTemplatePartialSpecializationDecl *>())
10101010
return CTPSD->getSourceRange();
1011-
return Pattern.get<ClassTemplateDecl *>()->getSourceRange();
1011+
return cast<ClassTemplateDecl *>(Pattern)->getSourceRange();
10121012
}
10131013
case TSK_ExplicitSpecialization: {
10141014
SourceRange Range = CXXRecordDecl::getSourceRange();
@@ -1404,7 +1404,7 @@ VarTemplateDecl *VarTemplateSpecializationDecl::getSpecializedTemplate() const {
14041404
if (const auto *PartialSpec =
14051405
SpecializedTemplate.dyn_cast<SpecializedPartialSpecialization *>())
14061406
return PartialSpec->PartialSpecialization->getSpecializedTemplate();
1407-
return SpecializedTemplate.get<VarTemplateDecl *>();
1407+
return cast<VarTemplateDecl *>(SpecializedTemplate);
14081408
}
14091409

14101410
SourceRange VarTemplateSpecializationDecl::getSourceRange() const {
@@ -1419,7 +1419,7 @@ SourceRange VarTemplateSpecializationDecl::getSourceRange() const {
14191419
if (const auto *VTPSD =
14201420
Pattern.dyn_cast<VarTemplatePartialSpecializationDecl *>())
14211421
return VTPSD->getSourceRange();
1422-
VarTemplateDecl *VTD = Pattern.get<VarTemplateDecl *>();
1422+
VarTemplateDecl *VTD = cast<VarTemplateDecl *>(Pattern);
14231423
if (hasInit()) {
14241424
if (VarTemplateDecl *Definition = VTD->getDefinition())
14251425
return Definition->getSourceRange();

clang/lib/AST/ExprCXX.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ QualType CXXTypeidExpr::getTypeOperand(const ASTContext &Context) const {
162162
assert(isTypeOperand() && "Cannot call getTypeOperand for typeid(expr)");
163163
Qualifiers Quals;
164164
return Context.getUnqualifiedArrayType(
165-
Operand.get<TypeSourceInfo *>()->getType().getNonReferenceType(), Quals);
165+
cast<TypeSourceInfo *>(Operand)->getType().getNonReferenceType(), Quals);
166166
}
167167

168168
static bool isGLValueFromPointerDeref(const Expr *E) {
@@ -216,7 +216,7 @@ QualType CXXUuidofExpr::getTypeOperand(ASTContext &Context) const {
216216
assert(isTypeOperand() && "Cannot call getTypeOperand for __uuidof(expr)");
217217
Qualifiers Quals;
218218
return Context.getUnqualifiedArrayType(
219-
Operand.get<TypeSourceInfo *>()->getType().getNonReferenceType(), Quals);
219+
cast<TypeSourceInfo *>(Operand)->getType().getNonReferenceType(), Quals);
220220
}
221221

222222
// CXXScalarValueInitExpr
@@ -1829,11 +1829,11 @@ void MaterializeTemporaryExpr::setExtendingDecl(ValueDecl *ExtendedBy,
18291829

18301830
// We may need to allocate extra storage for the mangling number and the
18311831
// extended-by ValueDecl.
1832-
if (!State.is<LifetimeExtendedTemporaryDecl *>())
1832+
if (!isa<LifetimeExtendedTemporaryDecl *>(State))
18331833
State = LifetimeExtendedTemporaryDecl::Create(
1834-
cast<Expr>(State.get<Stmt *>()), ExtendedBy, ManglingNumber);
1834+
cast<Expr>(cast<Stmt *>(State)), ExtendedBy, ManglingNumber);
18351835

1836-
auto ES = State.get<LifetimeExtendedTemporaryDecl *>();
1836+
auto ES = cast<LifetimeExtendedTemporaryDecl *>(State);
18371837
ES->ExtendingDecl = ExtendedBy;
18381838
ES->ManglingNumber = ManglingNumber;
18391839
}

clang/lib/AST/ExprConcepts.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,7 @@ ConceptSpecializationExpr::Create(const ASTContext &C, ConceptReference *Loc,
9494
const TypeConstraint *
9595
concepts::ExprRequirement::ReturnTypeRequirement::getTypeConstraint() const {
9696
assert(isTypeConstraint());
97-
auto TPL =
98-
TypeConstraintInfo.getPointer().get<TemplateParameterList *>();
97+
auto TPL = cast<TemplateParameterList *>(TypeConstraintInfo.getPointer());
9998
return cast<TemplateTypeParmDecl>(TPL->getParam(0))
10099
->getTypeConstraint();
101100
}

clang/lib/AST/ParentMapContext.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ class ParentMapContext::ParentMap {
107107
return DynTypedNode::create(*D);
108108
if (const auto *S = U.dyn_cast<const Stmt *>())
109109
return DynTypedNode::create(*S);
110-
return *U.get<DynTypedNode *>();
110+
return *cast<DynTypedNode *>(U);
111111
}
112112

113113
template <typename NodeTy, typename MapTy>
@@ -127,17 +127,17 @@ class ParentMapContext::ParentMap {
127127
ParentMap(ASTContext &Ctx);
128128
~ParentMap() {
129129
for (const auto &Entry : PointerParents) {
130-
if (Entry.second.is<DynTypedNode *>()) {
131-
delete Entry.second.get<DynTypedNode *>();
132-
} else if (Entry.second.is<ParentVector *>()) {
133-
delete Entry.second.get<ParentVector *>();
130+
if (auto *DTN = dyn_cast<DynTypedNode *>(Entry.second)) {
131+
delete DTN;
132+
} else if (auto *PV = dyn_cast<ParentVector *>(Entry.second)) {
133+
delete PV;
134134
}
135135
}
136136
for (const auto &Entry : OtherParents) {
137-
if (Entry.second.is<DynTypedNode *>()) {
138-
delete Entry.second.get<DynTypedNode *>();
139-
} else if (Entry.second.is<ParentVector *>()) {
140-
delete Entry.second.get<ParentVector *>();
137+
if (auto *DTN = dyn_cast<DynTypedNode *>(Entry.second)) {
138+
delete DTN;
139+
} else if (auto *PV = dyn_cast<ParentVector *>(Entry.second)) {
140+
delete PV;
141141
}
142142
}
143143
}
@@ -392,14 +392,14 @@ class ParentMapContext::ParentMap::ASTVisitor
392392
else
393393
NodeOrVector = new DynTypedNode(ParentStack.back());
394394
} else {
395-
if (!NodeOrVector.template is<ParentVector *>()) {
395+
if (!isa<ParentVector *>(NodeOrVector)) {
396396
auto *Vector = new ParentVector(
397397
1, getSingleDynTypedNodeFromParentMap(NodeOrVector));
398398
delete NodeOrVector.template dyn_cast<DynTypedNode *>();
399399
NodeOrVector = Vector;
400400
}
401401

402-
auto *Vector = NodeOrVector.template get<ParentVector *>();
402+
auto *Vector = cast<ParentVector *>(NodeOrVector);
403403
// Skip duplicates for types that have memoization data.
404404
// We must check that the type has memoization data before calling
405405
// llvm::is_contained() because DynTypedNode::operator== can't compare all

clang/lib/AST/TemplateName.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,13 +151,13 @@ TemplateName::NameKind TemplateName::getKind() const {
151151
return Template;
152152
}
153153

154-
if (Storage.is<DependentTemplateName *>())
154+
if (isa<DependentTemplateName *>(Storage))
155155
return DependentTemplate;
156-
if (Storage.is<QualifiedTemplateName *>())
156+
if (isa<QualifiedTemplateName *>(Storage))
157157
return QualifiedTemplate;
158158

159-
UncommonTemplateNameStorage *uncommon
160-
= Storage.get<UncommonTemplateNameStorage*>();
159+
UncommonTemplateNameStorage *uncommon =
160+
cast<UncommonTemplateNameStorage *>(Storage);
161161
if (uncommon->getAsOverloadedStorage())
162162
return OverloadedTemplate;
163163
if (uncommon->getAsAssumedTemplateName())

clang/tools/clang-shlib/CMakeLists.txt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,11 @@ add_clang_library(clang-cpp
4848
${_OBJECTS}
4949
LINK_LIBS
5050
${_DEPS})
51-
# AIX linker does not support version script
52-
if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "AIX")
53-
configure_file(simple_version_script.map.in simple_version_script.map)
5451

55-
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
56-
target_link_options(clang-cpp PRIVATE LINKER:--version-script,${CMAKE_CURRENT_BINARY_DIR}/simple_version_script.map)
57-
endif()
52+
configure_file(simple_version_script.map.in simple_version_script.map)
53+
54+
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
55+
target_link_options(clang-cpp PRIVATE LINKER:--version-script,${CMAKE_CURRENT_BINARY_DIR}/simple_version_script.map)
5856
endif()
5957

6058
# Optimize function calls for default visibility definitions to avoid PLT and

lld/COFF/Config.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ struct Configuration {
114114
bool is64() const { return llvm::COFF::is64Bit(machine); }
115115

116116
llvm::COFF::MachineTypes machine = IMAGE_FILE_MACHINE_UNKNOWN;
117+
bool machineInferred = false;
117118
size_t wordsize;
118119
bool verbose = false;
119120
WindowsSubsystem subsystem = llvm::COFF::IMAGE_SUBSYSTEM_UNKNOWN;

0 commit comments

Comments
 (0)