================ @@ -4678,6 +4678,95 @@ class BlockDecl : public Decl, public DeclContext { } }; +/// Represents a partial function definition. +/// +/// An outlined function declaration contains the parameters and body of +/// a function independent of other function definition concerns such +/// as function name, type, and calling convention. Such declarations may +/// be used to hold a parameterized and transformed sequence of statements +/// used to generate a target dependent function definition without losing +/// association with the original statements. See SYCLKernelCallStmt as an +/// example. +class OutlinedFunctionDecl final + : public Decl, + public DeclContext, + private llvm::TrailingObjects<OutlinedFunctionDecl, ImplicitParamDecl *> { +protected: + size_t numTrailingObjects(OverloadToken<ImplicitParamDecl>) { ---------------- erichkeane wrote:
This function isn't required/needed/used when there is only 1 trailing object type. https://github.com/llvm/llvm-project/pull/122379 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits