RFR: 8080775: Better argument formatting for assert() and friends

David Lindholm david.lindholm at oracle.com
Tue Sep 29 09:24:54 UTC 2015


Per,

Thank you for the review!

/David

On 2015-09-29 09:55, Per Liden wrote:
> Hi David,
>
> On 2015-09-28 17:37, David Lindholm wrote:
>> Kim and Per,
>>
>> Thank you! I have made fixes for all your comments, the latest webrev is
>> available here:
>>
>> http://cr.openjdk.java.net/~david/JDK-8080775/webrev.03/
>
> Looks good.
>
> /Per
>
>>
>> Kim, I have left the casts in the code, as you say this should be fixed
>> in another change.
>>
>>
>> Thanks,
>> David
>>
>> On 2015-09-28 16:48, Kim Barrett wrote:
>>> This is the last of my comments on:
>>> http://cr.openjdk.java.net/~david/JDK-8080775/webrev.00/
>>>
>>> A few more minor formatting nits, and a couple of things that should
>>> probably be left for later.
>>>
>>> ------------------------------------------------------------------------------ 
>>>
>>>
>>> src/share/vm/oops/klassVtable.cpp
>>> 1464     fatal("klass %s: klass object too short (vtable extends 
>>> beyond "
>>> 1465           "end)", _klass->internal_name());
>>>
>>> Remove line break in format string.
>>>
>>> ------------------------------------------------------------------------------ 
>>>
>>>
>>> src/share/vm/oops/method.cpp
>>>   249   { ResourceMark rm;
>>>   250   assert(is_native() && bcp == code_base() || contains(bcp) ||
>>> is_error_reported(),
>>>   251          "bcp doesn't belong to this method: bcp: "
>>> INTPTR_FORMAT ", method: %s", bcp, name_and_sig_as_C_string());
>>>   252   }
>>>
>>> [Pre-existing]
>>> The assert isn't properly indented within the nested block. Note that
>>> I think the ResourceMark is required, due to
>>> name_and_sig_as_C_String().  [Recall that failed assert can still
>>> return, though I think only in non-PRODUCT mode.]
>>>
>>> ------------------------------------------------------------------------------ 
>>>
>>>
>>> src/share/vm/oops/method.cpp
>>>   282   assert((is_native() && bci == 0)  || (!is_native() && 0 <= bci
>>> && bci < code_size()), "illegal bci: %d", bci);
>>>
>>> [Pre-existing]
>>> Extra space before "||".
>>>
>>> ------------------------------------------------------------------------------ 
>>>
>>>
>>> src/share/vm/oops/method.cpp
>>>   575   if (class_access_flags.is_interface()) {
>>>   576       assert(is_nonv == is_static(), "is_nonv=%s",
>>> name_and_sig_as_C_string());
>>>   577   }
>>>
>>> [Pre-existing]
>>> Indentation of assert statement should be 2, not 4.
>>>
>>> ------------------------------------------------------------------------------ 
>>>
>>>
>>> src/share/vm/oops/oop.cpp
>>>   126   guarantee(obj->is_oop_or_null(), "invalid oop: "
>>> INTPTR_FORMAT, p2i((oopDesc*) obj));
>>>
>>> [Pre-existing]
>>> I don't think the cast is needed here.
>>>
>>> [Maybe this sort of thing should be left to separate cleanup of p2i
>>> usage.  See below.]
>>>
>>> ------------------------------------------------------------------------------ 
>>>
>>>
>>> src/share/vm/oops/oop.inline.hpp
>>>   192   assert(check_obj_alignment(result), "address not aligned: "
>>> INTPTR_FORMAT, p2i((void*) result));
>>>
>>> [Pre-existing]
>>> I don't think the cast is needed here.
>>>
>>> [Maybe this sort of thing should be left to a separate cleanup of p2i
>>> usage.  With two in a row now, I'm inclined to suggest that.]
>>>
>>> ------------------------------------------------------------------------------ 
>>>
>>>
>>> src/share/vm/opto/castnode.cpp
>>>   132               fatal("unexpected comparison %s", ss.as_string());
>>>
>>> [Pre-existing. Any change related to this should be separate from the
>>> assert formatting arguments change.]
>>>
>>> [Note that this change removed err_msg_res.]
>>>
>>> There's no obvious associated ResourceMark.  But maybe there should
>>> be, since ss.as_string() performs resource allocation.
>>>
>>> Recall that fatal() and other related macros can return under some
>>> circumstances. (Though I think only non-PRODUCT.)
>>>
>>> ------------------------------------------------------------------------------ 
>>>
>>>
>>> src/share/vm/opto/graphKit.hpp
>>>   356     assert(value->bottom_type()->basic_type() == T_INT,
>>>   357         "wrong type: %s",
>>> type2name(value->bottom_type()->basic_type()));
>>> ...
>>>   361     assert(value->bottom_type()->basic_type() == T_LONG,
>>>   362         "wrong type: %s",
>>> type2name(value->bottom_type()->basic_type()));
>>>
>>> Indentation of message.
>>>
>>> ------------------------------------------------------------------------------ 
>>>
>>>
>>>
>>



More information about the hotspot-dev mailing list