1*bcaeed49SFangrui Song // RUN: %clang_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s 2*bcaeed49SFangrui Song 3*bcaeed49SFangrui Song #include <stdio.h> 4*bcaeed49SFangrui Song #include <stdlib.h> 5*bcaeed49SFangrui Song 6*bcaeed49SFangrui Song class Logger { 7*bcaeed49SFangrui Song public: Logger()8*bcaeed49SFangrui Song Logger() { 9*bcaeed49SFangrui Song fprintf(stderr, "Logger ctor\n"); 10*bcaeed49SFangrui Song } 11*bcaeed49SFangrui Song ~Logger()12*bcaeed49SFangrui Song ~Logger() { 13*bcaeed49SFangrui Song fprintf(stderr, "Logger dtor\n"); 14*bcaeed49SFangrui Song } 15*bcaeed49SFangrui Song }; 16*bcaeed49SFangrui Song 17*bcaeed49SFangrui Song Logger logger; 18*bcaeed49SFangrui Song log_from_atexit()19*bcaeed49SFangrui Songvoid log_from_atexit() { 20*bcaeed49SFangrui Song fprintf(stderr, "In log_from_atexit\n"); 21*bcaeed49SFangrui Song } 22*bcaeed49SFangrui Song main()23*bcaeed49SFangrui Songint main() { 24*bcaeed49SFangrui Song atexit(log_from_atexit); 25*bcaeed49SFangrui Song } 26*bcaeed49SFangrui Song 27*bcaeed49SFangrui Song // CHECK: Logger ctor 28*bcaeed49SFangrui Song // CHECK: In log_from_atexit 29*bcaeed49SFangrui Song // CHECK: Logger dtor 30