mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-09 13:33:17 +00:00
If a class inherits from RefCountedBaseVPTR allow all its subclasses to be used with IntrusiveRefCntPtr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127966 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
682eed0da8
commit
b518c25b3e
@ -64,7 +64,6 @@ namespace llvm {
|
||||
/// inherit from RefCountedBaseVPTR can't be allocated on stack -
|
||||
/// attempting to do this will produce a compile error.
|
||||
//===----------------------------------------------------------------------===//
|
||||
template <class Derived>
|
||||
class RefCountedBaseVPTR {
|
||||
unsigned ref_cnt;
|
||||
|
||||
@ -78,7 +77,8 @@ namespace llvm {
|
||||
if (--ref_cnt == 0) delete this;
|
||||
}
|
||||
|
||||
friend class IntrusiveRefCntPtr<Derived>;
|
||||
template <typename T>
|
||||
friend class IntrusiveRefCntPtr;
|
||||
};
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -40,7 +40,7 @@ namespace llvmc {
|
||||
};
|
||||
|
||||
/// Edge - Represents an edge of the compilation graph.
|
||||
class Edge : public llvm::RefCountedBaseVPTR<Edge> {
|
||||
class Edge : public llvm::RefCountedBaseVPTR {
|
||||
public:
|
||||
Edge(const std::string& T) : ToolName_(T) {}
|
||||
virtual ~Edge() {}
|
||||
|
@ -33,7 +33,7 @@ namespace llvmc {
|
||||
typedef llvm::StringSet<> InputLanguagesSet;
|
||||
|
||||
/// Tool - Represents a single tool.
|
||||
class Tool : public llvm::RefCountedBaseVPTR<Tool> {
|
||||
class Tool : public llvm::RefCountedBaseVPTR {
|
||||
public:
|
||||
|
||||
virtual ~Tool() {}
|
||||
|
Loading…
x
Reference in New Issue
Block a user