[PATCH] D65050: [SemaTemplate] Mark a function type as dependent when its parameter list contains pack expansion

S. B. Tam via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jul 30 13:46:26 PDT 2019


cpplearner added a comment.

In D65050#1606022 <https://reviews.llvm.org/D65050#1606022>, @aaron.ballman wrote:

> The noexcept specifier is part of the type these days, is that also handled properly?


I believe that it's properly handled in this section of `FunctionProtoType::FunctionProtoType`:

  // If this is a canonical type, and its exception specification is dependent,
  // then it's a dependent type. This only happens in C++17 onwards.
  if (isCanonicalUnqualified()) {
    if (getExceptionSpecType() == EST_Dynamic ||
        getExceptionSpecType() == EST_DependentNoexcept) {
      assert(hasDependentExceptionSpec() && "type should not be canonical");
      setDependent();
    }
  } else if (getCanonicalTypeInternal()->isDependentType()) {
    // Ask our canonical type whether our exception specification was dependent.
    setDependent();
  }


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65050/new/

https://reviews.llvm.org/D65050





More information about the cfe-commits mailing list