diff options
author | Brian Paul <brianp@vmware.com> | 2010-03-17 08:34:23 -0600 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2010-03-17 16:29:34 -0600 |
commit | 8dc8c3f5b11d5f158b0027d1501555c898e0451e (patch) | |
tree | 22f417619c967c3887cdd8e71b5287801b92bb6d | |
parent | d1c9e598838aeac3c8cb90afee00b2cc683be273 (diff) |
llvmpipe: silence some pointer/casting warnings
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state_fs.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c index 15317ce10f..a403026970 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_fs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c @@ -591,6 +591,20 @@ generate_blend(const struct pipe_blend_state *blend, } +/** casting function to avoid compiler warnings */ +static lp_jit_frag_func +cast_voidptr_to_lp_jit_frag_func(void *p) +{ + union { + void *v; + lp_jit_frag_func f; + } tmp; + assert(sizeof(tmp.v) == sizeof(tmp.f)); + tmp.v = p; + return tmp.f; +} + + /** * Generate the runtime callable function for the whole fragment pipeline. * Note that the function which we generate operates on a block of 16 @@ -851,10 +865,14 @@ generate_fragment(struct llvmpipe_context *lp, /* * Translate the LLVM IR into machine code. */ - variant->jit_function[do_tri_test] = (lp_jit_frag_func)LLVMGetPointerToGlobal(screen->engine, function); + { + void *f = LLVMGetPointerToGlobal(screen->engine, function); + + variant->jit_function[do_tri_test] = cast_voidptr_to_lp_jit_frag_func(f); - if (LP_DEBUG & DEBUG_ASM) - lp_disassemble(variant->jit_function[do_tri_test]); + if (LP_DEBUG & DEBUG_ASM) + lp_disassemble(f); + } } |