Corrected: RFR 8059557 (XL): Validate JVM Command-Line Flag Arguments
Alexander Harlap
alexander.harlap at oracle.com
Thu May 21 16:26:58 UTC 2015
And what about this:
void emit_range_bool(const char* /* name */) { }
Alex
On 5/21/2015 12:09 PM, Gerard Ziemski wrote:
> hi David,
>
> Thank you for taking the time to review this considerable change. I
> have responded to your points below:
>
>
> On 5/18/2015 12:28 AM, David Holmes wrote:
>>
>> A few comments:
>>
>> For constructs like:
>>
>> void emit_range_bool(const char* name) { (void)name; /*
>> NOP */ }
>>
>> I seem to recall that this was not sufficient to avoid "unused"
>> warnings with some compilers - which is presumably why you did it?
>
> That's indeed the reason why I did. A search on internet reveals that
> this seems to be the preferred way of handling such case, and it works
> for all the currently building JPRT platforms. Is that enough? If
> there is a question of whether this works on some unusual compiler,
> can we leave it up to the the engineers dealing with that compiler,
> which certainly would make them more of experts in such situation than
> me? If not, how would you recommend we handle this differently now?
>
>
>>
>> ---
>>
>> In src/share/vm/runtime/globals.hpp it says:
>>
>> see "checkRanges" function in arguments.cpp
>>
>> but there is no such function in arguments.cpp
>
> Done.
>
>>
>> ---
>>
>> src/share/vm/runtime/arguments.cpp
>>
>> The set_object_alignment() functions seems to have some redundant
>> constraint assertions. As does verify_object_alignment() - seems to
>> me that everything in verify_object_alignment should either be in the
>> constraint function for ObjectAlignmentInBytes or one for
>> SurvivorAlignmentInBytes - though the combination of verification and
>> the actual setting of SurvivorAlignmentInBytes may be a problem in
>> the new architecture. If you can't get rid of
>> verify_object_alignment() I'd be tempted to not process it the new
>> way at all, as splitting the constraint checking just leads to
>> confusion IMO.
>
> I moved the code to constraints and in fact this little bit of
> refactoring looks very nice indeed.
>
>
>>
>> The changes to test/runtime/contended/Options.java suggest to me that
>> a constraint is missing on ContendedPaddingWidth - that it is a
>> multiple of 8 (BytesPerLong). That is (still) checked in
>> arguments.cpp (and given it is still checked there is no need to have
>> removed it from the test).
>
> I could argue whether the tests is really loosing a value in
> displaying only one error at the time, but I tried to modify my
> feature, so that it could also detect and report more than one
> violation at the time, and it turned out as doable in these cases, so
> this is now resolved, with no perceived functionality regression.
>
>
>>
>> ---
>>
>> Some of the test changes, such as:
>>
>> test/gc/g1/TestStringDeduplicationTools.java
>>
>> seem to be losing some of what they test. Not only is the test
>> checking the value is detected as erroneous, but it also detects that
>> the user is told in what way it is erroneous. The updated test
>> doesn't validate that part of the argument processing logic
>
> Done, with same fix as above.
>
>
>>
>> ----
>>
>> There is some inconsistency in the test changes, sometimes you use:
>>
>> shouldContain("outside the allowed range")
>>
>> and sometimes:
>>
>> shouldContain("is outside the allowed range")
>
> Done.
>
>
> cheers
>
More information about the hotspot-dev
mailing list