Skip to content

Commit 02f54eb

Browse files
authored
Merge branch 'llvm:main' into main
2 parents 27aee3a + d4e6e40 commit 02f54eb

File tree

8 files changed

+71
-49
lines changed

8 files changed

+71
-49
lines changed

clang-tools-extra/clang-tidy/cppcoreguidelines/RvalueReferenceParamNotMovedCheck.cpp

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -62,23 +62,28 @@ void RvalueReferenceParamNotMovedCheck::registerMatchers(MatchFinder *Finder) {
6262
anyOf(isConstQualified(), substTemplateTypeParmType()))))),
6363
optionally(hasType(qualType(references(templateTypeParmType(
6464
hasDeclaration(templateTypeParmDecl().bind("template-type"))))))),
65-
anyOf(hasAncestor(cxxConstructorDecl(
66-
ToParam, isDefinition(), unless(isMoveConstructor()),
67-
optionally(hasDescendant(MoveCallMatcher)))),
68-
hasAncestor(functionDecl(
69-
unless(cxxConstructorDecl()), ToParam,
70-
unless(cxxMethodDecl(isMoveAssignmentOperator())),
71-
hasBody(optionally(hasDescendant(MoveCallMatcher))))))),
65+
hasDeclContext(
66+
functionDecl(
67+
isDefinition(), unless(isDeleted()), unless(isDefaulted()),
68+
unless(cxxConstructorDecl(isMoveConstructor())),
69+
unless(cxxMethodDecl(isMoveAssignmentOperator())), ToParam,
70+
anyOf(cxxConstructorDecl(
71+
optionally(hasDescendant(MoveCallMatcher))),
72+
functionDecl(unless(cxxConstructorDecl()),
73+
optionally(hasBody(
74+
hasDescendant(MoveCallMatcher))))))
75+
.bind("func"))),
7276
this);
7377
}
7478

