diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-07-30 10:41:56 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-07-30 12:18:29 +0200 |
commit | 6af041b8160a7193ed24df9a1adc117dda61cd65 (patch) | |
tree | d20461bf221a60e36af256617a545fcfe5caa1e7 /compilerplugins | |
parent | fd80650672d5d3a0b585d6d46a1b1b0cd4012faf (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.cxx | 7 |
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); } |