On Tue, 2024-08-13 at 09:05 -0700, Yonghong Song wrote: [...] > > + /* GCC can't figure max bound for i and thus reports possible truncation */ > > +#pragma GCC diagnostic push > > +#pragma GCC diagnostic ignored "-Wformat-truncation" > > + for (i = 0; i < labels.cnt; ++i) > > + snprintf(labels.names[i], sizeof(labels.names[i]), "L%d", i); > > +#pragma GCC diagnostic pop > > "-Wformat-truncation" is only available for llvm >= 18. One of my build with llvm15 > has the following warning/error: > > jit_disasm_helpers.c:113:32: error: unknown warning group '-Wformat-truncation', ignored [-Werror,-Wunknown-warning-option] > #pragma GCC diagnostic ignored "-Wformat-truncation" > > Maybe you want to guard with proper clang version? > Not sure on gcc side when "-Wformat-truncation" is supported. Thank you for catching this, I think I'll fix it as below in the v2. Will wait for additional comments before submitting v2. --- --- a/tools/testing/selftests/bpf/jit_disasm_helpers.c +++ b/tools/testing/selftests/bpf/jit_disasm_helpers.c @@ -108,12 +108,9 @@ static int disasm_one_func(FILE *text_out, uint8_t *image, __u32 len) pc += cnt; } qsort(labels.pcs, labels.cnt, sizeof(*labels.pcs), cmp_u32); - /* GCC can't figure max bound for i and thus reports possible truncation */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wformat-truncation" for (i = 0; i < labels.cnt; ++i) - snprintf(labels.names[i], sizeof(labels.names[i]), "L%d", i); -#pragma GCC diagnostic pop + /* use (i % 100) to avoid format truncation warning */ + snprintf(labels.names[i], sizeof(labels.names[i]), "L%d", i % 100); /* now print with labels */ labels.print_phase = true;