)]}'
{
  "commit": "a5392408f83a91c24aba57539db5bb6f66588d64",
  "tree": "dfad4084dbf36730789ab4729ac69259b4c2af40",
  "parents": [
    "3454e596b557e717695d181c6e58d07bc822b68e"
  ],
  "author": {
    "name": "Georg-Johann Lay",
    "email": "avr@gjlay.de",
    "time": "Sat Jun 20 14:25:54 2026 +0200"
  },
  "committer": {
    "name": "Georg-Johann Lay",
    "email": "avr@gjlay.de",
    "time": "Mon Jun 22 10:59:41 2026 +0200"
  },
  "message": "AVR: Support to print nodes brief and recursive.\n\nThis patch adds a new format %N to the avr_xdump functions.\nThe purpose is to print a tree node, usually a DECL_P or\na TYPE_P in a recursive form that\u0027s not too verbose.\nFor example:\n\n   typedef int (* const __flash fun_t)(long, int);\n\n   int foo (fun_t (*f[][4]), int x, int y)\n   {\n      return (*f[x][y]) (x, y);\n   }\n\nwill print with -mlog\u003dinsert_attributes, amongst others:\n\navr_insert_attributes[:pass\u003d?]:\n    \u003cparm_decl 0x7f833edd8110 f\u003e\n       \u003cpointer_type 0x7f833edacb28\u003e\n          \u003carray_type 0x7f833edac888\u003e\n             \u003cpointer_type 0x7f833edac690\u003e\n                \u003cpointer_type 0x7f833edac5e8 fun_t address-space-1\u003e read-only\n                   \u003cfunction_type 0x7f833edac3f0\u003e\n                      \u003cinteger_type 0x7f833ec745e8 int\u003e return\n                      \u003cinteger_type 0x7f833ec74738 long int\u003e\n                      \u003cinteger_type 0x7f833ec745e8 int\u003e\n                      \u003cvoid_type 0x7f833ec7c1f8 void\u003e\n\ngcc/\n\t* config/avr/avr-protos.h (avr_log_t) \u003cinsert_attributes\u003e: New field.\n\t* config/avr/avr-log.cc (avr_log_node): New static function.\n\t(avr_log_vadump) [%N]: Call it.\n\t(avr_log_set_avr_log) \u003cinsert_attributes\u003e: New SET_DUMP_DETAIL.\n\t* config/avr/avr.cc (avr_pgm_check_var_decl): Don\u0027t call avr_edump.\n\t(avr_insert_attributes) [avr_log.insert_attributes]: Call avr_edump.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "06d83b0a04b31d6a7ecf797e3364cb8811b15dd9",
      "old_mode": 33188,
      "old_path": "gcc/config/avr/avr-log.cc",
      "new_id": "0008cce5c9232bdd18afee3e7bbee6e816538686",
      "new_mode": 33188,
      "new_path": "gcc/config/avr/avr-log.cc"
    },
    {
      "type": "modify",
      "old_id": "ef71d3b98bc6139ec5da122a5cbbbb49d7021527",
      "old_mode": 33188,
      "old_path": "gcc/config/avr/avr-protos.h",
      "new_id": "9013745d9144b9e64908ee3fc11d97d81c4b9803",
      "new_mode": 33188,
      "new_path": "gcc/config/avr/avr-protos.h"
    },
    {
      "type": "modify",
      "old_id": "3cf43e99f0bf464ed3c0ea3f34c6ae69793daa38",
      "old_mode": 33188,
      "old_path": "gcc/config/avr/avr.cc",
      "new_id": "ebc3def80df0adb0d34ff1ead928ca92f2f839bf",
      "new_mode": 33188,
      "new_path": "gcc/config/avr/avr.cc"
    }
  ]
}
