[cfe-dev] PATCH: Cleanup function redeclaration representations

Chris Lattner clattner at apple.com
Sun May 4 16:30:44 PDT 2008


On May 4, 2008, at 4:23 PM, Doug Gregor wrote:

> On Sun, May 4, 2008 at 12:42 PM, Doug Gregor <doug.gregor at gmail.com>  
> wrote:
>> One
>> could imagine that each function only has a single FunctionDecl,  
>> which
>> represents the aggregate declaration. That FunctionDecl contains a
>> SmallVector<FunctionRedecl*, 2>, where each FunctionRedecl contains
>> minimal information about a redeclaration...
>
> The poster child for this kind of approach is RecordDecl. Right now,
> we completely ignore re-declarations of tag types, e.g., "class foo;"
> However, if we're to represent the source accurately, we should have
> redeclaration chains for these, too. Unfortunately, RecordDecl is
> pretty large, and most of that information only applies to the
> definition---not to the redeclarations. This could be addressed in a
> few different ways, e.g., by moving the definition into a separate
> structure or by making redeclarations use a smaller decl node.

Yep, this is also an issue we'll have to solve someday.  I'm happy to  
defer fighting that battle until when it comes up though :)

-Chris



More information about the cfe-dev mailing list