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