Ted Kremenek wrote: > > If the rewriter (or some other refactoring) decides to change the Expr > referenced by the VariableArrayType, what happens to the > VariableArrayType? If the VariableArrayType is uniqued by using the > Expr* value, then if that Expr is replaced then all of a sudden the > VariableArrayType might be incorrectly placed in the FoldingSet that > we use to unique types (within ASTContext).
If the Expr changes this also semantically changes the type, and is more like the client changing the type of a variable. It seems to me that the Expr of VariableArrayType should not be allowed to change and clients should instead use a new VariableArrayType with the new Expr. -Argiris > A refactoring client would have to get this corner case right when > making changes to an AST, potentially by removing the > VariableArrayType from the foldingset before changing it's underlying > Expr and then reinserting it into the FoldingSet after changing the > underlying Expr. Requiring this would be strangely burdensome on > clients changing the AST, nor do we currently expose the FoldingSet > implementation for uniquing types in the public interface of > ASTContext (and my belief is that we shouldn't expose this > implementation detail). > > Thoughts? > > Ted _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
