[Lldb-commits] [PATCH] D38153: Inhibit global lookups for symbols in the IR dynamic checks
Sean Callanan via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Sep 21 13:54:36 PDT 2017
spyffe created this revision.
spyffe added a project: LLDB.
Herald added subscribers: arichardson, aprantl, sdardis.
The IR dynamic checks are self-contained functions whose job is to
- verify that pointers referenced in an expression are valid at runtime; and
- verify that selectors sent to Objective-C objects by an expression are actually supported by that object.
These dynamic checks forward-declare all the functions they use and should not require any external debug information. The way they ensure this is by marking all the names they use with a dollar sign (`$`). The expression parser recognizes such symbols and perform no lookups for them.
This patch fixes three issues surrounding the use of the dollar sign:
- to fix a MIPS issue, the name of the pointer checker was changed from starting with `$` to starting with `_$`, but this was not properly ignored; and
- the Objective-C object checker used a temporary variable that did not start with `$`.
- the Objective-C object checker used an externally-defined struct (`struct objc_selector`) but didn't need to.
The patch also reformats the string containing the Objective-C object checker, which was mangled horribly when the code was transformed to a uniform width of 80 columns.
Repository:
rL LLVM
https://reviews.llvm.org/D38153
Files:
source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38153.116261.patch
Type: text/x-patch
Size: 9795 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20170921/84a0a279/attachment.bin>
More information about the lldb-commits
mailing list