Author: jdevlieghere
Date: Tue Jul 23 14:14:41 2019
New Revision: 366853

URL: http://llvm.org/viewvc/llvm-project?rev=366853&view=rev
Log:
[ExpressionParser] Handle llvm::Expected result

This fixes the unchecked-error assertion at runtime.

  Expected<T> must be checked before access or destruction. Expected<T>
  value was in success state. (Note: Expected<T> values in success mode
  must still be checked prior to being destroyed).

Modified:
    lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp

Modified: 
lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp?rev=366853&r1=366852&r2=366853&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp 
(original)
+++ lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp 
Tue Jul 23 14:14:41 2019
@@ -204,7 +204,11 @@ private:
   llvm::DenseSet<clang::Decl *> m_completed;
 
   bool ImportAndCheckCompletable(clang::Decl *decl) {
-    (void)m_exporter.Import(decl);
+    llvm::Expected<clang::Decl *> imported_decl = m_exporter.Import(decl);
+    if (!imported_decl) {
+      llvm::consumeError(imported_decl.takeError());
+      return false;
+    }
     if (m_completed.count(decl))
       return false;
     if (!llvm::isa<DeclContext>(decl))
@@ -225,7 +229,11 @@ private:
   void Complete(clang::Decl *decl) {
     m_completed.insert(decl);
     auto *decl_context = llvm::cast<DeclContext>(decl);
-    (void)m_exporter.Import(decl);
+    llvm::Expected<clang::Decl *> imported_decl = m_exporter.Import(decl);
+    if (!imported_decl) {
+      llvm::consumeError(imported_decl.takeError());
+      return;
+    }
     m_exporter.CompleteDecl(decl);
     for (Decl *child : decl_context->decls())
       if (ImportAndCheckCompletable(child))


_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to