1*bcaeed49SFangrui Song // Regression test for https://github.com/google/sanitizers/issues/410. 2*bcaeed49SFangrui Song // The C++ variant is much more compact that the LLVM IR equivalent. 3*bcaeed49SFangrui Song 4*bcaeed49SFangrui Song // RUN: %clangxx_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s 5*bcaeed49SFangrui Song #include <stdio.h> 6*bcaeed49SFangrui Song struct AAA { virtual long aaa () { return 0; } }; // NOLINT 7*bcaeed49SFangrui Song struct BBB: virtual AAA { unsigned long bbb; }; // NOLINT 8*bcaeed49SFangrui Song struct CCC: virtual AAA { }; 9*bcaeed49SFangrui Song struct DDD: CCC, BBB { DDD(); }; // NOLINT 10*bcaeed49SFangrui Song DDD::DDD() { } 11*bcaeed49SFangrui Song int main() { 12*bcaeed49SFangrui Song DDD d; 13*bcaeed49SFangrui Song fprintf(stderr, "OK\n"); 14*bcaeed49SFangrui Song } 15*bcaeed49SFangrui Song // CHECK: OK 16