https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58767
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The output of the strings is based on the the traverse of the hashtable. this might mean the output of the strings in the hashtable be outputted at a different location based on the hash of the strings. In this case it is because "repo/branch2/t.cpp" and "repo/branch1/t.cpp" are going to be different hashes which is causing the difference in the hash table traversal.