)]}'
{
  "commit": "e3f9c2f90efe233208a75ccf317faad4716bec69",
  "tree": "44c1cdea373679dc9ea5926d2b00a75edf3584b4",
  "parents": [
    "aa8956639252a6af92e41fdc57401471b919b96a"
  ],
  "author": {
    "name": "Alan Modra",
    "email": "amodra@gmail.com",
    "time": "Sat Oct 04 08:37:37 2025 +0930"
  },
  "committer": {
    "name": "Alan Modra",
    "email": "amodra@gmail.com",
    "time": "Sat Oct 04 09:39:02 2025 +0930"
  },
  "message": "gas: more expression initialisation\n\nThere are many more places that copy an uninitialised expressionS to a\nsymbol via symbol_set_value_expression and make_expr_symbol.  This\npatch focuses on general gas code that does that, and a few backends.\n\nNote that unlike the i386 case that oss-fuzz found, it is likely that\nthe tc-alpha.c, tc-ppc.c and tc-tic54x.c changes are not fixing bugs,\nalpha and tic54x because they don\u0027t use X_md, ppc because it carefully\nhandles X_md.  Also, as an example an O_constant expression should\nonly ever have its X_add_number field accessed, therefore the other\nfields can stay uninitialised.  However, I think that copying\nuninitialised struct fields around is not good practice.  If nothing\nelse it can be confusing when examining symbols under gdb.\n\nI also replaced gen-sframe.c \"#ifdef SFRAME_FRE_TYPE_SELECTION_OPT\"\nwith \"if (SFRAME_FRE_TYPE_SELECTION_OPT)\" so code in the false\nbranches is compiled and thus less likely to bitrot.  (As far as I can\nsee, SFRAME_FRE_TYPE_SELECTION_OPT is always 1.)\n\n\t* cgen.c (expr_build_binary): Use structure initialiser to\n\tensure all fields of expression are initialised.\n\t* config/obj-coff.c (obj_coff_val): Likewise.\n\t* config/tc-alpha.c (add_to_link_pool): Likewise.\n\t* config/tc-i386-intel.c (i386_intel_simplify): Likewise.\n\t* config/tc-mips.c (fix_loongson2f_jump, load_register),\n\t(load_address, add_got_offset, add_got_offset_hilo),\n\t(macro_build_branch_likely, macro, mips16_macro),\n\t(s_cpload, s_cpsetup, s_cprestore, s_cpreturn): Likewise.\n\t* config/tc-ppc.c (ppc_function): Likewise.\n\t* config/tc-tic54x.c (tic54x_field): Likewise.\n\t* dw2gencfi.c (output_cfi_insn): Likewise.\n\t* expr.c (expr_build_uconstant): Likewise.\n\t* read.c (s_mri_common): Likewise.\n\t* gen-sframe.c (create_fre_start_addr_exp),\n\t(create_func_info_exp, output_sframe_row_entry): Likewise.\n\tDon\u0027t conditionally compile via SFRAME_FRE_TYPE_SELECTION_OPT.\n\t* cgen.c (gas_cgen_parse_operand): Use md_expr_init_rest.\n\t* config/tc-microblaze.c (microblaze_s_weakext): Likewise.\n\t* ecoff.c (ecoff_directive_weakext, ecoff_stab): Likewise.\n\t* read.c (pseudo_set): Likewise.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "605dd3cf25112033211ec5d81d5dcfac2a10bb8e",
      "old_mode": 33188,
      "old_path": "gas/cgen.c",
      "new_id": "d97107267f52a6e08f83842285073b24097f5f93",
      "new_mode": 33188,
      "new_path": "gas/cgen.c"
    },
    {
      "type": "modify",
      "old_id": "be6a96576289a8604ac880588236b183c4befc82",
      "old_mode": 33188,
      "old_path": "gas/config/obj-coff.c",
      "new_id": "f4fa9c52c5588a0ec5ef399df7167000a784cfca",
      "new_mode": 33188,
      "new_path": "gas/config/obj-coff.c"
    },
    {
      "type": "modify",
      "old_id": "7ba85a6777021dd4ce4e784c1a4a059be7e3eb8c",
      "old_mode": 33188,
      "old_path": "gas/config/tc-alpha.c",
      "new_id": "f9d18bb8c246d82eb3c830dab4ad1311e3742fa9",
      "new_mode": 33188,
      "new_path": "gas/config/tc-alpha.c"
    },
    {
      "type": "modify",
      "old_id": "2b86f88b8bcb55afc968299da11f06c6f6e3d019",
      "old_mode": 33188,
      "old_path": "gas/config/tc-i386-intel.c",
      "new_id": "a60b1e94830e5abd2fa073ee73966ac5e446e3bd",
      "new_mode": 33188,
      "new_path": "gas/config/tc-i386-intel.c"
    },
    {
      "type": "modify",
      "old_id": "055d9ee22dd030704aca81b3c92034647da795d3",
      "old_mode": 33188,
      "old_path": "gas/config/tc-microblaze.c",
      "new_id": "01f322df2b672fff91a318a80b0c509bbd97e38c",
      "new_mode": 33188,
      "new_path": "gas/config/tc-microblaze.c"
    },
    {
      "type": "modify",
      "old_id": "3b2b218bcf34068001389e2332fa498ef2c501b5",
      "old_mode": 33188,
      "old_path": "gas/config/tc-ppc.c",
      "new_id": "e2485a4d79472911880f482b200cb6a7b6ca4ff7",
      "new_mode": 33188,
      "new_path": "gas/config/tc-ppc.c"
    },
    {
      "type": "modify",
      "old_id": "515b8435c505e5faa1eb2e439751438e3b9b52ba",
      "old_mode": 33188,
      "old_path": "gas/config/tc-tic54x.c",
      "new_id": "de3d762c2061f72d67e11bfec6727b382379e935",
      "new_mode": 33188,
      "new_path": "gas/config/tc-tic54x.c"
    },
    {
      "type": "modify",
      "old_id": "186dfa667c8b1a61233f24a0baa32b23653f791b",
      "old_mode": 33188,
      "old_path": "gas/dw2gencfi.c",
      "new_id": "96964c13508a2b1b0a4322f9d398a64170e066ba",
      "new_mode": 33188,
      "new_path": "gas/dw2gencfi.c"
    },
    {
      "type": "modify",
      "old_id": "97b909364a930ddd40423d01d0ab073a67cb6cba",
      "old_mode": 33188,
      "old_path": "gas/ecoff.c",
      "new_id": "d09c70ca264f7c524281f4a3df1c881c9cf05b68",
      "new_mode": 33188,
      "new_path": "gas/ecoff.c"
    },
    {
      "type": "modify",
      "old_id": "b75cce9f7816130271d34443bbff18dd313a449e",
      "old_mode": 33188,
      "old_path": "gas/expr.c",
      "new_id": "4b5a3be06694510f9e52f4cea40931ca7e1c0a59",
      "new_mode": 33188,
      "new_path": "gas/expr.c"
    },
    {
      "type": "modify",
      "old_id": "ac1427856fab8278c01bc60da6b92fca85154b74",
      "old_mode": 33188,
      "old_path": "gas/gen-sframe.c",
      "new_id": "b9db87f6c64c7d03f2629038eeed8e7d7e861f00",
      "new_mode": 33188,
      "new_path": "gas/gen-sframe.c"
    },
    {
      "type": "modify",
      "old_id": "2e7a4accabd20ba5b79d60067b0e06bd642af546",
      "old_mode": 33188,
      "old_path": "gas/read.c",
      "new_id": "4ba71f99250cb79feaebd78b538eea4cd69d5891",
      "new_mode": 33188,
      "new_path": "gas/read.c"
    }
  ]
}
