[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