[PATCH] D153003: [ODRHash] Fix ODR hashing of template names

Chuanqi Xu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jun 16 01:52:02 PDT 2023


ChuanqiXu added a comment.

> what I'm asking is why we need to differentiate between the two, ie in which cases do we want these two to have a different hash?

I don't understand. It should a basic requirement for different AST entities to have different values.

> The way I understand your statement is that two "identical" Decls, including isSame returning true, can have a different hashes.

I mean when we can't work on ODRHash properly, we can choose that as a workaround.

An important node here is that ODRHash is used to check the AST Nodes are keeping the same across compilations. There is gap to use ODRHash to check the semantical equality.

---

Also I find I missed an important point. The standard says https://eel.is/c++draft/basic.def.odr#14.4. So that the example is not valid even if they are in global module fragments since they don't have same token sequences.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D153003



More information about the cfe-commits mailing list