[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