)]}'
{
  "commit": "da2385e53a08b59db6769eef93199a7fdd0ee00f",
  "tree": "67a29ffd3dd0731980f8ee5b3b08d9abc8379b7d",
  "parents": [
    "49a5c52438b6a85b49884e596ae53e33150c296e"
  ],
  "author": {
    "name": "James K. Lowden",
    "email": "jklowden@cobolworx.com",
    "time": "Sun Jul 05 14:32:08 2026 -0400"
  },
  "committer": {
    "name": "James K. Lowden",
    "email": "jklowden@cobolworx.com",
    "time": "Mon Jul 06 14:41:56 2026 -0400"
  },
  "message": "cobol: Correct \"included from\" location.\n\nWhen an error occurred in a copybook, the diagnostic reported the\nlocation of the COPY directive incorrectly.  It now reports the\nline of the directive.\n\nThe symbol table was recording paragraph/section relationships\nincorrectly, which was only a problem if the last section PERFORMed.\nCorrected.\n\nFixes PR #33 Fixes RT 3569.\n\ngcc/cobol/ChangeLog:\n\n\t* cbldiag.h (struct cbl_loc_t): Add as_first_line() function.\n\t(location_dump): Shorten diagnostic message.\n\t* cdf-copy.cc (copybook_elem_t::open_file): Same.\n\t* copybook.h (class copybook_t): Remove debug message.\n\t* lexio.cc (parse_copy_directive): Clarify comment.\n\t(cdftext::lex_open): Set please_push_filename boolean for open_input.\n\t(cdftext::open_input): Issue push directive where COPY appeared.\n\t(cdftext::output_push_directive): New function.\n\t(cdftext::process_file): Relocate PUSH/POP directives.\n\t* lexio.h (class cdftext): Add please_push_filename and output_push_directive().\n\t* parse.y: Improve PERFORM diagnostics.\n\t* parse_ante.h (ast_enter_exit_section): Correct paragraph section ancestor.\n\t* scan.l: Update gcc location for PUSH directive.\n\t* symbols.cc (cbl_perform_tgt_t::recurses): New validation function.\n\t* symbols.h (struct cbl_perform_tgt_t): Same.\n\t* util.cc (cobol_filename): Clarify diagnostic message.\n\t(gcc_location_set_impl): Remove function.\n\t(gcc_location_set): Implement directly.\n\t(gcc_location_dump): Add newline to output.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "338c47ed38a9a81b5a23c729efd3aecb18710022",
      "old_mode": 33188,
      "old_path": "gcc/cobol/cbldiag.h",
      "new_id": "d2919201bf84cd1f4d11535b884439ad42521700",
      "new_mode": 33188,
      "new_path": "gcc/cobol/cbldiag.h"
    },
    {
      "type": "modify",
      "old_id": "304360d52570f0993e7e7bf93e783c5a54d3efff",
      "old_mode": 33188,
      "old_path": "gcc/cobol/cdf-copy.cc",
      "new_id": "f88357b1e90ba7e4ff8a67243ab716a3191058e3",
      "new_mode": 33188,
      "new_path": "gcc/cobol/cdf-copy.cc"
    },
    {
      "type": "modify",
      "old_id": "9688ab789bf4ea5e7fd1981f2f75e665ca00d431",
      "old_mode": 33188,
      "old_path": "gcc/cobol/copybook.h",
      "new_id": "84b0cc63ff9b644b4bb5e3b31f765731e6ece99c",
      "new_mode": 33188,
      "new_path": "gcc/cobol/copybook.h"
    },
    {
      "type": "modify",
      "old_id": "34686082c21e990c64677bf150ebc535df3d1913",
      "old_mode": 33188,
      "old_path": "gcc/cobol/lexio.cc",
      "new_id": "fb0c5cfc56f0899a56c38369b3a13933553ed43a",
      "new_mode": 33188,
      "new_path": "gcc/cobol/lexio.cc"
    },
    {
      "type": "modify",
      "old_id": "4a7496ef9ee4792df58c9ae62c9022c7766d90bb",
      "old_mode": 33188,
      "old_path": "gcc/cobol/lexio.h",
      "new_id": "f58470d97e294ddb32c9b6d10a270582169c1eac",
      "new_mode": 33188,
      "new_path": "gcc/cobol/lexio.h"
    },
    {
      "type": "modify",
      "old_id": "5d22df96c2f805855e0ae028e7bbc643977406b1",
      "old_mode": 33188,
      "old_path": "gcc/cobol/parse.y",
      "new_id": "38205262ad2c668a03a5222ac656346817576511",
      "new_mode": 33188,
      "new_path": "gcc/cobol/parse.y"
    },
    {
      "type": "modify",
      "old_id": "62bd812c73119a9323dd8ce94ec7c22a0f6fdef4",
      "old_mode": 33188,
      "old_path": "gcc/cobol/parse_ante.h",
      "new_id": "db574def42e7e05e9b9594dad7a91a6ba454bed8",
      "new_mode": 33188,
      "new_path": "gcc/cobol/parse_ante.h"
    },
    {
      "type": "modify",
      "old_id": "1f9f3dd2b080bc29a6560c68801c35f365e78acf",
      "old_mode": 33188,
      "old_path": "gcc/cobol/scan.l",
      "new_id": "85604b505f2fb78597754bdf2264f5141d12dbc4",
      "new_mode": 33188,
      "new_path": "gcc/cobol/scan.l"
    },
    {
      "type": "modify",
      "old_id": "2513892b0b20eaaa16933856500ed2d12a9f09eb",
      "old_mode": 33188,
      "old_path": "gcc/cobol/symbols.cc",
      "new_id": "565abb51799b622a9f880d709693911ad3127626",
      "new_mode": 33188,
      "new_path": "gcc/cobol/symbols.cc"
    },
    {
      "type": "modify",
      "old_id": "dd04ed93c35e070096f8c6fdd5dea6c6bde1b3fc",
      "old_mode": 33188,
      "old_path": "gcc/cobol/symbols.h",
      "new_id": "5fd2f0917fed69cafa7df11f8529c89c33de3f87",
      "new_mode": 33188,
      "new_path": "gcc/cobol/symbols.h"
    },
    {
      "type": "modify",
      "old_id": "8cc7e14680120fe81f9fa4fc66d70ed403a2a222",
      "old_mode": 33188,
      "old_path": "gcc/cobol/util.cc",
      "new_id": "0d8c88a03afd6e3799e4626c4cf7407dfafd55fe",
      "new_mode": 33188,
      "new_path": "gcc/cobol/util.cc"
    }
  ]
}
