aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/gcc-plugins/latent_entropy_plugin.c17
-rw-r--r--scripts/gcc-plugins/randomize_layout_plugin.c75
-rw-r--r--scripts/gcc-plugins/structleak_plugin.c19
3 files changed, 33 insertions, 78 deletions
diff --git a/scripts/gcc-plugins/latent_entropy_plugin.c b/scripts/gcc-plugins/latent_entropy_plugin.c
index 65264960910d..cbe1d6c4b1a5 100644
--- a/scripts/gcc-plugins/latent_entropy_plugin.c
+++ b/scripts/gcc-plugins/latent_entropy_plugin.c
@@ -255,21 +255,14 @@ static tree handle_latent_entropy_attribute(tree *node, tree name,
255 return NULL_TREE; 255 return NULL_TREE;
256} 256}
257 257
258static struct attribute_spec latent_entropy_attr = { 258static struct attribute_spec latent_entropy_attr = { };
259 .name = "latent_entropy",
260 .min_length = 0,
261 .max_length = 0,
262 .decl_required = true,
263 .type_required = false,
264 .function_type_required = false,
265 .handler = handle_latent_entropy_attribute,
266#if BUILDING_GCC_VERSION >= 4007
267 .affects_type_identity = false
268#endif
269};
270 259
271static void register_attributes(void *event_data __unused, void *data __unused) 260static void register_attributes(void *event_data __unused, void *data __unused)
272{ 261{
262 latent_entropy_attr.name = "latent_entropy";
263 latent_entropy_attr.decl_required = true;
264 latent_entropy_attr.handler = handle_latent_entropy_attribute;
265
273 register_attribute(&latent_entropy_attr); 266 register_attribute(&latent_entropy_attr);
274} 267}
275 268
diff --git a/scripts/gcc-plugins/randomize_layout_plugin.c b/scripts/gcc-plugins/randomize_layout_plugin.c
index 0073af326449..c4a345c3715b 100644
--- a/scripts/gcc-plugins/randomize_layout_plugin.c
+++ b/scripts/gcc-plugins/randomize_layout_plugin.c
@@ -580,68 +580,35 @@ static void finish_type(void *event_data, void *data)
580 return; 580 return;
581} 581}
582 582
583static struct attribute_spec randomize_layout_attr = { 583static struct attribute_spec randomize_layout_attr = { };
584 .name = "randomize_layout", 584static struct attribute_spec no_randomize_layout_attr = { };
585 // related to args 585static struct attribute_spec randomize_considered_attr = { };
586 .min_length = 0, 586static struct attribute_spec randomize_performed_attr = { };
587 .max_length = 0,
588 .decl_required = false,
589 // need type declaration
590 .type_required = true,
591 .function_type_required = false,
592 .handler = handle_randomize_layout_attr,
593#if BUILDING_GCC_VERSION >= 4007
594 .affects_type_identity = true
595#endif
596};
597 587
598static struct attribute_spec no_randomize_layout_attr = { 588static void register_attributes(void *event_data, void *data)
599 .name = "no_randomize_layout", 589{
600 // related to args 590 randomize_layout_attr.name = "randomize_layout";
601 .min_length = 0, 591 randomize_layout_attr.type_required = true;
602 .max_length = 0, 592 randomize_layout_attr.handler = handle_randomize_layout_attr;
603 .decl_required = false,
604 // need type declaration
605 .type_required = true,
606 .function_type_required = false,
607 .handler = handle_randomize_layout_attr,
608#if BUILDING_GCC_VERSION >= 4007 593#if BUILDING_GCC_VERSION >= 4007
609 .affects_type_identity = true 594 randomize_layout_attr.affects_type_identity = true;
610#endif 595#endif
611};
612 596
613static struct attribute_spec randomize_considered_attr = { 597 no_randomize_layout_attr.name = "no_randomize_layout";
614 .name = "randomize_considered", 598 no_randomize_layout_attr.type_required = true;
615 // related to args 599 no_randomize_layout_attr.handler = handle_randomize_layout_attr;
616 .min_length = 0,
617 .max_length = 0,
618 .decl_required = false,
619 // need type declaration
620 .type_required = true,
621 .function_type_required = false,
622 .handler = handle_randomize_considered_attr,
623#if BUILDING_GCC_VERSION >= 4007 600#if BUILDING_GCC_VERSION >= 4007
624 .affects_type_identity = false 601 no_randomize_layout_attr.affects_type_identity = true;
625#endif 602#endif
626};
627 603
628static struct attribute_spec randomize_performed_attr = { 604 randomize_considered_attr.name = "randomize_considered";
629 .name = "randomize_performed", 605 randomize_considered_attr.type_required = true;
630 // related to args 606 randomize_considered_attr.handler = handle_randomize_considered_attr;
631 .min_length = 0, 607
632 .max_length = 0, 608 randomize_performed_attr.name = "randomize_performed";
633 .decl_required = false, 609 randomize_performed_attr.type_required = true;
634 // need type declaration 610 randomize_performed_attr.handler = handle_randomize_performed_attr;
635 .type_required = true,
636 .function_type_required = false,
637 .handler = handle_randomize_performed_attr,
638#if BUILDING_GCC_VERSION >= 4007
639 .affects_type_identity = false
640#endif
641};
642 611
643static void register_attributes(void *event_data, void *data)
644{
645 register_attribute(&randomize_layout_attr); 612 register_attribute(&randomize_layout_attr);
646 register_attribute(&no_randomize_layout_attr); 613 register_attribute(&no_randomize_layout_attr);
647 register_attribute(&randomize_considered_attr); 614 register_attribute(&randomize_considered_attr);
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
57 return NULL_TREE; 57 return NULL_TREE;
58} 58}
59 59
60static struct attribute_spec user_attr = { 60static struct attribute_spec user_attr = { };
61 .name = "user",
62 .min_length = 0,
63 .max_length = 0,
64 .decl_required = false,
65 .type_required = false,
66 .function_type_required = false,
67 .handler = handle_user_attribute,
68#if BUILDING_GCC_VERSION >= 4007
69 .affects_type_identity = true
70#endif
71};
72 61
73static void register_attributes(void *event_data, void *data) 62static void register_attributes(void *event_data, void *data)
74{ 63{
64 user_attr.name = "user";
65 user_attr.handler = handle_user_attribute;
66#if BUILDING_GCC_VERSION >= 4007
67 user_attr.affects_type_identity = true;
68#endif
69
75 register_attribute(&user_attr); 70 register_attribute(&user_attr);
76} 71}
77 72