[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