From: Brian Paul Date: Thu, 13 May 2010 19:25:29 +0000 (-0600) Subject: gallivm: silence casting warning X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=17542c1e3eb45662114b8dc0f97104df64b8d4f4;p=mesa.git gallivm: silence casting warning --- 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), "");