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.

Reply via email to