Skip to content

Commit 5b5ec44

Browse files
committed
merge main into amd-staging
xfail: new test llvm/test/CodeGen/AMDGPU/mcexpr-knownbits-assign-crash-gh-issue-110930.ll Revert: breaks build of libdevice 6e0b003 [clang][OpenCL][CodeGen][AMDGPU] Do not use `private` as the default AS for when `generic` is available (llvm#112442) Change-Id: Id9b4f991e125cf64446a1fb7dc9ace29289b386a
2 parents af4fc56 + 2e0506f commit 5b5ec44

File tree

247 files changed

+11669
-4361
lines changed

Some content is hidden

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

247 files changed

+11669
-4361
lines changed

bolt/lib/Core/DIEBuilder.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,8 +281,7 @@ void DIEBuilder::buildTypeUnits(DebugStrOffsetsWriter *StrOffsetWriter,
281281
for (auto &Row : TUIndex.getRows()) {
282282
uint64_t Signature = Row.getSignature();
283283
// manually populate TypeUnit to UnitVector
284-
DwarfContext->getTypeUnitForHash(DwarfContext->getMaxVersion(), Signature,
285-
true);
284+
DwarfContext->getTypeUnitForHash(Signature, true);
286285
}
287286
}
288287
const unsigned int CUNum = getCUNum(DwarfContext, isDWO());

clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,25 +172,25 @@ void ConstCorrectnessCheck::check(const MatchFinder::MatchResult &Result) {
172172

173173
using namespace utils::fixit;
174174
if (VC == VariableCategory::Value && TransformValues) {
175-
Diag << addQualifierToVarDecl(*Variable, *Result.Context,
176-
DeclSpec::TQ_const, QualifierTarget::Value,
175+
Diag << addQualifierToVarDecl(*Variable, *Result.Context, Qualifiers::Const,
176+
QualifierTarget::Value,
177177
QualifierPolicy::Right);
178178
// FIXME: Add '{}' for default initialization if no user-defined default
179179
// constructor exists and there is no initializer.
180180
return;
181181
}
182182

183183
if (VC == VariableCategory::Reference && TransformReferences) {
184-
Diag << addQualifierToVarDecl(*Variable, *Result.Context,
185-
DeclSpec::TQ_const, QualifierTarget::Value,
184+
Diag << addQualifierToVarDecl(*Variable, *Result.Context, Qualifiers::Const,
185+
QualifierTarget::Value,
186186
QualifierPolicy::Right);
187187
return;
188188
}
189189

190190
if (VC == VariableCategory::Pointer) {
191191
if (WarnPointersAsValues && TransformPointersAsValues) {
192192
Diag << addQualifierToVarDecl(*Variable, *Result.Context,
193-
DeclSpec::TQ_const, QualifierTarget::Value,
193+
Qualifiers::Const, QualifierTarget::Value,
194194
QualifierPolicy::Right);
195195
}
196196
return;

clang-tools-extra/clang-tidy/performance/ForRangeCopyCheck.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ bool ForRangeCopyCheck::handleConstValueCopy(const VarDecl &LoopVar,
9191
<< utils::fixit::changeVarDeclToReference(LoopVar, Context);
9292
if (!LoopVar.getType().isConstQualified()) {
9393
if (std::optional<FixItHint> Fix = utils::fixit::addQualifierToVarDecl(
94-
LoopVar, Context, DeclSpec::TQ::TQ_const))
94+
LoopVar, Context, Qualifiers::Const))
9595
Diagnostic << *Fix;
9696
}
9797
return true;
@@ -129,7 +129,7 @@ bool ForRangeCopyCheck::handleCopyIsOnlyConstReferenced(
129129
"making it a const reference");
130130

131131
if (std::optional<FixItHint> Fix = utils::fixit::addQualifierToVarDecl(
132-
LoopVar, Context, DeclSpec::TQ::TQ_const))
132+
LoopVar, Context, Qualifiers::Const))
133133
Diag << *Fix << utils::fixit::changeVarDeclToReference(LoopVar, Context);
134134

135135
return true;

clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ void recordFixes(const VarDecl &Var, ASTContext &Context,
3636
Diagnostic << utils::fixit::changeVarDeclToReference(Var, Context);
3737
if (!Var.getType().isLocalConstQualified()) {
3838
if (std::optional<FixItHint> Fix = utils::fixit::addQualifierToVarDecl(
39-
Var, Context, DeclSpec::TQ::TQ_const))
39+
Var, Context, Qualifiers::Const))
4040
Diagnostic << *Fix;
4141
}
4242
}

clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ void UnnecessaryValueParamCheck::handleConstRefFix(const FunctionDecl &Function,
172172
// declaration.
173173
if (!CurrentParam.getType().getCanonicalType().isConstQualified()) {
174174
if (std::optional<FixItHint> Fix = utils::fixit::addQualifierToVarDecl(
175-
CurrentParam, Context, DeclSpec::TQ::TQ_const))
175+
CurrentParam, Context, Qualifiers::Const))
176176
Diag << *Fix;
177177
}
178178
}

clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include "clang/AST/ASTContext.h"
1212
#include "clang/AST/ExprCXX.h"
1313
#include "clang/AST/Type.h"
14+
#include "clang/Sema/DeclSpec.h"
1415
#include "clang/Tooling/FixIt.h"
1516
#include <optional>
1617

@@ -71,15 +72,17 @@ static std::optional<FixItHint> fixIfNotDangerous(SourceLocation Loc,
7172

7273
// Build a string that can be emitted as FixIt with either a space in before
7374
// or after the qualifier, either ' const' or 'const '.
74-
static std::string buildQualifier(DeclSpec::TQ Qualifier,
75+
static std::string buildQualifier(Qualifiers::TQ Qualifier,
7576
bool WhitespaceBefore = false) {
7677
if (WhitespaceBefore)
77-
return (llvm::Twine(' ') + DeclSpec::getSpecifierName(Qualifier)).str();
78-
return (llvm::Twine(DeclSpec::getSpecifierName(Qualifier)) + " ").str();
78+
return (llvm::Twine(' ') + Qualifiers::fromCVRMask(Qualifier).getAsString())
79+
.str();
80+
return (llvm::Twine(Qualifiers::fromCVRMask(Qualifier).getAsString()) + " ")
81+
.str();
7982
}
8083

8184
static std::optional<FixItHint> changeValue(const VarDecl &Var,
82-
DeclSpec::TQ Qualifier,
85+
Qualifiers::TQ Qualifier,
8386
QualifierTarget QualTarget,
8487
QualifierPolicy QualPolicy,
8588
const ASTContext &Context) {
@@ -99,7 +102,7 @@ static std::optional<FixItHint> changeValue(const VarDecl &Var,
99102
}
100103

101104
static std::optional<FixItHint> changePointerItself(const VarDecl &Var,
102-
DeclSpec::TQ Qualifier,
105+
Qualifiers::TQ Qualifier,
103106
const ASTContext &Context) {
104107
if (locDangerous(Var.getLocation()))
105108
return std::nullopt;
@@ -112,7 +115,7 @@ static std::optional<FixItHint> changePointerItself(const VarDecl &Var,
112115
}
113116

114117
static std::optional<FixItHint>
115-
changePointer(const VarDecl &Var, DeclSpec::TQ Qualifier, const Type *Pointee,
118+
changePointer(const VarDecl &Var, Qualifiers::TQ Qualifier, const Type *Pointee,
116119
QualifierTarget QualTarget, QualifierPolicy QualPolicy,
117120
const ASTContext &Context) {
118121
// The pointer itself shall be marked as `const`. This is always to the right
@@ -163,7 +166,7 @@ changePointer(const VarDecl &Var, DeclSpec::TQ Qualifier, const Type *Pointee,
163166
}
164167

165168
static std::optional<FixItHint>
166-
changeReferencee(const VarDecl &Var, DeclSpec::TQ Qualifier, QualType Pointee,
169+
changeReferencee(const VarDecl &Var, Qualifiers::TQ Qualifier, QualType Pointee,
167170
QualifierTarget QualTarget, QualifierPolicy QualPolicy,
168171
const ASTContext &Context) {
169172
if (QualPolicy == QualifierPolicy::Left && isValueType(Pointee))
@@ -183,7 +186,7 @@ changeReferencee(const VarDecl &Var, DeclSpec::TQ Qualifier, QualType Pointee,
183186

184187
std::optional<FixItHint> addQualifierToVarDecl(const VarDecl &Var,
185188
const ASTContext &Context,
186-
DeclSpec::TQ Qualifier,
189+
Qualifiers::TQ Qualifier,
187190
QualifierTarget QualTarget,
188191
QualifierPolicy QualPolicy) {
189192
assert((QualPolicy == QualifierPolicy::Left ||

clang-tools-extra/clang-tidy/utils/FixItHintUtils.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
#include "clang/AST/ASTContext.h"
1313
#include "clang/AST/Decl.h"
14-
#include "clang/Sema/DeclSpec.h"
14+
#include "clang/AST/Type.h"
1515
#include <optional>
1616

1717
namespace clang::tidy::utils::fixit {
@@ -41,7 +41,7 @@ enum class QualifierTarget {
4141
/// Requires that `Var` is isolated in written code like in `int foo = 42;`.
4242
std::optional<FixItHint>
4343
addQualifierToVarDecl(const VarDecl &Var, const ASTContext &Context,
44-
DeclSpec::TQ Qualifier,
44+
Qualifiers::TQ Qualifier,
4545
QualifierTarget QualTarget = QualifierTarget::Pointee,
4646
QualifierPolicy QualPolicy = QualifierPolicy::Left);
4747

clang-tools-extra/docs/clang-tidy/checks/bugprone/unchecked-optional-access.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,16 @@ For example:
7676
}
7777
}
7878
79+
Exception: accessor methods
80+
```````````````````````````
81+
82+
The check assumes *accessor* methods of a class are stable, with a heuristic to
83+
determine which methods are accessors. Specifically, parameter-free ``const``
84+
methods are treated as accessors. Note that this is not guaranteed to be safe
85+
-- but, it is widely used (safely) in practice, and so we have chosen to treat
86+
it as generally safe. Calls to non ``const`` methods are assumed to modify
87+
the state of the object and affect the stability of earlier accessor calls.
88+
7989
Rely on invariants of uncommon APIs
8090
-----------------------------------
8191

clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ class ConstTransform : public ClangTidyCheck {
2727
void check(const MatchFinder::MatchResult &Result) override {
2828
const auto *D = Result.Nodes.getNodeAs<VarDecl>("var");
2929
using utils::fixit::addQualifierToVarDecl;
30-
std::optional<FixItHint> Fix = addQualifierToVarDecl(
31-
*D, *Result.Context, DeclSpec::TQ::TQ_const, CT, CP);
30+
std::optional<FixItHint> Fix =
31+
addQualifierToVarDecl(*D, *Result.Context, Qualifiers::Const, CT, CP);
3232
auto Diag = diag(D->getBeginLoc(), "doing const transformation");
3333
if (Fix)
3434
Diag << *Fix;

clang/include/clang/AST/ExprConcepts.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -489,14 +489,6 @@ class NestedRequirement : public Requirement {
489489
return R->getKind() == RK_Nested;
490490
}
491491
};
492-
493-
using EntityPrinter = llvm::function_ref<void(llvm::raw_ostream &)>;
494-
495-
/// \brief create a Requirement::SubstitutionDiagnostic with only a
496-
/// SubstitutedEntity and DiagLoc using Sema's allocator.
497-
Requirement::SubstitutionDiagnostic *
498-
createSubstDiagAt(Sema &S, SourceLocation Location, EntityPrinter Printer);
499-
500492
} // namespace concepts
501493

502494
/// C++2a [expr.prim.req]:

0 commit comments

Comments
 (0)