This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: [Bug target/41246] should "sorry" when regparm=3 and nested functions are encountered
- From: Graham Stott <graham dot stott at btinternet dot com>
- To: gcc-bugs at gcc dot gnu dot org, gcc-bugzilla at gcc dot gnu dot org
- Date: Thu, 3 Sep 2009 18:01:27 +0000 (GMT)
- Subject: Re: [Bug target/41246] should "sorry" when regparm=3 and nested functions are encountered
All,
nested functions get passed a hidden argumment akin to static link/display
so that nested function can access the locals of its enclosing function.
Passing a nested function as parameter to another function isn't going
to work correctly when the function is eventually called the
hidden argument isn't going to be setup correctly.
I think the code is thus invalid and GCC should reject it.
Regards
Graham
--- On Thu, 3/9/09, bonzini at gnu dot org <gcc-bugzilla@gcc.gnu.org> wrote:
> From: bonzini at gnu dot org <gcc-bugzilla@gcc.gnu.org>
> Subject: [Bug target/41246] should "sorry" when regparm=3 and nested functions are encountered
> To: gcc-bugs@gcc.gnu.org
> Date: Thursday, 3 September, 2009, 6:11 PM
>
>
> ------- Comment #5 from bonzini at gnu dot org?
> 2009-09-03 17:11 -------
> Yes, if you use nested functions you can just use
> -mregparm=2 globally, that's
> a much better solution.
>
>
> --
>
> bonzini at gnu dot org changed:
>
> ? ? ? ? ???What?
> ? |Removed? ? ? ? ? ?
> ? ? ? ???|Added
> ----------------------------------------------------------------------------
> ? ? ? ? ?
> ???Status|UNCONFIRMED? ? ?
> ? ? ? ? ???|NEW
> ? ???Ever Confirmed|0? ?
> ? ? ? ? ? ? ? ?
> ? ? ???|1
> ???Last reconfirmed|0000-00-00
> 00:00:00? ? ? ???|2009-09-03
> 17:11:30
> ? ? ? ? ? ?
> ???date|? ? ? ? ?
> ? ? ? ? ? ? ? ?
> ? |
> ? ? ? ? ? ? Summary|%ecx
> corruption when? ? ? ? |should "sorry"
> when
> ? ? ? ? ? ? ? ?
> ???|combining -regparm=3
> with???|regparm=3 and nested
> ? ? ? ? ? ? ? ?
> ???|nested functions? ? ?
> ? ? ? |functions are encountered
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41246
>
>