summaryrefslogtreecommitdiffstats
path: root/lldb/source/Interpreter/CommandInterpreter.cpp
diff options
context:
space:
mode:
authorRaphael Isemann <teemperor@gmail.com>2019-09-24 06:58:39 +0000
committerRaphael Isemann <teemperor@gmail.com>2019-09-24 06:58:39 +0000
commitbd2a910a63f298aa38fac282f1ed858c21075eeb (patch)
treec7540c1873bd58774184e5632e648e1e290ceeb8 /lldb/source/Interpreter/CommandInterpreter.cpp
parentbce849e350992046cce2704038531e9bad9cf1c3 (diff)
downloadbcm5719-llvm-bd2a910a63f298aa38fac282f1ed858c21075eeb.tar.gz
bcm5719-llvm-bd2a910a63f298aa38fac282f1ed858c21075eeb.zip
Ignore generated @import statements in the expression evaluator
Summary: The ClangModulesDeclVendor is currently interpreting all injected `@import` statements in our expression wrapper as modules that the user has explicitly requested to be persistently loaded. As we inject `@import` statements with our std module prototype, the ClangModulesDeclVendor will start compiling and loading unrelated C++ modules because it thinks the user has requested that it should load them. As the ClangModulesDeclVendor is lacking the setup to compile these modules (e.g. it lacks the include paths), it will then actually just fail to compile them and cause the whole expression evaluation to fail. This causes these tests to fail on systems that enable the ClangModulesDeclVendor (such as macOS). This patch fixes this by preventing the ClangModulesDeclVendor from interpreting `@import` statements in the wrapper source code. This is done by check if the import happens in the fake source file containing our wrapper code (which implies it was generated by LLDB). This patch doesn't reenable the tests as there is more work needed to get the tests running on macOS (D67760) Reviewers: aprantl, shafik, jingham Subscribers: lldb-commits Tags: #c_modules_in_lldb, #lldb Differential Revision: https://reviews.llvm.org/D61565 llvm-svn: 372690
Diffstat (limited to 'lldb/source/Interpreter/CommandInterpreter.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud