[PATCH] D76696: [AST] Build recovery expressions by default for C++.

Sam McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 26 08:06:16 PDT 2020


sammccall added a comment.

In D76696#1943657 <https://reviews.llvm.org/D76696#1943657>, @ebevhan wrote:

> However, this just means that `baz` has a very odd type; it's a variable of closure type that contains a dependent member that will never be resolved. Our diagnostic breaks, since the variable's type isn't dependent, but it has a member which is, and we can't take the size of that.


Interesting. Simply turning this off for lambdas isn't enough. The following crashes clang for me:

  class X {
    decltype(unresolved()) foo;
  };
  constexpr int s = sizeof(X);

@hokein I think we need to revert until we find a solution for this. I suspect this is going to mean adding the error bit to type and... dropping members that have it set? Or marking them as invalid?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D76696





More information about the cfe-commits mailing list