)]}'
{
  "commit": "3c4981454c2be437c2c84516617d4677c1c8212b",
  "tree": "6d3f86e0ca4ce111d14c41e54a288b96d6ed822c",
  "parents": [
    "b975d9d903f7a60510393d438a086294ab086dea"
  ],
  "author": {
    "name": "Eylon Krause",
    "email": "eylon1909@gmail.com",
    "time": "Sun Jul 05 21:09:18 2026 +0300"
  },
  "committer": {
    "name": "Eylon Krause",
    "email": "eylon1909@gmail.com",
    "time": "Thu Sep 03 10:37:53 2026 +0300"
  },
  "message": "preprocessor: stop macro-argument scan on an unexpected/EOF token\n\nConsumeAndParseMacroCall\u0027s `while (parameters_size \u003e 0)` argument loop only\nhandled MacroArg, \u0027,\u0027 and \u0027)\u0027. An unterminated macro call (e.g. `\\`FOO(` at\nend of file) leaves the current token as EOF, which matches none of the\nthree branches, so neither token_iter nor parameters_size advances and the\nloop spins forever -- a hang when linting or serving a truncated/untrusted\n.sv (both reach this via AnalyzeAutomaticPreprocessFallback with\nexpand_macros\u003dtrue). Break out on any other token; the existing trailing\nloop already back-fills the remaining parameters with default TokenInfo,\nthe same terminal state an early \u0027)\u0027 produces.\n\nNote: a related path (GenerateBypassWhiteSpaces dereferencing an exhausted\ngenerator when a macro-expansion token sequence lacks a trailing EOF\nsentinel) can crash on similar input; happy to follow up separately.\n\nSigned-off-by: Eylon Krause \u003ceylon1909@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2f77111428389da7f2e3b12288e0d47056162ffa",
      "old_mode": 33188,
      "old_path": "verible/verilog/preprocessor/verilog-preprocess.cc",
      "new_id": "d8f5f5b969060ffd29422167acd06ec40826308f",
      "new_mode": 33188,
      "new_path": "verible/verilog/preprocessor/verilog-preprocess.cc"
    }
  ]
}
