Skip to content
  • Douglas Gregor's avatar
    Introduce a new expression type, UnresolvedDeclRefExpr, that describes · 90a1a651
    Douglas Gregor authored
    dependent qualified-ids such as
    
      Fibonacci<N - 1>::value
    
    where N is a template parameter. These references are "unresolved"
    because the name is dependent and, therefore, cannot be resolved to a
    declaration node (as we would do for a DeclRefExpr or
    QualifiedDeclRefExpr). UnresolvedDeclRefExprs instantiate to
    DeclRefExprs, QualifiedDeclRefExprs, etc.
    
    Also, be a bit more careful about keeping only a single set of
    specializations for a class template, and instantiating from the
    definition of that template rather than a previous declaration. In
    general, we need a better solution for this for all TagDecls, because
    it's too easy to accidentally look at a declaration that isn't the
    definition.
    
    We can now process a simple Fibonacci computation described as a
    template metaprogram.
    
    llvm-svn: 67308
    90a1a651
Loading