Author: labath
Date: Thu Apr 28 03:16:19 2016
New Revision: 267861

URL: http://llvm.org/viewvc/llvm-project?rev=267861&view=rev
Log:
Revert "Fixed a bug where const this would cause parser errors about 
$__lldb_expr."

This reverts commit r267833 as it breaks the build. It looks like some work in 
progress got
committed together with the actual fix, but I'm not sure which one is which, so 
I'll revert the
whole patch and let author resumbit it after fixing the build error.

Removed:
    lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/Makefile
    
lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/TestConstThis.py
    lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/main.cpp
Modified:
    lldb/trunk/source/Core/Scalar.cpp
    lldb/trunk/source/Expression/ExpressionSourceCode.cpp
    lldb/trunk/source/Expression/LLVMUserExpression.cpp
    lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
    lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp

Removed: lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/Makefile?rev=267860&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/Makefile 
(original)
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/Makefile 
(removed)
@@ -1,8 +0,0 @@
-LEVEL = ../../../make
-CXX_SOURCES := main.cpp
-CXXFLAGS += -std=c++11
-include $(LEVEL)/Makefile.rules
-
-cleanup:
-       rm -f Makefile *.d
-

Removed: 
lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/TestConstThis.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/TestConstThis.py?rev=267860&view=auto
==============================================================================
--- 
lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/TestConstThis.py 
(original)
+++ 
lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/TestConstThis.py 
(removed)
@@ -1,4 +0,0 @@
-from lldbsuite.test import lldbinline
-from lldbsuite.test import decorators
-
-lldbinline.MakeInlineTest(__file__, globals(), 
[decorators.expectedFailureAll(oslist=["windows"], 
bugnumber="llvm.org/pr24764")] )

Removed: lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/main.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/main.cpp?rev=267860&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/main.cpp 
(original)
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/const_this/main.cpp 
(removed)
@@ -1,23 +0,0 @@
-//===-- main.cpp ------------------------------------------------*- C++ 
-*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <stdio.h>
-
-class foo {
-public:
-  template <class T> T func(T x) const {
-    return x+2; //% self.expect("expr 2+3", DATA_TYPES_DISPLAYED_CORRECTLY, 
substrs = ["5"])
-  }
-};
-
-int i;
-
-int main() {
-  return foo().func(i);
-}

Modified: lldb/trunk/source/Core/Scalar.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Scalar.cpp?rev=267861&r1=267860&r2=267861&view=diff
==============================================================================
--- lldb/trunk/source/Core/Scalar.cpp (original)
+++ lldb/trunk/source/Core/Scalar.cpp Thu Apr 28 03:16:19 2016
@@ -78,74 +78,6 @@ PromoteToMaxType
     return Scalar::e_void;
 }
 
-llvm::APInt
-Scalar::APIntWithTypeAndValue(Scalar::Type type, uint64_t raw_value)
-{
-    //  APInt(unsigned numBits, uint64_t val, bool isSigned = false)
-    unsigned num_bits = 1;
-    bool is_signed = false;
-    
-    switch (type)
-    {
-        case Scalar::e_void:
-            break;
-        case Scalar::e_sint:
-            is_signed = true;
-            num_bits = sizeof(sint_t) * 8;
-            break;
-        case Scalar::e_uint:
-            is_signed = false;
-            num_bits = sizeof(uint_t) * 8;
-            break;
-        case Scalar::e_slong:
-            is_signed = true;
-            num_bits = sizeof(slong_t) * 8;
-            break;
-        case Scalar::e_ulong:
-            is_signed = false;
-            num_bits = sizeof(ulong_t) * 8;
-            break;
-        case Scalar::e_slonglong:
-            is_signed = true;
-            num_bits = sizeof(slonglong_t) * 8;
-            break;
-        case Scalar::e_ulonglong:
-            is_signed = false;
-            num_bits = sizeof(ulonglong_t) * 8;
-            break;
-        case Scalar::e_sint128:
-            is_signed = true;
-            num_bits = 128;
-            break;
-        case Scalar::e_uint128:
-            is_signed = false;
-            num_bits = 128;
-            break;
-        case Scalar::e_sint256:
-            is_signed = true;
-            num_bits = 256;
-            break;
-        case Scalar::e_uint256:
-            is_signed = false;
-            num_bits = 256;
-            break;
-        case Scalar::e_float:
-            is_signed = false;
-            num_bits = sizeof(float_t) * 8;
-            break;
-        case Scalar::e_double:
-            is_signed = false;
-            num_bits = sizeof(double_t) * 8;
-            break;
-        case Scalar::e_long_double:
-            is_signed = false;
-            num_bits = sizeof(long_double_t) * 8;
-            break;
-    }
-    
-    return llvm::APInt(num_bits, raw_value, is_signed);
-}
-
 Scalar::Scalar() :
     m_type(e_void),
     m_float((float)0)

