diff options
| author | Emilio Cota <ecg@google.com> | 2025-10-24 10:55:16 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-24 10:55:16 +0100 |
| commit | fb925b5244012f42bfbd2f4566a6f01789d7412d (patch) | |
| tree | 2e420b2b1c03d81569bfacca5676f4bb0205b015 /lldb/packages/Python/lldbsuite/test/gdbclientutils.py | |
| parent | 92e1be489a9a7a25857060872d6910573dfd41d5 (diff) | |
| download | llvm-fb925b5244012f42bfbd2f4566a6f01789d7412d.zip llvm-fb925b5244012f42bfbd2f4566a6f01789d7412d.tar.gz llvm-fb925b5244012f42bfbd2f4566a6f01789d7412d.tar.bz2 | |
[flang][mlir] fix irreflexibility violation of strict weak ordering in #155348 (#164833)
This fixes strict weak ordering checks violations from #155348 when
running these two tests:
mlir/test/Dialect/OpenMP/omp-offload-privatization-prepare.mlir
mlir/test/Dialect/OpenMP/omp-offload-privatization-prepare-by-value.mlir
Sample error:
/stable/src/libcxx/include/__debug_utils/strict_weak_ordering_check.h:50: libc++ Hardening assertion !__comp(*__first + __a), *(__first + __b)) failed: Your comparator is not a valid strict-weak ordering
This is because (x < x) should be false, not true, to meet the
irreflexibility property. (Note that .dominates(x, x) returns true.)
I'm afraid that even after this commit we can't guarantee a strict weak
ordering, because we can't guarantee transitivity of equivalence by
sorting with a strict dominance function. However the tests are not
failing anymore, and I am not at all familiar with this code so I will
leave this concern up to the original author for consideration. (Ideas
without any further context: I would consider a topological sort or
walking a dominator tree.)
Reference on std::sort and strict weak ordering:
https://danlark.org/2022/04/20/changing-stdsort-at-googles-scale-and-beyond/
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/gdbclientutils.py')
0 files changed, 0 insertions, 0 deletions
