)]}'
{
  "commit": "be9d4883aaaccecee8022e2a47986e0aadc729f3",
  "tree": "7bb191026dfe5ba04bbeb513fde035e249e80b3f",
  "parents": [
    "c2dfe9cf64ab960d65d72e1eb6aa7069fce9a137"
  ],
  "author": {
    "name": "Georg-Johann Lay",
    "email": "avr@gjlay.de",
    "time": "Sun Aug 23 12:28:06 2026 +0200"
  },
  "committer": {
    "name": "Georg-Johann Lay",
    "email": "avr@gjlay.de",
    "time": "Tue Aug 25 15:31:05 2026 +0200"
  },
  "message": "AVR: target/127032 - Tag object files with the bit sizes of [long] double\n\nThis patch outputs .gnu_attribute tags for the bit sizes\nof long double (12 \u003d Tag_GNU_AVR_BITS_LONG_DOUBLE) resp.\ndouble (8 \u003d Tag_GNU_AVR_BITS_DOUBLE).\n\nThe recently introduced gimple mini-pass avr_pass_has\nnow scans the code for the presence of [long] double,\nand avr_file_end performs similar scans on the varpool.\n\nThere are cases where libgcc shares multilibs when they\ndon\u0027t depend on -m[long-]double\u003dX, so that just emitting\n.gnu_attribute *.X according to -m[long-]double\u003dX is too strict.\n\nThe patch uses the .gnu_attribute\u0027s as introduced in\nhttps://sourceware.org/PR34557 for Binutils 2.48.\n\nThe patch passes without new regressions.\n\n\tPR target/127032\ngcc/\n\t* config/avr/avr.md (Tag_GNU_AVR_BITS_LONG_DOUBLE)\n\t(Tag_GNU_AVR_BITS_DOUBLE): New define_constants.\n\t* config/avr/avr.cc (avr_uses_long_double_p)\n\t(avr_uses_double_p): New static variables.\n\t(avr_find_double): New function.\n\t(avr_file_end) [HAVE_AS_AVR_GNU_ATTRIBUTE]: Run avr_find_double\n\ton each varpool node.  Output .gnu_attribute according to\n\tavr_uses_long_double_p and avr_uses_double_p.\n\t* config/avr/avr-passes.cc (gimple-walk.h): Include.\n\t(avr_pass_has) \u003cop_callback\u003e: New static method.\n\t\u003cscan_bb\u003e: Use it in walk_gimple_op.\n\t\u003cexecute\u003e: Set up walk_stmt_info and pass it to scan_bb.\n\t* config/avr/avr-passes.def (avr_pass_has): Adjust comment.\n\t* config/avr/avr-protos.h (avr_find_double): New proto.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "13bc1b125dad0eb7cff19ef91e17e4164353f43f",
      "old_mode": 33188,
      "old_path": "gcc/config/avr/avr-passes.cc",
      "new_id": "73608de4f836dd31f0434654584fa8371457c298",
      "new_mode": 33188,
      "new_path": "gcc/config/avr/avr-passes.cc"
    },
    {
      "type": "modify",
      "old_id": "d50285c3f896daf535ac78527816d5303dc1df5e",
      "old_mode": 33188,
      "old_path": "gcc/config/avr/avr-passes.def",
      "new_id": "95d82f8f0a521a773b9fbfcb7219e506edc89d1e",
      "new_mode": 33188,
      "new_path": "gcc/config/avr/avr-passes.def"
    },
    {
      "type": "modify",
      "old_id": "c91c6efc29b857eb017376f7f438a1bb84d6c7f1",
      "old_mode": 33188,
      "old_path": "gcc/config/avr/avr-protos.h",
      "new_id": "8a971c0813e3f01464f8833c5a37654ca2b2e76a",
      "new_mode": 33188,
      "new_path": "gcc/config/avr/avr-protos.h"
    },
    {
      "type": "modify",
      "old_id": "0bdf7a5b90adcee99a57888c81375b4a351fcbcb",
      "old_mode": 33188,
      "old_path": "gcc/config/avr/avr.cc",
      "new_id": "5c51e0d26cf07471ceb21cf32fb16a16207ddec3",
      "new_mode": 33188,
      "new_path": "gcc/config/avr/avr.cc"
    },
    {
      "type": "modify",
      "old_id": "26ae9e501c9d51ffff7a3c3089942225d6bd7b22",
      "old_mode": 33188,
      "old_path": "gcc/config/avr/avr.md",
      "new_id": "405055bb0778b5ff43f257b4ac2a889348d9d1de",
      "new_mode": 33188,
      "new_path": "gcc/config/avr/avr.md"
    }
  ]
}