Modified: lldb/trunk/source/Expression/ExpressionSourceCode.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/ExpressionSourceCode.cpp?rev=267861&r1=267860&r2=267861&view=diff
==============================================================================
--- lldb/trunk/source/Expression/ExpressionSourceCode.cpp (original)
+++ lldb/trunk/source/Expression/ExpressionSourceCode.cpp Thu Apr 28 03:16:19 
2016
@@ -195,7 +195,7 @@ AddLocalVariableDecls(const lldb::Variab
     }
 }
 
-bool ExpressionSourceCode::GetText (std::string &text, lldb::LanguageType 
wrapping_language, bool static_method, ExecutionContext &exe_ctx) const
+bool ExpressionSourceCode::GetText (std::string &text, lldb::LanguageType 
wrapping_language, bool const_object, bool static_method, ExecutionContext 
&exe_ctx) const
 {
     const char *target_specific_defines = "typedef signed char BOOL;\n";
     std::string module_macros;
@@ -337,12 +337,13 @@ bool ExpressionSourceCode::GetText (std:
             break;
         case lldb::eLanguageTypeC_plus_plus:
             wrap_stream.Printf("void                                   \n"
-                               "$__lldb_class::%s(void *$__lldb_arg)   \n"
+                               "$__lldb_class::%s(void *$__lldb_arg) %s\n"
                                "{                                      \n"
                                "    %s;                                \n"
                                "%s"
                                "}                                      \n",
                                m_name.c_str(),
+                               (const_object ? "const" : ""),
                                lldb_local_var_decls.GetData(),
                                tagged_body.c_str());
             break;

Modified: lldb/trunk/source/Expression/LLVMUserExpression.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/LLVMUserExpression.cpp?rev=267861&r1=267860&r2=267861&view=diff
==============================================================================
--- lldb/trunk/source/Expression/LLVMUserExpression.cpp (original)
+++ lldb/trunk/source/Expression/LLVMUserExpression.cpp Thu Apr 28 03:16:19 2016
@@ -59,6 +59,7 @@ LLVMUserExpression::LLVMUserExpression(E
       m_in_objectivec_method(false),
       m_in_static_method(false),
       m_needs_object_ptr(false),
+      m_const_object(false),
       m_target(NULL),
       m_can_interpret(false),
       m_materialized_address(LLDB_INVALID_ADDRESS)

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=267861&r1=267860&r2=267861&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp 
(original)
+++ lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp 
Thu Apr 28 03:16:19 2016
@@ -2213,10 +2213,10 @@ ClangExpressionDeclMap::AddThisType(Name
 {
     CompilerType copied_clang_type = GuardedCopyType(ut);
 
-    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_EXPRESSIONS));
-
     if (!copied_clang_type)
     {
+        Log *log(lldb_private::GetLogIfAllCategoriesSet 
(LIBLLDB_LOG_EXPRESSIONS));
+
         if (log)
             log->Printf("ClangExpressionDeclMap::AddThisType - Couldn't import 
the type");
 
@@ -2233,7 +2233,7 @@ ClangExpressionDeclMap::AddThisType(Name
                                                                         
&void_ptr_clang_type,
                                                                         1,
                                                                         false,
-                                                                        0);
+                                                                        
copied_clang_type.GetTypeQualifiers());
 
         const bool is_virtual = false;
         const bool is_static = false;
@@ -2242,7 +2242,7 @@ ClangExpressionDeclMap::AddThisType(Name
         const bool is_attr_used = true;
         const bool is_artificial = false;
 
-        CXXMethodDecl *method_decl = 
ClangASTContext::GetASTContext(m_ast_context)->
+        ClangASTContext::GetASTContext(m_ast_context)->
             AddMethodToCXXRecordType (copied_clang_type.GetOpaqueQualType(),
                                       "$__lldb_expr",
                                       method_type,
@@ -2253,16 +2253,6 @@ ClangExpressionDeclMap::AddThisType(Name
                                       is_explicit,
                                       is_attr_used,
                                       is_artificial);
-        
-        if (log)
-        {
-            ASTDumper method_ast_dumper((clang::Decl*)method_decl);
-            ASTDumper type_ast_dumper(copied_clang_type);
-        
-            log->Printf("  CEDM::AddThisType Added function $__lldb_expr 
(description %s) for this type %s",
-                        method_ast_dumper.GetCString(),
-                        type_ast_dumper.GetCString());
-        }
     }
 
     if (!copied_clang_type.IsValid())

Modified: 
lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp?rev=267861&r1=267860&r2=267861&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp 
(original)
+++ lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp 
Thu Apr 28 03:16:19 2016
@@ -417,7 +417,7 @@ ClangUserExpression::Parse(DiagnosticMan
         else
             lang_type = lldb::eLanguageTypeC;
 
-        if (!source_code->GetText(m_transformed_text, lang_type, 
m_in_static_method, exe_ctx))
+        if (!source_code->GetText(m_transformed_text, lang_type, 
m_const_object, m_in_static_method, exe_ctx))
         {
             diagnostic_manager.PutCString(eDiagnosticSeverityError, "couldn't 
construct expression body");
             return false;


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

Reply via email to