slackito wrote:

I have a reduced test case for the mangling issue mentioned 
[here](https://github.com/llvm/llvm-project/pull/133610#issuecomment-2784039483).
 It's still a bit long (118 lines), so apologies for that.

[hash_mangling.txt](https://github.com/user-attachments/files/19654889/hash_mangling.txt)

Rename the attached file to `hash_mangling.ii` (github wouldn't let me attach 
it with a .ii extension), then build with `clang++ -c hash_mangling.ii`. With 
an affected version of `clang` (just checked at HEAD) the resulting object file 
contains the wrong mangled name:
```
$ llvm-readelf -s -W hash_mangling.o | grep hashable
    33: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT   UND 
_ZN4absl18container_internal13AbslHashValueINS_13hash_internal15MixingHashStateEEEN12_GLOBAL__N_19enable_ifIXsrNT_S6_11is_hashableIiEE5valueES6_E4typeES6_NS0_12raw_hash_setINS0_17FlatHashSetPolicyEiEE
```
(note the spurious `S6_` mentioned in the comment above)

With a good version of clang, the output looks like this instead
```
    33: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT   UND 
_ZN4absl18container_internal13AbslHashValueINS_13hash_internal15MixingHashStateEEEN12_GLOBAL__N_19enable_ifIXsrNT_11is_hashableIiEE5valueES6_E4typeES6_NS0_12raw_hash_setINS0_17FlatHashSetPolicyEiEE
```

https://github.com/llvm/llvm-project/pull/133610
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to