brintos

brintos / llvm-project-archived public Read only

0
0
Text · 596 B · 85108bc Raw
24 lines · cpp
1// RUN: %clang_analyze_cc1 -analyzer-checker=webkit.RefCntblBaseVirtualDtor -verify %s2 3struct RefCountedBase {4  void ref() {}5};6 7template<typename T> struct RefCounted : RefCountedBase {8public:9  void deref() const { }10};11 12struct Base : RefCounted<Base> {13// expected-warning@-1{{Struct 'RefCounted<Base>' is used as a base of struct 'Base' but doesn't have virtual destructor}}14  virtual void foo() { }15};16 17struct Derived : Base { };18// expected-warning@-1{{Struct 'Base' is used as a base of struct 'Derived' but doesn't have virtual destructor}}19 20void foo () {21  Derived d;22  d.deref();23}24