1*882ce178SVitaly Buka // RUN: %clangxx_asan -O1 -fsanitize-address-use-after-scope %s -o %t && \ 2673dc3d4SNico Weber // RUN: not %run %t 2>&1 | FileCheck %s 3673dc3d4SNico Weber 4673dc3d4SNico Weber #include <functional> 5673dc3d4SNico Weber main()6673dc3d4SNico Weberint main() { 7673dc3d4SNico Weber std::function<int()> f; 8673dc3d4SNico Weber { 9673dc3d4SNico Weber int x = 0; 10f59311e3SArthur Eubanks f = [&x]() __attribute__((noinline)) { 11673dc3d4SNico Weber return x; // BOOM 12673dc3d4SNico Weber // CHECK: ERROR: AddressSanitizer: stack-use-after-scope 13673dc3d4SNico Weber // CHECK: #0 0x{{.*}} in {{.*}}use-after-scope-capture.cpp:[[@LINE-2]] 14673dc3d4SNico Weber }; 15673dc3d4SNico Weber } 16673dc3d4SNico Weber return f(); // BOOM 17673dc3d4SNico Weber } 18