[doc] Adjust reference to ACATS in sourcebuild.texi
Installed on mainline; if someone wants me to, happy to apply to older branches as well. Gerald 2011-04-24 Gerald Pfeifer * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS testsuite and make it version agnostic. Index: doc/sourcebuild.texi === --- doc/sourcebuild.texi(revision 172909) +++ doc/sourcebuild.texi(working copy) @@ -2113,9 +2113,9 @@ @node Ada Tests @section Ada Language Testsuites -The Ada testsuite includes executable tests from the ACATS 2.5 +The Ada testsuite includes executable tests from the ACATS testsuite, publicly available at -@uref{http://www.adaic.org/compilers/acats/2.5}. +@uref{http://www.ada-auth.org/acats.html}. These tests are integrated in the GCC testsuite in the @file{ada/acats} directory, and
[other/48748, committed] Document __is_standard_layout,, __is_literal_type, and __is_trivial
Hi, I committed as obvious this patchlet to mainline and 4_6-branch. Tested make info and make dvi. Thanks, Paolo. 2011-04-24 Paolo Carlini PR other/48748 * doc/extend.texi (Type Traits): Document __is_standard_layout, __is_literal_type, and __is_trivial; update throughout about possibly cv-qualified void types. Index: doc/extend.texi === --- doc/extend.texi (revision 172909) +++ doc/extend.texi (working copy) @@ -14305,63 +14305,63 @@ If @code{type} is const qualified or is a referenc false. Otherwise if @code{__has_trivial_assign (type)} is true then the trait is true, else if @code{type} is a cv class or union type with copy assignment operators that are known not to throw an exception then the trait is true, -else it is false. Requires: @code{type} shall be a complete type, an array -type of unknown bound, or is a @code{void} type. +else it is false. Requires: @code{type} shall be a complete type, +(possibly cv-qualified) @code{void}, or an array of unknown bound. @item __has_nothrow_copy (type) If @code{__has_trivial_copy (type)} is true then the trait is true, else if @code{type} is a cv class or union type with copy constructors that are known not to throw an exception then the trait is true, else it is false. -Requires: @code{type} shall be a complete type, an array type of -unknown bound, or is a @code{void} type. +Requires: @code{type} shall be a complete type, (possibly cv-qualified) +@code{void}, or an array of unknown bound. @item __has_nothrow_constructor (type) If @code{__has_trivial_constructor (type)} is true then the trait is true, else if @code{type} is a cv class or union type (or array thereof) with a default constructor that is known not to throw an -exception then the trait is true, else it is false. Requires: -@code{type} shall be a complete type, an array type of unknown bound, -or is a @code{void} type. +exception then the trait is true, else it is false. Requires: +@code{type} shall be a complete type, (possibly cv-qualified) +@code{void}, or an array of unknown bound. @item __has_trivial_assign (type) If @code{type} is const qualified or is a reference type then the trait is false. Otherwise if @code{__is_pod (type)} is true then the trait is true, else if @code{type} is a cv class or union type with a trivial copy assignment ([class.copy]) then the trait is true, else it is -false. Requires: @code{type} shall be a complete type, an array type -of unknown bound, or is a @code{void} type. +false. Requires: @code{type} shall be a complete type, (possibly +cv-qualified) @code{void}, or an array of unknown bound. @item __has_trivial_copy (type) If @code{__is_pod (type)} is true or @code{type} is a reference type then the trait is true, else if @code{type} is a cv class or union type with a trivial copy constructor ([class.copy]) then the trait is true, else it is false. Requires: @code{type} shall be a complete -type, an array type of unknown bound, or is a @code{void} type. +type, (possibly cv-qualified) @code{void}, or an array of unknown bound. @item __has_trivial_constructor (type) If @code{__is_pod (type)} is true then the trait is true, else if @code{type} is a cv class or union type (or array thereof) with a trivial default constructor ([class.ctor]) then the trait is true, -else it is false. Requires: @code{type} shall be a complete type, an -array type of unknown bound, or is a @code{void} type. +else it is false. Requires: @code{type} shall be a complete +type, (possibly cv-qualified) @code{void}, or an array of unknown bound. @item __has_trivial_destructor (type) If @code{__is_pod (type)} is true or @code{type} is a reference type then the trait is true, else if @code{type} is a cv class or union type (or array thereof) with a trivial destructor ([class.dtor]) then the trait is true, else it is false. Requires: @code{type} shall be a complete -type, an array type of unknown bound, or is a @code{void} type. +type, (possibly cv-qualified) @code{void}, or an array of unknown bound. @item __has_virtual_destructor (type) If @code{type} is a class type with a virtual destructor ([class.dtor]) then the trait is true, else it is false. Requires: -@code{type} shall be a complete type, an array type of unknown bound, -or is a @code{void} type. +@code{type} shall be a complete type, (possibly cv-qualified) +@code{void}, or an array of unknown bound. @item __is_abstract (type) If @code{type} is an abstract class ([class.abstract]) then the trait is true, else it is false. Requires: @code{type} shall be a complete -type, an array type of unknown bound, or is a @code{void} type. +type, (possibly cv-qualified) @code{void}, or an array of unknown bound. @item __is_base_of (base_type, derived_type) If @code{base_type} is a base class of @code{derived_type} @@ -14386,23 +14386,3
[doc, libjava] Refer to our bug reporting instructions instead of Bugzilla
This is in line with a general trend to make this our primary reference around bug reporting. If we keep referring to Bugzilla directly, how can we expect that anyone reads the instructions? (Which, by the way, we need to continue to make more concise.) Gerald 2011-04-24 Gerald Pfeifer * README: Refer to our generic bug reporting page. Index: README === --- README (revision 172912) +++ README (working copy) @@ -15,6 +15,8 @@ BUGS -Please submit bug reports via this URL: +Please refer to - http://gcc.gnu.org/bugzilla + http://gcc.gnu.org/bugs/ + +on when and how to submit a bug report.
Re: Fix WPA corruption seen in LTO bootstrap
> Hi, > the problems with LTO build reported by Toon is caused by a hack disabling > jump function in ipa-prop on wpa. The hack is no longer needed and it is > wrong, > since jump function makes no sense when they are not updated. Consequentely > inline cost metrics get lost. > > I am testing the following patch that also fortifies the datastructures > for array overruns (this was how the problem manifested itself). > > Bootstrapping/regtesting x86_64-linux, will commit it if passes. > > Honza > > * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette > WPA hack. Martin, since indirect inlining at WPA time is enabled for 4.6, I think it is just matter of testcase showing that the fix is needed for 4.6, too (i.e. arrange function A to be inlined to B that passes through callback but use different formal ID to do so.) Honza
[libstdc++] Adjust FAQ link in libsupc++/cxxabi.h
On the way, add a blank after the URL so that it's easier to copy and paste or just click in an editor or somesuch. Installed on mainline. Not necessary on older branches since there is a redirect in place. Gerald 2011-04-24 Gerald Pfeifer * libsupc++/cxxabi.h: Adjust link to FAQ entry. Index: libsupc++/cxxabi.h === --- libsupc++/cxxabi.h (revision 172621) +++ libsupc++/cxxabi.h (working copy) @@ -583,7 +583,7 @@ * * A brief overview of an ABI is given in the libstdc++ FAQ, question * 5.8 (you may have a copy of the FAQ locally, or you can view the online - * version at http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#5_8). + * version at http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#5_8 ). * * GCC subscribes to a cross-vendor ABI for C++, sometimes * called the IA64 ABI because it happens to be the native ABI for that
[libstdc++, doc] Fix link to libgomp online documentation
Installed. Gerald 2011-04-24 Gerald Pfeifer * doc/xml/manual/parallel_mode.xml: Fix link to libgomp online documentation. Expand link text. Index: doc/xml/manual/parallel_mode.xml === --- doc/xml/manual/parallel_mode.xml(revision 172914) +++ doc/xml/manual/parallel_mode.xml(working copy) @@ -109,8 +109,8 @@ and runtime support, in particular support for OpenMP. Adding this support is not difficult: just compile your application with the compiler flag -fopenmp. This will link - in libgomp, the GNU - OpenMP http://www.w3.org/1999/xlink"; xlink:href="http://gcc.gnu.org/onlinedocs/libgomp";>implementation, + in libgomp, the + OpenMP http://www.w3.org/1999/xlink"; xlink:href="http://gcc.gnu.org/onlinedocs/libgomp/";>GNU implementation, whose presence is mandatory.
[wwwdocs] projects/tree-ssa/lno.html link fix
The link to WRap-IT here was broken and I did not find a replacement, thus avoiding the link altogether. Installed. Gerald Index: lno.html === RCS file: /cvs/gcc/wwwdocs/htdocs/projects/tree-ssa/lno.html,v retrieving revision 1.5 diff -u -r1.5 lno.html --- lno.html9 Jun 2004 17:33:26 - 1.5 +++ lno.html22 Apr 2011 22:33:44 - @@ -46,8 +46,8 @@ described in these http://icps.u-strasbg.fr/pco/locality.htm";>papers. A more general framework for loop nests transformations has been -proposed using the same high level polyhedral representation: -http://www.lri.fr/~girbal/site_wrapit/";>WRaP-IT. +proposed using the same high level polyhedral representation in +the WRaP-IT project.
[wwwdocs] Adjust a couple of Ada-related links in readings.html
Installed. Gerald Index: readings.html === RCS file: /cvs/gcc/wwwdocs/htdocs/readings.html,v retrieving revision 1.213 diff -u -r1.213 readings.html --- readings.html 23 Apr 2011 22:55:53 - 1.213 +++ readings.html 24 Apr 2011 09:01:06 - @@ -521,15 +521,15 @@ http://www.ada-auth.org/ais.html";>Ada Issues - http://www.adaic.com/standards/";>List of Ada standards (Ada - Information Clearinghouse): + http://www.adaic.org/ada-resources/standards/";>List of + Ada standards (Ada Information Clearinghouse): - http://www.adaic.com/standards/05aarm/html/AA-TTL.html";> - Annotated Ada 2005 Reference Manual - http://www.adaic.com/standards/05rm/html/RM-TTL.html";> - Ada 2005 Reference Manual - http://www.adaic.com/standards/05rat/html/Rat-TTL.html";> - Ada 2005 Rationale + http://www.adaic.org/resources/add_content/standards/05aarm/html/AA-TTL.html";>Annotated + Ada 2005 Reference Manual + http://www.adaic.org/resources/add_content/standards/05rm/html/RM-TTL.html";>Ada 2005 + Reference Manual + http://www.adaic.org/resources/add_content/standards/05rat/html/Rat-TTL.html";>Ada 2005 + Rationale http://www.adaic.com/standards/95aarm/html/AA-TTL.html";> Annotated Ada 95 Reference Manual http://www.adaic.com/standards/95lrm/html/RM-TTL.html";>
[wwwdocs] Update bug reporting instructions
Ask for bugs to be reproduced with a current release. Suggest use of -Wextra in addition to -Wall. Installed. Gerald Index: bugs/index.html === RCS file: /cvs/gcc/wwwdocs/htdocs/bugs/index.html,v retrieving revision 1.106 diff -u -r1.106 index.html --- bugs/index.html 18 Oct 2010 09:42:35 - 1.106 +++ bugs/index.html 24 Apr 2011 09:49:35 - @@ -49,12 +49,10 @@ Before you report a bug, please check the list of well-known bugs and, if possible, -try a current development snapshot. -If you want to report a bug with versions of GCC before 3.4 we strongly -recommend upgrading to the current release first. +try a current release or development snapshot. Before reporting that GCC compiles your code incorrectly, please -compile it with gcc -Wall and see whether this shows +compile it with gcc -Wall -Wextra and see whether this shows anything wrong with your code that could be the cause instead of a bug in GCC.
Re: [PATCH] Properly build integer constants
On Fri, Apr 22, 2011 at 12:27 PM, Richard Guenther wrote: > > There is a scary comment before build_int_cst_type why build_int_cst > can't be sane. Fortunately it is not true. If it were there would > be other code to be fixed. > > Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk. > > Richard. > > 2011-04-22 Richard Guenther > > * tree.c (build_int_cst): Properly create canonicalized integer > constants. > (build_int_cst_type): Remove scary comments. > This caused: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48753 -- H.J.
[x32] PATCH: Require ia32 instead of ilp32
Hi, I checked in this patch to require ia32 instead of ilp32 on ia32 tests. H.J. commit 7412d91e93cf1a153f500101ba53c7ab2f7cdc96 Author: H.J. Lu Date: Sat Apr 16 07:45:26 2011 -0700 Require ia32 instead of ilp32. diff --git a/gcc/testsuite/ChangeLog.x32 b/gcc/testsuite/ChangeLog.x32 index 468594d..11cca91 100644 --- a/gcc/testsuite/ChangeLog.x32 +++ b/gcc/testsuite/ChangeLog.x32 @@ -1,3 +1,9 @@ +2011-04-16 H.J. Lu + + * gcc.target/i386/avx-vinsertps-3.c: Require ia32 instead of + ilp32. + * gcc.target/i386/sse4_1-insertps-3.c: Likewise. + 2011-04-09 H.J. Lu * gcc.target/i386/pr48389.c: Require ia32 instead of ilp32. diff --git a/gcc/testsuite/gcc.target/i386/avx-vinsertps-3.c b/gcc/testsuite/gcc.target/i386/avx-vinsertps-3.c index 9397729..515ee41 100644 --- a/gcc/testsuite/gcc.target/i386/avx-vinsertps-3.c +++ b/gcc/testsuite/gcc.target/i386/avx-vinsertps-3.c @@ -1,4 +1,4 @@ -/* { dg-do run { target ilp32 } } */ +/* { dg-do run { target ia32 } } */ /* { dg-require-effective-target avx } */ /* { dg-options "-O2 -mfpmath=sse -mavx -mtune=geode" } */ diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-insertps-3.c b/gcc/testsuite/gcc.target/i386/sse4_1-insertps-3.c index 75a8073..7c71664 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-insertps-3.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-insertps-3.c @@ -1,4 +1,4 @@ -/* { dg-do run { target ilp32 } } */ +/* { dg-do run { target ia32 } } */ /* { dg-require-effective-target sse4 } */ /* { dg-options "-O2 -msse4.1 -mtune=geode" } */
PR target/43804
I have checked in Richard's patch for PR43804. Andreas. 2011-04-24 Richard Sandiford PR target/43804 * config/m68k/constraints.md (T): Allow PIC operands that satisfy LEGITIMATE_PIC_OPERAND_P. Index: gcc/config/m68k/constraints.md === --- gcc/config/m68k/constraints.md (revision 172919) +++ gcc/config/m68k/constraints.md (working copy) @@ -94,7 +94,8 @@ (define_constraint "T" "Used for operands that satisfy 's' when -mpcrel is not in effect." (and (match_code "symbol_ref,label_ref,const") - (match_test "!flag_pic"))) + (match_test "!TARGET_PCREL") + (match_test "!flag_pic || LEGITIMATE_PIC_OPERAND_P (op)"))) (define_memory_constraint "Q" "Means address register indirect addressing mode." -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."
[patch, libgfortran] Fix numerous formatting bugs
Hi folks, This patch is a little intrusive and because of the interplay between the different bugs, I wanted to combine the solution. Thanks to Thomas Henlich for reporting these bugs and testing. This patch fixes 48488, 48602 (partially), 48615, and 48684. The adjustments made require changing several test cases in the testsuite. You may review the patch to see thos adjustments and what is being done. The final solution to 48602 I want to do as a second phase to this. The second phase will attempt to avoid floating point comparisons which are sensitive to optimizations and or printf behavior. Regression tested on x86-64. I do have some concern that the test cases modified may have issues on other platforms because we have increased the default precision on some reals. If this happens we should be able to adjust test cases by not using default formatting. The Change Log summarizes. One new test case is added. OK for trunk? Regards, Jerry 2011-04-24 Jerry DeLisle PR libgfortran/48488 PR libgfortran/48602 PR libgfortran/48615 PR libgfortran/48684 * io/write.c (set_fnode_default): Adjust default widths to assure round trip on write and read. * io/write_float.def (output_float_FMT_G_): Use volatile rather than asm volatile to avoid optimization issue. Correctly calculate the number of blanks (nb) to be appended and simplify calculation logic. (write_float): Increase MIN_FIELD_WIDTH by one to accomodate the new default widths. Eliminate the code that attempted to reduce the the precision used in later sprintf functions. Index: gcc/testsuite/gfortran.dg/fmt_g.f === --- gcc/testsuite/gfortran.dg/fmt_g.f (revision 172909) +++ gcc/testsuite/gfortran.dg/fmt_g.f (working copy) @@ -31,13 +31,13 @@ WRITE(buffer,"(G12.5E5,'<')") -1. if (buffer.ne."<") call abort WRITE(buffer,"(G13.5E5,'<')") -1. - if (buffer.ne."-1. <") call abort + if (buffer.ne."*<") call abort WRITE(buffer,"(G14.5E5,'<')") -1. - if (buffer.ne." -1. <") call abort + if (buffer.ne."-1. <") call abort WRITE(buffer,"(G15.5E5,'<')") -1. - if (buffer.ne." -1. <") call abort + if (buffer.ne." -1. <") call abort WRITE(buffer,"(G16.5E5,'<')") -1. - if (buffer.ne." -1. <") call abort + if (buffer.ne." -1. <") call abort STOP END Index: gcc/testsuite/gfortran.dg/fmt_g0_1.f08 === --- gcc/testsuite/gfortran.dg/fmt_g0_1.f08 (revision 172909) +++ gcc/testsuite/gfortran.dg/fmt_g0_1.f08 (working copy) @@ -2,19 +2,19 @@ ! PR36420 Fortran 2008: g0 edit descriptor ! Test case provided by Jerry DeLisle character(25) :: string = "(g0,g0,g0)" -character(33) :: buffer +character(50) :: buffer write(buffer, '(g0,g0,g0)') ':',12340,':' if (buffer.ne.":12340:") call abort write(buffer, string) ':',0,':' if (buffer.ne.":0:") call abort -write(buffer, string) ':',1.0/3.0,':' -if (buffer.ne.":.3334:") call abort -write(buffer, '(1x,a,g0,a)') ':',1.0/3.0,':' -if (buffer.ne." :.3334:") call abort +write(buffer, string) ':',1.0_8/3.0_8,':' +if (buffer.ne.":.1:") call abort +write(buffer, '(1x,a,g0,a)') ':',1.0_8/3.0_8,':' +if (buffer.ne." :.1:") call abort write(buffer, string) ':',"hello",':' -if (buffer.ne.":hello:") call abort +if (buffer.ne.":hello:") call abort write(buffer, "(g0,g0,g0,g0)") ':',.true.,.false.,':' if (buffer.ne.":TF:") call abort -write(buffer, "(g0,g0,',',g0,g0)") '(',( 1.2345, 2.4567 ),')' -if (buffer.ne."(1.2345001,2.4567001)") call abort +write(buffer, "(g0,g0,',',g0,g0)") '(',( 1.2345_8, 2.4567_8 ),')' +if (buffer.ne."(1.2344,2.45670001)") call abort end Index: gcc/testsuite/gfortran.dg/round_3.f08 === --- gcc/testsuite/gfortran.dg/round_3.f08 (revision 0) +++ gcc/testsuite/gfortran.dg/round_3.f08 (revision 0) @@ -0,0 +1,75 @@ +! { dg-do run } +! PR48615 Invalid UP/DOWN rounding with E and ES descriptors +! Test case provided by Thomas Henlich. +program pr48615 +call checkfmt("(RU,F17.0)", 2.5, " 3.") +call checkfmt("(RU,-1P,F17.1)", 2.5, " 0.3") +call checkfmt("(RU,E17.1)", 2.5, " 0.3E+01") ! 0.2E+01 +call checkfmt("(RU,1P,E17.0)", 2.5, " 3.E+00") +call checkfmt("(RU,ES17.0)", 2.5," 3.E+00") ! 2.E+00 +call checkfmt("(RU,EN17.0)", 2.5," 3.E+00") + +call checkfmt("(RD,F17.0)", 2.5, " 2.") +call checkfmt("(RD,-1P,F17.1)", 2.5,
[wwwdocs] Make status section of the title page more concise
This removes "Older maintained release series" and the like which were emphasized, even, in favor of focusing on the version numbers. Overall this means we have less text on the main page, but basically the same contents. Gerald Index: gcc.css === RCS file: /cvs/gcc/wwwdocs/htdocs/gcc.css,v retrieving revision 1.17 diff -u -r1.17 gcc.css --- gcc.css 10 Apr 2011 21:51:47 - 1.17 +++ gcc.css 24 Apr 2011 19:35:45 - @@ -19,6 +19,7 @@ dl.news dd { margin-left:3ex; } dl.status{ margin-top:0; } +dl.status .version { font-weight:bold; } dl.status dd { margin-left:3ex; } .td_title { Index: index.html === RCS file: /cvs/gcc/wwwdocs/htdocs/index.html,v retrieving revision 1.793 retrieving revision 1.795 diff -u -r1.793 -r1.795 --- index.html 21 Apr 2011 09:32:37 - 1.793 +++ index.html 24 Apr 2011 19:39:39 - 1.795 @@ -102,12 +102,11 @@ -Status +Release Series and Status -Current release series: - GCC 4.6.0 +GCC 4.6.0 (changes) Status: @@ -124,8 +123,7 @@ regressions. -Previous release series: - GCC 4.5.2 +GCC 4.5.2 (changes) Status: @@ -142,8 +140,7 @@ regressions. -Older maintained release series: - GCC 4.4.6 +GCC 4.4.6 (changes) Status: @@ -160,9 +157,9 @@ regressions. - Oldest maintained release series: - GCC 4.3.5 - +GCC 4.3.5 + (oldest maintained release series) + Status: http://gcc.gnu.org/ml/gcc/2010-05/msg00435.html";>2010-05-22 (regression fixes and docs only). @@ -175,7 +172,7 @@ regressions. -Active development: +Active development: GCC 4.7.0 (changes) Status:
Re: [PATCH] FIx PR47647, revert an earlier patch
On Sat, Feb 19, 2011 at 4:52 PM, H.J. Lu wrote: > On Fri, Feb 18, 2011 at 8:19 AM, Richard Guenther wrote: >> >> This reverts lazy BLOCK_VARS streaming as I thought back in time >> that VAR_DECLs have BLOCKs as DECL_CONTEXT while they have >> FUNCTION_DECLs ... so the patch doesn't work at all and instead >> causes us to not stream in any BLOCKs, resulting in no local >> decls at all in debug info. Not good. >> >> Fixed with the following which also makes latent guality issues >> re-appear - they were hidden by >> >> pr41353-1.gdb:3: Error in sourced command file:^M >> No symbol "vari2" in current context.^M >> UNSUPPORTED: gcc.dg/guality/pr41353-1.c -O2 -flto -flto-partition=none >> line 17 vari2 == 3 * 17 >> >> where "No symbol "vari2" in current context" isn't treated the >> same as "" ... >> >> I have filed bugs for some LTO debug info issues I noticed. >> >> Bootstrapped and tested on x86_64-unknown-linux-gnu, ok? >> >> Thanks, >> Richard. >> >> 2011-02-18 Richard Guenther >> >> PR lto/47647 >> * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers): >> Remove lazy BLOCK_VARS streaming. >> (lto_input_ts_block_tree_pointers): Likewise. >> * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise. >> > > This may have caused: > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47820 > This also caused: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48354 -- H.J.
[gcc patch] Move ENUM_BITFIELD to ansidecl.h
Hi, [patch] ENUM_BITFIELD broke GDB http://sourceware.org/ml/binutils/2011-04/msg00333.html ENUM_BITFIELD has been now defined in bfdlink.h which is included only in some GDB sources. There would be needed some #ifndef ENUM_BITFIELD #define ENUM_BITFIELD but I find it fragile. Is approved its unification into ansidecl.h across gcc/binutils/gdb? GCC still builds with the patch. Thanks, Jan include/ 2011-04-25 Jan Kratochvil * ansidecl.h (ENUM_BITFIELD): New, from gcc/system.h. contrib/ 2011-04-25 Jan Kratochvil * paranoia.cc (ENUM_BITFIELD): Remove. gcc/ 2011-04-25 Jan Kratochvil * system.h (ENUM_BITFIELD): Remove. libcpp/ 2011-04-25 Jan Kratochvil * system.h (ENUM_BITFIELD): Remove. ^^^ gcc approval -- for binutils part: include/ 2011-04-25 Jan Kratochvil * bfdlink.h (ENUM_BITFIELD): Remove. gdb/ 2011-04-25 Jan Kratochvil * defs.h (ENUM_BITFIELD): Remove. --- include/ansidecl.h (revision 172929) +++ include/ansidecl.h (working copy) @@ -416,6 +416,15 @@ So instead we use the macro below and te #define EXPORTED_CONST const #endif +/* Be conservative and only use enum bitfields with GCC. + FIXME: provide a complete autoconf test for buggy enum bitfields. */ + +#if (GCC_VERSION > 2000) +#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE +#else +#define ENUM_BITFIELD(TYPE) unsigned int +#endif + #ifdef __cplusplus } #endif --- contrib/paranoia.cc (revision 172929) +++ contrib/paranoia.cc (working copy) @@ -169,7 +169,6 @@ lines }; #undef DEFTREECODE -#define ENUM_BITFIELD(X) enum X #define class klass #include "real.h" --- gcc/system.h(revision 172929) +++ gcc/system.h(working copy) @@ -598,15 +598,6 @@ extern int vsnprintf(char *, size_t, con #define HOST_BIT_BUCKET "/dev/null" #endif -/* Be conservative and only use enum bitfields with GCC. - FIXME: provide a complete autoconf test for buggy enum bitfields. */ - -#if (GCC_VERSION > 2000) -#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE -#else -#define ENUM_BITFIELD(TYPE) unsigned int -#endif - #ifndef offsetof #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER) #endif --- libcpp/system.h (revision 172929) +++ libcpp/system.h (working copy) @@ -357,15 +357,6 @@ extern void abort (void); || (__STDC_VERSION__ >= 199901L)) #endif -/* Be conservative and only use enum bitfields with GCC. - FIXME: provide a complete autoconf test for buggy enum bitfields. */ - -#if (GCC_VERSION > 2000) -#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE -#else -#define ENUM_BITFIELD(TYPE) unsigned int -#endif - #ifndef offsetof #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER) #endif --- include/bfdlink.h +++ include/bfdlink.h @@ -24,12 +24,6 @@ #ifndef BFDLINK_H #define BFDLINK_H -#if (__GNUC__ * 1000 + __GNUC_MINOR__ > 2000) -#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE -#else -#define ENUM_BITFIELD(TYPE) unsigned int -#endif - /* Which symbols to strip during a link. */ enum bfd_link_strip { --- gdb/defs.h +++ gdb/defs.h @@ -271,15 +271,6 @@ struct cleanup void *arg; }; -/* Be conservative and use enum bitfields only with GCC. - This is copied from gcc 3.3.1, system.h. */ - -#if defined(__GNUC__) && (__GNUC__ >= 2) -#define ENUM_BITFIELD(TYPE) enum TYPE -#else -#define ENUM_BITFIELD(TYPE) unsigned int -#endif - /* vec.h-style vectors of strings want a typedef for char * . */ typedef char * char_ptr;