7579
void RvalueReferenceParamNotMovedCheck::check(
7680
const MatchFinder::MatchResult &Result) {
7781
const auto *Param = Result.Nodes.getNodeAs<ParmVarDecl>("param");
82+
const auto *Function = Result.Nodes.getNodeAs<FunctionDecl>("func");
7883
const auto *TemplateType =
7984
Result.Nodes.getNodeAs<TemplateTypeParmDecl>("template-type");
8085

81-
if (!Param)
86+
if (!Param || !Function)
8287
return;
8388

8489
if (IgnoreUnnamedParams && Param->getName().empty())
@@ -87,10 +92,6 @@ void RvalueReferenceParamNotMovedCheck::check(
8792
if (!Param->isUsed() && Param->hasAttr<UnusedAttr>())
8893
return;
8994

90-
const auto *Function = dyn_cast<FunctionDecl>(Param->getDeclContext());
91-
if (!Function)
92-
return;
93-
9495
if (IgnoreNonDeducedTemplateTypes && TemplateType)
9596
return;
9697

clang-tools-extra/docs/ReleaseNotes.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,8 @@ Changes in existing checks
260260

261261
- Improved :doc:`cppcoreguidelines-rvalue-reference-param-not-moved
262262
<clang-tidy/checks/cppcoreguidelines/rvalue-reference-param-not-moved>` check
263-
to ignore unused parameters when they are marked as unused.
263+
to ignore unused parameters when they are marked as unused and parameters of
264+
deleted functions and constructors.
264265

265266
- Improved :doc:`llvm-namespace-comment
266267
<clang-tidy/checks/llvm/namespace-comment>` check to provide fixes for

clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/rvalue-reference-param-not-moved.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,8 +334,7 @@ void instantiate_a_class_template() {
334334
withObjRef.never_moves(o);
335335
}
336336

337-
namespace gh68209
338-
{
337+
namespace gh68209 {
339338
void f1([[maybe_unused]] int&& x) {}
340339

341340
void f2(__attribute__((unused)) int&& x) {}
@@ -358,3 +357,13 @@ namespace gh68209
358357
void f8(__attribute__((unused)) int&& x) { x += 1; }
359358
// CHECK-MESSAGES: :[[@LINE-1]]:41: warning: rvalue reference parameter 'x' is never moved from inside the function body [cppcoreguidelines-rvalue-reference-param-not-moved]
360359
} // namespace gh68209
360+
361+
namespace gh69412 {
362+
struct S
363+
{
364+
S(const int&);
365+
S(int&&) = delete;
366+
367+
void foo(int&&) = delete;
368+
};
369+
} // namespace gh69412

lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,19 @@ void DebugNamesDWARFIndex::GetGlobalVariables(
129129
DWARFUnit &cu, llvm::function_ref<bool(DWARFDIE die)> callback) {
130130
uint64_t cu_offset = cu.GetOffset();
131131
bool found_entry_for_cu = false;
132-
for (const DebugNames::NameIndex &ni: *m_debug_names_up) {
133-
for (DebugNames::NameTableEntry nte: ni) {
132+
for (const DebugNames::NameIndex &ni : *m_debug_names_up) {
133+
// Check if this name index contains an entry for the given CU.
134+
bool cu_matches = false;
135+
for (uint32_t i = 0; i < ni.getCUCount(); ++i) {
136+
if (ni.getCUOffset(i) == cu_offset) {
137+
cu_matches = true;
138+
break;
139+
}
140+
}
141+
if (!cu_matches)
142+
continue;
143+
144+
for (DebugNames::NameTableEntry nte : ni) {
134145
uint64_t entry_offset = nte.getEntryOffset();
135146
llvm::Expected<DebugNames::Entry> entry_or = ni.getEntry(&entry_offset);
136147
for (; entry_or; entry_or = ni.getEntry(&entry_offset)) {

llvm/test/CodeGen/M68k/CodeModel/medium-pic.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -135,16 +135,16 @@ define void @test7(i32 %n.u) nounwind {
135135
; CHECK-NEXT: jmp (%a0)
136136
; CHECK-NEXT: .LBB6_12: ; %bb2
137137
; CHECK-NEXT: bra foo6@PLT ; TAILCALL
138-
; CHECK-NEXT: .LBB6_3: ; %bb6
139-
; CHECK-NEXT: bra foo1@PLT ; TAILCALL
140-
; CHECK-NEXT: .LBB6_8: ; %bb1
138+
; CHECK-NEXT: .LBB6_3: ; %bb5
139+
; CHECK-NEXT: bra foo5@PLT ; TAILCALL
140+
; CHECK-NEXT: .LBB6_5: ; %bb1
141141
; CHECK-NEXT: bra foo2@PLT ; TAILCALL
142-
; CHECK-NEXT: .LBB6_9: ; %bb3
143-
; CHECK-NEXT: bra foo3@PLT ; TAILCALL
144-
; CHECK-NEXT: .LBB6_10: ; %bb4
142+
; CHECK-NEXT: .LBB6_2: ; %bb
143+
; CHECK-NEXT: bra foo1@PLT ; TAILCALL
144+
; CHECK-NEXT: .LBB6_9: ; %bb4
145145
; CHECK-NEXT: bra foo4@PLT ; TAILCALL
146-
; CHECK-NEXT: .LBB6_14: ; %bb11
147-
; CHECK-NEXT: bra foo5@PLT ; TAILCALL
146+
; CHECK-NEXT: .LBB6_8: ; %bb3
147+
; CHECK-NEXT: bra foo3@PLT ; TAILCALL
148148
entry:
149149
switch i32 %n.u, label %bb12 [i32 1, label %bb i32 2, label %bb6 i32 4, label %bb7 i32 5, label %bb8 i32 6, label %bb10 i32 7, label %bb1 i32 8, label %bb3 i32 9, label %bb4 i32 10, label %bb9 i32 11, label %bb2 i32 12, label %bb5 i32 13, label %bb11 ]
150150
bb:

llvm/test/CodeGen/M68k/CodeModel/medium-static.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -119,16 +119,16 @@ define void @test7(i32 %n.u) nounwind {
119119
; CHECK-NEXT: jmp (%a0)
120120
; CHECK-NEXT: .LBB6_12: ; %bb2
121121
; CHECK-NEXT: bra foo6@PLT ; TAILCALL
122-
; CHECK-NEXT: .LBB6_3: ; %bb6
123-
; CHECK-NEXT: bra foo1@PLT ; TAILCALL
124-
; CHECK-NEXT: .LBB6_8: ; %bb1
122+
; CHECK-NEXT: .LBB6_3: ; %bb5
123+
; CHECK-NEXT: bra foo5@PLT ; TAILCALL
124+
; CHECK-NEXT: .LBB6_5: ; %bb1
125125
; CHECK-NEXT: bra foo2@PLT ; TAILCALL
126-
; CHECK-NEXT: .LBB6_9: ; %bb3
127-
; CHECK-NEXT: bra foo3@PLT ; TAILCALL
128-
; CHECK-NEXT: .LBB6_10: ; %bb4
126+
; CHECK-NEXT: .LBB6_2: ; %bb
127+
; CHECK-NEXT: bra foo1@PLT ; TAILCALL
128+
; CHECK-NEXT: .LBB6_9: ; %bb4
129129
; CHECK-NEXT: bra foo4@PLT ; TAILCALL
130-
; CHECK-NEXT: .LBB6_14: ; %bb11
131-
; CHECK-NEXT: bra foo5@PLT ; TAILCALL
130+
; CHECK-NEXT: .LBB6_8: ; %bb3
131+
; CHECK-NEXT: bra foo3@PLT ; TAILCALL
132132
entry:
133133
switch i32 %n.u, label %bb12 [i32 1, label %bb i32 2, label %bb6 i32 4, label %bb7 i32 5, label %bb8 i32 6, label %bb10 i32 7, label %bb1 i32 8, label %bb3 i32 9, label %bb4 i32 10, label %bb9 i32 11, label %bb2 i32 12, label %bb5 i32 13, label %bb11 ]
134134
bb:

llvm/test/CodeGen/M68k/CodeModel/small-pic.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -128,16 +128,16 @@ define void @test7(i32 %n.u) nounwind {
128128
; CHECK-NEXT: jmp (%a0)
129129
; CHECK-NEXT: .LBB6_12: ; %bb2
130130
; CHECK-NEXT: bra foo6@PLT ; TAILCALL
131-
; CHECK-NEXT: .LBB6_3: ; %bb6
132-
; CHECK-NEXT: bra foo1@PLT ; TAILCALL
133-
; CHECK-NEXT: .LBB6_8: ; %bb1
131+
; CHECK-NEXT: .LBB6_3: ; %bb5
132+
; CHECK-NEXT: bra foo5@PLT ; TAILCALL
133+
; CHECK-NEXT: .LBB6_5: ; %bb1
134134
; CHECK-NEXT: bra foo2@PLT ; TAILCALL
135-
; CHECK-NEXT: .LBB6_9: ; %bb3
136-
; CHECK-NEXT: bra foo3@PLT ; TAILCALL
137-
; CHECK-NEXT: .LBB6_10: ; %bb4
135+
; CHECK-NEXT: .LBB6_2: ; %bb
136+
; CHECK-NEXT: bra foo1@PLT ; TAILCALL
137+
; CHECK-NEXT: .LBB6_9: ; %bb4
138138
; CHECK-NEXT: bra foo4@PLT ; TAILCALL
139-
; CHECK-NEXT: .LBB6_14: ; %bb11
140-
; CHECK-NEXT: bra foo5@PLT ; TAILCALL
139+
; CHECK-NEXT: .LBB6_8: ; %bb3
140+
; CHECK-NEXT: bra foo3@PLT ; TAILCALL
141141
entry:
142142
switch i32 %n.u, label %bb12 [i32 1, label %bb i32 2, label %bb6 i32 4, label %bb7 i32 5, label %bb8 i32 6, label %bb10 i32 7, label %bb1 i32 8, label %bb3 i32 9, label %bb4 i32 10, label %bb9 i32 11, label %bb2 i32 12, label %bb5 i32 13, label %bb11 ]
143143
bb:

llvm/test/CodeGen/M68k/CodeModel/small-static.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -121,16 +121,16 @@ define void @test7(i32 %n.u) nounwind {
121121
; CHECK-NEXT: jmp (%a0)
122122
; CHECK-NEXT: .LBB6_12: ; %bb2
123123
; CHECK-NEXT: bra foo6@PLT ; TAILCALL
124-
; CHECK-NEXT: .LBB6_3: ; %bb6
125-
; CHECK-NEXT: bra foo1@PLT ; TAILCALL
126-
; CHECK-NEXT: .LBB6_8: ; %bb1
124+
; CHECK-NEXT: .LBB6_3: ; %bb5
125+
; CHECK-NEXT: bra foo5@PLT ; TAILCALL
126+
; CHECK-NEXT: .LBB6_5: ; %bb1
127127
; CHECK-NEXT: bra foo2@PLT ; TAILCALL
128-
; CHECK-NEXT: .LBB6_9: ; %bb3
129-
; CHECK-NEXT: bra foo3@PLT ; TAILCALL
130-
; CHECK-NEXT: .LBB6_10: ; %bb4
128+
; CHECK-NEXT: .LBB6_2: ; %bb
129+
; CHECK-NEXT: bra foo1@PLT ; TAILCALL
130+
; CHECK-NEXT: .LBB6_9: ; %bb4
131131
; CHECK-NEXT: bra foo4@PLT ; TAILCALL
132-
; CHECK-NEXT: .LBB6_14: ; %bb11
133-
; CHECK-NEXT: bra foo5@PLT ; TAILCALL
132+
; CHECK-NEXT: .LBB6_8: ; %bb3
133+
; CHECK-NEXT: bra foo3@PLT ; TAILCALL
134134
entry:
135135
switch i32 %n.u, label %bb12 [i32 1, label %bb i32 2, label %bb6 i32 4, label %bb7 i32 5, label %bb8 i32 6, label %bb10 i32 7, label %bb1 i32 8, label %bb3 i32 9, label %bb4 i32 10, label %bb9 i32 11, label %bb2 i32 12, label %bb5 i32 13, label %bb11 ]
136136
bb:

0 commit comments

Comments
 (0)