[Bug middle-end/39625] [4.5 Regression] Revision 145338 breaks ability to build Ada
--- Comment #39 from rob1weld at aol dot com 2009-04-17 23:32 --- (In reply to comment #38) > Maybe fixed now (the reduced testcase is). Please re-open if not. Confirmed. Thank you Richard. # uname -a OpenBSD openbsd.localdomain 4.5 GENERIC#19 i386 Host Compiler: # egcc -v Reading specs from /usr/local/lib/gcc-lib/i386-unknown-openbsd4.5/3.3.6/specs Configured with: /usr/obj/i386/gcc-3.3.6/gcc-3.3.6/configure --verbose --program-transform-name=s,^,e, --disable-nls --with-system-zlib --enable-languages=c,c++,f77,objc,ada --enable-cpp --with-gnu-as --with-gnu-ld --enable-shared --prefix=/usr/local --sysconfdir=/etc --mandir=/usr/local/man --infodir=/usr/local/info Thread model: single gcc version 3.3.6 # gcc/xgcc -v Using built-in specs. Target: i386-unknown-openbsd4.5 Configured with: /home/user/gcc_trunk/configure --prefix=/usr/obj/gcc_installed --enable-languages=c,ada,c++ --with-as=/usr/bin/as --with-ld=/usr/bin/ld --with-gnu-as --with-gnu-ld --enable-sjlj-exceptions --enable-shared --enable-multilib --enable-decimal-float --with-long-double-128 --with-tune=k8 --with-cpu=k8 --with-arch=k8 --enable-threads --sysconfdir=/etc --mandir=/usr/local/man --infodir=/usr/local/info --disable-stage1-checking --enable-checking=release --with-gmp=/usr/local --with-mpfr=/usr/local Thread model: posix gcc version 4.5.0 20090417 (experimental) [trunk revision 146277] (GCC) Thanks, Rob PS: The middle-end now permits the _build_ of gcc with the Language Ada selected to complete without failure, except for this unrelated issue: http://gcc.gnu.org/ml/gcc-patches/2008-06/msg00444.html . The actual ability of the Ada Language to operate correctly or pass the Testsuites is a _different_ issue that needs a separate RFE unrelated to #39625 . -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 Regression] Revision 145338 breaks ability to build Ada
--- Comment #37 from rguenth at gcc dot gnu dot org 2009-04-16 10:45 --- Subject: Bug 39625 Author: rguenth Date: Thu Apr 16 10:45:18 2009 New Revision: 146168 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=146168 Log: 2009-04-16 Richard Guenther PR middle-end/39625 * tree-cfg.c (make_blocks): Split statements with to-be abnormal SSA names on the lhs. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-cfg.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 Regression] Revision 145338 breaks ability to build Ada
--- Comment #38 from rguenth at gcc dot gnu dot org 2009-04-16 10:45 --- Maybe fixed now (the reduced testcase is). Please re-open if not. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 Regression] Revision 145338 breaks ability to build Ada
-- rguenth at gcc dot gnu dot org changed: What|Removed |Added Summary|[4.5 regression] Revision |[4.5 Regression] Revision |145338 breaks ability to|145338 breaks ability to |build Ada |build Ada Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #36 from rguenth at gcc dot gnu dot org 2009-04-16 09:22 --- Created an attachment (id=17647) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17647&action=view) patch Ok, I think I see the issue. The attached patch should fix it (it does fix the testcase). I am going to bootstrap/test it on x86_64-linux, can somebody check if this PR is fixed with the patch? -- rguenth at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rguenth at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #35 from ebotcazou at gcc dot gnu dot org 2009-04-16 09:13 --- > Ok, so we _do_ run lower_eh_constructs, but > > formal = p__proc_next (formal); > > returns false for stmt_could_throw_p (stmt). Why? (Not that I can follow > the Ada testcase ... but I suppose the above function call returns abnormally) There are no exceptions. > Is this Ada playing games behind the middle-end and implementing exceptions > on its own pretending that there are none? In which case the LHS of the > above stmt should be marked volatile at least - after all non-EH SJLJ stuff > would need to follow C / POSIX requirements, no? Ada isn't playing anything, it's just using the existing generic support for __builtin_setjmp / __builtin_longjmp and nonlocal gotos which is distinct from the exception machinery. Compensating bits need to be added for it too. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #34 from rguenth at gcc dot gnu dot org 2009-04-16 08:59 --- And of course the testcase compiles fine with -fexceptions. Hmmm? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #33 from rguenth at gcc dot gnu dot org 2009-04-16 08:58 --- Ok, so we _do_ run lower_eh_constructs, but formal = p__proc_next (formal); returns false for stmt_could_throw_p (stmt). Why? (Not that I can follow the Ada testcase ... but I suppose the above function call returns abnormally) Hm, I guess because flag_exceptions is false. Is this Ada playing games behind the middle-end and implementing exceptions on its own pretending that there are none? In which case the LHS of the above stmt should be marked volatile at least - after all non-EH SJLJ stuff would need to follow C / POSIX requirements, no? I'm of course sort of confused here. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #32 from rguenther at suse dot de 2009-04-16 08:45 --- Subject: Re: [4.5 regression] Revision 145338 breaks ability to build Ada On Thu, 16 Apr 2009, ebotcazou at gcc dot gnu dot org wrote: > --- Comment #31 from ebotcazou at gcc dot gnu dot org 2009-04-16 08:33 > --- > > Do you happen to have a testcase? > > Attached in the PR. > > : > formal_24(ab) = p__proc_next (formal_6(ab)); > goto ; > > # formal_7(ab) = PHI formal_7(ab)(6), formal_6(ab)(9), formal_6(ab)(10), formal_6(ab)(11), > formal_6(ab)(12), formal_6(ab)(13), formal_24(ab)(22), formal_6(ab)(14), > formal_6(ab)(15), formal_6(ab)(16), formal_6(ab)(17), formal_6(ab)(18), > formal_6(ab)(19), formal_6(ab)(20)> > > the reaching SSA_NAME on the abnormal edge is wrong. This breaks inlining. Hum, an Ada testcase ... so p__proc_next calls longjmp, correct? And the target in question uses SJLJ exceptions (so this particular case is an exception problem)? I wonder if a C testcase explicitly using setjmp/longjmp would be valid with all the constraints placed on how they interact on register variable values. I'll dig into where we deal with SJLJ EH lowering ... :/ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #31 from ebotcazou at gcc dot gnu dot org 2009-04-16 08:33 --- > Do you happen to have a testcase? Attached in the PR. : formal_24(ab) = p__proc_next (formal_6(ab)); goto ; # formal_7(ab) = PHI the reaching SSA_NAME on the abnormal edge is wrong. This breaks inlining. > I compensated for the loss of the aboveduring EH lowering when we split > blocks at these points. __builtin_setjmp / __builtin_longjmp and nonlocal gotos don't use the EH machinery, you need a specific treatment for them. > The intent of the patch was to make the gimple predicates valid after > gimplification (and not only during it), so the fix should be applied > during CFG creation or lowering. OK. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #30 from rguenther at suse dot de 2009-04-16 08:06 --- Subject: Re: [4.5 regression] Revision 145338 breaks ability to build Ada On Thu, 16 Apr 2009, ebotcazou at gcc dot gnu dot org wrote: > --- Comment #29 from ebotcazou at gcc dot gnu dot org 2009-04-16 07:57 > --- > Richard, > > the removal of > > /* If the RHS of the MODIFY_EXPR may throw or make a nonlocal goto > and the LHS is a user variable, then we need to introduce a formal > temporary. This way the optimizers can determine that the user > variable is only modified if evaluation of the RHS does not throw. */ > > from is_gimple_reg_or_call_rhs breaks __builtin_setjmp / __builtin_longjmp > (and > probably nonlocal gotos). Do you happen to have a testcase? I compensated for the loss of the above during EH lowering when we split blocks at these points. Note the comment continued as - Don't force a temp of a non-renamable type; the copy could be - arbitrarily expensive. Instead we will generate a VDEF for - the assignment. */ and the check itself applied as - && ((TREE_CODE (t) == CALL_EXPR && TREE_SIDE_EFFECTS (t)) - || tree_could_throw_p (t))) thus all non-pure/const calls would get the extra copy. The intent of the patch was to make the gimple predicates valid after gimplification (and not only during it), so the fix should be applied during CFG creation or lowering. Thanks, Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #29 from ebotcazou at gcc dot gnu dot org 2009-04-16 07:57 --- Richard, the removal of /* If the RHS of the MODIFY_EXPR may throw or make a nonlocal goto and the LHS is a user variable, then we need to introduce a formal temporary. This way the optimizers can determine that the user variable is only modified if evaluation of the RHS does not throw. */ from is_gimple_reg_or_call_rhs breaks __builtin_setjmp / __builtin_longjmp (and probably nonlocal gotos). -- ebotcazou at gcc dot gnu dot org changed: What|Removed |Added CC||rguenth at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #28 from ebotcazou at gcc dot gnu dot org 2009-04-16 07:33 --- Created an attachment (id=17646) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17646&action=view) Reduced testcase. To be gnatchop-ed and compiled at -O. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #27 from rob1weld at aol dot com 2009-04-11 02:27 --- (In reply to comment #26) > << > We still have the issue that all Platforms accept the (usually non-default) > ./configure option "--enable-sjlj-exceptions" which leads to this Bug > on supported Platforms (and leads us down the path of breaking that Option). > >> > >No, platforms that do not use ZCX with GNAT use GNAT's front-end setjmp/longjmp > implementation, which is completely different from GCC's sjlj exception > (--enable-sjlj-exceptions related to GCC sjlj, not GNAT's fe setjmp/longjmp), > so once again, these platforms are not affected by this bug, only windows is. OK, multiple exception handling mechanisms. I became 'at odds with helpfulness' somewhere around comment #21. I only used that Option since OpenBSD Ports had used it (and without quoting OpenBSD source, and their license, they seem to use that option if Java is being built) otherwise I would have not included it. > Anyway, if "someone" (e.g. Richard Guenther, who apparently introduced it) > can fix this bug, that'd be great, I think this on the side discussion is > only generating noise and confusion at this point. I did "CC" him on this when I mentioned him in comment #7 but someone removed him from the "CC". In comment #14 I left open the possibility that someone might be paid by their Employer to fix this (or desire to fix _their_ OS) and I don't want to steal food from their mouth. Comment #25 (my last post) seemed valid as someone else had reported a workaround (and not a fix), that is all that tempted me to make this thread longer. I will refrain from further comment until either I have a "fix" _or_ I thank one of you for fixing this (Language that I do not use, on an OS that I do not use). I was thinking of the welfare of others (and gcc) too much, Rob -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #26 from charlet at gcc dot gnu dot org 2009-04-09 15:40 --- << Is the (small amount of ?) code in "Gnat Pro" going to be available (someday) for "gcc Ada". That may fix these problems. >> There's still confusion I'm afraid. GCC Ada is just an Ada compiler. GNAT Pro is a complete commercial Ada toolchain (where GCC is one of many components), so comparing both is like comparing apples and oranges. Anyway, that's not really relevant to this discussion since GNAT Pro is not based on GCC 4.5 as of today, and so does not suffer from this PR (yet) in any case. In other words, there are no "code" in GNAT Pro that would somehow address this recent bug in GCC 4.5. << We still have the issue that all Platforms accept the (usually non-default) ./configure option "--enable-sjlj-exceptions" which leads to this Bug on supported Platforms (and leads us down the path of breaking that Option). >> No, platforms that do not use ZCX with GNAT use GNAT's front-end setjmp/longjmp implementation, which is completely different from GCC's sjlj exception (--enable-sjlj-exceptions related to GCC sjlj, not GNAT's fe setjmp/longjmp), so once again, these platforms are not affected by this bug, only windows is. Anyway, if "someone" (e.g. Richard Guenther, who apparently introduced it) can fix this bug, that'd be great, I think this on the side discussion is only generating noise and confusion at this point. Richard, if you want to reproduce the bug, you'll need to modify the system-xxx.ads file you use on your config to set ZCX_By_Default to False, that should be sufficient. Arno -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #25 from rob1weld at aol dot com 2009-04-09 15:16 --- That is good news, (that "hppa2.0w-hp-hpux11.11" ("PA-RISC 2.0."), which we claim is supported, is not the same/similar to "hpux-ia64", which has two "ZCX = False" entries). We don't want to break that. Nice machine. Is the (small amount of ?) code in "Gnat Pro" going to be available (someday) for "gcc Ada". That may fix these problems. - I wondered why we had: # diff -Naur /mnt/drive2/gcc_trunk/gcc/ada/system-mingw.ads /mnt/drive2/gcc_trunk/gcc/ada/system-mingw-x86_64.ads | tail -9 | head -6 @@ -141,7 +141,7 @@ Always_Compatible_Rep : constant Boolean := False; Suppress_Standard_Library : constant Boolean := False; Use_Ada_Main_Program_Name : constant Boolean := False; - ZCX_By_Default: constant Boolean := False; + ZCX_By_Default: constant Boolean := True; and found this thread: http://www.nabble.com/gcc-4.3.x-Ada-compiler-td22192698.html where Danny Smith (using "gcc version 4.4.0-dw2 20090221") says he "modified system-mingw.ads with this": Index: system-mingw.ads === --- system-mingw.ads (revision 144345) +++ system-mingw.ads (working copy) @@ -141,7 +141,7 @@ Always_Compatible_Rep : constant Boolean := False; Suppress_Standard_Library : constant Boolean := False; Use_Ada_Main_Program_Name : constant Boolean := False; - ZCX_By_Default: constant Boolean := False; + ZCX_By_Default: constant Boolean := True; GCC_ZCX_Support : constant Boolean := True; which both Rolf Ebert and Danny Smith claim fixes "gcc 4.4.0 20090221", but Danny compiled using "--disable-sjlj-exceptions". We still have the issue that all Platforms accept the (usually non-default) ./configure option "--enable-sjlj-exceptions" which leads to this Bug on supported Platforms (and leads us down the path of breaking that Option). I'll log out of my Debian 5.0 OS and go back to my OpenBSD OS and look at this from there. Thank you for your answers, Rob -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #24 from ebotcazou at gcc dot gnu dot org 2009-04-09 08:07 --- > Would that be what "we" refer to as "hpux-ia64" ? No, IA-64 and PA-RISC are different things. > "GNAT Pro is the natural Ada solution for HPs Alpha server and Integrity > server (I64) platforms" or is "gcc's Ada" not quite "GNAT Pro". Yes, gcc's Ada is GNAT, certainly not GNAT Pro. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #23 from charlet at gcc dot gnu dot org 2009-04-09 06:37 --- Certainly, pa-hpux and ia64-hpux are two very different platforms as far as GCC is concerned. Also, yes, FSF GCC and GNAT Pro are two very different beasts with a different list of supported/tested platforms, versions, features, etc..., and you cannot draw any conclusion about one from info coming from the other. Arno -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #22 from rob1weld at aol dot com 2009-04-09 03:51 --- (In reply to comment #21) > > It looks like this would affect: hpux-ia64, lynxos-ppc, lynxos-x86, ... > ... > You can exclude all cross platforms; moreover hpux-ia64 is not really > supported. URL http://gcc.gnu.org/gcc-4.5/criteria.html claims that "hppa2.0w-hp-hpux11.11" is a "Secondary Platform" and URL http://en.wikipedia.org/wiki/PA-RISC says: "The ISA was extended in 1996 to 64-bits, with this revision named PA-RISC 2.0." and also says "Newer Itanium-based machines are intended to succeed PA-RISC" . Would that be what "we" refer to as "hpux-ia64" ? They seems to be much newer versions of that Operating System, I can Google references to "HP-UX 11.31". Does our "Criteria" page need an update? The URL http://en.wikipedia.org/wiki/HP-UX says "(11.31) release supports both PA-RISC and IA-64 [http://h20338.www2.hp.com/hpux11i/downloads/HP-UX_Binary_Compatibility.pdf] (July 23 2008)". This URL says: http://h21007.www2.hp.com/portal/site/dspp/menuitem.5179cc2b5bf6406ac6713f8da973a801/?jumpid=reg_R1002_USEN&productId=19356 "GNAT Pro is the natural Ada solution for HPs Alpha server and Integrity server (I64) platforms" or is "gcc's Ada" not quite "GNAT Pro". Thanks, Rob -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #21 from ebotcazou at gcc dot gnu dot org 2009-04-07 05:13 --- > It looks like this would affect: hpux-ia64, lynxos-ppc, lynxos-x86, > vxworks-arm, vxworks-m68k, vxworks-mips, vxworks-sparcv9 and vxworks-x86 > with the "default" ./configure _AND_ every other Target _IF_ the Builder > chooses to use "--enable-sjlj-exceptions" (which is 'legal'). You can exclude all cross platforms; moreover hpux-ia64 is not really supported. > Someone else "confirmed" this on "i686-pc-cygwin". It's the only platform really affected. -- ebotcazou at gcc dot gnu dot org changed: What|Removed |Added Severity|enhancement |normal Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-04-07 05:13:57 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #20 from rob1weld at aol dot com 2009-04-07 04:00 --- (In reply to comment #8) > Bug is not in an FSF-GCC supported port. > Does the problem reproduce on supported targets? Otherwise this bug > should be closed as "INVALID". (In reply to comment #12) >> As for the backend issue, may be it will show up on i386-unknown-freebsd >> too (a primary platform), and there's a gcc/ada/system-freebsd-x86.ads >> in the FSF tree. > Most probably not, you need FE SJLJ exceptions. I did some studying ;) . The "current" Docs do not show this info but 4.2.4 does. These 'quotes' are derived from this URL: http://gcc.gnu.org/onlinedocs/gcc-4.2.4/gnat_ugn_unw/Exception-Handling-Control.html 0. Any Target may be configured to use SJLJ. 1. GNAT uses two methods for handling exceptions at run-time. The setjmp/longjmp method and zero cost exception handling. 2. The setjmp/longjmp approach is available on all targets, while the zero cost approach is available on selected targets. With ZCX to propagate an exception through a C/C++ code, the C/C++ code must be compiled with the -funwind-tables GCC's option. 3. To determine whether zero cost exceptions can be used for a particular target, look at the private part of the file system.ads. Either GCC_ZCX_Support or Front_End_ZCX_Support must be True to use the zero cost approach. If both of these switches are set to False, this means that zero cost exception handling is not yet available for that target. So ... Two strikes and your out: # grep ZCX /mnt/drive2/gcc_trunk/gcc/ada/system* | grep False /mnt/drive2/gcc_trunk/gcc/ada/system.ads: ZCX_By_Default: constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system.ads: GCC_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system.ads: Front_End_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-aix.ads: ZCX_By_Default: constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-hpux-ia64.ads: ZCX_By_Default : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-hpux-ia64.ads: GCC_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-linux-alpha.ads: Front_End_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-linux-mips.ads: Front_End_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-linux-mipsel.ads: Front_End_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-linux-s390.ads: Front_End_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-linux-s390x.ads: Front_End_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-linux-sparc.ads: Front_End_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-linux-sparcv9.ads: Front_End_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-lynxos-ppc.ads: ZCX_By_Default : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-lynxos-ppc.ads: GCC_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-lynxos-x86.ads: ZCX_By_Default : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-lynxos-x86.ads: GCC_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-mingw.ads: ZCX_By_Default: constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-rtems.ads: ZCX_By_Default: constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-vms.ads: GCC_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-vxworks-arm.ads: ZCX_By_Default : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-vxworks-arm.ads: GCC_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-vxworks-m68k.ads: ZCX_By_Default : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-vxworks-m68k.ads: GCC_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-vxworks-mips.ads: ZCX_By_Default : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-vxworks-mips.ads: GCC_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-vxworks-ppc.ads: ZCX_By_Default : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-vxworks-sparcv9.ads: ZCX_By_Default : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-vxworks-sparcv9.ads: GCC_ZCX_Support : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-vxworks-x86.ads: ZCX_By_Default : constant Boolean := False; /mnt/drive2/gcc_trunk/gcc/ada/system-vxworks-x86.ads: GCC_ZCX_Support : constant Boolean := False; It looks like this woul
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #19 from rainer at emrich-ebersheim dot de 2009-04-05 22:18 --- (In reply to comment #18) > > Is there a supported platform currently using FE SJLJ? > > Windows. > I confirm the exactly same issue for i686-pc-cygwin. And I think it is the same for the *mingw32 targets. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #18 from ebotcazou at gcc dot gnu dot org 2009-04-05 21:43 --- > Is there a supported platform currently using FE SJLJ? Windows. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #17 from rob1weld at aol dot com 2009-04-05 20:53 --- > I've found machines and hosting to add i686 What a great guy! More patches / support files / etc. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34717 ports/lang/gcc/4.3/patches/ http://www.openbsd.org/cgi-bin/cvsweb/ports/lang/gcc/4.3/patches/ ports/lang/gcc/3.3/ http://www.openbsd.org/cgi-bin/cvsweb/ports/lang/gcc/3.3/ Back in an hour, Rob -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #16 from laurent at guerby dot net 2009-04-05 20:23 --- I've found machines and hosting to add i686 free/net/openBSD to the compile farm, they should be online in the coming weeks, this allow smoother GCC development and testing on these platforms. http://gcc.gnu.org/wiki/CompileFarm -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #15 from rob1weld at aol dot com 2009-04-05 20:10 --- (In reply to comment #9) > > Using the BSD Ports I was able to build Ada, up until revision < 145338 . > > While I do not use Ada it would be unfortunate to lose this Language. > > This language is not supported in the FSF tree on OpenBSD, i.e. there is no > appropriate system-*.ads file in the ada/ sub-directory. > Version: 3.3.6, Package name: gcc-3.3.6 Maintained by: Marc Espie es...@openbsd.org http://openports.se/lang/gcc/3.3 Is this what we need ? [PATCH] ada: Add support for OpenBSD http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00079.html Rob -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #14 from rob1weld at aol dot com 2009-04-05 20:03 --- (In reply to comment #10) > I think this should be kept open as an enhancement request, if we have a > willing tester on openbsd I'll try to help. I'll do my best to help but I know that there are numerous people who are more qualified than me (knows Ada, the middle-end, etc.) _and_ who have an long term interest in keeping this alive (someone from Adacore /OpenBSD). If you want me to test Patches, fire away, Rob -- rob1weld at aol dot com changed: What|Removed |Added Status|WAITING |UNCONFIRMED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #13 from laurent at guerby dot net 2009-04-05 18:46 --- Is there a supported platform currently using FE SJLJ? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #12 from ebotcazou at gcc dot gnu dot org 2009-04-05 18:26 --- > As for the backend issue, may be it will show up on i386-unknown-freebsd too > (a > primary platform), and there's a gcc/ada/system-freebsd-x86.ads in the FSF > tree. Most probably not, you need FE SJLJ exceptions. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #11 from laurent at guerby dot net 2009-04-05 18:18 --- For reference, NetBSD Ada support patch was also posted recently: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37309 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #10 from laurent at guerby dot net 2009-04-05 18:12 --- I think this should be kept open as an enhancement request, if we have a willing tester on openbsd I'll try to help. As for the backend issue, may be it will show up on i386-unknown-freebsd too (a primary platform), and there's a gcc/ada/system-freebsd-x86.ads in the FSF tree. -- laurent at guerby dot net changed: What|Removed |Added CC||laurent at guerby dot net Severity|major |enhancement http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #9 from ebotcazou at gcc dot gnu dot org 2009-04-05 17:55 --- > Using the BSD Ports I was able to build Ada, up until revision < 145338 . > While I do not use Ada it would be unfortunate to lose this Language. This language is not supported in the FSF tree on OpenBSD, i.e. there is no appropriate system-*.ads file in the ada/ sub-directory. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #8 from steven at gcc dot gnu dot org 2009-04-05 17:40 --- Bug is not in an FSF-GCC supported port. Does the problem reproduce on supported targets? Otherwise this bug should be closed as "INVALID". -- steven at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |WAITING http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625
[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
--- Comment #7 from rob1weld at aol dot com 2009-04-05 17:31 --- I can build gcc with the Ada Language using Trunk revision 145337 but the changes made in the next revision cause the build to fail. The Changelog indicates Richard Guenther made the changes on 2009-03-31. There were no changes made to Ada, only to the middle-end (AFAIK). # ./contrib/gcc_update -r 145338 Updating SVN tree Ugcc/java/java-gimplify.c Ugcc/java/ChangeLog Ugcc/tree.h Ugcc/ChangeLog Agcc/testsuite/gcc.dg/tree-ssa/pr23401.c Agcc/testsuite/gcc.dg/tree-ssa/pr27810.c Ugcc/testsuite/ChangeLog Ugcc/tree-eh.c Ugcc/gimplify.c Ugcc/tree-ssa-pre.c Ugcc/tree-mudflap.c Ugcc/gimple.c Ugcc/gimple.h Ugcc/tree-cfg.c Updated to revision 145338. I do not know the middle-end well enough to tamper with it. I would appreciate if the remainder of this work could be undertaken by someone else. I do not think that this is entirely Operating System specific, others may be affected too. # gcc/xgcc -v Using built-in specs. Target: i386-unknown-openbsd4.5 Configured with: /home/user/gcc_trunk/configure --prefix=/usr/obj/gcc_installed --enable-languages=c,ada,c++ --with-as=/usr/bin/as --with-ld=/usr/bin/ld --with-gnu-as --with-gnu-ld --enable-sjlj-exceptions --enable-shared --enable-multilib --enable-decimal-float --with-long-double-128 --with-tune=k8 --with-cpu=k8 --with-arch=k8 --enable-threads --sysconfdir=/etc --mandir=/usr/local/man --infodir=/usr/local/info --disable-stage1-checking --enable-checking=release --with-gmp=/usr/local --with-mpfr=/usr/local Thread model: posix gcc version 4.5.0 20090331 (experimental) [trunk revision 145338] (GCC) ../../xgcc -B../../ -c -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -gnatpg -gnata -I- -I../rts -I. -I/home/user/gcc_trunk/gcc/ada /home/user/gcc_trunk/gcc/ada/prj-part.adb -o prj-part.o /home/user/gcc_trunk/gcc/ada/prj-part.adb: In function 'Prj.Part.Parse_Single_Project': /home/user/gcc_trunk/gcc/ada/prj-part.adb:159: warning: 'Project' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:159: note: 'Project' was declared here /home/user/gcc_trunk/gcc/ada/prj-part.adb:160: warning: 'Extends_All' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:160: note: 'Extends_All' was declared here /home/user/gcc_trunk/gcc/ada/prj-part.adb:952: warning: 'Canonical_Path_Name' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:953: warning: 'Project_Directory' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:957: warning: 'Extending' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:959: warning: 'Extended_Project' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:965: warning: 'Name_From_Path' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:966: warning: 'Name_Of_Project' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:968: warning: 'Duplicated' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:970: warning: 'First_With' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:971: warning: 'Imported_Projects' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:977: warning: 'Proj_Qualifier' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:978: warning: 'Qualifier_Location' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:939: warning: '' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:939: warning: '' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:961: warning: 'a_project_name_and_node.node' may be used uninitialized in this function Unable to coalesce ssa_names 96 and 455 which are marked as MUST COALESCE. first_with_96(ab) and first_with_455(ab) +===GNAT BUG DETECTED==+ | 4.5.0 20090331 (experimental) [trunk revision 145338] (i386-unknown-openbsd4.5) GCC error:| | SSA corruption | | Error detected around /home/user/gcc_trunk/gcc/ada/prj-part.adb:939 | | Please submit a bug report; see http://gcc.gnu.org/bugs.html.| | Use a subject line meaningful to you and us to track the bug.| | Include the entire contents of this bug box in the report. | | Include the exact gcc or gnatmake command that you entered. | | Also include sources listed below in gnatchop format | | (concatenated together with no headers between files). | +==+ Pleas