Add a dummy prefix in case a name in the upstream JSON files is a
C reserved keyword.

This is the case with the "Register" element of the new "Configure
Profile Event List" message.

Signed-off-by: Jean Thomas <jean.tho...@wifirst.fr>
---
 data/gen-common.pm | 52 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 51 insertions(+), 1 deletion(-)

diff --git a/data/gen-common.pm b/data/gen-common.pm
index 278afce..31d43a0 100644
--- a/data/gen-common.pm
+++ b/data/gen-common.pm
@@ -19,6 +19,54 @@ our %tlv_types = (
 );
 our %common_ref = ();
 
+my @c_reserved_keywords = (
+       "alignas",
+       "alignof",
+       "auto",
+       "bool",
+       "break",
+       "case",
+       "char",
+       "const",
+       "constexpr",
+       "continue",
+       "default",
+       "do",
+       "double",
+       "else",
+       "enum",
+       "extern",
+       "false",
+       "float",
+       "for",
+       "goto",
+       "if",
+       "inline",
+       "int",
+       "long",
+       "nullptr",
+       "register",
+       "restrict",
+       "return",
+       "short",
+       "signed",
+       "sizeof",
+       "static",
+       "static_assert",
+       "struct",
+       "switch",
+       "thread_local",
+       "true",
+       "typedef",
+       "typeof",
+       "typeof_unqual",
+       "union",
+       "unsigned",
+       "void",
+       "volatile",
+       "while"
+);
+
 $prefix eq 'ctl_' and $ctl = 1;
 
 sub get_json() {
@@ -33,7 +81,9 @@ sub gen_cname($) {
 
        $name =~ s/[^a-zA-Z0-9_]/_/g;
        $name = "_${name}" if $name =~ /^\d/;
-       return lc($name);
+       $name = lc($name);
+       $name = "_${name}" if (grep {$_ eq $name} @c_reserved_keywords);
+       return $name;
 }
 
 sub gen_has_types($) {
-- 
2.39.2


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to