================
@@ -912,3 +924,33 @@ void top_malloc_no_crash_fn() {
   free(pptr);
 }
 } // namespace alloca_region_pointer
+
+namespace true_negatives_return_expressions {
+struct Container { int *x; };
+
+int test2() {
+  int x = 14;
----------------
Flandini wrote:

Added in 51f8e2e589424b67b5d3cfcec660800bcaab9a49.

Here is the new test case:
```
int make_x();
int return_symbol_safe() {
  int x = make_x();
  clang_analyzer_dump(x); // expected-warning-re {{conj_$2{int, {{.+}}}}}
  return x; // no-warning
}
```

There were also some similar pre-existing test cases like these:
```
int get_value();

const int &get_reference1() { return get_value(); } // 
expected-warning{{Address of stack memory associated with temporary object of 
type 'int' returned}} expected-warning {{returning reference to local 
temporary}}

const int &get_reference2() {
  const int &x = get_value(); // expected-note {{binding reference variable 'x' 
here}}
  return x; // expected-warning{{Address of stack memory associated with 
temporary object of type 'int' lifetime extended by local variable 'x' returned 
to caller}} expected-warning {{returning reference to local temporary}} 
}
```

https://github.com/llvm/llvm-project/pull/125638
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to