[PATCH] D134941: [analyzer][NFC] Add tests for D132236
Tomasz KamiĆski via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Sep 30 02:02:28 PDT 2022
tomasz-kaminski-sonarsource updated this revision to Diff 464184.
tomasz-kaminski-sonarsource added a comment.
Added new line
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D134941/new/
https://reviews.llvm.org/D134941
Files:
clang/test/Analysis/NewDeleteLeaks.cpp
clang/test/Analysis/symbol-reaper-lambda.cpp
Index: clang/test/Analysis/symbol-reaper-lambda.cpp
===================================================================
--- /dev/null
+++ clang/test/Analysis/symbol-reaper-lambda.cpp
@@ -0,0 +1,20 @@
+// RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s
+// expected-no-diagnostics
+
+template <typename... Ts>
+void escape(Ts&...);
+struct Dummy {};
+
+int strange(Dummy param) {
+ Dummy local_pre_lambda;
+ int ref_captured = 0;
+
+ auto fn = [&] {
+ escape(param, local_pre_lambda);
+ return ref_captured; // no-warning: The value is not garbage.
+ };
+
+ int local_defined_after_lambda; // Unused, but necessary! Important that it's before the call.
+ return fn();
+}
+
Index: clang/test/Analysis/NewDeleteLeaks.cpp
===================================================================
--- clang/test/Analysis/NewDeleteLeaks.cpp
+++ clang/test/Analysis/NewDeleteLeaks.cpp
@@ -192,3 +192,26 @@
// expected-note at -1 {{Potential leak of memory pointed to by 'v'}}
} // namespace refkind_from_unoallocated_to_allocated
+
+namespace symbol_reaper_lifetime {
+struct Nested {
+ int buf[2];
+};
+struct Wrapping {
+ Nested data;
+};
+
+Nested allocateWrappingAndReturnNested() {
+ // expected-note at +1 {{Memory is allocated}}
+ Wrapping const* p = new Wrapping();
+ // expected-warning at +2 {{Potential leak of memory pointed to by 'p'}}
+ // expected-note at +1 {{Potential leak of memory pointed to by 'p'}}
+ return p->data;
+}
+
+void caller() {
+ // expected-note at +1 {{Calling 'allocateWrappingAndReturnNested'}}
+ Nested n = allocateWrappingAndReturnNested();
+ (void)n;
+} // no-warning: No potential memory leak here, because that's been already reported.
+} // namespace symbol_reaper_lifetime
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D134941.464184.patch
Type: text/x-patch
Size: 1728 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220930/e7b29624/attachment-0001.bin>
More information about the cfe-commits
mailing list