1 // RUN: %clang_cc1 %s -triple %itanium_abi_triple -std=c++11 -emit-llvm -o - | FileCheck %s
2 // RUN: %clang_cc1 %s -triple %itanium_abi_triple -std=c++11 -emit-llvm -o - -fstrict-vtable-pointers -O1 | FileCheck --check-prefix=CHECK-INVARIANT %s
12 // CHECK: call {{.*}}void %
16 struct B
: virtual A
{
41 namespace VirtualNoreturn
{
43 [[noreturn
]] virtual void f();
46 // CHECK-LABEL: @_ZN15VirtualNoreturn1f
47 // CHECK-INVARIANT-LABEL: define {{(dso_local )?}}void @_ZN15VirtualNoreturn1f
50 // CHECK: call {{.*}}void %{{[^#]*$}}
51 // CHECK-NOT: unreachable
52 // CHECK-INVARIANT: load {{.*}} !invariant.load ![[EMPTY_NODE:[0-9]+]]
56 // CHECK-INVARIANT: ![[EMPTY_NODE]] = !{}