* c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE, FMT_FLAG_FANCY_PERCENT_OK): Define. (format_char_info): Add flag "4" to comment. (format_flag_spec, format_flag_pair): New structures. (format_kind_info): Add additional fields to control format checking. (printf_flag_specs, printf_flag_pairs, scanf_flag_specs, scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New arrays. (time_char_table): Use "4" flag to handle %Ey. (format_types): Add entries for new fields. (get_flag_spec): New function. (check_format_info): Increase size of flag_chars[] to 256. Control format checking using the new fields of a format_kind_info and the new tables; remove all conditionals on printf_format_type, scanf_format_type or strftime_format_type. Handle all details of bad combinations of flags (including width, precision and strftime modifiers) through data rather than ad hoc code. Handle all details of standard versions in which flags appeared through data. Use the "4" flag. testsuite: * gcc.dg/c90-printf-1.c, gcc.dg/c90-scanf-1.c, gcc.dg/c99-printf-1.c, gcc.dg/c99-scanf-1.c, gcc.dg/c99-strftime-1.c, gcc.dg/format-ext-3.c: Adjust error regexps and details of expected handling of some bad formats. * gcc.dg/format-xopen-1.c: Add test for $ format with assignment suppression. From-SVN: r36790
Name |
Last commit
|
Last update |
---|---|---|
INSTALL | Loading commit data... | |
boehm-gc | Loading commit data... | |
config | Loading commit data... | |
contrib | Loading commit data... | |
etc | Loading commit data... | |
gcc | Loading commit data... | |
include | Loading commit data... | |
libchill | Loading commit data... | |
libf2c | Loading commit data... | |
libffi | Loading commit data... | |
libiberty | Loading commit data... | |
libio | Loading commit data... | |
libjava | Loading commit data... | |
libobjc | Loading commit data... | |
libstdc++ | Loading commit data... | |
libstdc++-v3 | Loading commit data... | |
texinfo | Loading commit data... | |
zlib | Loading commit data... | |
.cvsignore | Loading commit data... | |
COPYING | Loading commit data... | |
COPYING.LIB | Loading commit data... | |
ChangeLog | Loading commit data... | |
MAINTAINERS | Loading commit data... | |
Makefile.in | Loading commit data... | |
README | Loading commit data... | |
config-ml.in | Loading commit data... | |
config.guess | Loading commit data... | |
config.if | Loading commit data... | |
config.sub | Loading commit data... | |
configure | Loading commit data... | |
configure.in | Loading commit data... | |
djunpack.bat | Loading commit data... | |
install-sh | Loading commit data... | |
libtool.m4 | Loading commit data... | |
ltcf-c.sh | Loading commit data... | |
ltcf-cxx.sh | Loading commit data... | |
ltcf-gcj.sh | Loading commit data... | |
ltconfig | Loading commit data... | |
ltmain.sh | Loading commit data... | |
missing | Loading commit data... | |
mkdep | Loading commit data... | |
mkinstalldirs | Loading commit data... | |
move-if-change | Loading commit data... | |
symlink-tree | Loading commit data... | |
ylwrap | Loading commit data... |