xref: /llvm-project/clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp (revision 19588aa40b8b1350c5df95ba4cb94b035a3c46ca)
1 // RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
2 
3 namespace Test1 {
4   struct A {
5     virtual int f() final;
6   };
7 
8   // CHECK: define i32 @_ZN5Test11fEPNS_1AE
9   int f(A *a) {
10     // CHECK: call i32 @_ZN5Test11A1fEv
11     return a->f();
12   }
13 }
14 
15 namespace Test2 {
16   struct A final {
17     virtual int f();
18   };
19 
20   // CHECK: define i32 @_ZN5Test21fEPNS_1AE
21   int f(A *a) {
22     // CHECK: call i32 @_ZN5Test21A1fEv
23     return a->f();
24   }
25 }
26