summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST
diff options
context:
space:
mode:
authorRaphael Isemann <teemperor@gmail.com>2019-12-15 16:09:20 +0100
committerRaphael Isemann <risemann@apple.com>2019-12-15 18:11:01 +0100
commitaa4558497ff6301881adf38960dd2f4d95aa8fc5 (patch)
tree29b444fb2a5b3d00c022bff968a7c0ff2cb52cc7 /clang/lib/AST
parentfd7dca98373cee7d379644d6d6e5c163d15107b7 (diff)
downloadbcm5719-llvm-aa4558497ff6301881adf38960dd2f4d95aa8fc5.tar.gz
bcm5719-llvm-aa4558497ff6301881adf38960dd2f4d95aa8fc5.zip
[clang] Improve LLVM-style RTTI support in ExternalASTSource/ExternalSemaSource
Summary: We currently have some very basic LLVM-style RTTI support in the ExternalASTSource class hierarchy based on the `SemaSource` bool( to discriminate it form the ExternalSemaSource). As ExternalASTSource is supposed to be subclassed we should have extendable LLVM-style RTTI in this class hierarchy to make life easier for projects building on top of Clang. Most notably the current RTTI implementation forces LLDB to implement RTTI for its own ExternalASTSource class (ClangExternalASTSourceCommon) by keeping a global set of ExternalASTSources that are known to be ClangExternalASTSourceCommon. Projects using Clang currently have to dosimilar workarounds to get RTTI support for their subclasses. This patch turns this into full-fledged LLVM-style RTTI based on a static `ID` variable similar to other LLVM class hierarchies. Also removes the friend declaration from ExternalASTSource to its child class that was only used to grant access to the `SemaSource` member. Reviewers: aprantl, dblaikie, rjmccall Reviewed By: aprantl Subscribers: riccibruno, labath, lhames, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D71397
Diffstat (limited to 'clang/lib/AST')
-rw-r--r--clang/lib/AST/ExternalASTSource.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/AST/ExternalASTSource.cpp b/clang/lib/AST/ExternalASTSource.cpp
index 73010275744..837be5527fc 100644
--- a/clang/lib/AST/ExternalASTSource.cpp
+++ b/clang/lib/AST/ExternalASTSource.cpp
@@ -24,6 +24,8 @@
using namespace clang;
+char ExternalASTSource::ID;
+
ExternalASTSource::~ExternalASTSource() = default;
llvm::Optional<ExternalASTSource::ASTSourceDescriptor>
OpenPOWER on IntegriCloud