)]}'
{
  "commit": "c3de32be053db1156e4e5fbc87143f93f5345e8d",
  "tree": "5dff893b3a47512e057823fcc770727a977799b4",
  "parents": [
    "5dc2754c0945d076a7482d6468d3de4ba550fd89"
  ],
  "author": {
    "name": "David Malcolm",
    "email": "dmalcolm@redhat.com",
    "time": "Fri Nov 13 16:26:07 2026 -0500"
  },
  "committer": {
    "name": "David Malcolm",
    "email": "dmalcolm@redhat.com",
    "time": "Fri Nov 13 16:26:07 2026 -0500"
  },
  "message": "analyzer: add concrete-ranges.h/cc\n\nThis patch introduces a new template class:\n  ana::concrete::range\u003cConcreteValueType\u003e\nfor storing a unit-safe range of arbitrary-precision integer values,\nsuch as:\n- bits [0, 3)\n- bytes [0, 1024)\n- integers [5, 10)  (unitless)\n\nAs in the previous patch, nothing uses this yet, but it is used in\nmy upcoming rewrite of the analyzer\u0027s state-tracking for ranges that\nhave concretely-known endpoints.\n\ngcc/ChangeLog:\n\t* Makefile.in (ANALYZER_OBJS): Add analyzer/concrete-ranges.o.\n\ngcc/analyzer/ChangeLog:\n\t* analyzer-selftests.cc (run_analyzer_selftests): Call\n\tanalyzer_concrete_ranges_cc_tests.\n\t* analyzer-selftests.h (analyzer_concrete_ranges_cc_tests): New\n\tdecl.\n\t* concrete-ranges.cc: New file, based in parts on material from\n\tranges.cc\n\t* concrete-ranges.h: New file.\n\nSigned-off-by: David Malcolm \u003cdmalcolm@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7f95cbb7cdfdb12b5023261448e5603741ea634c",
      "old_mode": 33188,
      "old_path": "gcc/Makefile.in",
      "new_id": "962debed4429ea82e2d859e84da2c8ba758c0fdb",
      "new_mode": 33188,
      "new_path": "gcc/Makefile.in"
    },
    {
      "type": "modify",
      "old_id": "1cfb2007a6391d18e6bd0564e3e393acc7dfe355",
      "old_mode": 33188,
      "old_path": "gcc/analyzer/analyzer-selftests.cc",
      "new_id": "a9dc6d9712d0c6fdf22858d294c87f425f1b1147",
      "new_mode": 33188,
      "new_path": "gcc/analyzer/analyzer-selftests.cc"
    },
    {
      "type": "modify",
      "old_id": "f32846fdcf867cdd9f7dbd80fdd80fb9840030b5",
      "old_mode": 33188,
      "old_path": "gcc/analyzer/analyzer-selftests.h",
      "new_id": "6976aab2294cd7dd90a633e311cb8f49e3d3453e",
      "new_mode": 33188,
      "new_path": "gcc/analyzer/analyzer-selftests.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "788bd1bddc0f6dfbb3a6997981142fa05de3814c",
      "new_mode": 33188,
      "new_path": "gcc/analyzer/concrete-ranges.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c0e3f860df9e2c38e864e977fd79a8d7963dccc9",
      "new_mode": 33188,
      "new_path": "gcc/analyzer/concrete-ranges.h"
    }
  ]
}
