Home | History | Annotate | Download | only in SemaCXX
      1 // RUN: %clang_cc1 %s -fsyntax-only -verify -Wweak-vtables
      2 
      3 struct A { // expected-warning {{'A' has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit}}
      4   virtual void f() { }
      5 };
      6 
      7 template<typename T> struct B {
      8   virtual void f() { }
      9 };
     10 
     11 namespace {
     12   struct C {
     13     virtual void f() { }
     14   };
     15 }
     16 
     17 void f() {
     18   struct A {
     19     virtual void f() { }
     20   };
     21 
     22   A *a;
     23   a->f();
     24 }
     25 
     26 // Use the vtables
     27 void uses(A &a, B<int> &b, C &c) {
     28   a.f();
     29   b.f();
     30   c.f();
     31 }
     32