[PATCH] D79009: [AST] Preserve the incomplete-type member expr.

Sam McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 28 11:17:35 PDT 2020


sammccall added inline comments.


================
Comment at: clang/lib/Sema/SemaExprCXX.cpp:7223
+      RequireCompleteType(OpLoc, BaseType, diag::err_incomplete_member_access)) {
+    if (Base->containsErrors())
+      return Base;
----------------
Sorry, I don't get what's going on here at all - is the idea that if you've already diagnosed an error here, don't fail further based on likely-bad recovery?

In that case:
a) we need a comment
b) how sure are you that this isn't establishing a "complete type" invariant that code later in this function relies on
c) can we avoid producing the extra diag that we don't think is reliable?

(maybe I misunderstood what's going on here)


================
Comment at: clang/test/AST/ast-dump-recovery.cpp:107
 
+struct Incomplete;
+Incomplete make_incomplete();
----------------
This test doesn't seem to relate to member expressions, and passes for me without this patch applied.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D79009





More information about the cfe-commits mailing list