forked from OSchip/llvm-project
32 lines
505 B
C++
32 lines
505 B
C++
// RUN: %clang_cc1 %s -fsyntax-only -verify -Wweak-vtables
|
|
|
|
struct A { // expected-warning {{'A' has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit}}
|
|
virtual void f() { }
|
|
};
|
|
|
|
template<typename T> struct B {
|
|
virtual void f() { }
|
|
};
|
|
|
|
namespace {
|
|
struct C {
|
|
virtual void f() { }
|
|
};
|
|
}
|
|
|
|
void f() {
|
|
struct A {
|
|
virtual void f() { }
|
|
};
|
|
|
|
A *a;
|
|
a->f();
|
|
}
|
|
|
|
// Use the vtables
|
|
void uses(A &a, B<int> &b, C &c) {
|
|
a.f();
|
|
b.f();
|
|
c.f();
|
|
}
|