[PATCH] D83213: [AST][RecoveryExpr] Don't set the instantiation-bit.

Haojian Wu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jul 10 01:03:21 PDT 2020


hokein added a comment.

> Not trying to be difficult, but I'm not sure what you mean by "dependent" in #2. Informally, it means the same thing as #1. Formally, C++ defines type-dependence and value-dependence for expressions, and the ABI defines instantiation-dependence for expressions - AFAIK "dependent" doesn't have a formal meaning.
> 
> So I'd rather say it has two definitions:
> 
> informally, it (somehow) depends on a template parameter.
>  formally (from the C++ABI), an expression is instantiation-dependent if it is type-dependent or value-dependent, or it has a subexpression that is type-dependent or value-dependent.
>  To preserve the linkage between these two, IMO we need to extend the formal definition to errors if and only if we extend the informal definition to errors. Accidentally unlinking the two is almost certain to result in subtle bugs as either the implementation subtly differs from the spec, or it subtly differs from the mental model.

agree! I think the mental model you described makes more sense. yeah, it is *important* to keep the linkage between the informal and formal definition. It also explains why we should set instantiation-bit. Thanks!

ok, we have an agreement on the current approach. The only remaining thing is to clarify comments in clang. I will do it here (rather than D83215 <https://reviews.llvm.org/D83215>), so that this discussion thread can be found via the commit message.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D83213





More information about the cfe-commits mailing list