cjc0013 wrote: Agreed. I reworked this so the functions remain distinct entities.
- `ASTContext::isSameEntity` now treats internal-linkage functions owned by different global module fragments as different entities, regardless of whether their bodies are equivalent. - The ABI mangler remains unchanged. Classic CodeGen uniquifies only colliding backend-local IR names so both declarations and their references survive; the corresponding CIR path has been updated the same way. - The previous ASTReader ODR-hash logic has been removed. - The regression now verifies that both equivalent and different bodies compile with `-fskip-odr-check-in-gmf`, emit two helper definitions and two distinct call targets, and, for different bodies, preserve the respective return values. Validation: - affected AST, serialization, and classic CodeGen compilation plus clang relink: passed - focused GMF regression: 1 passed - adjacent C++20 module tests: 13 passed - changed-line formatting and `git diff --check`: clean This checkout is configured without `CLANG_ENABLE_CIR`, so the CIR mirror was not locally compiled. Local build and runtime validation cover the AST and classic CodeGen paths. https://github.com/llvm/llvm-project/pull/219238 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
