diff options
-rw-r--r-- | compilerplugins/clang/bufferadd.cxx | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/compilerplugins/clang/bufferadd.cxx b/compilerplugins/clang/bufferadd.cxx index 4346e9ca28b2..ab619f523622 100644 --- a/compilerplugins/clang/bufferadd.cxx +++ b/compilerplugins/clang/bufferadd.cxx @@ -274,10 +274,13 @@ bool BufferAdd::isMethodOkToMerge(CXXMemberCallExpr const* memberCall) if (methodDecl->getNumParams() == 0) return true; - auto name = methodDecl->getName(); - if (name == "appendUninitialized" || name == "setLength" || name == "remove" || name == "insert" - || name == "appendAscii" || name == "appendUtf32") - return false; + if (auto const id = methodDecl->getIdentifier()) + { + auto name = id->getName(); + if (name == "appendUninitialized" || name == "setLength" || name == "remove" + || name == "insert" || name == "appendAscii" || name == "appendUtf32") + return false; + } auto rhs = memberCall->getArg(0); if (!isSideEffectFree(rhs)) |