25 lines
676 B
C++
25 lines
676 B
C++
// RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s
|
|
|
|
using size_t = decltype(sizeof(int));
|
|
void *operator new(size_t, void *p) { return p; }
|
|
|
|
struct myfunction {
|
|
union storage_t {
|
|
char buffer[100];
|
|
size_t max_align;
|
|
} storage;
|
|
|
|
template <typename Func> myfunction(Func fn) {
|
|
new (&storage.buffer) Func(fn);
|
|
}
|
|
void operator()();
|
|
};
|
|
|
|
myfunction create_func() {
|
|
int n;
|
|
auto c = [&n] {};
|
|
return c; // expected-warning {{Address of stack memory associated with local variable 'n' is still referred to by a temporary object on the stack upon returning to the caller. This will be a dangling reference}}
|
|
}
|
|
void gh_66221() {
|
|
create_func()();
|
|
}
|