[cfe-dev] Adding support for Cloning in the AST
Douglas Gregor
dgregor at apple.com
Fri May 22 15:55:49 PDT 2009
On May 19, 2009, at 7:18 PM, moataz ragab wrote:
> I am just testing the cloning by calling it recursively over the AST
> so it goes on. It should stop at the DeclRefExpr.
Okay.
> Whether it might be useful or not to clone a declaration, it might
> be useful if you want to create a new variable declaration similar
> to another declaration and only change the name.
Hmmm, interesting. It seems to me like we really want to give the
expression's Clone method some information that tells it what to do
with declarations. For your loop-unrolling rewriter, we want to
replace some variable declarations with other, similar variables
(e.g., when the original variable was declared in the loop) or reuse
the same variable declaration (if the variable is declared outside the
loop). For my purposes, where I need to build a canonical expression,
we replace types with their canonical types and replace some
declarations (e.g., for non-type template parameters) with their
"canonical" declarations. This tells me that we need to think about
some kind of policy argument for Clone() that permits these changes.
- Doug
More information about the cfe-dev
mailing list