// RUN: %clangxx_msan -O0 %s -o %t && not %run %t 2>&1 | FileCheck %s | |
#include <assert.h> | |
#include <dlfcn.h> | |
#include <stdlib.h> | |
static int my_global; | |
int main(void) { | |
int *uninit = (int*)malloc(sizeof(int)); | |
my_global = *uninit; | |
void *p = dlopen(0, RTLD_NOW); | |
assert(p && "failed to get handle to executable"); | |
return my_global; | |
// CHECK: MemorySanitizer: use-of-uninitialized-value | |
// CHECK: #0 {{.*}} in main{{.*}}dlopen_executable.cpp:[[@LINE-2]] | |
} |