]> git.puffer.fish Git - mirror/frr.git/commitdiff
tools/gcc-plugins: warn for `suseconds_t` format 15888/head 15915/head
authorDavid Lamparter <equinox@opensourcerouting.org>
Tue, 30 Apr 2024 12:13:22 +0000 (14:13 +0200)
committerDavid Lamparter <equinox@opensourcerouting.org>
Thu, 2 May 2024 20:26:53 +0000 (22:26 +0200)
The plugin was already catching attempts to print `time_t` without
casting it first (there is no valid printf specifier without a cast),
but `__suseconds64_t` needs the same treatment.  (Probably
`__suseconds_t` too, if it exists, which I'm not sure it does - but that
doesn't matter, the plugin ignores non-existing types.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
tools/gcc-plugins/frr-format.c

index 4e2c2d3ba9c2311b9d146f81092360a52edab872..963741e4798fd166120651561ab3720cecc12edc 100644 (file)
@@ -66,6 +66,8 @@ static GTY(()) tree local_pid_t_node;
 static GTY(()) tree local_uid_t_node;
 static GTY(()) tree local_gid_t_node;
 static GTY(()) tree local_time_t_node;
+static GTY(()) tree local_suseconds_t_node;
+static GTY(()) tree local_suseconds64_t_node;
 
 static GTY(()) tree local_socklen_t_node;
 static GTY(()) tree local_in_addr_t_node;
@@ -85,6 +87,8 @@ static struct type_special {
   { &local_uid_t_node,         NULL,                   &local_uid_t_node, },
   { &local_gid_t_node,         NULL,                   &local_gid_t_node, },
   { &local_time_t_node,                NULL,                   &local_time_t_node, },
+  { &local_suseconds_t_node,   NULL,                   &local_suseconds_t_node, },
+  { &local_suseconds64_t_node, NULL,                   &local_suseconds64_t_node, },
   { NULL,                      NULL,                   NULL, }
 };
 
@@ -4176,6 +4180,8 @@ handle_finish_parse (void *event_data, void *data)
   setup_type ("uid_t", &local_uid_t_node);
   setup_type ("gid_t", &local_gid_t_node);
   setup_type ("time_t", &local_time_t_node);
+  setup_type ("__suseconds_t", &local_suseconds_t_node);
+  setup_type ("__suseconds64_t", &local_suseconds64_t_node);
 
   setup_type ("socklen_t", &local_socklen_t_node);
   setup_type ("in_addr_t", &local_in_addr_t_node);