uqmi: support C reserved keywords in upstream JSON files
authorJean Thomas <jean.thomas@wifirst.fr>
Wed, 10 Apr 2024 10:25:05 +0000 (12:25 +0200)
committerAlexander Couzens <lynxis@fe80.eu>
Sat, 13 Apr 2024 19:58:35 +0000 (21:58 +0200)
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.thomas@wifirst.fr>
data/gen-common.pm

index 0996cdd1135eabd7f6415c0d6969323f445d0014..9275d4e3a84068894d123441e1e8be045895a80c 100644 (file)
@@ -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($) {