This revision was automatically updated to reflect the committed changes.
Closed by commit rG0734c02b34e4: [clang-tidy] Avoid extra parentheses around
MemberExpr (authored by SimplyDanny).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D129596/new/
https://reviews.llvm.org/D129596
Files:
clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp
clang-tools-extra/docs/ReleaseNotes.rst
clang-tools-extra/test/clang-tidy/checkers/readability/container-data-pointer.cpp
Index:
clang-tools-extra/test/clang-tidy/checkers/readability/container-data-pointer.cpp
===================================================================
---
clang-tools-extra/test/clang-tidy/checkers/readability/container-data-pointer.cpp
+++
clang-tools-extra/test/clang-tidy/checkers/readability/container-data-pointer.cpp
@@ -144,3 +144,14 @@
// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: 'data' should be used for
accessing the data pointer instead of taking the address of the 0-th element
[readability-container-data-pointer]
// CHECK-FIXES: {{^ }}return (**v)->data();{{$}}
}
+
+struct VectorHolder {
+ std::vector<int> v;
+};
+
+int *r() {
+ VectorHolder holder;
+ return &holder.v[0];
+ // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: 'data' should be used for
accessing the data pointer instead of taking the address of the 0-th element
[readability-container-data-pointer]
+ // CHECK-FIXES: {{^ }}return holder.v.data();{{$}}
+}
Index: clang-tools-extra/docs/ReleaseNotes.rst
===================================================================
--- clang-tools-extra/docs/ReleaseNotes.rst
+++ clang-tools-extra/docs/ReleaseNotes.rst
@@ -255,6 +255,9 @@
<clang-tidy/checks/readability/const-return-type>` when a pure virtual
function
overrided has a const return type. Removed the fix for a virtual function.
+- Skipped addition of extra parentheses around member accesses (``a.b``) in
fix-it for
+ :doc:`readability-container-data-pointer
<clang-tidy/checks/readability/container-data-pointer>`.
+
- Fixed incorrect suggestions for :doc:`readability-container-size-empty
<clang-tidy/checks/readability/container-size-empty>` when smart pointers
are involved.
Index: clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp
+++ clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp
@@ -98,7 +98,8 @@
Lexer::getSourceText(CharSourceRange::getTokenRange(SrcRange),
*Result.SourceManager, getLangOpts())};
- if (!isa<DeclRefExpr, ArraySubscriptExpr, CXXOperatorCallExpr, CallExpr>(CE))
+ if (!isa<DeclRefExpr, ArraySubscriptExpr, CXXOperatorCallExpr, CallExpr,
+ MemberExpr>(CE))
ReplacementText = "(" + ReplacementText + ")";
if (CE->getType()->isPointerType())
Index: clang-tools-extra/test/clang-tidy/checkers/readability/container-data-pointer.cpp
===================================================================
--- clang-tools-extra/test/clang-tidy/checkers/readability/container-data-pointer.cpp
+++ clang-tools-extra/test/clang-tidy/checkers/readability/container-data-pointer.cpp
@@ -144,3 +144,14 @@
// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: 'data' should be used for accessing the data pointer instead of taking the address of the 0-th element [readability-container-data-pointer]
// CHECK-FIXES: {{^ }}return (**v)->data();{{$}}
}
+
+struct VectorHolder {
+ std::vector<int> v;
+};
+
+int *r() {
+ VectorHolder holder;
+ return &holder.v[0];
+ // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: 'data' should be used for accessing the data pointer instead of taking the address of the 0-th element [readability-container-data-pointer]
+ // CHECK-FIXES: {{^ }}return holder.v.data();{{$}}
+}
Index: clang-tools-extra/docs/ReleaseNotes.rst
===================================================================
--- clang-tools-extra/docs/ReleaseNotes.rst
+++ clang-tools-extra/docs/ReleaseNotes.rst
@@ -255,6 +255,9 @@
<clang-tidy/checks/readability/const-return-type>` when a pure virtual function
overrided has a const return type. Removed the fix for a virtual function.
+- Skipped addition of extra parentheses around member accesses (``a.b``) in fix-it for
+ :doc:`readability-container-data-pointer <clang-tidy/checks/readability/container-data-pointer>`.
+
- Fixed incorrect suggestions for :doc:`readability-container-size-empty
<clang-tidy/checks/readability/container-size-empty>` when smart pointers are involved.
Index: clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp
+++ clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp
@@ -98,7 +98,8 @@
Lexer::getSourceText(CharSourceRange::getTokenRange(SrcRange),
*Result.SourceManager, getLangOpts())};
- if (!isa<DeclRefExpr, ArraySubscriptExpr, CXXOperatorCallExpr, CallExpr>(CE))
+ if (!isa<DeclRefExpr, ArraySubscriptExpr, CXXOperatorCallExpr, CallExpr,
+ MemberExpr>(CE))
ReplacementText = "(" + ReplacementText + ")";
if (CE->getType()->isPointerType())
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits