mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 09:18:04 +02:00
glsl/tests: Fix strict aliasing warning about int64/double.
Fixes:4bf9862747("glsl/tests: Add UINT64 and INT64 types") Reviewed-by: Rhys Kidd <rhyskidd@gmail.com> (cherry picked from commit21670f8208)
This commit is contained in:
parent
49f525643a
commit
798dd2321d
1 changed files with 19 additions and 3 deletions
|
|
@ -198,6 +198,22 @@ generate_array_data(void *mem_ctx, enum glsl_base_type base_type,
|
|||
val = new(mem_ctx) ir_constant(array_type, &values_for_array);
|
||||
}
|
||||
|
||||
static uint64_t
|
||||
uint64_storage(union gl_constant_value *storage)
|
||||
{
|
||||
uint64_t val;
|
||||
memcpy(&val, &storage->i, sizeof(uint64_t));
|
||||
return val;
|
||||
}
|
||||
|
||||
static uint64_t
|
||||
double_storage(union gl_constant_value *storage)
|
||||
{
|
||||
double val;
|
||||
memcpy(&val, &storage->i, sizeof(double));
|
||||
return val;
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify that the data stored for the uniform matches the initializer
|
||||
*
|
||||
|
|
@ -246,13 +262,13 @@ verify_data(gl_constant_value *storage, unsigned storage_array_size,
|
|||
EXPECT_EQ(val->value.b[i] ? boolean_true : 0, storage[i].i);
|
||||
break;
|
||||
case GLSL_TYPE_DOUBLE:
|
||||
EXPECT_EQ(val->value.d[i], *(double *)&storage[i*2].i);
|
||||
EXPECT_EQ(val->value.d[i], double_storage(&storage[i*2]));
|
||||
break;
|
||||
case GLSL_TYPE_UINT64:
|
||||
EXPECT_EQ(val->value.u64[i], *(uint64_t *)&storage[i*2].i);
|
||||
EXPECT_EQ(val->value.u64[i], uint64_storage(&storage[i*2]));
|
||||
break;
|
||||
case GLSL_TYPE_INT64:
|
||||
EXPECT_EQ(val->value.i64[i], *(int64_t *)&storage[i*2].i);
|
||||
EXPECT_EQ(val->value.i64[i], uint64_storage(&storage[i*2]));
|
||||
break;
|
||||
case GLSL_TYPE_ATOMIC_UINT:
|
||||
case GLSL_TYPE_STRUCT:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue