This hade made lld/test/MachO/dead-strip.s flaky until I fixed by it with ceeea9193726ff3ceeee48e0e121ac25ac12cef0.
The fix is imperfect, since it's better for llvm/include/llvm/TextAPI/InterfaceFile.h to provide a stable iteration order.
https://github.com/llvm/llvm-project/blob/0991bd7887a313d4d6bb66ca44d11939ad71b660/llvm/include/llvm/TextAPI/InterfaceFile.h#L447 `std::unique_ptr<SymbolSet> SymbolsSet;` is implemented as a `using SymbolsMapType = llvm::DenseMap<SymbolsMapKey, Symbol *>;`, which has a non-deterministic iteration order in `LLVM_ENABLE_ABI_BREAKING_CHECKS=on` builds (`hash_combine(hash_value(Key.Kind), hash_value(Key.Name))` uses a non-deterministic seed #96282).
This hade made `lld/test/MachO/dead-strip.s` flaky until I fixed by it with ceeea9193726ff3ceeee48e0e121ac25ac12cef0.
The fix is imperfect, since it's better for `llvm/include/llvm/TextAPI/InterfaceFile.h` to provide a stable iteration order.
https://github.com/llvm/llvm-project/blob/0991bd7887a313d4d6bb66ca44d11939ad71b660/llvm/include/llvm/TextAPI/InterfaceFile.h#L447
std::unique_ptr<SymbolSet> SymbolsSet;
is implemented as ausing SymbolsMapType = llvm::DenseMap<SymbolsMapKey, Symbol *>;
, which has a non-deterministic iteration order inLLVM_ENABLE_ABI_BREAKING_CHECKS=on
builds (hash_combine(hash_value(Key.Kind), hash_value(Key.Name))
uses a non-deterministic seed #96282).This hade made
lld/test/MachO/dead-strip.s
flaky until I fixed by it with ceeea9193726ff3ceeee48e0e121ac25ac12cef0. The fix is imperfect, since it's better forllvm/include/llvm/TextAPI/InterfaceFile.h
to provide a stable iteration order.