[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:19:20 PDT 2016


I think I’ve figured it out.  The error was in the APInt code (which shouldn’t have been committed).
It required a corresponding header change which I hadn’t committed (the change I wanted to commit had no corresponding header changes) but which of course were present locally.

Sean

> On Apr 29, 2016, at 10:09 AM, Sean Callanan via lldb-commits <lldb-commits at lists.llvm.org> wrote:
> 
> 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
> 
> _______________________________________________
> 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