New bootstrap failure in libjava/gnu/gcj/runtime/natStackTrace.cc

Graham Stott graham.stott@btinternet.com
Wed Dec 4 13:21:00 GMT 2002


Hi Andrew,

Andrew Haley wrote:
> Kaveh R. Ghazi writes:
>  > Andrew,
>  > 
>  > I'm getting this new bootstrap failure building libjava on
>  > sparc-sun-solaris2.7:
> 
> Silly me.  If this fixes your bug, feel free to check it in.
> 
> 2002-12-04  Andrew Haley  <aph@redhat.com>
> 
> 	* gnu/gcj/runtime/natStackTrace.cc (fillInStackTrace): Declare p
> 	outside #ifdef.
> 
> Index: natStackTrace.cc
> ===================================================================
> RCS file: /cvs/gcc/gcc/libjava/gnu/gcj/runtime/natStackTrace.cc,v
> retrieving revision 1.1
> diff -p -2 -c -r1.1 natStackTrace.cc
> *** natStackTrace.cc	3 Dec 2002 13:53:27 -0000	1.1
> --- natStackTrace.cc	4 Dec 2002 20:06:40 -0000
> *************** void
> *** 49,57 ****
>   gnu::gcj::runtime::StackTrace::fillInStackTrace (jint maxlen, jint offset)
>   {
>   #if defined (HAVE_BACKTRACE)
>     offset += 1;
>     void *_p[maxlen + offset];
>     len = backtrace (_p, maxlen + offset) - offset;
> !   void **p = _p + offset;
>   #endif
>     _Jv_frame_info *frame;
> --- 49,58 ----
>   gnu::gcj::runtime::StackTrace::fillInStackTrace (jint maxlen, jint offset)
>   {
> +   void **p;
>   #if defined (HAVE_BACKTRACE)
>     offset += 1;
>     void *_p[maxlen + offset];
>     len = backtrace (_p, maxlen + offset) - offset;
> !   p = _p + offset;
>   #endif
>     _Jv_frame_info *frame;
> 
> Thanks,
> Andrew.
> 

This doesn't look like it'll work to me because p won't be initialised unless
HAVE_BACKSPACE is defined and we'll end up dereferencing an unitialised pointer
on line 74.

Graham



More information about the Gcc-bugs mailing list