1 // RUN: %clang_cc1 -std=c++11 -triple x86_64-windows-msvc %s -emit-llvm -o - | FileCheck %s 2 3 // If we de-virtualize ~Foo, we still need to call ??1Foo, not ??_DFoo. 4 5 struct Base { 6 virtual ~Base(); 7 }; 8 struct Foo final : Base { 9 }; f(Foo * p)10void f(Foo *p) { 11 p->~Foo(); 12 } 13 14 // CHECK-LABEL: define{{.*}} void @"?f@@YAXPEAUFoo@@@Z"(%struct.Foo* %p) 15 // CHECK: call void @"??1Foo@@UEAA@XZ" 16 // CHECK: ret void 17