https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63307
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Igor Zamyatin from comment #3) > (In reply to Jakub Jelinek from comment #2) > > > > > > + vec_arglist.release(); > > > > Formatting. You could use auto_vec, perhaps with some stack allocated > > initial buffer if you think say 16 vector elements would be typically > > enough. > > Is it ok to have auto_vec declaration outside the routine? Why do you need to declare it outside of the routine? That seems undesirable to me. > > Also, what about all the remaining 3 callbacks that create or may create > > decls and have the same problem? for_local_cb, wrapper_local_cb and > > declare_one_free_variable. > > These are callbacks that seem to be safe in the sense of random ordering - > perform some 1 to 1 mapping I don't think so. They copy declarations, i.e. create new declarations, and the different ordering of their DECL_UID values may result in code generation differences (e.g. various other spots in the compiler sort based on DECL_UIDs, if you create them in pretty random order, you'll surely trigger some -fcompare-debug (perhaps not with current limited testsuite coverage, but with other tests).