RFR 8166501 : compilation error in stackwalk.cpp on some gccs

David Holmes david.holmes at oracle.com
Fri Sep 23 00:44:36 UTC 2016


This is the second example I've seen in two days concerning misuse of 
CHECK_ macros. They expand into an if statement after the call, so can 
not appear on calls that are part of a return statement, or a 
conditional statement, or likely a number of other places, as the if 
code either becomes unreachable or else does not do what may be expected.

David
-----

On 23/09/2016 2:04 AM, Brent Christian wrote:
> Hi,
>
> Looks like my 8165372 change broke the slowdebug build.  Please review
> my fix (which also breaks up a pretty long line):
>
> --- a/src/share/vm/prims/stackwalk.cpp
> +++ b/src/share/vm/prims/stackwalk.cpp
> @@ -331,10 +331,12 @@
>      assert (use_frames_array(mode), "Bad mode for get live frame");
>      RegisterMap regMap(jt, true);
>      LiveFrameStream stream(jt, &regMap);
> -    return fetchFirstBatch(stream, stackStream, mode, skip_frames,
> frame_count, start_index, frames_array, CHECK_NULL);
> +    return fetchFirstBatch(stream, stackStream, mode, skip_frames,
> frame_count,
> +                           start_index, frames_array, THREAD);
>    } else {
>      JavaFrameStream stream(jt, mode);
> -    return fetchFirstBatch(stream, stackStream, mode, skip_frames,
> frame_count, start_index, frames_array, CHECK_NULL);
> +    return fetchFirstBatch(stream, stackStream, mode, skip_frames,
> frame_count,
> +                           start_index, frames_array, THREAD);
>    }
>  }
>
> Thanks!
> -Brent
>


More information about the core-libs-dev mailing list