summaryrefslogtreecommitdiff
path: root/compilerplugins
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2020-07-30 10:41:56 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2020-07-30 12:18:29 +0200
commit6af041b8160a7193ed24df9a1adc117dda61cd65 (patch)
treed20461bf221a60e36af256617a545fcfe5caa1e7 /compilerplugins
parentfd80650672d5d3a0b585d6d46a1b1b0cd4012faf (diff)
loplugin:flatten in sw/uibase/utl..sw/uibase/wrtsh
Change-Id: I9010524952ce3b99a62e53dbf715a72c86a89b01 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99766 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'compilerplugins')
-rw-r--r--compilerplugins/clang/flatten.cxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/compilerplugins/clang/flatten.cxx b/compilerplugins/clang/flatten.cxx
index bac4ae8a4370..a615b8366b63 100644
--- a/compilerplugins/clang/flatten.cxx
+++ b/compilerplugins/clang/flatten.cxx
@@ -427,7 +427,7 @@ llvm::Optional<std::string> Flatten::invertCondition(Expr const * condExpr, Sour
// an if statement will automatically invoke a bool-conversion method
if (auto memberCallExpr = dyn_cast<CXXMemberCallExpr>(condExpr))
{
- if (isa<CXXConversionDecl>(memberCallExpr->getMethodDecl()))
+ if (memberCallExpr->getMethodDecl() && isa<CXXConversionDecl>(memberCallExpr->getMethodDecl()))
condExpr = memberCallExpr->getImplicitObjectArgument()->IgnoreImpCasts();
}
@@ -665,6 +665,11 @@ std::string Flatten::getSourceAsString(SourceRange range)
// in case it happens during code replacement
return "clang returned bad pointers";
}
+ if (p2 - p1 > 64 * 1024) {
+ // workaround clang weirdness, but don't return empty string
+ // in case it happens during code replacement
+ return "clang returned overlay large source range";
+ }
return std::string( p1, p2 - p1);
}