summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2010-05-13 13:25:29 -0600
committerBrian Paul <[email protected]>2010-05-13 14:15:44 -0600
commit17542c1e3eb45662114b8dc0f97104df64b8d4f4 (patch)
treee2c713d1ab3292c428603b624aaff839580b45ac
parentc91d9cb563baf292f04ad3eeb33837806a4fb20d (diff)
gallivm: silence casting warning
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_format_aos.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c b/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c
index 5a52d81c20a..eb492042387 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c
@@ -310,6 +310,21 @@ lp_build_pack_rgba_aos(LLVMBuilderRef builder,
}
+typedef void (*fetch_func)(float *, const uint8_t *, unsigned, unsigned);
+
+/** cast wrapper */
+static void *
+fetch_func_ptr_to_voidptr(fetch_func f)
+{
+ union {
+ void *v;
+ fetch_func f;
+ } u;
+ u.f = f;
+ return u.v;
+}
+
+
/**
* Fetch a pixel into a 4 float AoS.
*
@@ -390,7 +405,8 @@ lp_build_fetch_rgba_aos(LLVMBuilderRef builder,
assert(LLVMIsDeclaration(function));
- LLVMAddGlobalMapping(lp_build_engine, function, format_desc->fetch_rgba_float);
+ LLVMAddGlobalMapping(lp_build_engine, function,
+ fetch_func_ptr_to_voidptr(format_desc->fetch_rgba_float));
}
tmp = lp_build_alloca(builder, LLVMVectorType(LLVMFloatType(), 4), "");