]> granicus.if.org Git - clang/commit
[ASTImporter] Add an ImportImpl method to allow customizing Import behavior.
authorRaphael Isemann <teemperor@gmail.com>
Mon, 29 Apr 2019 21:02:35 +0000 (21:02 +0000)
committerRaphael Isemann <teemperor@gmail.com>
Mon, 29 Apr 2019 21:02:35 +0000 (21:02 +0000)
commit49c79db1f9b52237211136e3aa190a9a36b30d40
tree3b62b3b2a777e53bf414a32da810f786d450453e
parentb95334e6d4479448c926ca826a813714324eb18c
[ASTImporter] Add an ImportImpl method to allow customizing Import behavior.

Summary:
We are currently implementing support in LLDB that reconstructs the STL templates from
the target program in the expression evaluator. This reconstruction happens during the
import process from our debug info AST into the expression evaluation AST, which means
we need a way to intercept the ASTImporter import process.

This patch adds an protected ImportImpl method that we can overwrite in LLDB to implement
our special importing logic (which is essentially just looking into a C++ module that is attached to
the target context). Because ImportImpl has to call MapImported/AddToLookup for the decls it
creates, this patch also exposes those via a new unified method and checks that we call it when
importing decls.

Reviewers: martong, balazske, a.sidorin, shafik, a_sidorin

Reviewed By: martong, a_sidorin

Subscribers: rnkovacs, cfe-commits, lldb-commits, aprantl

Tags: #clang

Differential Revision: https://reviews.llvm.org/D59485

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@359502 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/ASTImporter.h
lib/AST/ASTImporter.cpp
unittests/AST/ASTImporterTest.cpp