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>
This commit is contained in:
parent
80d1724316
commit
b86729109c
|
@ -255,21 +255,14 @@ static tree handle_latent_entropy_attribute(tree *node, tree name,
|
||||||
return NULL_TREE;
|
return NULL_TREE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct attribute_spec latent_entropy_attr = {
|
static struct attribute_spec latent_entropy_attr = { };
|
||||||
.name = "latent_entropy",
|
|
||||||
.min_length = 0,
|
|
||||||
.max_length = 0,
|
|
||||||
.decl_required = true,
|
|
||||||
.type_required = false,
|
|
||||||
.function_type_required = false,
|
|
||||||
.handler = handle_latent_entropy_attribute,
|
|
||||||
#if BUILDING_GCC_VERSION >= 4007
|
|
||||||
.affects_type_identity = false
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
static void register_attributes(void *event_data __unused, void *data __unused)
|
static void register_attributes(void *event_data __unused, void *data __unused)
|
||||||
{
|
{
|
||||||
|
latent_entropy_attr.name = "latent_entropy";
|
||||||
|
latent_entropy_attr.decl_required = true;
|
||||||
|
latent_entropy_attr.handler = handle_latent_entropy_attribute;
|
||||||
|
|
||||||
register_attribute(&latent_entropy_attr);
|
register_attribute(&latent_entropy_attr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -580,68 +580,35 @@ static void finish_type(void *event_data, void *data)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct attribute_spec randomize_layout_attr = {
|
static struct attribute_spec randomize_layout_attr = { };
|
||||||
.name = "randomize_layout",
|
static struct attribute_spec no_randomize_layout_attr = { };
|
||||||
// related to args
|
static struct attribute_spec randomize_considered_attr = { };
|
||||||
.min_length = 0,
|
static struct attribute_spec randomize_performed_attr = { };
|
||||||
.max_length = 0,
|
|
||||||
.decl_required = false,
|
|
||||||
// need type declaration
|
|
||||||
.type_required = true,
|
|
||||||
.function_type_required = false,
|
|
||||||
.handler = handle_randomize_layout_attr,
|
|
||||||
#if BUILDING_GCC_VERSION >= 4007
|
|
||||||
.affects_type_identity = true
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct attribute_spec no_randomize_layout_attr = {
|
|
||||||
.name = "no_randomize_layout",
|
|
||||||
// related to args
|
|
||||||
.min_length = 0,
|
|
||||||
.max_length = 0,
|
|
||||||
.decl_required = false,
|
|
||||||
// need type declaration
|
|
||||||
.type_required = true,
|
|
||||||
.function_type_required = false,
|
|
||||||
.handler = handle_randomize_layout_attr,
|
|
||||||
#if BUILDING_GCC_VERSION >= 4007
|
|
||||||
.affects_type_identity = true
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct attribute_spec randomize_considered_attr = {
|
|
||||||
.name = "randomize_considered",
|
|
||||||
// related to args
|
|
||||||
.min_length = 0,
|
|
||||||
.max_length = 0,
|
|
||||||
.decl_required = false,
|
|
||||||
// need type declaration
|
|
||||||
.type_required = true,
|
|
||||||
.function_type_required = false,
|
|
||||||
.handler = handle_randomize_considered_attr,
|
|
||||||
#if BUILDING_GCC_VERSION >= 4007
|
|
||||||
.affects_type_identity = false
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct attribute_spec randomize_performed_attr = {
|
|
||||||
.name = "randomize_performed",
|
|
||||||
// related to args
|
|
||||||
.min_length = 0,
|
|
||||||
.max_length = 0,
|
|
||||||
.decl_required = false,
|
|
||||||
// need type declaration
|
|
||||||
.type_required = true,
|
|
||||||
.function_type_required = false,
|
|
||||||
.handler = handle_randomize_performed_attr,
|
|
||||||
#if BUILDING_GCC_VERSION >= 4007
|
|
||||||
.affects_type_identity = false
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
static void register_attributes(void *event_data, void *data)
|
static void register_attributes(void *event_data, void *data)
|
||||||
{
|
{
|
||||||
|
randomize_layout_attr.name = "randomize_layout";
|
||||||
|
randomize_layout_attr.type_required = true;
|
||||||
|
randomize_layout_attr.handler = handle_randomize_layout_attr;
|
||||||
|
#if BUILDING_GCC_VERSION >= 4007
|
||||||
|
randomize_layout_attr.affects_type_identity = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
no_randomize_layout_attr.name = "no_randomize_layout";
|
||||||
|
no_randomize_layout_attr.type_required = true;
|
||||||
|
no_randomize_layout_attr.handler = handle_randomize_layout_attr;
|
||||||
|
#if BUILDING_GCC_VERSION >= 4007
|
||||||
|
no_randomize_layout_attr.affects_type_identity = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
randomize_considered_attr.name = "randomize_considered";
|
||||||
|
randomize_considered_attr.type_required = true;
|
||||||
|
randomize_considered_attr.handler = handle_randomize_considered_attr;
|
||||||
|
|
||||||
|
randomize_performed_attr.name = "randomize_performed";
|
||||||
|
randomize_performed_attr.type_required = true;
|
||||||
|
randomize_performed_attr.handler = handle_randomize_performed_attr;
|
||||||
|
|
||||||
register_attribute(&randomize_layout_attr);
|
register_attribute(&randomize_layout_attr);
|
||||||
register_attribute(&no_randomize_layout_attr);
|
register_attribute(&no_randomize_layout_attr);
|
||||||
register_attribute(&randomize_considered_attr);
|
register_attribute(&randomize_considered_attr);
|
||||||
|
|
|
@ -57,21 +57,16 @@ static tree handle_user_attribute(tree *node, tree name, tree args, int flags, b
|
||||||
return NULL_TREE;
|
return NULL_TREE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct attribute_spec user_attr = {
|
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 void register_attributes(void *event_data, void *data)
|
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);
|
register_attribute(&user_attr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue