RFR: 8309685: Fix -Wconversion warnings in assembler and register code [v2]

Coleen Phillimore coleenp at openjdk.org
Wed Jun 14 12:47:54 UTC 2023


On Wed, 14 Jun 2023 11:47:11 GMT, Gui Cao <gcao at openjdk.org> wrote:

>> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Improve checked_cast to tolerate sign extension so it can be used in assembler.hpp emit code.
>
> Hi, may I ask if it's OK to add fix for RISC-V please? I checked and found that this port has similar issue. 
> ```diff 
> diff --git a/src/hotspot/cpu/riscv/register_riscv.hpp b/src/hotspot/cpu/riscv/register_riscv.hpp
> index 7b547335cd0..7d25875fedd 100644
> --- a/src/hotspot/cpu/riscv/register_riscv.hpp
> +++ b/src/hotspot/cpu/riscv/register_riscv.hpp
> @@ -70,7 +70,7 @@ class Register {
>  
>     public:
>      // accessors
> -    constexpr int raw_encoding() const { return this - first(); }
> +    constexpr int raw_encoding() const { return checked_cast<int>(this - first()); }
>      constexpr int     encoding() const { assert(is_valid(), "invalid register"); return raw_encoding(); }
>      constexpr bool    is_valid() const { return 0 <= raw_encoding() && raw_encoding() < number_of_registers; }
>  
> @@ -187,7 +187,7 @@ class FloatRegister {
>  
>     public:
>      // accessors
> -    constexpr int raw_encoding() const { return this - first(); }
> +    constexpr int raw_encoding() const { return checked_cast<int>(this - first()); }
>      constexpr int     encoding() const { assert(is_valid(), "invalid register"); return raw_encoding(); }
>      constexpr bool    is_valid() const { return 0 <= raw_encoding() && raw_encoding() < number_of_registers; }
>  
> @@ -297,7 +297,7 @@ class VectorRegister {
>  
>     public:
>      // accessors
> -    constexpr int raw_encoding() const { return this - first(); }
> +    constexpr int raw_encoding() const { return checked_cast<int>(this - first()); }
>      constexpr int     encoding() const { assert(is_valid(), "invalid register"); return raw_encoding(); }
>      constexpr bool    is_valid() const { return 0 <= raw_encoding() && raw_encoding() < number_of_registers; }

Thanks @zifeihan I added riscv too.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/14396#issuecomment-1591118914


More information about the hotspot-dev mailing list