Skip to content

[Clang] Fix a variable shadowing in MapLattice (NFC) #95697

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 25, 2024
Merged

Conversation

xgupta
Copy link
Contributor

@xgupta xgupta commented Jun 16, 2024

Reported in https://pvs-studio.com/en/blog/posts/cpp/1126/, fragment N10.

The PVS-Studio warning:
V570 The 'C' variable is assigned to itself. MapLattice.h:52

Reported in https://pvs-studio.com/en/blog/posts/cpp/1126/, fragment N10.

The PVS-Studio warning:
V570 The 'C' variable is assigned to itself. MapLattice.h:52
@llvmbot llvmbot added clang Clang issues not falling into any other category clang:dataflow Clang Dataflow Analysis framework - https://clang.llvm.org/docs/DataFlowAnalysisIntro.html clang:analysis labels Jun 16, 2024
@llvmbot
Copy link
Member

llvmbot commented Jun 16, 2024

@llvm/pr-subscribers-clang

@llvm/pr-subscribers-clang-analysis

Author: Shivam Gupta (xgupta)

Changes

Reported in https://pvs-studio.com/en/blog/posts/cpp/1126/, fragment N10.

The PVS-Studio warning:
V570 The 'C' variable is assigned to itself. MapLattice.h:52


Full diff: https://github.com/llvm/llvm-project/pull/95697.diff

1 Files Affected:

  • (modified) clang/include/clang/Analysis/FlowSensitive/MapLattice.h (+1-1)
diff --git a/clang/include/clang/Analysis/FlowSensitive/MapLattice.h b/clang/include/clang/Analysis/FlowSensitive/MapLattice.h
index 16b0c978779a7..9d7afbe6ae7bf 100644
--- a/clang/include/clang/Analysis/FlowSensitive/MapLattice.h
+++ b/clang/include/clang/Analysis/FlowSensitive/MapLattice.h
@@ -49,7 +49,7 @@ template <typename Key, typename ElementLattice> class MapLattice {
 
   MapLattice() = default;
 
-  explicit MapLattice(Container C) { C = std::move(C); }
+  explicit MapLattice(Container C) : C { std::move(C) } {};
 
   // The `bottom` element is the empty map.
   static MapLattice bottom() { return MapLattice(); }

Copy link

github-actions bot commented Jun 16, 2024

✅ With the latest revision this PR passed the C/C++ code formatter.

@xgupta xgupta requested review from ymand, tJener and martinboehme July 24, 2024 11:23
Copy link
Contributor

@martinboehme martinboehme left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow, how can this ever have worked? Appears that the answer is that there simply aren't any existing callers of this constructor...

In any case, thanks for the fix!

@xgupta xgupta merged commit ca69444 into llvm:main Jul 25, 2024
7 checks passed
@xgupta
Copy link
Contributor Author

xgupta commented Jul 25, 2024

Thanks for the review @martinboehme!

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 25, 2024

LLVM Buildbot has detected a new failure on builder llvm-clang-aarch64-darwin running on doug-worker-5 while building clang at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/190/builds/2624

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'Clang Tools :: clang-doc/basic-project.test' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
Emiting docs in html format.
Mapping decls...
Collecting infos...
Reducing 5 infos...
Generating docs...
Generating assets for docs...

--
Command Output (stderr):
--
RUN: at line 1: rm -rf /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp && mkdir -p /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/docs /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/build
+ rm -rf /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp
+ mkdir -p /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/docs /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/build
RUN: at line 2: sed 's|$test_dir|/Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/clang-tools-extra/test/clang-doc|g' /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/clang-tools-extra/test/clang-doc/Inputs/basic-project/database_template.json > /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/build/compile_commands.json
+ sed 's|$test_dir|/Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/clang-tools-extra/test/clang-doc|g' /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/clang-tools-extra/test/clang-doc/Inputs/basic-project/database_template.json
RUN: at line 3: clang-doc --format=html --output=/Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/docs --executor=all-TUs /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/build/compile_commands.json
+ clang-doc --format=html --output=/Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/docs --executor=all-TUs /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/build/compile_commands.json
[1/3] Processing file /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Rectangle.cpp
[2/3] Processing file /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Calculator.cpp
[3/3] Processing file /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Circle.cpp
RUN: at line 4: FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/clang-tools-extra/test/clang-doc/basic-project.test -input-file=/Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/docs/index_json.js -check-prefix=JSON-INDEX
+ FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/clang-tools-extra/test/clang-doc/basic-project.test -input-file=/Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/docs/index_json.js -check-prefix=JSON-INDEX
RUN: at line 5: FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/clang-tools-extra/test/clang-doc/basic-project.test -input-file=/Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/docs/GlobalNamespace/Shape.html -check-prefix=HTML-SHAPE
+ FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/clang-tools-extra/test/clang-doc/basic-project.test -input-file=/Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/docs/GlobalNamespace/Shape.html -check-prefix=HTML-SHAPE
�[1m/Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/clang-tools-extra/test/clang-doc/basic-project.test:64:16: �[0m�[0;1;31merror: �[0m�[1mHTML-SHAPE: expected string not found in input
�[0m// HTML-SHAPE: <h3 id="{{([0-9A-F]{40})}}">area</h3>
�[0;1;32m               ^
�[0m�[1m/Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/docs/GlobalNamespace/Shape.html:27:53: �[0m�[0;1;30mnote: �[0m�[1mscanning from here
�[0m <p>Defined at line 13 of file ./include/Shape.h</p>
�[0;1;32m                                                    ^
�[0m�[1m/Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/docs/GlobalNamespace/Shape.html:47:41: �[0m�[0;1;30mnote: �[0m�[1mpossible intended match here
�[0m <a href="#12896F9255F880ECD4A6482CCFA58B238FA2CC49">area</a>
�[0;1;32m                                        ^
�[0m
Input file: /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/clang/tools/extra/test/clang-doc/Output/basic-project.test.tmp/docs/GlobalNamespace/Shape.html
Check file: /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/clang-tools-extra/test/clang-doc/basic-project.test

-dump-input=help explains the following input dump.

Input was:
<<<<<<
�[1m�[0m�[0;1;30m            1: �[0m�[1m�[0;1;46m<!DOCTYPE html> �[0m
�[0;1;30m            2: �[0m�[1m�[0;1;46m<meta charset="utf-8"/> �[0m
�[0;1;30m            3: �[0m�[1m�[0;1;46m<title>class Shape</title> �[0m
�[0;1;30m            4: �[0m�[1m�[0;1;46m<link rel="stylesheet" href="../clang-doc-default-stylesheet.css"/> �[0m
...

yuxuanchen1997 pushed a commit that referenced this pull request Jul 25, 2024
Summary:
Reported in https://pvs-studio.com/en/blog/posts/cpp/1126/, fragment
N10.

The PVS-Studio warning:
V570 The 'C' variable is assigned to itself. MapLattice.h:52

Test Plan: 

Reviewers: 

Subscribers: 

Tasks: 

Tags: 


Differential Revision: https://phabricator.intern.facebook.com/D60250526
@xgupta xgupta deleted the pvs-n10 branch February 10, 2025 10:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang:analysis clang:dataflow Clang Dataflow Analysis framework - https://clang.llvm.org/docs/DataFlowAnalysisIntro.html clang Clang issues not falling into any other category
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants