Hi, from my tests the test works with gcc-8 and fails now with gcc-9. With gcc-9 and O1, the test passes and fails with O2. I expanded the options (c++ -S) added by O2 compared to O1 in gcc-9 to compile qd_test.cpp and got :
-falign-functions -falign-jumps -falign-labels -falign-loops -fcaller-saves -fcode-hoisting -fcrossjumping -fcse-follow-jumps -fdevirtualize -fdevirtualize-speculatively -fexpensive-optimizations -fgcse -fhoist-adjacent-loads -findirect-inlining -finline-small-functions -fipa-bit-cp -fipa-cp -fipa-icf -fipa-icf-functions -fipa-icf-variables -fipa-ra -fipa-sra -fipa-vrp -fisolate-erroneous-paths-dereference -flra-remat -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeephole2 -freorder-functions -frerun-cse-after-loop -fschedule-insns -fschedule-insns2 -fstore-merging -fstrict-aliasing -fthread-jumps -ftree-pre -ftree-switch-conversion -ftree-tail-merge -ftree-vrp Then I recompiled qd_test.cpp with the original commands, adding -fno-$OPT with $OPT being one of the above option (without -f) to check which one had an impact and found out that adding either -fno-expensive-optimizations or -fno-tree-pre made the test pass. From g++-8 O2 to g++-9 O2 I could not determine any flag that made a difference. I don't know what is the relation between those flags and the actual breakage though. To avoid autoremoval of qd, I propose using one of this flag to workaround ppc64el g++-9's issue and I'll try to ping the g++ ppc64el dev team to help on that possible regression. Here is the MR : https://salsa.debian.org/science-team/qd/merge_requests/1 F.
pgp5NVSmMCxLb.pgp
Description: PGP signature