diff options
| author | Raphael Isemann <teemperor@gmail.com> | 2019-09-16 18:02:21 +0000 |
|---|---|---|
| committer | Raphael Isemann <teemperor@gmail.com> | 2019-09-16 18:02:21 +0000 |
| commit | 21641a2f6dbac22653befd03496e0850537882ff (patch) | |
| tree | 12195c8f2a932fa03352dcf0618d4ff0e94205aa /lldb/source | |
| parent | 5e37d7f9ff257ec62d733d3d94b11f03e0fe51ca (diff) | |
| download | bcm5719-llvm-21641a2f6dbac22653befd03496e0850537882ff.tar.gz bcm5719-llvm-21641a2f6dbac22653befd03496e0850537882ff.zip | |
[lldb][NFC] Make ApplyObjcCastHack less scary
llvm-svn: 372017
Diffstat (limited to 'lldb/source')
| -rw-r--r-- | lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp index 57bf654528a..45ddf17f0eb 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp +++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp @@ -313,17 +313,13 @@ 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) { -#define OBJC_CAST_HACK_FROM "(int)[" -#define OBJC_CAST_HACK_TO "(int)(long long)[" + std::string from = "(int)["; + std::string to = "(int)(long long)["; - size_t from_offset; + size_t offset; - 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 + while ((offset = expr.find(from)) != expr.npos) + expr.replace(offset, to.size(), to); } bool ClangUserExpression::SetupPersistentState(DiagnosticManager &diagnostic_manager, |

