[all-commits] [llvm/llvm-project] 0ec1e9: Resolve exception specifications after marking the...

Richard Smith via All-commits all-commits at lists.llvm.org
Sun Dec 15 22:10:55 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 0ec1e99001291b894de4cd8d7ecc2a283d9a3bfc
      https://github.com/llvm/llvm-project/commit/0ec1e99001291b894de4cd8d7ecc2a283d9a3bfc
  Author: Richard Smith <richard at metafoo.co.uk>
  Date:   2019-12-15 (Sun, 15 Dec 2019)

  Changed paths:
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprMember.cpp
    M clang/lib/Sema/SemaOverload.cpp

  Log Message:
  -----------
  Resolve exception specifications after marking the corresponding
function as referenced, not before.

No functionality change intended. This is groundwork for computing the
exception specification of a defaulted comparison, for which we'd like
to use the implicit body where possible.


  Commit: fbf60b7dbeb0f66b45037925c384859f2f161504
      https://github.com/llvm/llvm-project/commit/fbf60b7dbeb0f66b45037925c384859f2f161504
  Author: Richard Smith <richard at metafoo.co.uk>
  Date:   2019-12-15 (Sun, 15 Dec 2019)

  Changed paths:
    M clang/include/clang/AST/Stmt.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/Stmt.cpp
    M clang/lib/Sema/SemaExceptionSpec.cpp
    M clang/test/SemaCXX/cxx0x-noexcept-expression.cpp

  Log Message:
  -----------
  Properly compute whether statement expressions can throw, rather than
conservatively assuming they always can.

Also fix cases where we would not consider the computation of a VLA type
when determining whether an expression can throw. We don't yet properly
determine whether a VLA can throw, but no longer incorrectly claim it
can never throw.


  Commit: 4a4e90a823882399fe22374629f79f1edd123d01
      https://github.com/llvm/llvm-project/commit/4a4e90a823882399fe22374629f79f1edd123d01
  Author: Richard Smith <richard at metafoo.co.uk>
  Date:   2019-12-15 (Sun, 15 Dec 2019)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExceptionSpec.cpp
    M clang/test/CXX/class/class.compare/class.compare.default/p3.cpp
    M clang/test/CXX/class/class.compare/class.compare.default/p4.cpp
    A clang/test/CXX/except/except.spec/p11-2a.cpp

  Log Message:
  -----------
  [c++20] Compute exception specifications for defaulted comparisons.

This requires us to essentially fully form the body of the defaulted
comparison, but from an unevaluated context. Naively this would require
generating the function definition twice; instead, we ensure that the
function body is implicitly defined before performing the check, and
walk the actual body where possible.


Compare: https://github.com/llvm/llvm-project/compare/f036f1cc85de...4a4e90a82388


More information about the All-commits mailing list