[cfe-dev] Cleaning up the representation of Decls in the AST
Argiris Kirtzidis
akyrtzi at gmail.com
Thu Sep 11 13:32:07 PDT 2008
Argiris Kirtzidis wrote:
> Ted Kremenek wrote:
>> Another reason that having types own Decls is that it really makes
>> things much more difficult for clients that wish to modify the AST.
>> When is a Decl owned by a type? With the idea you propose, a
>> DeclStmt might own a TypeDecl if it isn't a RecordDecl, but in the
>> case of a RecordType the type would own it. There is also the
>> problem that we now have multiple RecordDecls for a given
>> RecordType. Does the RecordType own all of those RecordDecls? This
>> actually makes manipulation of the AST really tricky and error prone.
>
> To be more clear, the idea is that TypeDecls are owned by Types, and
> only one RecordDecl would be created.
> Can clients modify the AST without involving Types ? Assuming one
> RecordDecl in the AST is replaced with another, what about the
> RecordType the refers to it ?
> My point is that if the DeclGroup owns the RecordDecl, the Type will
> still need to be updated. If the Type owns the the RecordDecl you may
> only need to update the Type.
Also, about modifying the AST: assuming you want to replace a RecordDecl
with another one, it's easier to replace the one RecordDecl in the Type,
instead of tracking down and replacing all RecordDecls (forward
declarations and definition).
-Argiris
More information about the cfe-dev
mailing list