1. 06 Ara, 2018 1 kayıt (commit)
    • Stephan Bergmann's avatar
      Remove broken rebuild of compilerplugins when CLANG_FULL_VERSION changed · efe28895
      Stephan Bergmann yazdı
      Not all compilerplugins/clang/*.cxx depend on config_clang.h (e.g., check.cxx
      doesn't), so this mechanism trying to rebuild compilerplugins once the
      underlying Clang installation changes doesn't work reliably in practice (just
      debugged through this with Miklos on IRC, and it wasn't the first time that
      `make distclean` fixed compilerplugins for somebody after they upgraded their
      Clang installation).  Removing the brittle mechanism shows that plugin.hxx
      doesn't actually depend on config_clang.h.
      (There's a second mechanism trying to rebuild compilerplugins once the
      underlying Clang installation changes, namely
      > # Clang most probably doesn't maintain binary compatibility, so rebuild when clang changes.
      > $(CLANGOUTDIR)/clang-timestamp: $(CLANGDIR)/bin/clang$(CLANG_EXE_EXT)
      >         $(QUIET)touch $@
      in compilerplugins/Makefile-clang.mk, but that doesn't work reliably either, as
      it depends on the newly installed clang executable being newer than our
      clang-timestamp file, which will be the case for self-built Clang installations,
      but not necessarily when updating e.g. a distro-provided Clang installation.)
      Change-Id: Ie576f14356b3f0e55444375095c86aa851404bf3
      Reviewed-on: https://gerrit.libreoffice.org/64623
      Tested-by: Jenkins
      Reviewed-by: 's avatarStephan Bergmann <sbergman@redhat.com>
  2. 14 Agu, 2018 2 kayıt (commit)
  3. 10 Agu, 2018 1 kayıt (commit)
  4. 06 Tem, 2018 1 kayıt (commit)
    • Michael Stahl's avatar
      compilerplugins: try to make these work with icecream · ff002524
      Michael Stahl yazdı
      There are some problems here, this should fix one of them: the
      getFilename function returns "<stdin>" 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 "<stdin>", 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
      Tested-by: Jenkins
      Reviewed-by: 's avatarThorsten Behrens <Thorsten.Behrens@CIB.de>
  5. 23 Mar, 2018 1 kayıt (commit)
  6. 10 Şub, 2018 1 kayıt (commit)
  7. 21 Ara, 2017 1 kayıt (commit)
  8. 08 Ara, 2017 1 kayıt (commit)
    • Stephan Bergmann's avatar
      New --enable-compiler-plugins=debug mode · 32c31c03
      Stephan Bergmann yazdı
      ...to enable debug-only code in the plugins.  Some situations in the plugin code
      should never happen, yet must not by default report errors or trigger
      assertions, as some newly written LO code could trigger them nevertheless (in
      which case the plugin code will likely need to be adapted, to cater for these
      presumed-impossible situations).
      Such code can now be included in the plugins behind an if(isDebugMode()) guard,
      and can explicitly be enabled with --enable-compiler-plugins=debug.
      I deliberately made this a runtime rather than a compile time option (using
      some #ifdef guards in the plugin code, say), as it IMO keeps the code more
      readable, and also allows overridding COMPILER_PLUGINS_DEBUG=... on the make
      command line.
      Change-Id: Iea4f0c2783ad968a0de097fa710b3be1a248de73
      Reviewed-on: https://gerrit.libreoffice.org/46096Tested-by: 's avatarJenkins <ci@libreoffice.org>
      Reviewed-by: 's avatarStephan Bergmann <sbergman@redhat.com>
  9. 10 Kas, 2017 1 kayıt (commit)
  10. 07 Kas, 2017 2 kayıt (commit)
    • Stephan Bergmann's avatar
      Clean away temporarily added using declarations · b35bb38f
      Stephan Bergmann yazdı
      Change-Id: I26734c13515394162d88351a1cbe2b20abdac865
    • Stephan Bergmann's avatar
      Memoize ignoreLocation results · 07b87115
      Stephan Bergmann yazdı
      ...which, according to callgrind, reduces instruction fetch count spent on
      compiling sw/source/core/layout/paintfrm.cxx (randomly selected because it is
      rather large) by 5% from 41,992,064,226 to 39,861,989,855 (function main() in
      This is best done by forwarding ignoreLocation calls from Plugin to the
      PluginHandler signleton, but due to the tight mutual coupling between plugin.hxx
      and pluginhandler.hxx that unfortunately required some reorganization (and two
      outstanding TODO clean-ups of temporarily introduced using declarations in
      Change-Id: Ia4270517d194def7db7ed80cb6894e9c473e9499
  11. 27 Eki, 2017 5 kayıt (commit)
  12. 02 Agu, 2017 1 kayıt (commit)
  13. 22 Tem, 2017 1 kayıt (commit)
  14. 20 Haz, 2017 2 kayıt (commit)
  15. 18 May, 2017 2 kayıt (commit)
  16. 25 Mar, 2017 1 kayıt (commit)
  17. 18 Eki, 2016 1 kayıt (commit)
  18. 27 Eyl, 2016 1 kayıt (commit)
  19. 28 Haz, 2016 1 kayıt (commit)
  20. 27 Nis, 2016 1 kayıt (commit)
  21. 26 Şub, 2016 1 kayıt (commit)
  22. 24 Haz, 2014 1 kayıt (commit)
  23. 27 Şub, 2014 1 kayıt (commit)
  24. 21 Şub, 2014 1 kayıt (commit)
  25. 20 Şub, 2014 1 kayıt (commit)
    • Stephan Bergmann's avatar
      Don't attempt to actually do double code removals · 5dcb634d
      Stephan Bergmann yazdı
      ...that easily works around the problem that in a rewriter rewriting types of
      VarDecls like
         T x, y;
      it would try to replace T twice.  Also, keep the list of removals globally with
      the (global) rewriter.
      Change-Id: I55b8d11986c2a29e09ff40132fd114a0cc48dc90
  26. 14 Şub, 2014 1 kayıt (commit)
  27. 27 Ock, 2014 1 kayıt (commit)
    • Stephan Bergmann's avatar
      Prepare dual-mode compiler plugin feature · 1f078fca
      Stephan Bergmann yazdı
      ...which can act as either a rewriter or a non-rewriter that emits warnings.
      Also added COMPILER_PLUGIN_WARNINGS_ONLY=X to demote warnings from plugin X from
      errors to warnings, even under --enable-werror.
      Change-Id: I05361936240a890515c6bba2459565417c1746b7
  28. 22 Eyl, 2013 1 kayıt (commit)
  29. 21 Agu, 2013 2 kayıt (commit)
  30. 06 Agu, 2013 1 kayıt (commit)
  31. 20 Haz, 2013 1 kayıt (commit)
    • Luboš Luňák's avatar
      make it easy to get a parent of an AST node · ade47d3d
      Luboš Luňák yazdı
      Clang API doesn't provide this, but it's occasionally needed, and so far
      the way has been inspecting the highest possible node in AST and walking down
      and remembering, which is complicated, error-prone and annoying.
      Change-Id: Id5b72cb5ebfc069e90efe6d673c0ef18ebcdab61