You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
merge_insertion_sort often segfaults with MSVC for an obscure reason. I managed to track the issue down to that specific line prior to the pairwise swaps:
auto end = has_stray ? std::prev(last) : last;
The line itself doesn't cause the segfault, but the destruction of end at the end of the algorithm scope does. I am so far unsure why, more tests are needed.
The text was updated successfully, but these errors were encountered:
The way it was written, the destructor never actually destructed the
node's values. The loop variable was constructed with sentinel_node_,
which was also used in the loop condition in such a way that the loop
body was never executed.
Might be the cause of issue #184
The previous commit wasn't a silver bullet, but it did help. There are no segfaults anymore, and we're down to two failing tests:
175 - test most sorters with no_post_iterator - cppsort::merge_insertion_sorter (Timeout)
759 - merge_insertion_sorter tests with projections (Timeout)
The timeouts make me suspect an infinite loop, but that's an investigation for another day. Unfortunately, the PRNG seed wasn't logged. Maybe we should log it directly from CMake in order to make extra sure.
It looks like the commit 1160154 made the timeout issues disappear. I don't know how they're linked, but it doesn't seem extremely surprising that they are.
I'm gonna keep the issue opened a bit longer, and close it if the problem doesn't reappear.
merge_insertion_sort
often segfaults with MSVC for an obscure reason. I managed to track the issue down to that specific line prior to the pairwise swaps:auto end = has_stray ? std::prev(last) : last;
The line itself doesn't cause the segfault, but the destruction of
end
at the end of the algorithm scope does. I am so far unsure why, more tests are needed.The text was updated successfully, but these errors were encountered: