On 06/27/2017 01:47 AM, Alex Bennée wrote:

Richard Henderson <r...@twiddle.net> writes:

Signed-off-by: Richard Henderson <r...@twiddle.net>
---
  tcg/tcg.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tcg/tcg.h b/tcg/tcg.h
index 3b35344..6c357e7 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
@@ -730,7 +730,7 @@ extern bool parallel_cpus;

  static inline TCGTemp *arg_temp(TCGArg a)
  {
-    return &tcg_ctx.temps[a];
+    return a == TCG_CALL_DUMMY_ARG ? NULL : &tcg_ctx.temps[a];
  }

It doesn't look like a lot of calls to arg_temp are able to deal with a
NULL return and may well immediately deref the value. Are we sure the
cases the TCG_CALL_DUMMY arg is involved are narrowly defined?

They only appear as arguments to a call opcode.


r~

Reply via email to