aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/python.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2025-10-04 08:37:37 +0930
committerAlan Modra <amodra@gmail.com>2025-10-04 09:39:02 +0930
commite3f9c2f90efe233208a75ccf317faad4716bec69 (patch)
tree44c1cdea373679dc9ea5926d2b00a75edf3584b4 /gdb/python/python.c
parentaa8956639252a6af92e41fdc57401471b919b96a (diff)
downloadbinutils-e3f9c2f90efe233208a75ccf317faad4716bec69.zip
binutils-e3f9c2f90efe233208a75ccf317faad4716bec69.tar.gz
binutils-e3f9c2f90efe233208a75ccf317faad4716bec69.tar.bz2
gas: more expression initialisation
There are many more places that copy an uninitialised expressionS to a symbol via symbol_set_value_expression and make_expr_symbol. This patch focuses on general gas code that does that, and a few backends. Note that unlike the i386 case that oss-fuzz found, it is likely that the tc-alpha.c, tc-ppc.c and tc-tic54x.c changes are not fixing bugs, alpha and tic54x because they don't use X_md, ppc because it carefully handles X_md. Also, as an example an O_constant expression should only ever have its X_add_number field accessed, therefore the other fields can stay uninitialised. However, I think that copying uninitialised struct fields around is not good practice. If nothing else it can be confusing when examining symbols under gdb. I also replaced gen-sframe.c "#ifdef SFRAME_FRE_TYPE_SELECTION_OPT" with "if (SFRAME_FRE_TYPE_SELECTION_OPT)" so code in the false branches is compiled and thus less likely to bitrot. (As far as I can see, SFRAME_FRE_TYPE_SELECTION_OPT is always 1.) * cgen.c (expr_build_binary): Use structure initialiser to ensure all fields of expression are initialised. * config/obj-coff.c (obj_coff_val): Likewise. * config/tc-alpha.c (add_to_link_pool): Likewise. * config/tc-i386-intel.c (i386_intel_simplify): Likewise. * config/tc-mips.c (fix_loongson2f_jump, load_register), (load_address, add_got_offset, add_got_offset_hilo), (macro_build_branch_likely, macro, mips16_macro), (s_cpload, s_cpsetup, s_cprestore, s_cpreturn): Likewise. * config/tc-ppc.c (ppc_function): Likewise. * config/tc-tic54x.c (tic54x_field): Likewise. * dw2gencfi.c (output_cfi_insn): Likewise. * expr.c (expr_build_uconstant): Likewise. * read.c (s_mri_common): Likewise. * gen-sframe.c (create_fre_start_addr_exp), (create_func_info_exp, output_sframe_row_entry): Likewise. Don't conditionally compile via SFRAME_FRE_TYPE_SELECTION_OPT. * cgen.c (gas_cgen_parse_operand): Use md_expr_init_rest. * config/tc-microblaze.c (microblaze_s_weakext): Likewise. * ecoff.c (ecoff_directive_weakext, ecoff_stab): Likewise. * read.c (pseudo_set): Likewise.
Diffstat (limited to 'gdb/python/python.c')
0 files changed, 0 insertions, 0 deletions