1673dc3d4SNico Weber // RUN: %clangxx_asan -O0 %s -o %t && not %run %t 2>&1 | FileCheck %s 2673dc3d4SNico Weber 3673dc3d4SNico Weber namespace XXX { 4673dc3d4SNico Weber class YYY { 5673dc3d4SNico Weber public: 6673dc3d4SNico Weber static char ZZZ[]; 7673dc3d4SNico Weber }; 8673dc3d4SNico Weber char YYY::ZZZ[] = "abc"; 9673dc3d4SNico Weber } 10673dc3d4SNico Weber main(int argc,char ** argv)11673dc3d4SNico Weberint main(int argc, char **argv) { 12673dc3d4SNico Weber return (int)XXX::YYY::ZZZ[argc + 5]; // BOOM 13673dc3d4SNico Weber // CHECK: {{READ of size 1 at 0x.*}} 14673dc3d4SNico Weber // CHECK: {{0x.* is located 2 bytes to the right of global variable}} 15*7b235527SMitch Phillips // CHECK: '{{.*}}XXX::YYY::ZZZ{{.*}}' {{.*}} of size 4 16*7b235527SMitch Phillips // CHECK: '{{.*}}XXX::YYY::ZZZ{{.*}}' is ascii string 'abc' 17673dc3d4SNico Weber } 18