If the size of int is different from IGRAPH_INTEGER_SIZE, the integer size passed to these vararg arguments is different from the assumed one, leading to undefined behavior. Submitted upstream: https://github.com/igraph/igraph/pull/2423 diff -ur a/examples/simple/igraph_union.c b/examples/simple/igraph_union.c --- a/examples/simple/igraph_union.c +++ b/examples/simple/igraph_union.c @@ -103,7 +103,7 @@ igraph_vector_ptr_init(&glist, 10); for (i = 0; i < igraph_vector_ptr_size(&glist); i++) { VECTOR(glist)[i] = calloc(1, sizeof(igraph_t)); - igraph_vector_int_init_int_end(&v, -1, i, i + 1, 1, 0, -1); + igraph_vector_int_init_int_end(&v, -1, (int) i, (int) i + 1, 1, 0, -1); igraph_create(VECTOR(glist)[i], &v, 0, IGRAPH_DIRECTED); igraph_vector_int_destroy(&v); } @@ -123,7 +123,7 @@ igraph_vector_ptr_init(&glist, 10); for (i = 0; i < igraph_vector_ptr_size(&glist); i++) { VECTOR(glist)[i] = calloc(1, sizeof(igraph_t)); - igraph_vector_int_init_int_end(&v, -1, i, i + 1, 1, 0, -1); + igraph_vector_int_init_int_end(&v, -1, (int) i, (int) i + 1, 1, 0, -1); igraph_create(VECTOR(glist)[i], &v, 0, IGRAPH_UNDIRECTED); igraph_vector_int_destroy(&v); } diff -ur a/src/core/matrix.pmt b/src/core/matrix.pmt --- a/src/core/matrix.pmt +++ b/src/core/matrix.pmt @@ -1863,7 +1863,7 @@ #ifdef FPRINTFUNC_ALIGNED FPRINTFUNC_ALIGNED(file, VECTOR(column_width)[j], MATRIX(*m, i, j)); #else - fprintf(file, format, VECTOR(column_width)[j], MATRIX(*m, i, j)); + fprintf(file, format, (int) VECTOR(column_width)[j], MATRIX(*m, i, j)); #endif } fprintf(file, "\n");