)]}'
{
  "commit": "03c37160a1735c12e4acbac70a593ff3e68d5ad7",
  "tree": "4b3ec1c0644c53285fc580d1f44e8d4415634ac5",
  "parents": [
    "acb97429762cfc980a20a9ecbadbf73e28319a86"
  ],
  "author": {
    "name": "Krzysztof Parzyszek",
    "email": "Krzysztof.Parzyszek@amd.com",
    "time": "Fri Dec 05 14:01:24 2025 -0600"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Dec 05 14:01:24 2025 -0600"
  },
  "message": "[flang][OpenMP] Reject END DO on construct that crosses label-DO (#169714)\n\nIn a label-DO construct where two or more loops share the same\nteminator, an OpenMP construct must enclose all the loops if an\nend-directive is present. E.g.\n\n```\n  do 100 i \u003d 1,10\n!$omp do\n    do 100 j \u003d 1,10\n    100 continue\n!$omp end do    ! Error, but ok if this line is removed\n```\n\nFixes https://github.com/llvm/llvm-project/issues/169536.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cbfcaafa78dc0e131e18247d9e1d49e832d9cfa5",
      "old_mode": 33188,
      "old_path": "flang/include/flang/Parser/parse-tree.h",
      "new_id": "c4ace2d8a21355f009f88d6062f702bb20a3c727",
      "new_mode": 33188,
      "new_path": "flang/include/flang/Parser/parse-tree.h"
    },
    {
      "type": "modify",
      "old_id": "409195d5960b49e810343bc2f18a03e1311ab8fe",
      "old_mode": 33188,
      "old_path": "flang/lib/Semantics/canonicalize-do.cpp",
      "new_id": "8b23f88c3be90b155f58c54199c6f14a57e02e6d",
      "new_mode": 33188,
      "new_path": "flang/lib/Semantics/canonicalize-do.cpp"
    },
    {
      "type": "modify",
      "old_id": "fc4b9222d91b3437bec081617d4eacf86935458d",
      "old_mode": 33188,
      "old_path": "flang/lib/Semantics/check-omp-loop.cpp",
      "new_id": "f25cf7eb33817e3bacd53aab291639c1a885ea94",
      "new_mode": 33188,
      "new_path": "flang/lib/Semantics/check-omp-loop.cpp"
    },
    {
      "type": "modify",
      "old_id": "f0c83c01f7a21a9216678b1235259450dd27e671",
      "old_mode": 33188,
      "old_path": "flang/test/Parser/OpenMP/atomic-label-do.f90",
      "new_id": "1c7037f239191b2f50ae2a2ec7a026935ff30b13",
      "new_mode": 33188,
      "new_path": "flang/test/Parser/OpenMP/atomic-label-do.f90"
    },
    {
      "type": "modify",
      "old_id": "fd648e02482585cde9d307675f9afc749b94d0db",
      "old_mode": 33188,
      "old_path": "flang/test/Parser/OpenMP/cross-label-do.f90",
      "new_id": "f1a406c334c39430f30ce4e5d79f7602df31abad",
      "new_mode": 33188,
      "new_path": "flang/test/Parser/OpenMP/cross-label-do.f90"
    },
    {
      "type": "modify",
      "old_id": "4e63cafb3fda14b7b0cc7467f3a6cd2c058dfd3d",
      "old_mode": 33188,
      "old_path": "flang/test/Semantics/OpenMP/loop-association.f90",
      "new_id": "7070ff5638c72f70b14195221cc92c7a4ebf8334",
      "new_mode": 33188,
      "new_path": "flang/test/Semantics/OpenMP/loop-association.f90"
    }
  ]
}
