summaryrefslogtreecommitdiffstats
path: root/compilerplugins
Commit message (Collapse)AuthorAgeFilesLines
* fix plugin build with clang < 3.3Luboš Luňák2013-06-021-6/+6
| | | | Change-Id: If2eb7595ca7d25f6d491e332bb3060061d3b42a7
* make compiler plugin warnings follow WaELuboš Luňák2013-05-311-2/+0
| | | | Change-Id: I72f1a11ce86d66e773e66116c725310df77fce39
* obey --enable-werror when building clang pluginLuboš Luňák2013-05-311-1/+5
| | | | Change-Id: I8ca9b09a6ffd4b2f00740563fa9682fdabb26b3d
* reoder stuff in makefileLuboš Luňák2013-05-311-2/+2
| | | | | | At the top should be stuff to set manually if needed. Change-Id: I516ac6df8102f00f6fc34c4c87d040688fcc2e99
* update for PPCallbacks API changes in Clang3.3Luboš Luňák2013-05-312-2/+43
| | | | Change-Id: I8493afa8e2264a42fba090c9c72f36f36cb2d165
* mark all virtuals in the clang plugin as overrideLuboš Luňák2013-05-3115-21/+21
| | | | | | In order to help catch Clang API changes. Change-Id: I5738f5dff405f7a2dd377c983fb32c1c7a2ff921
* Use the new type-checking Reference constructor to reduce code noiseNoel Grandin2013-05-222-0/+225
| | | | | | | | | | Also create a Clang compiler plugin to detect such cases. Change-Id: I61ad1a1d6b1c017eeb51f226d2dde0e9bb7f1752 Reviewed-on: https://gerrit.libreoffice.org/4001 Tested-by: LibreOffice gerrit bot <gerrit@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
* check for double modifications in compiler pluginsLuboš Luňák2013-05-062-0/+17
| | | | | | | | 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
* compiler plugin for RTL_CONSTASCII_USTRINGPARAM removalLuboš Luňák2013-05-061-0/+140
| | | | Change-Id: Ibc487aa78d9eba3f936b4f4cc0298adfaef60d5c
* Revert "ignore already seen locations in compiler plugins"Luboš Luňák2013-05-062-16/+6
| | | | | | | 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.
* ignore already seen locations in compiler pluginsLuboš Luňák2013-05-062-6/+16
| | | | Change-Id: Icba8dfa61aee7237af569b2414b1cf4ce93ca476
* Fix handling range in removeText().Luboš Luňák2013-05-062-2/+15
| | | | | | | | 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
* add constLuboš Luňák2013-05-0220-28/+28
| | | | Change-Id: I71236b9ca6300372ba00c85401cf19f6c0e7ac99
* Update location of log-areas.doxTor Lillqvist2013-04-241-3/+3
| | | | Change-Id: If54a3d7047f13ae9c9345c21737a89afee645403
* base for unusedcode compiler pluginLuboš Luňák2013-04-221-0/+75
| | | | | | Needs work to actually do something useful, but the basics are there. Change-Id: I193922f2f5572760c8c20def0f9b830138f47fef
* removeforwardstringdecl clang plugin has been used, move itLuboš Luňák2013-04-072-0/+0
| | | | Change-Id: I3bccfa773448e17ac3c8ece6b99f85c6d399b0cf
* compiler plugin to check incorrect #ifdef for config_XXX.h macrosLuboš Luňák2013-04-041-0/+100
| | | | | | http://lists.freedesktop.org/archives/libreoffice/2013-March/047769.html Change-Id: Ibba9d3dcc87d6d6eee58ab3690a8f87339d00956
* don't explicitly delete PPCallbacks-based compiler plugin actionsLuboš Luňák2013-04-041-1/+6
| | | | | | | If the class is based on PPCallbacks too, Clang internals will delete the instance. Change-Id: I6dd83d800e6cca17eb0b5de23c8994f11c087fd5
* silence compilerplugin buildPeter Foley2013-03-301-3/+5
| | | | Change-Id: I4397575e4665e8a257d0bd3e15245d996a48a1f4
* adjust unused compiler plugins for ASTContext to CompilerInstance change tooLuboš Luňák2013-03-288-16/+16
| | | | Change-Id: I415ed25586408d7e7df9457f7c637a8c6d13d35d
* pass around CompilerInstance rather than ASTContextLuboš Luňák2013-03-2815-65/+67
| | | | | | | 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
* -Wextra for compiler pluginsLuboš Luňák2013-03-284-5/+5
| | | | Change-Id: I246dcf1d2c099c510435d21f0dd47e3c098456f2
* A plugin to find suboptimal equalsIgnoreAsciiCaseAscii[L] callsStephan Bergmann2013-03-191-0/+111
| | | | Change-Id: Id2572982ca899223b89016ee7482ccb960032805
* Enable -std=c++11 for compilerplugins/clangStephan Bergmann2013-03-191-1/+1
| | | | Change-Id: I4849656b16c2a7103217870050b0de3ccb97af56
* s/the the/the/Tor Lillqvist2013-02-222-2/+2
| | | | Change-Id: Iadacffaad832c6ff06757e8567e24f929f24a4c3
* Fixed compilation error of Clang plugins on Ubuntu/MintMarc-André Laverdière2013-02-111-0/+2
| | | | | | | 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>
* make it possible to limit what files will be modified by a compiler pluginLuboš Luňák2013-02-093-25/+90
| | | | Change-Id: I4e3e8f5ca5e5b5b59b1bd067281f90940dd893b1
* fix check whether a file is in a directoryLuboš Luňák2013-02-091-4/+4
| | | | | | Make sure / is appended, otherwise /foo might match /foobar/file . Change-Id: I36469916b72b407c8f0c9c255099ee671039cf17
* treat all source files as not up to date only with FORCE_COMPILE_ALLLuboš Luňák2013-02-091-0/+2
| | | | | | | | | So running the compiler plugin can be done either with FORCE_COMPILE_ALL=1 for simplicity, running the plugin on all source files for the target, or it's possible to use make's -W option (or touch files manually) to run it only for selected files. Change-Id: Ifa82bbe91dc1e179af9db8fbf99271bcf03a1d47
* create an output dir that's already needed by $(shell ...)Luboš Luňák2013-02-071-1/+2
| | | | | | Otherwise there's an error message e.g. during a clean build. Change-Id: I42efd08e014a4ebe25cfd1a497f622e5ea5c39ad
* make sure the default target for compilerplugins is buildingLuboš Luňák2013-02-071-1/+3
| | | | | | | CLANGFORCE was the first in the makefile after c6ffe17631cccf11fbe00479d2169116d494a7da and therefore the default Change-Id: Id3b86a1ea2c27479067f7f55a977da3e6e8a2dfb
* tutorial examples for writing new Clang plugin actionsLuboš Luňák2013-02-029-1/+380
| | | | | | http://wiki.documentfoundation.org/Clang_plugins Change-Id: Ieb4fc186490e81ab961c094ca0a7fcdabc0f348f
* a bit more reliable detection of removed/added sourcesLuboš Luňák2013-02-021-0/+4
| | | | Change-Id: I7fdde46334c648ab6cba54210e31fada87dcfb55
* remove not needed #includeLuboš Luňák2013-02-029-18/+1
| | | | Change-Id: I0fa791733407199db5be2cc9606ac9be1da64188
* append [loplugin] automatically in report() rathen than manually everywhereLuboš Luňák2013-02-026-20/+21
| | | | Change-Id: I2f98622f152ae0c7ac8d1113d6380f686ac7234c
* always use the report() helperLuboš Luňák2013-02-025-29/+30
| | | | Change-Id: I2966fdb5bd98b1ddf718079584acf90a3e3a3700
* move clang plugin that's no longer neededLuboš Luňák2013-02-023-0/+3
| | | | | | | But still keep it in case it'd be needed again, or simply as a starting reference. Change-Id: If519e1320e1bd6dce7746b57172324b33504051e
* move documentation of plugins to the .cxx filesLuboš Luňák2013-02-026-32/+28
| | | | | | It's mostly there already anyway, no need to duplicate it. Change-Id: I5b066f90725a064fb0746e1411900e835e3f66c3
* automatically link all .cxx files in clang/ into the pluginLuboš Luňák2013-02-021-12/+18
| | | | | | | | | This means that just moving sources to the dir will enable the plugin action in that source, without modifying any sources, so those changes would not be accidentally committed when using a rewriter to change LO sources. Change-Id: Ic5a9c52dbf1939a1e78ad39ed6691ce3a1f399df
* avoid having to manuall modify sources when adding a new clang pluginLuboš Luňák2013-02-0216-52/+161
| | | | | | Now each one registers in its .cxx file. Change-Id: I811c0d4400c2bdccc1c287269378d7e8ad8743ce
* move plugin handling to separate source filesLuboš Luňák2013-02-024-156/+212
| | | | Change-Id: Ifa1af34121bda9ca3250d09a3b8a46ea226795ed
* one more config/ -> config_host/ fix after the renameLuboš Luňák2013-02-011-1/+1
| | | | Change-Id: I347790e1ca2ee6a27303d3644aa1459ff76ba4b0
* rewriters no longer create .new files, they modify sources directlyLuboš Luňák2013-01-311-1/+1
| | | | Change-Id: I24bce9dcf46367b5658071ed692d346bb01a83a3
* point to our wiki page on clang rather than clang homepageLuboš Luňák2013-01-111-1/+1
| | | | Change-Id: Ia54040c7ed02e6a2d62dd93890a7d1467dd83a40
* fix detection whether to ignore a source file or notLuboš Luňák2013-01-111-3/+2
| | | | | | | When compiling using icecream, the whole input is one file fed from stdin, so getBufferName() is "<stdin>", so get the filename from #line directives. Change-Id: Ie87937b10b0c7e8ddfa57a405b80fd9bde68dd0a
* do not set our clang timestamp to the timestamp of the clang binaryLuboš Luňák2013-01-064-5/+3
| | | | | | | | | | | | | | | 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
* I hate arbitrary integer typesLuboš Luňák2013-01-051-1/+1
| | | | Change-Id: I4c8edfc0ee0390d595c43e384bf6e5f595a7b84f
* handle case of SRCDIR == BUILDDIRLuboš Luňák2013-01-041-1/+1
| | | | Change-Id: I9daea65dc28ab13776a7c4319e5d5811515fe160
* rewriter plugin for removing forward rtl string declarationsLuboš Luňák2013-01-044-0/+116
| | | | Change-Id: I12bf38985ae62756973c05aacf762ae3c405ac9b
* support for removing a statement as a wholeLuboš Luňák2013-01-042-10/+57
| | | | Change-Id: Icb7b017a0c76a6169f0f629bb40bf97449c75837