https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109163
Bug ID: 109163 Summary: SARIF (and other JSON) output files are non-deterministic Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other Assignee: unassigned at gcc dot gnu.org Reporter: dmalcolm at gcc dot gnu.org Target Milestone: --- gcc/json.cc's json::object uses a hash_map for tracking the key/value pairs, and object::print iterates through them in arbitrary order, so every time we emit json files they can potentially vary, which makes it much harder to compare them from run to run (see e.g. PR 105959). It would probably be much more user-friendly to use an ordered_hash_map here to preserve insertion order and thus have deterministic output. I don't know if this would have a noticeable performance hit.