Ping - old patch from April - mingw support for I32/I64 MS printf formatters to c-format.c
Kai Tietz
Kai.Tietz@onevision.com
Tue Feb 19 15:16:00 GMT 2008
"Joseph S. Myers" <joseph@codesourcery.com> wrote on 19.02.2008 15:01:10:
> On Tue, 19 Feb 2008, Kai Tietz wrote:
>
> > What's about extending the attribute definition structure by a kind
member
> > and compare instead of index position, there kind? So this function is
no
> > longer necessary and we need just in the c-format.h enum values
defining
> > kinds.
> >
> > typedef enum {
> > attr_kind_printf=0,
> > attr_kind_scanf,
> > ...
> > } attr_kind;
>
> That would be better, but it's still the wrong abstraction level. We
> should never be asking the question "is this a printf format?". Instead,
> we should ask "does this have property X that is relevant for this piece
> of code?". Property X would then have its own flag set in the structure
> for printf.
>
> There's a check against strftime_format_type; we already have the right
> flag for that, FMT_FLAG_ARG_CONVERT. There are also checks against
> GCC-internal types; those could stay, since they won't get
system-specific
> variants, or they could get a few more flags (for the three essentially
> different styles of internal format that get handled differently in
> handle_format_attribute where these checks appear).
Ok, I removed the cmp_formatter_kind method. Additionally I removed the
copy of the enum from format.h.
Is this ok for apply to trunk?
2008-02-19 Kai Tietz <kai.tietz@onevision.com>
* c-format.c: (replace_formatter_name_to_system_name): New.
(cmp_attribs): New.
(convert_formatter_name_to_system_name): New.
(decode_format_attr): Use of
replace_formatter_name_to_system_name.
(format_types_orig): Add gnu_ prefix to names.
(check_format_info_main): Special treating of \0 escaped names for
supporting multi-character formatters as I32, I64.
(TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined
attributes.
(gnu_target_overrides_format_attributes): New.
* gcc/c-format.h: Add structure target_ovr_attr to hold
system specific formatter names.
* config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
msformat-c.o file to c_target_objs and cxx_target_objs.
* config/i386/mingw32.h: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES):
New.
(TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
(TARGET_N_FORMAT_TYPES): New.
* config/i386/msformat-c.c: New.
* config/i386/t-cygming: Add build rule for msformat-c.o.
* doc/extend.texi: Add new format names gnu_* and ms_*.
* doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
ChangeLog for gcc/testcase
2008-02-19 Kai Tietz <kai.tietz@onevision.com>
* gcc.dg/format/ms_array-1.c: New.
* gcc.dg/format/ms_c90-scanf-3.c: New.
* gcc.dg/format/ms_c99-strftime-1.c: New.
* gcc.dg/format/ms_no-y2k-1.c: New.
* gcc.dg/format/ms_attr-1.c: New.
* gcc.dg/format/ms_c90-scanf-4.c: New.
* gcc.dg/format/ms_c99-strftime-2.c: New.
* gcc.dg/format/ms_nonlit-1.c: New.
* gcc.dg/format/ms_c90-scanf-5.c: New.
* gcc.dg/format/ms_cast-1.c: New.
* gcc.dg/format/ms_nonlit-2.c: New.
* gcc.dg/format/ms_attr-2.c: New.
* gcc.dg/format/ms_c90-strftime-1.c: New.
* gcc.dg/format/ms_miss-1.c: New.
* gcc.dg/format/ms_nonlit-3.c: New.
* gcc.dg/format/ms_attr-3.c: New.
* gcc.dg/format/ms_c90-strftime-2.c: New.
* gcc.dg/format/ms_miss-2.c: New.
* gcc.dg/format/ms_nul-1.c: New.
* gcc.dg/format/ms_attr-4.c: New.
* gcc.dg/format/ms_c94-printf-1.c: New.
* gcc.dg/format/ms_miss-3.c: New.
* gcc.dg/format/ms_nul-2.c: New.
* gcc.dg/format/ms_attr-7.c: New.
* gcc.dg/format/ms_c94-scanf-1.c: New.
* gcc.dg/format/ms_miss-4.c: New.
* gcc.dg/format/ms_null-1.c: New.
* gcc.dg/format/ms_bitfld-1.c: New.
* gcc.dg/format/ms_c99-printf-1.c: New.
* gcc.dg/format/ms_miss-5.c: New.
* gcc.dg/format/ms_plus-1.c: New.
* gcc.dg/format/ms_branch-1.c: New.
* gcc.dg/format/ms_c99-printf-2.c: New.
* gcc.dg/format/ms_miss-6.c: New.
* gcc.dg/format/ms_sec-1.c: New.
* gcc.dg/format/ms_c90-printf-1.c: New.
* gcc.dg/format/ms_c99-printf-3.c: New.
* gcc.dg/format/ms_multattr-1.c: New.
* gcc.dg/format/ms_unnamed-1.c: New.
* gcc.dg/format/ms_c90-printf-2.c: New.
* gcc.dg/format/ms_c99-scanf-1.c: New.
* gcc.dg/format/ms_multattr-2.c: New.
* gcc.dg/format/ms_va-1.c: New.
* gcc.dg/format/ms_c90-printf-3.c: New.
* gcc.dg/format/ms_c99-scanf-2.c: New.
* gcc.dg/format/ms_multattr-3.c: New.
* gcc.dg/format/ms_warnll-1.c: New.
* gcc.dg/format/ms_c90-scanf-1.c: New.
* gcc.dg/format/ms_c99-scanf-3.c: New.
* gcc.dg/format/ms_no-exargs-1.c: New.
* gcc.dg/format/ms_zero-length-1.c: New.
* gcc.dg/format/ms_c90-scanf-2.c: New.
* gcc.dg/format/ms_c99-scanf-4.c: New.
* gcc.dg/format/ms_no-exargs-2.c: New.
* gcc.dg/format/null-1.c: Add gnu style usage for mingw.
* gcc.dg/format/miss-1.c: Likewise.
* gcc.dg/format/miss-3.c: Likewise.
* gcc.dg/format/multattr-2.c: Likewise.
* gcc.dg/format/miss-5.c: Likewise.
* gcc.dg/format/attr-2.c: Likewise.
* gcc.dg/format/attr-4.c: Likewise.
* gcc.dg/format/c90-scanf-4.c: Likewise.
* gcc.dg/format/c99-printf-3.c: Likewise.
* gcc.dg/format/multattr-1.c: Likewise.
* gcc.dg/format/miss-4.c: Likewise.
* gcc.dg/format/miss-6.c: Likewise.
* gcc.dg/format/c90-printf-3.c: Likewise.
* gcc.dg/format/attr-1.c: Likewise.
* gcc.dg/format/attr-3.c: Likewise.
* gcc.dg/format/attr-7.c: Likewise.
* gcc.dg/format/format.h: Treat mingw and gnu style.
* gcc.dg/format/sys_format.c: New.
Kai Tietz
| (\_/) This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.
------------------------------------------------------------------------------------------
OneVision Software Entwicklungs GmbH & Co. KG
Dr.-Leo-Ritter-Straße 9 - 93049 Regensburg
Tel: +49.(0)941.78004.0 - Fax: +49.(0)941.78004.489 - www.OneVision.com
Commerzbank Regensburg - BLZ 750 400 62 - Konto 6011050
Handelsregister: HRA 6744, Amtsgericht Regensburg
Komplementärin: OneVision Software Entwicklungs Verwaltungs GmbH
Dr.-Leo-Ritter-Straße 9 – 93049 Regensburg
Handelsregister: HRB 8932, Amtsgericht Regensburg - Geschäftsführer:
Ulrike Döhler, Manuela Kluger
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: mingw-msformat.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20080219/274eaa7a/attachment.txt>
More information about the Gcc-patches
mailing list