From bf86ddaa2018d58c894da27d7a7a7b5449d1338e Mon Sep 17 00:00:00 2001 From: Brian Date: Thu, 8 Mar 2007 10:40:25 -0700 Subject: check for attempted writes to read-only vars --- src/mesa/shader/slang/slang_codegen.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c index 1c037d4304..b1b4616f63 100644 --- a/src/mesa/shader/slang/slang_codegen.c +++ b/src/mesa/shader/slang/slang_codegen.c @@ -2007,6 +2007,12 @@ _slang_gen_assignment(slang_assemble_ctx * A, slang_operation *oper) else { slang_ir_node *n, *lhs, *rhs; lhs = _slang_gen_operation(A, &oper->children[0]); + if (lhs->Store->File != PROGRAM_OUTPUT && + lhs->Store->File != PROGRAM_TEMPORARY) { + slang_info_log_error(A->log, "Assignment to read-only variable"); + return NULL; + } + rhs = _slang_gen_operation(A, &oper->children[1]); if (lhs && rhs) { /* convert lhs swizzle into writemask */ -- cgit v1.2.3