glibc/stdio-common
Joseph Myers 2084e7ca4d Add macros for diagnostic control, use for scanf %a tests.
In <https://sourceware.org/ml/libc-alpha/2014-11/msg00326.html>,
Roland requested internal macros for use of "#pragma GCC diagnostic".

This patch adds such macros and uses them to disable -Wformat warnings
for some code testing GNU scanf %as where GCC expects C99 scanf %a
(several other stdio tests currently use -Wno-format to disable
warnings).  Limitations in GCC's diagnostic pragmas require separate
macros before and after the code generating the warnings, rather than
a single macro taking that code as an argument.

The macros are named DIAG_*_NEEDS_COMMENT to emphasise to reviewers
the need for a comment accompanying any use of them (such comments may
however just appear once for several uses of the macros for the same
issue in the same file).  I put a GCC version in the arguments to
DIAG_IGNORE_NEEDS_COMMENT, as that seems something useful to grep for
when obsoleting support for an old GCC version and needing to decide
if warning-disabling code is still relevant.

These macros should be usable for replacing existing -Wno-* use in
makefiles (as also suggested by Roland), though I have no plans to
work on that (only on use of the macros in cases where warnings are
currently present that need disabling to use -Werror).

Tested for x86_64.

	* include/libc-internal.h (DIAG_PUSH_NEEDS_COMMENT): New macro.
	(DIAG_POP_NEEDS_COMMENT): Likewise.
	(_DIAG_STR1): Likewise.
	(_DIAG_STR): Likewise.
	(DIAG_IGNORE_NEEDS_COMMENT): Likewise.
	* stdio-common/bug21.c: Include <libc-internal.h>.
	(do_test): Disable -Wformat around call to sscanf.
	* stdio-common/scanf14.c: Include <libc-internal.h>.
	(main): Disable -Wformat around some calls to scanf functions.
2014-12-10 00:41:19 +00:00
..
bits Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Depend
Makefile Include LOCPATH in default test environment. 2014-06-04 23:37:25 +00:00
Versions Add missing } in Versions file. 2014-02-28 11:07:43 -08:00
_i18n_number.h Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
_itoa.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
_itowa.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
_itowa.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
asprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
bug-vfprintf-nargs.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
bug1.c
bug1.input
bug2.c
bug3.c
bug4.c
bug5.c
bug6.c
bug6.input
bug7.c
bug8.c
bug9.c
bug10.c
bug11.c
bug12.c
bug13.c
bug14.c
bug16.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
bug17.c
bug18.c
bug18a.c
bug19.c
bug19a.c
bug20.c
bug21.c Add macros for diagnostic control, use for scanf %a tests. 2014-12-10 00:41:19 +00:00
bug22.c
bug23.c
bug24.c
bug25.c
bug26.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ctermid.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
cuserid.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
dprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
errlist.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
errnobug.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
flockfile.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ftrylockfile.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
funlockfile.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fxprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getline.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
getw.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
isoc99_fscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
isoc99_scanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
isoc99_sscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
isoc99_vfscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
isoc99_vscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
isoc99_vsscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
itoa-digits.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
itoa-udigits.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
itowa-digits.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
perror.c Fix perror fileno namespace (bug 17633). 2014-11-24 15:59:15 +00:00
printf-parse.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
printf-parsemb.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
printf-parsewc.c
printf-prs.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
printf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
printf.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
printf_fp.c Fix __printf_fp wmemset namespace (bug 17574). 2014-11-12 22:38:11 +00:00
printf_fphex.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
printf_size.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
psiginfo-data.h Fix typos. 2013-10-12 14:47:50 +02:00
psiginfo-define.h
psiginfo.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
psignal.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
putw.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
reg-modifier.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
reg-printf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
reg-type.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
remove.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
rename.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
renameat.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
scanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
scanf1.c
scanf2.c
scanf3.c
scanf4.c
scanf5.c
scanf7.c
scanf8.c
scanf9.c
scanf10.c
scanf11.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
scanf12.c
scanf12.input
scanf13.c
scanf14.c Add macros for diagnostic control, use for scanf %a tests. 2014-12-10 00:41:19 +00:00
scanf15.c
scanf16.c
scanf17.c
siglist.c Remove stray *_internal aliases (bug 14132). 2014-10-09 01:11:14 +00:00
snprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
stdio_ext.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
stdio_lim.h.in Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tempnam.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tempname.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
temptest.c
test-fseek.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
test-fwrite.c
test-popen.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
test-vfprintf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
test_rdwr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tfformat.c Avoid use of "register" as optimization hint. 2013-06-07 22:24:35 +00:00
tiformat.c
tllformat.c
tmpfile.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tmpfile64.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tmpnam.c Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
tmpnam_r.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-cookie.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-fdopen.c
tst-ferror.c
tst-ferror.input
tst-fgets.c
tst-fileno.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-fmemopen.c Fix stdio-common/tst-fmemopen.c format warnings. 2014-11-27 03:25:15 +00:00
tst-fmemopen2.c
tst-fphex-wide.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-fphex.c
tst-fseek.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-fwrite.c
tst-gets.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-gets.input
tst-grouping.c
tst-long-dbl-fphex.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-obprintf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-perror.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-popen.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-popen2.c
tst-printf-round.c Fix warning in stdio-common/tst-printf-round.c. 2014-11-25 23:31:21 +00:00
tst-printf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-printf.sh Don't require test wrappers to preserve environment variables, use more consistent environment. 2014-06-06 22:19:27 +00:00
tst-printfsz.c
tst-put-error.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-rndseek.c
tst-setvbuf1.c
tst-setvbuf1.expect
tst-sprintf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-sprintf2.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-sprintf3.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-sscanf.c Fix tst-sscanf and tst-swscanf on 64-bit. 2014-02-11 00:37:53 -08:00
tst-swprintf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-swscanf.c
tst-tmpnam.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-unbputc.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-unbputc.sh Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-ungetc.c
tst-unlockedio.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-wc-printf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tstdiomisc.c Correctly handle %p in wprintf (BZ #16890) 2014-05-01 20:42:08 +02:00
tstgetln.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tstgetln.input
tstscanf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tstscanf.input
vfprintf.c Correctly handle %p in wprintf (BZ #16890) 2014-05-01 20:42:08 +02:00
vfscanf.c Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
vfwprintf.c
vfwscanf.c
vprintf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
xbug.c Avoid use of "register" as optimization hint. 2013-06-07 22:24:35 +00:00