diff options
Diffstat (limited to 'clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp b/clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp index 2ab2f759cfe..130103de97a 100644 --- a/clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp +++ b/clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp @@ -24,11 +24,24 @@ namespace Test2 { } } -namespace Test3 { +namespace Test2a { struct A { + virtual ~A() final {} virtual int f(); }; + // CHECK-LABEL: define i32 @_ZN6Test2a1fEPNS_1AE + int f(A *a) { + // CHECK: call i32 @_ZN6Test2a1A1fEv + return a->f(); + } +} + + +namespace Test3 { + struct A { + virtual int f(); }; + struct B final : A { }; // CHECK-LABEL: define i32 @_ZN5Test31fEPNS_1BE |