The compiler says:
mincross.c: In function 'medians':
mincross.c:1803:25: warning: conversion to 'size_t' {aka 'long unsigned int'}
from 'int' may change the sign of the result [-Wsign-conversion]
1803 | qsort(list, j, sizeof(int), (qsort_cmpf) ordercmpf);
| ^
By doing array indexing in this function universally as `size_t` we can avoid
this.
static bool medians(graph_t * g, int r0, int r1)
{
- int i, j, j0, lm, rm, lspan, rspan, *list;
+ int i, j0, lspan, rspan, *list;
node_t *n, **v;
edge_t *e;
bool hasfixed = false;
v = GD_rank(g)[r0].v;
for (i = 0; i < GD_rank(g)[r0].n; i++) {
n = v[i];
- j = 0;
+ size_t j = 0;
if (r1 > r0)
for (j0 = 0; (e = ND_out(n).list[j0]); j0++) {
if (ED_xpenalty(e) > 0)
ND_mval(n) = list[j / 2];
else {
/* weighted median */
- rm = j / 2;
- lm = rm - 1;
+ size_t rm = j / 2;
+ size_t lm = rm - 1;
rspan = list[j - 1] - list[rm];
lspan = list[lm] - list[0];
if (lspan == rspan)