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