compilerplugins: try to make these work with icecream

Desktop / LibreOffice - Michael Stahl [cib.de] - 6 July 2018 12:12 EDT

There are some problems here, this should fix one of them: the getFilename function returns "" for spelling locations, because the input to clang is sort of preprocessed via -frewrite-includes if icecream is used and the file is built on a remote host (whereas it's apparently not preprocessed if the file is compiled locally by icecream).

Using getPresumedLoc() uses the #line directives in the preprocessed input, which avoids the problem but is more expensive, so try to use it only when necessary.

The getFileEntry(getMainFileID())->getName() pattern will also result in "", but fortunately icecream passes -main-file-name, which oddly enough isn't used by the SourceManager's spelling locations, but is available separately via CodeGenOptions.

This builds everything successfully with clang version 6.0.0: ICECC_PREFERRED_HOST=myremote make check gb_SUPPRESS_TESTS=t

Change-Id: Ic121511683e5302d7b9d85186c8b9c4a5443fa1b Reviewed-on: https://gerrit.libreoffice.org/54993

ff002524c124 compilerplugins: try to make these work with icecream
compilerplugins/clang/automem.cxx | 2 +-
compilerplugins/clang/blockblock.cxx | 3 +--
compilerplugins/clang/checkunusedparams.cxx | 5 ++---
compilerplugins/clang/constantparam.cxx | 3 +--
compilerplugins/clang/constparams.cxx | 3 +--
compilerplugins/clang/convertlong.cxx | 6 ++----
compilerplugins/clang/datamembershadow.cxx | 4 ++--
compilerplugins/clang/dyncastvisibility.cxx | 7 ++----
compilerplugins/clang/expressionalwayszero.cxx | 5 +++--
compilerplugins/clang/externandnotdefined.cxx | 2 +-
compilerplugins/clang/fragiledestructor.cxx | 5 +++--
compilerplugins/clang/memoryvar.cxx | 2 +-
compilerplugins/clang/nullptr.cxx | 2 +-
compilerplugins/clang/oncevar.cxx | 3 +--
compilerplugins/clang/overrideparam.cxx | 3 +--
compilerplugins/clang/plugin.cxx | 30 ++++++++++++++++++++++++--
compilerplugins/clang/plugin.hxx | 3 +++
compilerplugins/clang/pluginhandler.cxx | 14 +++++++++++-
compilerplugins/clang/pluginhandler.hxx | 1 +
compilerplugins/clang/refcounting.cxx | 3 ++-
compilerplugins/clang/reservedid.cxx | 7 +++---
compilerplugins/clang/salbool.cxx | 4 ++--
compilerplugins/clang/shouldreturnbool.cxx | 4 +---
compilerplugins/clang/simplifydynamiccast.cxx | 3 +--
compilerplugins/clang/staticmethods.cxx | 2 +-
compilerplugins/clang/stringconcat.cxx | 2 +-
compilerplugins/clang/stringconstant.cxx | 10 ++++-----
compilerplugins/clang/stringstatic.cxx | 3 +--
compilerplugins/clang/unnecessaryoverride.cxx | 6 +++---
compilerplugins/clang/unnecessaryparen.cxx | 3 +--
compilerplugins/clang/unoany.cxx | 3 ++-
compilerplugins/clang/unusedvariablemore.cxx | 4 +---
compilerplugins/clang/useuniqueptr.cxx | 7 +++---
compilerplugins/clang/vclwidgets.cxx | 14 ++++++------
34 files changed, 103 insertions(+), 75 deletions(-)

Upstream: cgit.freedesktop.org


  • Share