[cfe-dev] Unneeded declarations invalidation

Douglas Gregor dgregor at apple.com
Tue Jul 21 15:32:28 PDT 2009


On Jul 21, 2009, at 3:08 PM, Abramo Bagnara wrote:

> Daniel Dunbar ha scritto:
>> On Tue, Jul 21, 2009 at 9:28 AM, Douglas Gregor<dgregor at apple.com>  
>> wrote:
>>> On Jul 21, 2009, at 7:58 AM, Abramo Bagnara wrote:
>>>> Douglas Gregor ha scritto:
>>>> The problem we have is to avoid that AST is missing some parts of  
>>>> what
>>>> GCC is able to compile. Do you think it will be feasible in some  
>>>> way?
>>>>
>>>> Do you have some hints for a patch that you would be willing to  
>>>> accept
>>>> to accomplish that?
>>>
>>> I'm not sure how to proceed. Unfortunately, this is one of two GNU C
>>> extensions I can think of that Clang will *not* support (the other  
>>> is
>>> nested functions), and I can't see any way to work around this
>>> limitation. Not having to worry about variable-length structures
>>> simplifies semantic analysis and other clients (CodeGen being the  
>>> big
>>> one).
>>
>> How hard would it be for us to actually support this extension in  
>> Sema?
>>
>> I haven't looked or thought about it, but it doesn't seem all that
>> different from the things we already do for variable length arrays.
>>
>> If Sema support is do-able and not too horrible, then we could  
>> provide
>> the feature but disable it when using a compiler. This would at least
>> allow clients other than the compiler to parse, analyze, etc. the
>> code.
>
> This is exactly what I hope and it's perfect for our needs. Although
> CodeGen will not support this extension, to have a complete AST is  
> very
> important for other kind of clients.


I can live with this, so long as we don't mangle Sema or the ASTs in  
the process. I guess we'd model this as a language flag in  
LangOptions, and doing anything that involves code generation would  
turn off this flag.

	- Doug



More information about the cfe-dev mailing list