================
@@ -1220,9 +1220,15 @@ class FirConverter : public 
Fortran::lower::AbstractConverter {
   }
   std::string
   mangleName(const Fortran::semantics::Symbol &symbol) override final {
-    return Fortran::lower::mangle::mangleName(
+    std::string mangledName = Fortran::lower::mangle::mangleName(
         symbol, scopeBlockIdMap, /*keepExternalInScope=*/false,
         getLoweringOptions().getUnderscoring());
+    const auto &hash = bridge.getModuleNameHash();
----------------
tarunprabhu wrote:

Just to clarify, this works because internal procedures within a module are 
already guaranteed to have distinct names. Adding a hash ensures that these 
names do not clash across modules, right? If they do clash, the only adverse 
consequence is that their profiles will get merged? I am wondering if the 
`hash.empty()` check is really necessary here.

https://github.com/llvm/llvm-project/pull/216680
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to