[cfe-dev] Quick Questions: DeclRefExpr, TypedefDecl, TypedefType, and TemplateTypeParmDecl.

Larisse Voufo lvoufo at cs.indiana.edu
Tue Feb 8 09:12:17 PST 2011


1 - The documentation for DeclRefExpr says the following:
      "A <http://clang.llvm.org/doxygen/classA.html> reference to a declared
variable, function, enum, etc."
      Does this mean that DeclRefExprs also refer to types such as a
concept's associated type
      (declared with the typename keyword, as a TemplateTypeParmDecl) ?

2 -  How are TypedefTypes related to TypedefDecls, and possibly
TemplateTypeParmDecl as well?

3-   I ran into this confusion when I was trying to modify the
transformations on calls to concept's associated
      functions and types. I can't decide which one of these methods would
be the most appropriate or general
      place for the change: TransformDeclRefExpr, or TransformDecl and
TransformType (and/or even
      TransformNestedNameSpecifier).
      Basically, I'm trying to say: if the referred type or function (or
variable) we are trying to transform is
      declared within a concept defn context, then match it to the
appropriate concept map, and change
      the type or expression so that it now refers to the corresponding type
or function (or variable) as defined
      within the map context...
      This is part of my implementation for concept lookup. I can see it
working for associated functions, when
      my changes are at the beginning of TransformDeclRef, but I'm not sure
if that would work well for types as well.


Thanks,

-- Larisse.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20110208/02fc2cfd/attachment.html>


More information about the cfe-dev mailing list