diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/asan/use-after-scope-4.C')
-rw-r--r-- | gcc/testsuite/g++.dg/asan/use-after-scope-4.C | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/asan/use-after-scope-4.C b/gcc/testsuite/g++.dg/asan/use-after-scope-4.C new file mode 100644 index 00000000000..c3b6932609b --- /dev/null +++ b/gcc/testsuite/g++.dg/asan/use-after-scope-4.C @@ -0,0 +1,36 @@ +/* Caused ICE in in make_decl_rtl, at varasm.c:1311. */ +/* { dg-do compile } */ + +class A +{ +public: + A () : value (123) {} + int value; +}; + +template <typename StoredFunction> class B +{ +public: + template <typename F> B (F p1) : mFunction (p1) { mFunction (); } + StoredFunction mFunction; +}; +template <typename Function> +void +NS_NewRunnableFunction (Function p1) +{ + (B<Function> (p1)); +} +class C +{ + void DispatchConnectionCloseEvent (A); + void AsyncCloseConnectionWithErrorMsg (const A &); +}; +void +C::AsyncCloseConnectionWithErrorMsg (const A &) +{ + { + A message; + NS_NewRunnableFunction ( + [this, message] { DispatchConnectionCloseEvent (message); }); + } +} |