19 lines · cpp
1// RUN: %clangxx_asan %if MSVC %{ /Od %} %else %{ -O1 %} \2// RUN: %s -o %t && not %run %t 2>&1 | FileCheck %s3 4#include <stdlib.h>5 6int *p;7 8int main() {9 for (int i = 0; i < 3; i++) {10 int x;11 p = &x;12 }13 return *p; // BOOM14 // CHECK: ERROR: AddressSanitizer: stack-use-after-scope15 // CHECK: #0 0x{{.*}} in main {{.*}}use-after-scope-loop-removed.cpp:[[@LINE-2]]16 // CHECK: Address 0x{{.*}} is located in stack of thread T{{.*}} at offset [[OFFSET:[^ ]+]] in frame17 // {{\[}}[[OFFSET]], {{[0-9]+}}) 'x'18}19