[PATCH] D109467: [analyzer] check for std::__addressof for inner pointer checker

2022-05-03 Thread Ali Shuja Siddiqui via Phabricator via cfe-commits
alishuja accepted this revision.
alishuja added a comment.

@steakhal yes please go ahead, thank you.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109467/new/

https://reviews.llvm.org/D109467

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D99260: [analyzer] Fix false positives in inner pointer checker (PR49628)

2021-08-04 Thread Ali Shuja Siddiqui via Phabricator via cfe-commits
alishuja added a comment.
Herald added a subscriber: manas.

Based on the comment from @vsavchenko , I had made an addition for a check for 
`__addressof` alongside `addressof` in the checker. What would be the correct 
way of pushing the diff here? Should I reopen this revision or use the update 
diff button on the top? I apologize, I'm completely new to pushing changes to 
LLVM.

Thanks,


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99260/new/

https://reviews.llvm.org/D99260

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D109467: [analyzer] check for std::__addressof for inner pointer checker

2021-09-08 Thread Ali Shuja Siddiqui via Phabricator via cfe-commits
alishuja created this revision.
alishuja added reviewers: NoQ, steakhal, xazax.hun, ASDenysPetrov.
Herald added subscribers: manas, martong, dkrupp, donat.nagy, Szelethus, 
mikhail.ramalho, a.sidorin, rnkovacs, szepet, baloghadamsoftware.
alishuja requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

This is an extension to diff D99260 . This 
adds an additional exception for std::__addressof in InnerPointerChecker.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D109467

Files:
  clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp


Index: clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
===
--- clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
+++ clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
@@ -34,9 +34,9 @@
 class InnerPointerChecker
 : public Checker {

-  CallDescription AppendFn, AssignFn, AddressofFn, ClearFn, CStrFn, DataFn,
-  DataMemberFn, EraseFn, InsertFn, PopBackFn, PushBackFn, ReplaceFn,
-  ReserveFn, ResizeFn, ShrinkToFitFn, SwapFn;
+  CallDescription AppendFn, AssignFn, AddressofFn, AddressofFn_, ClearFn,
+  CStrFn, DataFn, DataMemberFn, EraseFn, InsertFn, PopBackFn, PushBackFn,
+  ReplaceFn, ReserveFn, ResizeFn, ShrinkToFitFn, SwapFn;

 public:
   class InnerPointerBRVisitor : public BugReporterVisitor {
@@ -73,7 +73,7 @@
   InnerPointerChecker()
   : AppendFn({"std", "basic_string", "append"}),
 AssignFn({"std", "basic_string", "assign"}),
-AddressofFn({"std", "addressof"}),
+AddressofFn({"std", "addressof"}), AddressofFn_({"std", 
"__addressof"}),
 ClearFn({"std", "basic_string", "clear"}),
 CStrFn({"std", "basic_string", "c_str"}), DataFn({"std", "data"}, 1),
 DataMemberFn({"std", "basic_string", "data"}),
@@ -184,7 +184,7 @@

   // std::addressof function accepts a non-const reference as an argument,
   // but doesn't modify it.
-  if (Call.isCalled(AddressofFn))
+  if (Call.isCalled(AddressofFn) || Call.isCalled(AddressofFn_))
 continue;

   markPtrSymbolsReleased(Call, State, ArgRegion, C);


Index: clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
===
--- clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
+++ clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
@@ -34,9 +34,9 @@
 class InnerPointerChecker
 : public Checker {

-  CallDescription AppendFn, AssignFn, AddressofFn, ClearFn, CStrFn, DataFn,
-  DataMemberFn, EraseFn, InsertFn, PopBackFn, PushBackFn, ReplaceFn,
-  ReserveFn, ResizeFn, ShrinkToFitFn, SwapFn;
+  CallDescription AppendFn, AssignFn, AddressofFn, AddressofFn_, ClearFn,
+  CStrFn, DataFn, DataMemberFn, EraseFn, InsertFn, PopBackFn, PushBackFn,
+  ReplaceFn, ReserveFn, ResizeFn, ShrinkToFitFn, SwapFn;

 public:
   class InnerPointerBRVisitor : public BugReporterVisitor {
@@ -73,7 +73,7 @@
   InnerPointerChecker()
   : AppendFn({"std", "basic_string", "append"}),
 AssignFn({"std", "basic_string", "assign"}),
-AddressofFn({"std", "addressof"}),
+AddressofFn({"std", "addressof"}), AddressofFn_({"std", "__addressof"}),
 ClearFn({"std", "basic_string", "clear"}),
 CStrFn({"std", "basic_string", "c_str"}), DataFn({"std", "data"}, 1),
 DataMemberFn({"std", "basic_string", "data"}),
@@ -184,7 +184,7 @@

   // std::addressof function accepts a non-const reference as an argument,
   // but doesn't modify it.
-  if (Call.isCalled(AddressofFn))
+  if (Call.isCalled(AddressofFn) || Call.isCalled(AddressofFn_))
 continue;

   markPtrSymbolsReleased(Call, State, ArgRegion, C);
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits