// Test that thread local data is handled correctly after forking without exec(). // RUN: %clangxx_lsan %s -o %t // RUN: %run %t 2>&1 #include <assert.h> #include <stdio.h> #include <stdlib.h> #include <sys/wait.h> #include <unistd.h> __thread void *thread_local_var; int main() { int status = 0; thread_local_var = malloc(1337); pid_t pid = fork(); assert(pid >= 0); if (pid > 0) { waitpid(pid, &status, 0); assert(WIFEXITED(status)); return WEXITSTATUS(status); } return 0; }