[committed] RISC-V: Fix Werror=sign-compare in riscv_validate_vector_type
Checks
Context |
Check |
Description |
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 |
success
|
Testing passed
|
rivoscibot/toolchain-ci-rivos-lint |
success
|
Lint passed
|
rivoscibot/toolchain-ci-rivos-apply-patch |
success
|
Patch applied
|
rivoscibot/toolchain-ci-rivos-build--newlib-rv64gcv-lp64d-multilib |
success
|
Build passed
|
rivoscibot/toolchain-ci-rivos-build--newlib-rv64gc-lp64d-multilib |
success
|
Build passed
|
rivoscibot/toolchain-ci-rivos-build--linux-rv64gcv-lp64d-multilib |
success
|
Build passed
|
linaro-tcwg-bot/tcwg_gcc_check--master-aarch64 |
warning
|
Patch is already merged
|
rivoscibot/toolchain-ci-rivos-build--linux-rv32gc_zba_zbb_zbc_zbs-ilp32d-non-multilib |
success
|
Build passed
|
rivoscibot/toolchain-ci-rivos-build--linux-rv64gc_zba_zbb_zbc_zbs-lp64d-non-multilib |
success
|
Build passed
|
linaro-tcwg-bot/tcwg_gcc_build--master-arm |
warning
|
Patch is already merged
|
rivoscibot/toolchain-ci-rivos-test |
success
|
Testing passed
|
Commit Message
From: Pan Li <pan2.li@intel.com>
This patch would like to fix the Werror=sign-compare similar to below:
gcc/config/riscv/riscv.cc: In function ‘void
riscv_validate_vector_type(const_tree, const char*)’:
gcc/config/riscv/riscv.cc:5614:23: error: comparison of integer
expressions of different signedness: ‘int’ and ‘unsigned int’
[-Werror=sign-compare]
5614 | if (TARGET_MIN_VLEN < required_min_vlen)
The TARGET_MIN_VLEN is *int* by default but the required_min_vlen
returned from riscv_vector_required_min_vlen is **unsigned**. Thus,
adjust the related function and reference variable(s) to int type
to avoid such kind of Werror.
The below test suite is passed for this patch.
* The rv64gcv fully regression tests.
gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_vector_float_type_p): Take int
as the return value instead of unsigned.
(riscv_vector_element_bitsize): Ditto.
(riscv_vector_required_min_vlen): Ditto.
(riscv_validate_vector_type): Take int type for local variable(s).
Signed-off-by: Pan Li <pan2.li@intel.com>
---
gcc/config/riscv/riscv.cc | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
@@ -5499,7 +5499,7 @@ riscv_vector_float_type_p (const_tree type)
return strstr (name, "vfloat") != NULL;
}
-static unsigned
+static int
riscv_vector_element_bitsize (const_tree type)
{
machine_mode mode = TYPE_MODE (type);
@@ -5523,7 +5523,7 @@ riscv_vector_element_bitsize (const_tree type)
gcc_unreachable ();
}
-static unsigned
+static int
riscv_vector_required_min_vlen (const_tree type)
{
machine_mode mode = TYPE_MODE (type);
@@ -5531,7 +5531,7 @@ riscv_vector_required_min_vlen (const_tree type)
if (riscv_v_ext_mode_p (mode))
return TARGET_MIN_VLEN;
- unsigned element_bitsize = riscv_vector_element_bitsize (type);
+ int element_bitsize = riscv_vector_element_bitsize (type);
const char *name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
if (strstr (name, "bool64") != NULL)
@@ -5569,7 +5569,7 @@ riscv_validate_vector_type (const_tree type, const char *hint)
return;
}
- unsigned element_bitsize = riscv_vector_element_bitsize (type);
+ int element_bitsize = riscv_vector_element_bitsize (type);
bool int_type_p = riscv_vector_int_type_p (type);
if (int_type_p && element_bitsize == 64
@@ -5609,7 +5609,7 @@ riscv_validate_vector_type (const_tree type, const char *hint)
return;
}
- unsigned required_min_vlen = riscv_vector_required_min_vlen (type);
+ int required_min_vlen = riscv_vector_required_min_vlen (type);
if (TARGET_MIN_VLEN < required_min_vlen)
{