https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118004
Xi Ruoyao <xry111 at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |xry111 at gcc dot gnu.org --- Comment #3 from Xi Ruoyao <xry111 at gcc dot gnu.org> --- (In reply to Manuel López-Ibáñez from comment #2) > __attribute__ ((access (read_only, 2))) > int printf(const char *format, const char *x); > > // Type your code here, or load an example. > void f2() { > char not_secret[7]; > printf("f2 %s\n", not_secret); > } > > The above gives the correct warning, so what is needed is a way to apply the > attribute "access" to "...", which will allow applying it to > __builtin_printf__(). > > That would be more useful than special casing __builtin_printf__ in the > Wuninitialized code. Making the entire ... access (read_only) would be incorrect, considering the argument corresponding to %n should be access (write_only) instead. So we still need to special case __builtin_printf.