| /* Verify that final methods are devirtualized */ | |
| /* { dg-do compile { target c++11 } } */ | |
| /* { dg-options "-fdump-tree-original" } */ | |
| struct A final | |
| { | |
| virtual void foo () | |
| { | |
| } | |
| }; | |
| struct B | |
| { | |
| virtual void foo () final | |
| { | |
| } | |
| }; | |
| void fun(A* a, B* b) | |
| { | |
| a->foo(); | |
| b->foo(); | |
| } | |
| /* { dg-final { scan-tree-dump-times "A::foo" 2 "original" } } */ | |
| /* { dg-final { scan-tree-dump-times "B::foo" 2 "original" } } */ |