[Bug middle-end/21374] [4.2/4.3/4.4 regression] ICE with nested function

2009-01-14 Thread laurent at guerby dot net


--- Comment #6 from laurent at guerby dot net  2009-01-14 12:38 ---
I think return of variable sized objects are handled by the Ada front-end using
a secondary stack (and hidden pointers to boundary records) and so the back-end
doesn't see anything like the code above. The ACATS testsuite is very likely
checking that stuff extensively, so testing a patch disabling that GNU C
feature with Ada enabled will be enough to validate it.


-- 

laurent at guerby dot net changed:

   What|Removed |Added

 CC||laurent at guerby dot net


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21374



[Bug middle-end/21374] [4.2/4.3/4.4 regression] ICE with nested function

2009-01-14 Thread joseph at codesourcery dot com


--- Comment #7 from joseph at codesourcery dot com  2009-01-14 13:49 ---
Subject: Re:  [4.2/4.3/4.4 regression] ICE with nested
 function

If there is language-independent code that's supposed to handle this 
extension that doesn't handle anything in any other language, I'd be fine 
with deprecating and then removing the feature (returning variable-size 
types from nested functions) from GNU C (unless a lot of users show up 
after deprecation) - provided it at least isn't used in glibc (which does 
use some nested functions).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21374



[Bug middle-end/21374] [4.2/4.3/4.4 regression] ICE with nested function

2009-01-14 Thread jakub at gcc dot gnu dot org


--- Comment #8 from jakub at gcc dot gnu dot org  2009-01-14 15:00 ---
As any call to a nested function with VL return type ICEs (even if the result
isn't used) in 3.4.5 through 4.4.0, I doubt this is used very widely.

That said, if we deprecate it now, we'd have to fix it, warning about
deprecation and then ICE doesn't make much sense.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21374



[Bug middle-end/21374] [4.2/4.3/4.4 regression] ICE with nested function

2009-01-14 Thread joseph at codesourcery dot com


--- Comment #9 from joseph at codesourcery dot com  2009-01-14 15:06 ---
Subject: Re:  [4.2/4.3/4.4 regression] ICE with nested
 function

If all such calls ICE since 3.4.5 then I think we can just remove the 
feature (giving an error if a nested function is declared to return a 
variable-length type).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21374



[Bug middle-end/21374] [4.2/4.3/4.4 regression] ICE with nested function

2009-01-13 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2009-01-13 09:29 ---
I think the best solution is to explore the possibility of lowering the call
to what it will look like in the end - pass return values of variable size
by reference.  Hopefully all targets will end up doing this ;)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21374



[Bug middle-end/21374] [4.2/4.3/4.4 regression] ICE with nested function

2009-01-13 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2009-01-13 09:33 ---
Or, can we make that invalid GNU C please? ;)


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jsm28 at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21374



[Bug middle-end/21374] [4.2/4.3/4.4 regression] ICE with nested function

2009-01-13 Thread joseph at codesourcery dot com


--- Comment #5 from joseph at codesourcery dot com  2009-01-13 12:52 ---
Subject: Re:  [4.2/4.3/4.4 regression] ICE with nested
 function

Does standard Ada allow something like this?  If so, there's not much 
point making it invalid GNU C.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21374



[Bug middle-end/21374] [4.2/4.3/4.4 regression] ICE with nested function

2008-12-31 Thread reichelt at gcc dot gnu dot org


--- Comment #2 from reichelt at gcc dot gnu dot org  2008-12-31 22:09 
---
The testcase in comment #1 actually fails since GCC 3.4.5 when compiled without
any flags.


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||reichelt at gcc dot gnu dot
   ||org
  Component|tree-optimization   |middle-end
   Keywords||monitored
  Known to fail||3.4.5 4.0.0 4.0.4 4.1.2
   ||4.2.4 4.3.2 4.4.0
  Known to work||3.4.4
Summary|ICE in  |[4.2/4.3/4.4 regression] ICE
   |declare_return_variable, at |with nested function
   |tree-inline.c:906   |
   Target Milestone|--- |4.2.5


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21374