Skip to content

Commit ee1ff6f

Browse files
sdegranderpavlik
authored andcommitted
validation_layer_generator: do not check static array addresses
The generator creates the same validation code for a static array of structs than for a pointer to a struct (used for dynamically allocated arrays): it first checks if the content of the member is not null. Given that static array addresses are always not null, GCC (12.2.1) and CLANG (16.0.1) emit pointer-bool-conversion warnings.
1 parent 2c252a3 commit ee1ff6f

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/scripts/validation_layer_generator.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1437,9 +1437,10 @@ def outputParamMemberContents(self, is_command, struct_command_name, param_membe
14371437
indent)
14381438
if (param_member.is_handle or self.isEnumType(param_member.type) or
14391439
(self.isStruct(param_member.type) and not self.isStructAlwaysValid(param_member.type))):
1440-
loop_string += self.writeIndent(indent)
1441-
loop_string += 'if (%s) {\n' % (prefixed_param_member_name)
1442-
indent = indent + 1
1440+
if not param_member.is_static_array:
1441+
loop_string += self.writeIndent(indent)
1442+
loop_string += 'if (%s) {\n' % (prefixed_param_member_name)
1443+
indent = indent + 1
14431444
loop_string += self.writeIndent(indent)
14441445
loop_string += 'for (uint32_t %s = 0; %s < %s; ++%s) {\n' % (loop_param_name,
14451446
loop_param_name,
@@ -1841,12 +1842,14 @@ def outputParamMemberContents(self, is_command, struct_command_name, param_membe
18411842
param_member_contents += self.writeIndent(indent)
18421843
param_member_contents += '}\n'
18431844
if is_loop:
1844-
indent = indent - 2
18451845
if wrote_loop:
1846-
param_member_contents += self.writeIndent(indent + 1)
1847-
param_member_contents += '}\n'
1846+
indent = indent - 1
18481847
param_member_contents += self.writeIndent(indent)
18491848
param_member_contents += '}\n'
1849+
if not param_member.is_static_array:
1850+
indent = indent - 1
1851+
param_member_contents += self.writeIndent(indent)
1852+
param_member_contents += '}\n'
18501853

18511854
return param_member_contents
18521855

0 commit comments

Comments
 (0)