)]}'
{
  "commit": "90828d67ea35c86b76fc8f3dec5da03f645eadaf",
  "tree": "d31c2d3eef2820ec295381b5f95f0c156b90b9ed",
  "parents": [
    "c0944f52c17a30762b81446183967ce3ef6b9aed"
  ],
  "author": {
    "name": "Peter Klausler",
    "email": "35819229+klausler@users.noreply.github.com",
    "time": "Mon Jan 15 10:50:40 2024 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jan 15 10:50:40 2024 -0800"
  },
  "message": "[flang] Weird restrictions on index variables (#77019)\n\nThere are some very odd (even for Fortran) rules in F\u00272023 subclause\r\n19.4 (paras 6 \u0026 8) pertaining to the index variables of FORALL and DO\r\nCONCURRENT constructs/statements, and they are not currently implemented\r\ncorrectly.\r\n\r\nAlthough these index variables are construct entities, they have\r\nrestrictions in the standard that would essentially allow them to also\r\nbe variables in their enclosing scopes. If their names are present in\r\nthe enclosing scope, and the construct does not have an explicit type\r\nspecification for its indices, then the names in the enclosing scope\r\nmust either be scalar variables or COMMON blocks, and their type must be\r\ninteger.\r\n\r\nReimplement these restrictions largely with portability warnings rather\r\nthan hard errors. Retain the semantic interpretation that the type of an\r\nuntyped index variable be taken from the type of a variable of the same\r\nname in the enclosing scope, if it exists, although that bit of the\r\nstandard could be interpreted otherwise.\r\n\r\nFixes https://github.com/llvm/llvm-project/issues/76978.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "33109ae2d30426c77b66cffcded66817863e4c3d",
      "old_mode": 33188,
      "old_path": "flang/docs/Extensions.md",
      "new_id": "24e07510b268dfd85e6e6f44347f9bf633eddace",
      "new_mode": 33188,
      "new_path": "flang/docs/Extensions.md"
    },
    {
      "type": "modify",
      "old_id": "a6b19e9833fc518f7fa2299211b591f5c00be787",
      "old_mode": 33188,
      "old_path": "flang/include/flang/Common/Fortran-features.h",
      "new_id": "dc50aa7f5c559d47bc49e1b1a64dfffe96f10634",
      "new_mode": 33188,
      "new_path": "flang/include/flang/Common/Fortran-features.h"
    },
    {
      "type": "modify",
      "old_id": "64fc7de120873a5516112778afeec6d0a3ea79cd",
      "old_mode": 33188,
      "old_path": "flang/lib/Semantics/resolve-names.cpp",
      "new_id": "06e35d22fe788126754e03d0c984b03fc7fca64b",
      "new_mode": 33188,
      "new_path": "flang/lib/Semantics/resolve-names.cpp"
    },
    {
      "type": "modify",
      "old_id": "3adf310051261c43d42f0d202728914ba2e56a20",
      "old_mode": 33188,
      "old_path": "flang/test/Semantics/dosemantics12.f90",
      "new_id": "1757ade4b7c8f92c3e76996ee5f604e03301df37",
      "new_mode": 33188,
      "new_path": "flang/test/Semantics/dosemantics12.f90"
    },
    {
      "type": "modify",
      "old_id": "5a493d45c6540689503944ef5ec4634c826e7e59",
      "old_mode": 33188,
      "old_path": "flang/test/Semantics/forall01.f90",
      "new_id": "a81eb9621e77c645ccf116993057a1316178fa8f",
      "new_mode": 33188,
      "new_path": "flang/test/Semantics/forall01.f90"
    },
    {
      "type": "modify",
      "old_id": "17034ebc2f0f351f5d99dedc3a0bc8d9c22b18d8",
      "old_mode": 33188,
      "old_path": "flang/test/Semantics/resolve35.f90",
      "new_id": "2947b225978d166d3ae3414a7cdd90f1b94125c8",
      "new_mode": 33188,
      "new_path": "flang/test/Semantics/resolve35.f90"
    },
    {
      "type": "modify",
      "old_id": "a2dd41cefd0e211f3d14e7aaf4f316b1d59f254e",
      "old_mode": 33188,
      "old_path": "flang/test/Semantics/resolve99.f90",
      "new_id": "e56022b61bfd831e90fcc1ed4a010d03d614e322",
      "new_mode": 33188,
      "new_path": "flang/test/Semantics/resolve99.f90"
    },
    {
      "type": "modify",
      "old_id": "06dd4cdf7d925b63e2d2c618fd637b1df8b2ef65",
      "old_mode": 33188,
      "old_path": "flang/test/Semantics/symbol09.f90",
      "new_id": "98cd1d954c3e70e7cf99f21d1134f2c63b04868c",
      "new_mode": 33188,
      "new_path": "flang/test/Semantics/symbol09.f90"
    }
  ]
}
