[lldb] Fix crash when looking up type coming from the ClangModuleDeclVendor
authorRaphael Isemann <teemperor@gmail.com>
Sun, 21 Jul 2019 10:31:13 +0000 (10:31 +0000)
committerRaphael Isemann <teemperor@gmail.com>
Sun, 21 Jul 2019 10:31:13 +0000 (10:31 +0000)
commitca9dfdfaecaa13fc075858a2965fd2f43e7bc8e1
treee383985c1218ba0a4a898c1fb4e452e98608e92b
parent8a431874e995b3ff3c4c99a23cfed0429cc9f117
[lldb] Fix crash when looking up type coming from the ClangModuleDeclVendor

Summary:
We assume in LLDB that every type comes from an ASTContext with an associated ClangASTContext.
However the types inside the ClangModuleDeclVendor don't have a ClangASTContext so we end up
crashing whenever we create a CompilerType for one of these types.

Simplest way to trigger this bug is to just look up NSObject from a module:
   (lldb) expr @import Foundation
   (lldb) type lookup NSObject
   Assertion failed: (m_type_system != nullptr), function CompilerType, file /Users/teemperor/llvm1/llvm-project/lldb/source/Symbol/CompilerType.cpp, line 39.

This patch just creates a ClangASTContext for the ASTContext used by ClangModuleDeclVendor.

Reviewers: davide, shafik

Reviewed By: davide

Subscribers: lldb-commits

Tags: #lldb

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

llvm-svn: 366653
lldb/packages/Python/lldbsuite/test/lang/objc/modules/TestObjCModules.py
lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp