1d21b3d34SFangrui Song // RUN: %clangxx_msan -O0 -g %s -o %t && not %run %t 2>&1 | FileCheck %s 2d21b3d34SFangrui Song 3d21b3d34SFangrui Song // Verify that CHECK handler prints a stack on CHECK fail. 4d21b3d34SFangrui Song 5d21b3d34SFangrui Song #include <stdlib.h> 6d21b3d34SFangrui Song main(void)7d21b3d34SFangrui Songint main(void) { 8d21b3d34SFangrui Song // Allocate chunk from the secondary allocator to trigger CHECK(IsALigned()) 9d21b3d34SFangrui Song // in its free() path. 10d21b3d34SFangrui Song void *p = malloc(8 << 20); 11d21b3d34SFangrui Song free(reinterpret_cast<char*>(p) + 1); 12d21b3d34SFangrui Song // CHECK: MemorySanitizer: bad pointer 13*2721e27cSDmitry Vyukov // CHECK: MemorySanitizer: CHECK failed 14d21b3d34SFangrui Song // CHECK: #0 15d21b3d34SFangrui Song return 0; 16d21b3d34SFangrui Song } 17