From: José Fonseca Date: Mon, 10 May 2010 07:30:28 +0000 (+0100) Subject: gallivm: cosf/sinf are macros on MSVC. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e3205b05407473e462f2c3668f56062da00ee0ea;p=mesa.git gallivm: cosf/sinf are macros on MSVC. So taking the function address does not work. --- diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c index 9aea04e05be..0f56f2a1d68 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c @@ -1231,18 +1231,28 @@ lp_build_sincos(struct lp_build_context *bld, return res; } +static float c_cosf( float f ) +{ + return (float) cos( (double) f ); +} + +static float c_sinf( float f ) +{ + return (float) sin( (double) f ); +} + LLVMValueRef lp_build_cos(struct lp_build_context *bld, LLVMValueRef a) { - return lp_build_sincos(bld, "cosf", &cosf, a); + return lp_build_sincos(bld, "cosf", &c_cosf, a); } LLVMValueRef lp_build_sin(struct lp_build_context *bld, LLVMValueRef a) { - return lp_build_sincos(bld, "sinf", &sinf, a); + return lp_build_sincos(bld, "sinf", &c_sinf, a); } #else /* !PIPE_OS_WINDOWS */