| // 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; | |
| } |