)]}'
{
  "commit": "2f98b09492b33b95afcc1ac22d212ee4a5be0149",
  "tree": "70ae6d99817a818db71e0d990907db068daf6c27",
  "parents": [
    "ad233d0d74661e5206d093e826db1eb4120c5fef"
  ],
  "author": {
    "name": "Richard Bunt",
    "email": "richard.bunt@linaro.org",
    "time": "Mon Aug 07 09:12:53 2023 +0100"
  },
  "committer": {
    "name": "Richard Bunt",
    "email": "richard.bunt@linaro.org",
    "time": "Mon Aug 07 09:13:14 2023 +0100"
  },
  "message": "gdb/fortran: Align intrinsic/variable precedence\n\nFortran allows variables and function to be named after language defined\nintrinsics as they are not reserved keywords. For example, the abs maths\nintrinsic can be hidden by a user declaring a variable called abs.\n\nThe behavior before this patch was to favour the intrinsic, which meant\nthat any variables named, for example \"allocated\", could not be\ninspected by GDB.\n\nThis patch inverts this priority to bring GDB\u0027s behaviour closer to the\nFortran language, where the user defined symbol can hide the intrinsic.\n\nSpecial care was need to prevent any C symbols from overriding either\nFortran intrinsics or user defined variables. This was observed to be\nthe case when GDB has access to symbols for abs from libm. This was\nsolved by only allowing symbols not marked with language_fortran to be\noverridden.\n\nIn total this brings the order of precedence to the following (highest\nfirst):\n\n    1. User defined Fortran variable or function.\n    2. Fortran intrinsic.\n    3. Symbols from languages other than Fortran.\n\nThe sizeof intrinsic is now case insensitive. This is closer to the\nFortran language.  I believe this change is safe enough as it increases\nthe acceptance of the grammar, rather than restricts it. I.e. it should\nnot break any existing scripts which rely on it. Unless of course they\nrely on SIZEOF being rejected.\n\nGDB built with GCC 13.\n\nNo test suite regressions detected. Compilers: GCC, ACfL, Intel, Intel\nLLVM, NVHPC; Platforms: x86_64, aarch64.\n\nExisting tests in gdb.fortran cover the invocation of intrinsics\nincluding: intrinsics.exp, shape.exp, rank.exp, lbound-ubound.exp.\n\nApproved-By: Tom Tromey \u003ctom@tromey.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c0afebc0589007ed399662e5664126a185a6751b",
      "old_mode": 33188,
      "old_path": "gdb/f-exp.y",
      "new_id": "19e4c702c149c42dae086c0975fa611d9b8e013f",
      "new_mode": 33188,
      "new_path": "gdb/f-exp.y"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cec960c6bff8a94f487e637f9b33f42db6d63150",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.fortran/intrinsic-precedence.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "32690333f9e84675b4fb44ec0b2e7a3fb25243eb",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.fortran/intrinsic-precedence.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7b7c3b2c34944afddd29e93797d92f7657711fbc",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.fortran/intrinsic-precedence.f90"
    }
  ]
}
