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

Reply via email to