)]}'
{
  "commit": "ced631e0da3443d4afe4b5c1992bc2c438caa8a8",
  "tree": "949b897e3c0ac40133c290f6280c5b0a77054c68",
  "parents": [
    "9458bae553c82438e1817b4a5b1d003a8de064c3"
  ],
  "author": {
    "name": "Peter Klausler",
    "email": "35819229+klausler@users.noreply.github.com",
    "time": "Mon Dec 11 12:11:20 2023 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Dec 11 12:11:20 2023 -0800"
  },
  "message": "[flang][runtime] Handle Fw.0 case that needs to round up to 1.0 (#74384)\n\nA tricky case in Fw.d output editing is when the value needs to be\r\nrounded either to a signed zero or away from zero to a power of ten\r\n(1.0, 0.1, \u0026c.). A bug report for LLVM on GitHub (#74274) exposed a bug\r\nin this code in the case of Fw.0 editing where a value just over 0.5 was\r\nrounded incorrectly to 0 rather than 1 when no fractional digits were\r\nrequested.\r\n\r\nRework that algorithm a little, ensuring that the initial\r\nbinary-\u003edecimal conversion produces at least one digit, and coping\r\ncorrectly with the rounding of an exact 0.5 value for Fw.0 editing\r\n(rounding it to the nearest even decimal, namely 0, following\r\nnear-universal compiler-dependent behavior in other Fortrans).\r\n\r\nFixes https://github.com/llvm/llvm-project/issues/74274.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "18e2a3f1e537cc8d15c3c1a63e9c050c95399d36",
      "old_mode": 33188,
      "old_path": "flang/runtime/edit-output.cpp",
      "new_id": "a4ce0b12f911116b756c6810a1a761c4a0a4e1e5",
      "new_mode": 33188,
      "new_path": "flang/runtime/edit-output.cpp"
    },
    {
      "type": "modify",
      "old_id": "219947fe4fbbb794aa1242fabd56b07887449414",
      "old_mode": 33188,
      "old_path": "flang/unittests/Runtime/NumericalFormatTest.cpp",
      "new_id": "b5b8eb05943732cb5b922c3352d302d98b593884",
      "new_mode": 33188,
      "new_path": "flang/unittests/Runtime/NumericalFormatTest.cpp"
    }
  ]
}
