[Lldb-commits] [PATCH] D61565: Ignore generated @import statements in the expression evaluator to fix import-std-module tests on macOS

Adrian Prantl via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue May 7 09:16:48 PDT 2019

aprantl added a comment.

A slightly more elegant solution might be to inject a #line directive that changes to a different source file for the code that the user entered. I've been long wanting to make `expr -g` more palatable to end users by hiding the LLDB-injected code in a separate source file by default. If that turns out to be too much work, feel free to land this version.

Comment at: lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp:111
+  // True iff the parser has entered or passed the actual user expression.
+  // False means the parser is still parsing the wrapper code generated by LLDB.
+  bool m_entered_expr = false;

Comment at: lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp:141
+    // loaded by the user. We can stop here as we only care about user-loaded
+    // modules.
+    if (!m_entered_expr)
Just to make sure I'm understanding:

`expr @import Foo` will still work, but it will import Foo into the expression rather than into the context from which we ASTImport definitions?




More information about the lldb-commits mailing list