summaryrefslogtreecommitdiff
path: root/compilerplugins/clang/plugin.hxx
AgeCommit message (Collapse)Author
2014-06-24compilerplugins: move isUnoIncludeFile to base classNoel Grandin
to reduce copy-pasted code Change-Id: I7728d85dea7d0161998c326d6648ca681a8250d0
2014-02-27Remove visual noise from compilerpluginsAlexander Wilms
Change-Id: Ibfed0b64bd60804fa377b5e25e5f197a7772d605 Signed-off-by: Stephan Bergmann <sbergman@redhat.com>
2014-02-21Handle ImplicitCastExpr w/ invalid loc from Objective C codeStephan Bergmann
Change-Id: I82cb8aa53ea5fd86d6ff46af876dd3f55e1123d1
2014-02-20Don't attempt to actually do double code removalsStephan Bergmann
...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
2014-02-14const improvementStephan Bergmann
Change-Id: I03815f33117a2927b1882d221f159a5de8d3ba78
2014-01-27Prepare dual-mode compiler plugin featureStephan Bergmann
...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
2013-09-22add mode lines to new files (and idls) since last runCaolán McNamara
Change-Id: Id1e74f18c90e69d1a781c8f02e30dc3c005ed4fd
2013-08-21helper for getting location after current tokenLuboš Luňák
Given that locations often point to a (start of) token, even if it's e.g. getLocEnd(), this should be very useful. Change-Id: I266e4c0a234262e99158c8f495b631f54f8a5608
2013-08-21update/rework the Rewriter wrapper functionsLuboš Luňák
Some improvements, like making it simple to actually remove a statement or a token including its associated whitespace. Change-Id: I02a5bd919f1fadae1dcd45a76f9d25df353ac518
2013-08-06error: cannot use dynamic_cast with -fno-rttiStephan Bergmann
...with recent Clang trunk towards 3.4 Change-Id: Ie0991c7bd560c30551aeaada426382a889b46391
2013-06-20make it easy to get a parent of an AST nodeLuboš Luňák
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
2013-05-06check for double modifications in compiler pluginsLuboš Luňák
A different way to do 1c0669af2f1f58e6431b5e489ac48a883e242ba7. Sometimes one piece of code can be represented several times in the AST, e.g. with default function arguments. Change-Id: Ic7799fa0bd918a638bdc8ebef69e6aa91d355bdc
2013-05-06Revert "ignore already seen locations in compiler plugins"Luboš Luňák
This does not always work well, e.g. when building a return value in a return statement from a temporary, there is CXXConstructExpr containing CXXTemporaryObjectExpr, which both share the same location. This reverts commit 1c0669af2f1f58e6431b5e489ac48a883e242ba7.
2013-05-06ignore already seen locations in compiler pluginsLuboš Luňák
Change-Id: Icba8dfa61aee7237af569b2414b1cf4ce93ca476
2013-05-06Fix handling range in removeText().Luboš Luňák
Turns out removeText( SourceRange ) treats it as a token range, so it's not always character-exact if used for removal of only several characters from a token (e.g. an identifier). Change-Id: I0223d52da90f9535d9ef1d48b0f56d69131536c8
2013-03-28pass around CompilerInstance rather than ASTContextLuboš Luňák
It's possible to get the latter from the former, and the former is useful for other things too (access to the preprocessor, for example). Change-Id: I708d709129fd3a35bf7c63da4de09c2e696b382d
2013-02-11Fixed compilation error of Clang plugins on Ubuntu/MintMarc-André Laverdière
Change-Id: Ib08c5075034e0e16c5541f05425ef15d2cc3a6f6 Reviewed-on: https://gerrit.libreoffice.org/2045 Reviewed-by: Luboš Luňák <l.lunak@suse.cz> Tested-by: Luboš Luňák <l.lunak@suse.cz>
2013-02-02remove not needed #includeLuboš Luňák
Change-Id: I0fa791733407199db5be2cc9606ac9be1da64188
2013-02-02always use the report() helperLuboš Luňák
Change-Id: I2966fdb5bd98b1ddf718079584acf90a3e3a3700
2013-02-02avoid having to manuall modify sources when adding a new clang pluginLuboš Luňák
Now each one registers in its .cxx file. Change-Id: I811c0d4400c2bdccc1c287269378d7e8ad8743ce
2013-01-06do not set our clang timestamp to the timestamp of the clang binaryLuboš Luňák
If the clang binary comes from a package which had been built before any of our clang related sources were changed the last time, the timestamp would be older and so there would be no rebuild. So do the stamp handling the usual way, clang upgrades will work fine, downgrades will not, but that's the same problem like with downgrading a library and its headers. To somewhat mitigate the problem (Clang plugin doesn't get cleaned by 'make clean'), include the full Clang version (which includes SVN revision) in config_clang.h and make all Clang plugin code include that, so at least configure re-run will trigger a rebuild if necessary. Change-Id: I993197f79e92e36105092c92c33b2e1db343e975
2013-01-04support for removing a statement as a wholeLuboš Luňák
Change-Id: Icb7b017a0c76a6169f0f629bb40bf97449c75837
2012-12-05Adapt to Clang 3.2Stephan Bergmann
Change-Id: I9e51867198d7677c26cbd97f5d9c85ac13dc90c5
2012-10-15convenience functions for source rewritersLuboš Luňák
Change-Id: I36e2b49bc615db0b12b03ffa755fa51acc6830a0
2012-10-15support for compiler rewritersLuboš Luňák
Change-Id: I12e98ac9fc49ef2007914324006a396d183b778c