)]}'
{
  "commit": "6f497e060ab62ff7d190ce152f83da6a028eecc1",
  "tree": "2eb4cc7c27cc6a74e18567311fe975ad1bbe49d4",
  "parents": [
    "b975d9d903f7a60510393d438a086294ab086dea"
  ],
  "author": {
    "name": "Eylon Krause",
    "email": "eylon1909@gmail.com",
    "time": "Thu Aug 27 01:43:56 2026 +0300"
  },
  "committer": {
    "name": "Eylon Krause",
    "email": "eylon1909@gmail.com",
    "time": "Thu Sep 03 10:40:07 2026 +0300"
  },
  "message": "formatter: avoid crash on attribute instance in for-loop header\n\nTreeUnwrapper::ReshapeTokenPartitions\u0027 kForSpec case assumed the\nfor-loop header always yields two semicolon-leading partitions and\nCHECK-failed (SIGABRT) otherwise. An attribute instance ((* ... *)) in\nthe for-loop init/condition changes the partition structure so those\npartitions are absent, aborting the formatter on otherwise valid input,\ne.g.:\n\n  module m; initial for(int i\u003d0(* a *);i\u003c4;i++) x\u003di; endmodule\n\nReplace the two CHECKs with graceful early-outs: when a required\nsemicolon-leading partition is not found, leave the partitions\nunreshaped instead of aborting. Normal for-loops (both partitions\npresent) reshape exactly as before. Adds a formatter regression test.\n\nSigned-off-by: Eylon Krause \u003ceylon1909@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5205a01e5b667feebf1d8a2cbcd883973540511f",
      "old_mode": 33188,
      "old_path": "verible/verilog/formatting/formatter_test.cc",
      "new_id": "f9bb19eaa9f0756cd1cbebcbd136c498c4415e86",
      "new_mode": 33188,
      "new_path": "verible/verilog/formatting/formatter_test.cc"
    },
    {
      "type": "modify",
      "old_id": "a6601aca6bb2510daf9bdbf528bac8724c210b0c",
      "old_mode": 33188,
      "old_path": "verible/verilog/formatting/tree-unwrapper.cc",
      "new_id": "c373590db70e25c315c120951e97b9a83b2c5656",
      "new_mode": 33188,
      "new_path": "verible/verilog/formatting/tree-unwrapper.cc"
    }
  ]
}
