[Lldb-commits] [lldb] r267861 - Revert "Fixed a bug where const this would cause parser errors about $__lldb_expr."

Sean Callanan via lldb-commits lldb-commits at lists.llvm.org
Fri Apr 29 10:09:18 PDT 2016


Pavel,

thank you for reverting this.  I have no idea how I was able to run the testsuite with this code still in there – I’ll 

Sean

> On Apr 28, 2016, at 1:16 AM, Pavel Labath via lldb-commits <lldb-commits at lists.llvm.org> wrote:
> 
> 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 at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits



More information about the lldb-commits mailing list