Message ID | m2zk3ygyxs.fsf@igel.home |
---|---|
State | New |
Headers | show |
On Sun, Oct 7, 2012 at 7:05 AM, Andreas Schwab <schwab@linux-m68k.org> wrote: > Ian Lance Taylor <iant@google.com> writes: > >> +/* Set *VAL to the value of the symbol for PC. */ >> + >> +static _Bool >> +__go_symbol_value (uintptr_t pc, uintptr_t *val) >> +{ >> + *val = 0; >> + backtrace_syminfo (__go_get_backtrace_state (), pc, syminfo_callback, >> + error_callback, &val); >> + return *val != 0; >> } > > Don't clobber address of val. > > diff --git a/libgo/runtime/go-caller.c b/libgo/runtime/go-caller.c > index 843adf6..8dcf9e4 100644 > --- a/libgo/runtime/go-caller.c > +++ b/libgo/runtime/go-caller.c > @@ -144,7 +144,7 @@ __go_symbol_value (uintptr_t pc, uintptr_t *val) > { > *val = 0; > backtrace_syminfo (__go_get_backtrace_state (), pc, syminfo_callback, > - error_callback, &val); > + error_callback, val); > return *val != 0; > } Yikes. Thanks. Committed to mainline. Ian
diff --git a/libgo/runtime/go-caller.c b/libgo/runtime/go-caller.c index 843adf6..8dcf9e4 100644 --- a/libgo/runtime/go-caller.c +++ b/libgo/runtime/go-caller.c @@ -144,7 +144,7 @@ __go_symbol_value (uintptr_t pc, uintptr_t *val) { *val = 0; backtrace_syminfo (__go_get_backtrace_state (), pc, syminfo_callback, - error_callback, &val); + error_callback, val); return *val != 0; }