2012-10-05 11:17:13 -05:00
|
|
|
Compiler plugins.
|
|
|
|
|
2012-10-15 08:36:25 -05:00
|
|
|
|
2012-10-05 11:17:13 -05:00
|
|
|
== Overview ==
|
|
|
|
|
|
|
|
This directory contains code for compiler plugins. These are used to perform
|
|
|
|
additional actions during compilation (such as additional warnings) and
|
|
|
|
also to perform mass code refactoring.
|
|
|
|
|
2013-01-11 07:55:17 -06:00
|
|
|
Currently only the Clang compiler is supported (http://wiki.documentfoundation.org/Development/Clang).
|
2012-10-05 11:17:13 -05:00
|
|
|
|
2012-10-15 08:36:25 -05:00
|
|
|
|
2012-10-05 11:17:13 -05:00
|
|
|
== Usage ==
|
|
|
|
|
|
|
|
Compiler plugins are enabled automatically by --enable-dbgutil if Clang headers
|
|
|
|
are found or explicitly using --enable-compiler-plugins.
|
|
|
|
|
|
|
|
|
|
|
|
== Functionality ==
|
|
|
|
|
2012-10-15 08:36:25 -05:00
|
|
|
There are two kinds of modules:
|
|
|
|
- compile checks - these are run during normal compilation
|
|
|
|
- rewriters - these must be run manually and modify source files
|
|
|
|
|
2012-10-05 11:17:13 -05:00
|
|
|
|
2012-10-15 08:36:25 -05:00
|
|
|
=== Compile checks ===
|
|
|
|
|
|
|
|
Used during normal compilation to perform additional checks.
|
2012-10-05 11:17:13 -05:00
|
|
|
All warnings and errors are marked '[loplugin]' in the message.
|
|
|
|
|
2012-10-15 08:36:25 -05:00
|
|
|
|
2012-10-09 07:50:19 -05:00
|
|
|
==== Unused variable check ====
|
|
|
|
|
|
|
|
- unused parameter 'foo' [loplugin]
|
|
|
|
- unused variable 'foo' [loplugin]
|
|
|
|
|
|
|
|
Additional check for unused variables.
|
|
|
|
|
2012-10-15 08:36:25 -05:00
|
|
|
|
2012-10-09 09:21:33 -05:00
|
|
|
==== Body of if/while/for not in {} ====
|
|
|
|
|
|
|
|
- statement aligned as second statement in if/while/for body but not in a statement block [loplugin]
|
|
|
|
|
|
|
|
Warn about the following construct:
|
|
|
|
|
|
|
|
if( a != 0 )
|
|
|
|
b = 2;
|
|
|
|
c = 3;
|
|
|
|
|
|
|
|
Here either both statements should be inside {} or the second statement in indented wrong.
|
|
|
|
|
2012-10-15 08:36:25 -05:00
|
|
|
|
2012-10-14 04:54:04 -05:00
|
|
|
==== Sal log areas ====
|
|
|
|
|
|
|
|
- unknown log area 'foo' (check or extend sal/inc/sal/log-areas.dox) [loplugin]
|
|
|
|
|
|
|
|
Check area used in SAL_INFO/SAL_WARN macros against the list in sal/inc/sal/log-areas.dox and
|
|
|
|
report if the area is not listed there. The fix is either use a proper area or add it to the list
|
|
|
|
if appropriate.
|
|
|
|
|
2012-10-05 11:17:13 -05:00
|
|
|
|
2012-10-15 08:36:25 -05:00
|
|
|
=== Rewriters ===
|
|
|
|
|
|
|
|
Rewriters analyse and possibly modify given source files.
|
|
|
|
Usage: make COMPILER_PLUGIN_TOOL=<rewriter_name>
|
|
|
|
Modifications will be written to files <source_file>.new .
|
|
|
|
|
2012-10-05 11:17:13 -05:00
|
|
|
== Code documentation / howtos ==
|
|
|
|
|
|
|
|
TBD
|