[Mesa-dev] Use of nested functions in nouveau_array.c
Brian Paul
brianp at vmware.com
Thu Dec 1 06:46:52 PST 2011
On 12/01/2011 07:36 AM, İsmail Dönmez wrote:
> Hi;
>
> On Wed, Nov 9, 2011 at 8:08 PM, İsmail Dönmez <ismail at namtrac.org
> <mailto:ismail at namtrac.org>> wrote:
>
> Another thing to notice that nested functions require executable
> stack. This is also another reason to get rid of them.
>
> On Wed, Nov 9, 2011 at 3:11 PM, İsmail Dönmez <ismail at namtrac.org
> <mailto:ismail at namtrac.org>> wrote:
>
> Hi;
>
> nouveau_array.c seems to be using nested functions which is
> not supported by clang (or the EDG based compilers it seems),
> the reduced testcase looks like this:
>
> foo()
> {
> auto void f();
> void f() {};
> }
>
> I talked to the clang developers and they don't plan to
> support this GNU extension since (they say) it would be too
> hard to support it in the parser. Clang website notes the
> following about this issue (from
> http://clang.llvm.org/docs/UsersManual.html#c_unimpl_gcc )
>
> <quote>
> clang does not support nested functions; this is a complex
> feature which is infrequently used, so it is unlikely to be
> implemented anytime soon.
> </quote>
>
> Is there any chance of removing such code from Mesa?
>
>
> Would be nice to get a comment on this.
I imagine you're the first person to try to compile that driver with
clang because nobody else has mentioned this before.
I don't think anyone would object to the code being rewritten to avoid
nested functions. Is that something that you could do?
-Brian
More information about the mesa-dev
mailing list