brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 4c1c8dd Raw
56 lines · cpp
1// RUN: %clang_analyze_cc1 -analyzer-checker=debug.DumpCFG %s 2>&1 | FileCheck %s2 3class A {4public:5  ~A() {}6};7 8class B : public virtual A {9public:10  ~B() {}11};12 13class C : public virtual A {14public:15  ~C() {}16};17 18class TestOrder : public C, public B, public virtual A {19  A a;20  int i;21  A *p;22public:23  ~TestOrder();24};25 26TestOrder::~TestOrder() {}27 28class TestArray {29  A a[2];30  A b[0];31public:32  ~TestArray();33};34 35TestArray::~TestArray() {}36 37// CHECK:  [B2 (ENTRY)]38// CHECK:    Succs (1): B139// CHECK:  [B1]40// CHECK:    1: this->a.~A() (Member object destructor)41// CHECK:    2: ~B() (Base object destructor)42// CHECK:    3: ~C() (Base object destructor)43// CHECK:    4: ~A() (Base object destructor)44// CHECK:    Preds (1): B245// CHECK:    Succs (1): B046// CHECK:  [B0 (EXIT)]47// CHECK:    Preds (1): B148// CHECK:  [B2 (ENTRY)]49// CHECK:    Succs (1): B150// CHECK:  [B1]51// CHECK:    1: this->a.~A() (Member object destructor)52// CHECK:    Preds (1): B253// CHECK:    Succs (1): B054// CHECK:  [B0 (EXIT)]55// CHECK:    Preds (1): B156