1 /* { dg-options "-O2 -fdump-tree-einline2" } */
5 DocId(const DocId &other) { }
11 virtual void Foo(DocId id) { g++; }
14 class Super: public Base {
16 void Foo(DocId id) { }
17 void Bar(Base *base, DocId id) __attribute__((noinline));
20 void Super::Bar(Base *base, DocId id) {
21 Super::Foo(id); // direct call is inlined
22 base->Foo(id); // indirect call is marked do not inline
34 /* { dg-final-use { scan-tree-dump "Inlining virtual void Super::Foo" "einline2"} } */
35 /* { dg-final-use { scan-tree-dump-not "mismatched arguments" "einline2"} } */
36 /* { dg-final-use { cleanup-tree-dump "einline2" } } */