summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorEmese Revfy <re.emese@gmail.com>2016-05-24 00:10:35 +0200
committerMichal Marek <mmarek@suse.com>2016-06-07 22:57:10 +0200
commit0dae776c6bf31e779c172753f6e2d6426eb42523 (patch)
treea535f373e3a767bc3a3d6177640e3b088f7cdb24 /arch
parentGCC plugin infrastructure (diff)
downloadlinux-0dae776c6bf31e779c172753f6e2d6426eb42523.tar.xz
linux-0dae776c6bf31e779c172753f6e2d6426eb42523.zip
Add Cyclomatic complexity GCC plugin
Add a very simple plugin to demonstrate the GCC plugin infrastructure. This GCC plugin computes the cyclomatic complexity of each function. The complexity M of a function's control flow graph is defined as: M = E - N + 2P where E = the number of edges N = the number of nodes P = the number of connected components (exit nodes). Signed-off-by: Emese Revfy <re.emese@gmail.com> Acked-by: Kees Cook <keescook@chromium.org> Signed-off-by: Michal Marek <mmarek@suse.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/Kconfig12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/Kconfig b/arch/Kconfig
index 1b93632198fa..04ca45262ad1 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -372,6 +372,18 @@ menuconfig GCC_PLUGINS
See Documentation/gcc-plugins.txt for details.
+config GCC_PLUGIN_CYC_COMPLEXITY
+ bool "Compute the cyclomatic complexity of a function"
+ depends on GCC_PLUGINS
+ help
+ The complexity M of a function's control flow graph is defined as:
+ M = E - N + 2P
+ where
+
+ E = the number of edges
+ N = the number of nodes
+ P = the number of connected components (exit nodes).
+
config HAVE_CC_STACKPROTECTOR
bool
help