Skip to content
  • Douglas Gregor's avatar
    Template instantiation for the declarations of member functions within · f4f296de
    Douglas Gregor authored
    a class template. At present, we can only instantiation normal
    methods, but not constructors, destructors, or conversion operators.
    
    As ever, this contains a bit of refactoring in Sema's type-checking. In
    particular:
    
      - Split ActOnFunctionDeclarator into ActOnFunctionDeclarator
        (handling the declarator itself) and CheckFunctionDeclaration
        (checking for the the function declaration), the latter of which
        is also used by template instantiation.
      - We were performing the adjustment of function parameter types in
        three places; collect those into a single new routine.
      - When the type of a parameter is adjusted, allocate an
        OriginalParmVarDecl to keep track of the type as it was written.
      - Eliminate a redundant check for out-of-line declarations of member
        functions; hide more C++-specific checks on function declarations
        behind if(getLangOptions().CPlusPlus).
    
    llvm-svn: 67575
    f4f296de
Loading