Module: Mesa
Branch: master
Commit: 0b98e885e707a679fffb096aa802cfe4a80ce334
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0b98e885e707a679fffb096aa802cfe4a80ce334

Author: Daniel Scharrer <[email protected]>
Date:   Fri Nov 11 21:36:36 2016 +0100

ac/nir/llvm: Fix setting function attributes for intrinsics

This fixes a NULL pointer dereference for intrinsics with more than
one function attribute introduced in commit 2fdaf38.
The fix is ported from the lp_build_intrinsic changes in commit 8bdd52c.

Reviewed-by: Bas Nieuwenhuizen <[email protected]>

---

 src/amd/common/ac_nir_to_llvm.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index b7ccea8..aa2d488 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -1675,7 +1675,11 @@ emit_llvm_intrinsic(struct nir_to_llvm_context *ctx, 
const char *name,
                LLVMSetFunctionCallConv(function, LLVMCCallConv);
                LLVMSetLinkage(function, LLVMExternalLinkage);
 
-               ac_add_function_attr(function, 0, attrib_mask | 
AC_FUNC_ATTR_NOUNWIND);
+               attrib_mask |= AC_FUNC_ATTR_NOUNWIND;
+               while (attrib_mask) {
+                       enum ac_func_attr attr = 1u << u_bit_scan(&attrib_mask);
+                       ac_add_function_attr(function, -1, attr);
+               }
        }
        return LLVMBuildCall(ctx->builder, function, params, param_count, "");
 }

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to