Matteo Bruni (@Mystral) commented about dlls/d3dx9_36/tests/effect.c:
+ result_buf, + test_set_raw_data_values[x].expected_data_len ); + switch (test_set_raw_data_values[x].param_type) + { + case D3DXPT_BOOL: + case D3DXPT_INT: + case D3DXPT_FLOAT: + single_size = (test_set_raw_data_values[x].param_type == D3DXPT_BOOL) ? sizeof( BOOL ) : + (test_set_raw_data_values[x].param_type == D3DXPT_INT) ? sizeof( DWORD ) : + sizeof( FLOAT ); + + if (test_set_raw_data_values[x].expected_data_len > single_size) + { + for (y = 0; y < test_set_raw_data_values[x].expected_data_len / single_size; y++) + { + memcmp_ret = memcmp( ((unsigned char*)result_buf) + (single_size * y), Given that you're going to reuse that pointer to the current element in the type-specific ok() messages, I'd store it in a variable for clarity.
v = (unsigned char *)buffer + j * sizeof(DWORD);
e = (unsigned char *)tests[i].expected_data + j * sizeof(DWORD);
r = memcmp(v,
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/979#note_11101