15ee4b9a1SReid Kleckner // RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -std=c++11 -fcxx-exceptions -fexceptions -S -emit-llvm -o - %s | FileCheck %s 25ee4b9a1SReid Kleckner 35ee4b9a1SReid Kleckner namespace std { 45ee4b9a1SReid Kleckner struct string { 55ee4b9a1SReid Kleckner const char *p; 65ee4b9a1SReid Kleckner string(const char *s); 75ee4b9a1SReid Kleckner ~string(); 85ee4b9a1SReid Kleckner }; 95ee4b9a1SReid Kleckner } 105ee4b9a1SReid Kleckner 115ee4b9a1SReid Kleckner struct Bar { 125ee4b9a1SReid Kleckner int a; 135ee4b9a1SReid Kleckner }; 145ee4b9a1SReid Kleckner 155ee4b9a1SReid Kleckner struct Foo { 165ee4b9a1SReid Kleckner std::string c; 175ee4b9a1SReid Kleckner Bar d[32]; 185ee4b9a1SReid Kleckner }; 195ee4b9a1SReid Kleckner 205ee4b9a1SReid Kleckner static Foo table[] = { 215ee4b9a1SReid Kleckner { "blerg" }, 225ee4b9a1SReid Kleckner }; 235ee4b9a1SReid Kleckner 245ee4b9a1SReid Kleckner // CHECK: define internal void @__cxx_global_var_init 25*3baf9c8aSReid Kleckner // CHECK: invoke {{.*}} @_ZNSt6stringC1EPKc( 265ee4b9a1SReid Kleckner // CHECK-NOT: unreachable 275ee4b9a1SReid Kleckner // CHECK: br label 28