)]}'
{
  "commit": "fa69425e64d9850b0e64a53b15545bdcdbedcd69",
  "tree": "209580d0d3bd8237c6f9b74a84df85d557418fb5",
  "parents": [
    "05194aeeaa5165246a9ebfd1d1e74899ec395cc4"
  ],
  "author": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Fri May 08 12:20:02 2026 +0800"
  },
  "committer": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Wed Jun 17 05:23:15 2026 +0800"
  },
  "message": "SSP: Check UINTPTR_TYPE to get uintptr_t type\n\ndefault_stack_protect_guard calls\n\n  lang_hooks.types.type_for_mode (ptr_mode, 1);\n\nto get an integer type for __stack_chk_guard which is declared as a\nglobal symbol of type uintptr_t.  For 32-bit systems, uintptr_t may\nbe either unsigned int or unsigned long int.  On 32-bit Darwin, we get\n\n$ cat /tmp/x.c\n__UINTPTR_TYPE__ __stack_chk_guard \u003d 0x1000;\n$ ./xgcc -B./ -S /tmp/x.c -m32\n/tmp/x.c:1:18: error: conflicting types for ‘__stack_chk_guard’; have ‘long unsigned int’\n    1 | __UINTPTR_TYPE__ __stack_chk_guard \u003d 0x1000;\n      |                  ^~~~~~~~~~~~~~~~~\ncc1: note: previous declaration of ‘__stack_chk_guard’ with type ‘unsigned int’\n$\n\nsince lang_hooks.types.type_for_mode returns unsigned int while Darwin\u0027s\nuintptr_t is unsigned long int.  Update default_stack_protect_guard to\ncall unsigned_integer_tree_node_for_type with UINTPTR_TYPE to get unsigned\ninteger type for uintptr_t instead.\n\ngcc/\n\n\tPR c/125226\n\t* targhooks.cc (default_stack_protect_guard): If UINTPTR_TYPE\n\tisn\u0027t NULL, call unsigned_integer_tree_node_for_type with\n\tUINTPTR_TYPE to get unsigned integer type for uintptr_t.\n\t* tree.cc (unsigned_integer_tree_node_for_type): New function.\n\t(build_common_tree_nodes): Call unsigned_integer_tree_node with\n\tSIZE_TYPE to get unsigned integer type for size_t.\n\t* tree.h (unsigned_integer_tree_node_for_type): New prototype.\n\nSigned-off-by: H.J. Lu \u003chjl.tools@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3b7d9f008e1d7feb30111fb819970c8aecd68152",
      "old_mode": 33188,
      "old_path": "gcc/targhooks.cc",
      "new_id": "670bc7aa22cdb0a79d6768d93adc12ec2337cd03",
      "new_mode": 33188,
      "new_path": "gcc/targhooks.cc"
    },
    {
      "type": "modify",
      "old_id": "3f0d1c60574d35a4534019670ca8eb86e9be7377",
      "old_mode": 33188,
      "old_path": "gcc/tree.cc",
      "new_id": "90c8f2a35ea4716a43d5e7fe0f004d9fdd1cda2a",
      "new_mode": 33188,
      "new_path": "gcc/tree.cc"
    },
    {
      "type": "modify",
      "old_id": "3e59bec1a946b3deb93785aeccb8a09eda84adb1",
      "old_mode": 33188,
      "old_path": "gcc/tree.h",
      "new_id": "0774d6bd5a09f56680689cc2ece2ec68277c55eb",
      "new_mode": 33188,
      "new_path": "gcc/tree.h"
    }
  ]
}
