[Bug middle-end/21374] [4.2/4.3/4.4 regression] ICE with nested function
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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