)]}'
{
  "commit": "77d5b22efb2b0c291b572f087371d7dc462d5499",
  "tree": "17d635bd7a5803a08857c4315d6f1a080709b1ad",
  "parents": [
    "e935b1e43469dd33d9c242b81c4f1822fc398b16"
  ],
  "author": {
    "name": "Jerry DeLisle",
    "email": "jvdelisle@gcc.gnu.org",
    "time": "Mon May 25 21:13:19 2026 -0700"
  },
  "committer": {
    "name": "Jerry DeLisle",
    "email": "jvdelisle@gcc.gnu.org",
    "time": "Wed Jun 10 20:05:55 2026 -0700"
  },
  "message": "Fortran: [PR93727] Add EX format READ (read_ex)\n\nImplement read_ex in libgfortran to handle EX edit-descriptor input\nper Fortran 2023 13.7.2.3.6.  The input field may contain:\n\n  * a hexadecimal-significand form (0X\u003csig\u003eP\u003cexp\u003e) passed directly\n    to the C strtod/strtold family for exact bit-for-bit conversion;\n  * any form acceptable for Fw.d input (decimal fallback), including\n    INF and NAN representations.\n\nFor decimal input without a decimal point the d field of the EX.w.d\ndescriptor adjusts the exponent exactly as for Fw.d.  BN/BZ blank\nhandling and the kP scale factor are also supported via the shared\ndecimal path.\n\nAssisted by: Claude Sonnet 4.6\n\n\tPR fortran/93727\n\nlibgfortran/ChangeLog:\n\n\t* io/read.c (read_ex): New function implementing EX format read.\n\t* io/io.h (read_ex): Declare.\n\t* io/transfer.c (formatted_transfer_scalar_read): Add FMT_EX case\n\tdispatching to read_ex.\n\ngcc/testsuite/ChangeLog:\n\n\t* gfortran.dg/EXformat_4.F90: New test covering EX format read\n\tfor kind\u003d4 and 8 (always) and kind\u003d10, 16 (when available):\n\thex-significand literals, lowercase prefix, negative binary\n\texponent, decimal fallback, d-field adjustment, INF/NAN, zero\n\tfield, and round-trips through write_ex.\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c90857ac3e743665217de29ac3fa72e70bc62a65",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gfortran.dg/EXformat_4.F90"
    },
    {
      "type": "modify",
      "old_id": "1fd0908859f479972719aeb86cd6ab99fcc8d128",
      "old_mode": 33188,
      "old_path": "libgfortran/io/io.h",
      "new_id": "d131d9544c4f4fc1c66cb47309c2df76fa79c2d1",
      "new_mode": 33188,
      "new_path": "libgfortran/io/io.h"
    },
    {
      "type": "modify",
      "old_id": "aeec725684bfc8c3c0d8006a200df042ce03689c",
      "old_mode": 33188,
      "old_path": "libgfortran/io/read.c",
      "new_id": "047fff11643f917fbd52553944abbc46c6e82c59",
      "new_mode": 33188,
      "new_path": "libgfortran/io/read.c"
    },
    {
      "type": "modify",
      "old_id": "6c583f76767c5580a3f7246975ecf4d13c8ac904",
      "old_mode": 33188,
      "old_path": "libgfortran/io/transfer.c",
      "new_id": "d88cd810529f9758d94ecaf6b6e38d9c822ae525",
      "new_mode": 33188,
      "new_path": "libgfortran/io/transfer.c"
    }
  ]
}
