// RUN: %clangxx_asan -O0 %s -o %t && not %run %t 2>&1 | FileCheck %s | |
#include <string.h> | |
namespace XXX { | |
struct YYY { | |
static int ZZZ(int x) { | |
char array[10]; | |
memset(array, 0, 10); | |
return array[x]; // BOOOM | |
// CHECK: ERROR: AddressSanitizer: stack-buffer-overflow | |
// CHECK: READ of size 1 at | |
// CHECK: is located in stack of thread T0 at offset | |
// CHECK: XXX::YYY::ZZZ | |
} | |
}; | |
} // namespace XXX | |
int main(int argc, char **argv) { | |
int res = XXX::YYY::ZZZ(argc + 10); | |
return res; | |
} |