https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93855
--- Comment #1 from Roland Illig <roland.illig at gmx dot de> --- In addition, I had expected that the %i placeholder were 1-based. From attr-access-read-only.c: > int RDONLY (4) > rdonly_i_i_i_4 (int, int, int); > // { dg-error "attribute 'access\\(read_only, 4\\)' > // positional argument 1 value 4 exceeds number of > // function arguments 3" } It's the second parameter's value that is too large here. That parameter should not be called parameter 1.