1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef A_H
11#define A_H
12
13#include <cassert>
14
15class A
16{
17    int id_;
18public:
19    explicit A(int id) : id_(id) {++count;}
20    A(const A& a) : id_(a.id_) {++count;}
21    ~A() {assert(id_ >= 0); id_ = -1; --count;}
22
23    int id() const {return id_;}
24
25    static int count;
26};
27
28int A::count = 0;
29
30#endif  // A_H
31