File tree Expand file tree Collapse file tree 1 file changed +5
-1
lines changed Expand file tree Collapse file tree 1 file changed +5
-1
lines changed Original file line number Diff line number Diff line change @@ -52,6 +52,8 @@ sub render_enum_core($$) {
52
52
sub render_enum_tables ($$$$) {
53
53
my ($name ,$tag ,$base ,$count ) = @_ ;
54
54
55
+ my $base_type = get_primitive_base($tag , ' int32_t' );
56
+
55
57
# Enumerate enum attributes
56
58
57
59
my %aidx = (' key' => 0);
@@ -110,7 +112,9 @@ sub render_enum_tables($$$$) {
110
112
emit " const $name _last_item_of_$name = ($name )" , ($base +$count -1), " ;" ;
111
113
112
114
emit_block {
113
- emit " return (value >= _first_item_of_$name && value <= _last_item_of_$name );" ;
115
+ # Cast the enum to integer in order to avoid GCC assuming the value range is correct.
116
+ emit " $base_type ivalue = ($base_type )value;" ;
117
+ emit " return (ivalue >= $base && ivalue <= " ,($base +$count -1)," );" ;
114
118
} " inline bool is_valid($name value) " ;
115
119
116
120
for (my $i = 0; $i < @anames ; $i ++) {
You can’t perform that action at this time.
0 commit comments