Author: zturner Date: Thu Nov 17 21:51:19 2016 New Revision: 287307 URL: http://llvm.org/viewvc/llvm-project?rev=287307&view=rev Log: Remove some dead code in ValueObject.
Originally I converted this entire function and all dependents to use StringRef, but there were some test failures that were tricky to track down, as this is a complicated function. So I'm starting over, this time in smaller increments. Modified: lldb/trunk/source/Core/ValueObject.cpp Modified: lldb/trunk/source/Core/ValueObject.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/ValueObject.cpp?rev=287307&r1=287306&r2=287307&view=diff ============================================================================== --- lldb/trunk/source/Core/ValueObject.cpp (original) +++ lldb/trunk/source/Core/ValueObject.cpp Thu Nov 17 21:51:19 2016 @@ -2607,14 +2607,15 @@ ValueObjectSP ValueObject::GetValueForEx *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; return ValueObjectSP(); } - if (!separator_position || - separator_position > close_bracket_position) // if no separator, this - // is either [] or [N] - { + + if (!separator_position || separator_position > close_bracket_position) { + // if no separator, this is of the form [N]. Note that this cannot + // be an unbounded range of the form [], because that case was handled + // above with an unconditional return. char *end = NULL; unsigned long index = ::strtoul(expression_cstr + 1, &end, 0); - if (!end || end != close_bracket_position) // if something weird is in - // our way return an error + if (end != close_bracket_position) // if something weird is in + // our way return an error { *first_unparsed = expression_cstr; *reason_to_stop = @@ -2622,24 +2623,6 @@ ValueObjectSP ValueObject::GetValueForEx *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; return ValueObjectSP(); } - if (end - expression_cstr == - 1) // if this is [], only return a valid value for arrays - { - if (root_compiler_type_info.Test(eTypeIsArray)) { - *first_unparsed = expression_cstr + 2; - *reason_to_stop = - ValueObject::eExpressionPathScanEndReasonArrayRangeOperatorMet; - *final_result = - ValueObject::eExpressionPathEndResultTypeUnboundedRange; - return root; - } else { - *first_unparsed = expression_cstr; - *reason_to_stop = - ValueObject::eExpressionPathScanEndReasonEmptyRangeNotAllowed; - *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; - return ValueObjectSP(); - } - } // from here on we do have a valid index if (root_compiler_type_info.Test(eTypeIsArray)) { ValueObjectSP child_valobj_sp = root->GetChildAtIndex(index, true); @@ -2791,8 +2774,8 @@ ValueObjectSP ValueObject::GetValueForEx { char *end = NULL; unsigned long index_lower = ::strtoul(expression_cstr + 1, &end, 0); - if (!end || end != separator_position) // if something weird is in our - // way return an error + if (end != separator_position) // if something weird is in our + // way return an error { *first_unparsed = expression_cstr; *reason_to_stop = @@ -2801,8 +2784,8 @@ ValueObjectSP ValueObject::GetValueForEx return ValueObjectSP(); } unsigned long index_higher = ::strtoul(separator_position + 1, &end, 0); - if (!end || end != close_bracket_position) // if something weird is in - // our way return an error + if (end != close_bracket_position) // if something weird is in + // our way return an error { *first_unparsed = expression_cstr; *reason_to_stop = @@ -2811,11 +2794,8 @@ ValueObjectSP ValueObject::GetValueForEx return ValueObjectSP(); } if (index_lower > index_higher) // swap indices if required - { - unsigned long temp = index_lower; - index_lower = index_higher; - index_higher = temp; - } + std::swap(index_lower, index_higher); + if (root_compiler_type_info.Test( eTypeIsScalar)) // expansion only works for scalars { @@ -2975,8 +2955,8 @@ int ValueObject::ExpandArraySliceExpress { char *end = NULL; unsigned long index = ::strtoul(expression_cstr + 1, &end, 0); - if (!end || end != close_bracket_position) // if something weird is in - // our way return an error + if (end != close_bracket_position) // if something weird is in + // our way return an error { *first_unparsed = expression_cstr; *reason_to_stop = @@ -3093,8 +3073,8 @@ int ValueObject::ExpandArraySliceExpress { char *end = NULL; unsigned long index_lower = ::strtoul(expression_cstr + 1, &end, 0); - if (!end || end != separator_position) // if something weird is in our - // way return an error + if (end != separator_position) // if something weird is in our + // way return an error { *first_unparsed = expression_cstr; *reason_to_stop = @@ -3103,8 +3083,8 @@ int ValueObject::ExpandArraySliceExpress return 0; } unsigned long index_higher = ::strtoul(separator_position + 1, &end, 0); - if (!end || end != close_bracket_position) // if something weird is in - // our way return an error + if (end != close_bracket_position) // if something weird is in + // our way return an error { *first_unparsed = expression_cstr; *reason_to_stop = @@ -3113,11 +3093,8 @@ int ValueObject::ExpandArraySliceExpress return 0; } if (index_lower > index_higher) // swap indices if required - { - unsigned long temp = index_lower; - index_lower = index_higher; - index_higher = temp; - } + std::swap(index_lower, index_higher); + if (root_compiler_type_info.Test( eTypeIsScalar)) // expansion only works for scalars { _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits