RFR: 8313889: Fix -Wconversion warnings in foreign benchmarks

Jorn Vernee jvernee at openjdk.org
Mon Aug 7 15:13:34 UTC 2023


Fix these -Wconversion warnings in the foreign benchmarks:


./test/micro/org/openjdk/bench/java/lang/foreign/libQSortJNI.c: In function ‘Java_org_openjdk_bench_java_lang_foreign_QSort_jni_1qsort_1optimized’:
./test/micro/org/openjdk/bench/java/lang/foreign/libQSortJNI.c:59:17: warning: conversion to ‘size_t’ {aka ‘long unsigned int’} from ‘jsize’ {aka ‘int’} may change the sign of the result [-Wsign-conversion]
   59 |     qsort(ints, length, sizeof(jint), &comparator);
      |                 ^~~~~~
./test/micro/org/openjdk/bench/java/lang/foreign/libQSortJNI.c: In function ‘Java_org_openjdk_bench_java_lang_foreign_QSort_jni_1qsort_1naive’:
./test/micro/org/openjdk/bench/java/lang/foreign/libQSortJNI.c:87:17: warning: conversion to ‘size_t’ {aka ‘long unsigned int’} from ‘jsize’ {aka ‘int’} may change the sign of the result [-Wsign-conversion]
   87 |     qsort(carr, length, sizeof(jint), java_cmp);
      |


In this case the issue is that we're converting from a signed type to an unsigned type. So, if the source value is negative, it will be positive after conversion.

Since the source value is a Java array length in both cases, the value can not be negative, so we simply fix this by casting to `size_t` explicitly.

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

Commit messages:
 - fix -Wconversion warnings in foreign benchmarks

Changes: https://git.openjdk.org/jdk/pull/15179/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15179&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8313889
  Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/15179.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15179/head:pull/15179

PR: https://git.openjdk.org/jdk/pull/15179


More information about the core-libs-dev mailing list