aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/gcc-plugins/structleak_plugin.c
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2018-02-05 17:27:46 -0800
committerKees Cook <keescook@chromium.org>2018-02-05 17:27:46 -0800
commitb86729109c5fd0a480300f40608aac68764b5adf (patch)
tree0db6d7a68f0c223652413c0dc3132aa8d8ad418b /scripts/gcc-plugins/structleak_plugin.c
parentgcc-plugins: Add include required by GCC release 8 (diff)
downloadlinux-dev-b86729109c5fd0a480300f40608aac68764b5adf.tar.xz
linux-dev-b86729109c5fd0a480300f40608aac68764b5adf.zip
gcc-plugins: Use dynamic initializers
GCC 8 changed the order of some fields and is very picky about ordering in static initializers, so instead just move to dynamic initializers, and drop the redundant already-zero field assignments. Suggested-by: Valdis Kletnieks <valdis.kletnieks@vt.edu> Signed-off-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'scripts/gcc-plugins/structleak_plugin.c')
-rw-r--r--scripts/gcc-plugins/structleak_plugin.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/scripts/gcc-plugins/structleak_plugin.c b/scripts/gcc-plugins/structleak_plugin.c
index 3f8dd4868178..10292f791e99 100644
--- a/scripts/gcc-plugins/structleak_plugin.c
+++ b/scripts/gcc-plugins/structleak_plugin.c
@@ -57,21 +57,16 @@ static tree handle_user_attribute(tree *node, tree name, tree args, int flags, b
return NULL_TREE;
}
-static struct attribute_spec user_attr = {
- .name = "user",
- .min_length = 0,
- .max_length = 0,
- .decl_required = false,
- .type_required = false,
- .function_type_required = false,
- .handler = handle_user_attribute,
-#if BUILDING_GCC_VERSION >= 4007
- .affects_type_identity = true
-#endif
-};
+static struct attribute_spec user_attr = { };
static void register_attributes(void *event_data, void *data)
{
+ user_attr.name = "user";
+ user_attr.handler = handle_user_attribute;
+#if BUILDING_GCC_VERSION >= 4007
+ user_attr.affects_type_identity = true;
+#endif
+
register_attribute(&user_attr);
}