summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/scripts/clang.complete-type-getObjCLayout.diff13
-rw-r--r--lldb/scripts/clang.decl-printer-reference-type.diff13
2 files changed, 26 insertions, 0 deletions
diff --git a/lldb/scripts/clang.complete-type-getObjCLayout.diff b/lldb/scripts/clang.complete-type-getObjCLayout.diff
new file mode 100644
index 00000000000..23609572540
--- /dev/null
+++ b/lldb/scripts/clang.complete-type-getObjCLayout.diff
@@ -0,0 +1,13 @@
+Index: lib/AST/RecordLayoutBuilder.cpp
+===================================================================
+--- lib/AST/RecordLayoutBuilder.cpp (revision 152265)
++++ lib/AST/RecordLayoutBuilder.cpp (working copy)
+@@ -2313,6 +2313,8 @@
+ ASTContext::getObjCLayout(const ObjCInterfaceDecl *D,
+ const ObjCImplementationDecl *Impl) const {
+ // Retrieve the definition
++ if (D->hasExternalLexicalStorage() && !D->getDefinition())
++ getExternalSource()->CompleteType(const_cast<ObjCInterfaceDecl*>(D));
+ D = D->getDefinition();
+ assert(D && D->isThisDeclarationADefinition() && "Invalid interface decl!");
+
diff --git a/lldb/scripts/clang.decl-printer-reference-type.diff b/lldb/scripts/clang.decl-printer-reference-type.diff
new file mode 100644
index 00000000000..b0150fee695
--- /dev/null
+++ b/lldb/scripts/clang.decl-printer-reference-type.diff
@@ -0,0 +1,13 @@
+Index: lib/AST/DeclPrinter.cpp
+===================================================================
+--- lib/AST/DeclPrinter.cpp (revision 152772)
++++ lib/AST/DeclPrinter.cpp (working copy)
+@@ -114,6 +114,8 @@
+ BaseType = FTy->getResultType();
+ else if (const VectorType *VTy = BaseType->getAs<VectorType>())
+ BaseType = VTy->getElementType();
++ else if (const ReferenceType *RTy = BaseType->getAs<ReferenceType>())
++ BaseType = RTy->getPointeeType();
+ else
+ llvm_unreachable("Unknown declarator!");
+ }
OpenPOWER on IntegriCloud