summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2019-09-17 00:44:48 +0000
committerJim Ingham <jingham@apple.com>2019-09-17 00:44:48 +0000
commit66e9f239b5b3b4367eef580696b4e695164f164a (patch)
tree1d33022d9ddabe131b7b010238118b3d90b8e4a4 /lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
parent4b23c24bc8ec84ab443df42c9fdfc74de964febb (diff)
downloadbcm5719-llvm-66e9f239b5b3b4367eef580696b4e695164f164a.tar.gz
bcm5719-llvm-66e9f239b5b3b4367eef580696b4e695164f164a.zip
Revert "[lldb][NFC] Make ApplyObjcCastHack less scary"
This reverts commit 21641a2f6dbac22653befd03496e0850537882ff. It was causing the following test failures: lldb-Suite.lang/objc/objc-class-method.TestObjCClassMethod.py lldb-Suite.lang/objc/foundation.TestObjCMethodsString.py lldb-Suite.lang/objc/foundation.TestConstStrings.py lldb-Suite.lang/objc/radar-9691614.TestObjCMethodReturningBOOL.py lldb-Suite.lang/objc/foundation.TestObjCMethodsNSArray.py llvm-svn: 372057
Diffstat (limited to 'lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp')
-rw-r--r--lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
index 45ddf17f0eb..57bf654528a 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
@@ -313,13 +313,17 @@ void ClangUserExpression::ScanContext(ExecutionContext &exe_ctx, Status &err) {
// count is not available, [myArray count] returns id, which can't be directly
// cast to int without causing a clang error.
static void ApplyObjcCastHack(std::string &expr) {
- std::string from = "(int)[";
- std::string to = "(int)(long long)[";
+#define OBJC_CAST_HACK_FROM "(int)["
+#define OBJC_CAST_HACK_TO "(int)(long long)["
- size_t offset;
+ size_t from_offset;
- while ((offset = expr.find(from)) != expr.npos)
- expr.replace(offset, to.size(), to);
+ while ((from_offset = expr.find(OBJC_CAST_HACK_FROM)) != expr.npos)
+ expr.replace(from_offset, sizeof(OBJC_CAST_HACK_FROM) - 1,
+ OBJC_CAST_HACK_TO);
+
+#undef OBJC_CAST_HACK_TO
+#undef OBJC_CAST_HACK_FROM
}
bool ClangUserExpression::SetupPersistentState(DiagnosticManager &diagnostic_manager,
OpenPOWER on IntegriCloud