[Bug middle-end/39625] [4.5 Regression] Revision 145338 breaks ability to build Ada

2009-04-17 Thread rob1weld at aol dot com


--- 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

2009-04-16 Thread ebotcazou at gcc dot gnu dot org


--- 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=17646action=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

2009-04-16 Thread ebotcazou at gcc dot gnu dot org


--- 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

2009-04-16 Thread rguenther at suse dot de


--- 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

2009-04-16 Thread ebotcazou at gcc dot gnu dot org


--- 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.

bb 22:
  formal_24(ab) = p__proc_next (formal_6(ab));
  goto bb 3;

  # formal_7(ab) = PHI formal_9(ab)(2), formal_5(ab)(3), formal_5(ab)(4),
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.

 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

2009-04-16 Thread rguenther at suse dot de


--- 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.
 
 bb 22:
   formal_24(ab) = p__proc_next (formal_6(ab));
   goto bb 3;
 
   # formal_7(ab) = PHI formal_9(ab)(2), formal_5(ab)(3), formal_5(ab)(4),
 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

2009-04-16 Thread ebotcazou at gcc dot gnu dot org


--- 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

2009-04-16 Thread rguenth at gcc dot gnu dot org


-- 

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

2009-04-16 Thread rguenth at gcc dot gnu dot org


--- 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

2009-04-16 Thread rguenth at gcc dot gnu dot org


--- 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

2009-04-16 Thread rguenth at gcc dot gnu dot org


--- 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

2009-04-16 Thread rguenth at gcc dot gnu dot org


--- 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=17647action=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

2009-04-09 Thread charlet at gcc dot gnu dot org


--- 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

2009-04-09 Thread ebotcazou at gcc dot gnu dot org


--- 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 HP’s 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

2009-04-09 Thread rob1weld at aol dot com


--- 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

2009-04-09 Thread charlet at gcc dot gnu dot org


--- 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

2009-04-08 Thread rob1weld at aol dot com


--- 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_USENproductId=19356

GNAT Pro is the natural Ada solution for HP’s 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

2009-04-06 Thread rob1weld at aol dot com


--- 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 would affect: 

[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada

2009-04-06 Thread ebotcazou at gcc dot gnu dot org


--- 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

2009-04-05 Thread rob1weld at aol dot com


--- 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: 'anonymous' may be
used uninitialized in this function
/home/user/gcc_trunk/gcc/ada/prj-part.adb:939: warning: 'anonymous' 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).   |

[Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada

2009-04-05 Thread steven at gcc dot gnu dot org


--- 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

2009-04-05 Thread ebotcazou at gcc dot gnu dot org


--- 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

2009-04-05 Thread laurent at guerby dot net


--- 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

2009-04-05 Thread laurent at guerby dot net


--- 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

2009-04-05 Thread ebotcazou at gcc dot gnu dot org


--- 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

2009-04-05 Thread laurent at guerby dot net


--- 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

2009-04-05 Thread rob1weld at aol dot com


--- 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

2009-04-05 Thread rob1weld at aol dot com


--- 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

2009-04-05 Thread laurent at guerby dot net


--- 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

2009-04-05 Thread rob1weld at aol dot com


--- 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

2009-04-05 Thread ebotcazou at gcc dot gnu dot org


--- 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

2009-04-05 Thread rainer at emrich-ebersheim dot de


--- 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