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.
12 files changed