-Wimplicit-fallthrough error fixes
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index 9c0f439b89eb6548778bfafd2c0e9071b5458963..11381ea1047dac35c25f069c015668a84e543c5a 100644 (file)
@@ -1,3 +1,471 @@
+2016-10-06  Alan Modra  <amodra@gmail.com>
+
+       * coffcode.h (coff_slurp_symbol_table): Revert accidental commit
+       made 2015-01-08.
+       * elf32-nds32.c (nds32_elf_grok_psinfo): Add missing break.
+       * reloc.c (bfd_default_reloc_type_lookup): Add missing breaks.
+
+2016-10-06  Alan Modra  <amodra@gmail.com>
+
+       * elf32-epiphany.c (epiphany_final_link_relocate): Use bitwise
+       OR in arithmetic expression, not boolean OR.
+
+2016-09-30  Alan Modra  <amodra@gmail.com>
+
+       * Makefile.am (BFD_H_FILES): Add linker.c and simple.c.  Sort
+       as per comment at head of bfd-in2.h.
+       * Makefile.in: Regenerate.
+
+2016-09-30  Alan Modra  <amodra@gmail.com>
+
+       * aout-adobe.c: Replace (*_bfd_error_handler) (...) with
+       _bfd_error_handler (...) throughout.
+       * aout-cris.c, * aoutx.h, * archive.c, * bfd.c, * binary.c,
+       * cache.c, * coff-alpha.c, * coff-arm.c, * coff-h8300.c,
+       * coff-i860.c, * coff-mcore.c, * coff-ppc.c, * coff-rs6000.c,
+       * coff-sh.c, * coff-tic4x.c, * coff-tic54x.c, * coff-tic80.c,
+       * coff64-rs6000.c, * coffcode.h, * coffgen.c, * cofflink.c,
+       * coffswap.h, * cpu-arm.c, * cpu-m68k.c, * cpu-sh.c, * dwarf2.c,
+       * ecoff.c, * elf-eh-frame.c, * elf-m10300.c, * elf.c, * elf32-arc.c,
+       * elf32-arm.c, * elf32-avr.c, * elf32-bfin.c, * elf32-cr16.c,
+       * elf32-cris.c, * elf32-crx.c, * elf32-dlx.c, * elf32-frv.c,
+       * elf32-hppa.c, * elf32-i370.c, * elf32-i386.c, * elf32-lm32.c,
+       * elf32-m32c.c, * elf32-m32r.c, * elf32-m68hc1x.c, * elf32-m68k.c,
+       * elf32-mcore.c, * elf32-mep.c, * elf32-metag.c, * elf32-microblaze.c,
+       * elf32-mips.c, * elf32-nds32.c, * elf32-nios2.c, * elf32-or1k.c,
+       * elf32-pj.c, * elf32-ppc.c, * elf32-rl78.c, * elf32-s390.c,
+       * elf32-score.c, * elf32-score7.c, * elf32-sh.c, * elf32-sh64.c,
+       * elf32-sparc.c, * elf32-spu.c, * elf32-tic6x.c, * elf32-tilepro.c,
+       * elf32-v850.c, * elf32-vax.c, * elf32-xtensa.c, * elf64-alpha.c,
+       * elf64-hppa.c, * elf64-ia64-vms.c, * elf64-mips.c, * elf64-mmix.c,
+       * elf64-ppc.c, * elf64-s390.c, * elf64-sh64.c, * elf64-sparc.c,
+       * elf64-x86-64.c, * elfcode.h, * elfcore.h, * elflink.c,
+       * elfn32-mips.c, * elfnn-aarch64.c, * elfnn-ia64.c, * elfxx-mips.c,
+       * elfxx-sparc.c, * elfxx-tilegx.c, * hpux-core.c, * i386linux.c,
+       * ieee.c, * ihex.c, * libbfd.c, * linker.c, * m68klinux.c,
+       * mach-o.c, * merge.c, * mmo.c, * oasys.c, * osf-core.c, * pdp11.c,
+       * pe-mips.c, * peXXigen.c, * pef.c, * plugin.c, * reloc.c,
+       * rs6000-core.c, * sco5-core.c, * som.c, * sparclinux.c, * srec.c,
+       * stabs.c, * syms.c, * vms-alpha.c, * vms-lib.c, * vms-misc.c,
+       * xcofflink.c: Likewise.
+
+2016-09-30  Alan Modra  <amodra@gmail.com>
+
+       * bfd-in.h: Include stdarg.h.
+       * bfd.c (bfd_error_handler_type): Make like vprintf.
+       (_bfd_error_internal): Rename from _bfd_error_handler.  Make static.
+       (error_handler_internal): New function, split out from..
+       (_bfd_default_error_handler): ..here.  Rename to _bfd_error_handler.
+       (bfd_set_error_handler): Update.
+       (bfd_get_error_handler, bfd_get_assert_handler): Delete.
+       (_bfd_assert_handler): Make static.
+       * coffgen.c (null_error_handler): Update params.
+       * elf-bfd.h (struct elf_backend_data <link_order_error_handler>):
+       Don't use bfd_error_handler_type.
+       * elf64-mmix.c (mmix_dump_bpo_gregs): Likewise.
+       * elfxx-target.h (elf_backend_link_order_error_handler): Default
+       to _bfd_error_handler.
+       * libbfd-in.h (_bfd_default_error_handler): Don't declare.
+       (bfd_assert_handler_type): Likewise.
+       (_bfd_error_handler): Update.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+2016-09-28  Akihiko Odaki  <akihiko.odaki.4i@stu.hosei.ac.jp>
+
+       PR ld/20636
+       * elf-bfd.h (struct elf_backend_data): Delete
+       elf_backend_count_output_relocs callback and add
+       elf_backend_update_relocs.
+       * elf32-arm.c (elf32_arm_count_output_relocs): Deleted.
+       (emit_relocs): Deleted.
+       (elf32_arm_emit_relocs): Deleted.
+       (elf_backend_emit_relocs): Updated not to use the old functions.
+       (elf32_arm_update_relocs): New function.
+       (elf_backend_update_relocs): New define.
+       * elflink.c (bfd_elf_final_link): Add additional_reloc_count to the
+       relocation count. Call elf_backend_emit_relocs.
+       (_bfd_elf_size_reloc_section): Do not call
+       elf_backend_count_output_relocs.
+       * elfxx-target.h (elf_backend_count_output_relocs): Deleted.
+       (elf_backend_update_relocs): New define.
+
+2016-09-28  Christophe Lyon  <christophe.lyon@linaro.org>
+
+       PR ld/20608
+       * elf32-arm.c (arm_type_of_stub): Handle the case when the pre-PLT
+       Thumb-ARM stub is too far.
+
+2016-09-27  Nick Clifton  <nickc@redhat.com>
+
+       PR ld/20634
+       * peXXigen.c (_bfd_XXi_only_swap_filehdr_out): Put 0 in the
+       timestamp field if real time values are not being stored.
+
+2016-09-26  Vlad Zakharov  <vzakhar@synopsys.com>
+
+       * warning.m4 (AC_EGREP_CPP_FOR_BUILD): Introduce macro
+       to verify CC_FOR_BUILD compiler.
+       (AM_BINUTILS_WARNINGS): Introduce ac_cpp_for_build variable
+       and add CC_FOR_BUILD compiler checks.
+       * Makefile.in: Regenerate.
+       * configure: Likewise.
+       * doc/Makefile.in: Likewise.
+
+2016-09-26  Awson  <kyrab@mail.ru>
+
+       PR ld/17955
+       * coff-x86_64.c (coff_amd64_rtype_to_howto): Use an 8 byte offset
+       for R_AMD64_PCRQUAD relocations.
+
+2016-09-26  Alan Modra  <amodra@gmail.com>
+
+       * elf-bfd.h (_bfd_elf_ppc_merge_fp_attributes): Declare.
+       * elf32-ppc.c (_bfd_elf_ppc_merge_fp_attributes): New function.
+       (ppc_elf_merge_obj_attributes): Use it.  Don't copy first file
+       attributes, merge them.  Don't warn about undefined tag bits,
+       or copy unknown values to output.
+       * elf64-ppc.c (ppc64_elf_merge_private_bfd_data): Call
+       _bfd_elf_ppc_merge_fp_attributes.
+
+2016-09-23  Akihiko Odaki  <akihiko.odaki.4i@stu.hosei.ac.jp>
+
+       PR ld/20595
+       * elf-bfd.h (struct elf_backend_data): Add
+       elf_backend_count_output_relocs callback to count relocations in
+       the final output.
+       * elf-arm.c (elf32_arm_add_relocation): Deleted.
+       (elf32_arm_write_section): Move additional relocation to emit_relocs.
+       (elf32_arm_count_output_relocs): New function.
+       (emit_relocs): New function.
+       (elf32_arm_emit_relocs): New function.
+       (elf32_arm_vxworks_emit_relocs): New function.
+       (elf_backend_emit_relocs): Updated to use the new functions.
+       (elf_backend_count_output_relocs): New define.
+       * bfd/elflink.c (bfd_elf_final_link): Do not add additional_reloc_count
+       to the relocation count.
+       (_bfd_elf_link_size_reloc_section): Use callback to count the
+       relocations which will be in output.
+       (_bfd_elf_default_count_output_relocs): New function.
+       * bfd/elfxx-target.h (elf_backend_count_output_relocs): New define.
+
+2016-09-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+       * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Allow
+       negative offsets to _GLOBAL_OFFSET_TABLE_ if the .got section is
+       bigger than 0x1000 bytes.
+
+2016-09-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * elf32-arm.c (elf32_arm_gc_mark_extra_sections): Only mark section
+       not already marked.
+
+2016-09-14  Nick Clifton  <nickc@redhat.com>
+
+       PR binutils/20605
+       * peicode.h (pe_bfd_read_buildid): Check that the Data Directory
+       contains a valid size for the Debug directory.
+
+2016-09-14  Bhushan Attarde  <bhushan.attarde@imgtec.com>
+
+       * format.c (struct bfd_preserve): New "build_id" field.
+       (bfd_preserve_save): Save "build_id".
+       (bfd_preserve_restore): Restore "build_id".
+
+2016-09-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/20550
+       * elf64-x86-64.c (elf_x86_64_relocate_section): Resolve size
+       relocation with copy relocation when building executable.
+
+2016-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
+
+       PR ld/20545
+       * elf32-avr.c (elf32_avr_relax_delete_bytes): Add parameter
+       delete_shrinks_insn. Modify computation of shrinked_insn_address.
+       Compute shrink_boundary and adjust addend only if
+       addend_within_shrink_boundary.
+       (elf32_avr_relax_section): Modify calls to
+       elf32_avr_relax_delete_bytes to pass extra parameter.
+
+2016-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * elf32-arm.c (cmse_entry_fct_p): Store instruction encoding in an
+       array of bytes and use bfd_get_16 to interpret its encoding according
+       to endianness of target.
+
+2016-09-01  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (synthetic_opd): New static var.
+       (compare_symbols): Don't treat symbols in .opd specially for ELFv2.
+       (ppc64_elf_get_synthetic_symtab): Likewise.  Comment.
+
+2016-08-31  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (group_sections): Delete stub14_group_size.  Instead,
+       track max group size with a new "group_size" var that is reduced
+       by a factor of 1024 from the 24-bit branch size whenever a 14-bit
+       branch is seen.
+
+2016-08-31  Alan Modra  <amodra@gmail.com>
+
+       * elf32-ppc.c (ppc_elf_section_processing): Delete.
+       (elf_backend_section_processing): Don't define.
+       (ppc_elf_modify_segment_map): Set p_flags and mark valid.  Don't
+       split on non-exec sections differing in SHF_PPC_VLE.  When
+       splitting segments, mark size invalid.
+
+2016-08-30  Alan Modra  <amodra@gmail.com>
+
+       PR 20531
+       * elf32-ppc.c (_bfd_elf_ppc_set_arch): Add missing "break".
+
+2016-08-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/14961
+       PR ld/20515
+       * elf32-i386.c (elf_i386_check_relocs): Issue an error when
+       R_386_PC32 relocation is used to call IFUNC function in PIC
+       object.
+
+2016-08-27  Alan Modra  <amodra@gmail.com>
+
+       PR 20520
+       * elf.c (_bfd_elf_setup_sections): Check that SHT_GROUP sections
+       have corresponding SHF_GROUP sections.
+       (bfd_elf_set_group_contents): Comment.
+
+2016-08-27  Alan Modra  <amodra@gmail.com>
+
+       PR 20519
+       * elf64-ppc.c (pc_dynrelocs): New function.
+       (ppc64_elf_relocate_section): Use it and must_be_dyn_reloc to
+       handle pic dynamic relocs.
+
+2016-08-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * bfd-in.h (struct elf32_arm_params): Define.
+       (bfd_elf32_arm_set_target_relocs): Rename into ...
+       (bfd_elf32_arm_set_target_params): This.  Use a struct
+       elf32_arm_params to pass all parameters but the bfd and bfd_link_info.
+       * bfd-in2.h: Regenerate.
+       * elf32-arm.c (bfd_elf32_arm_set_target_relocs): Rename into ...
+       (bfd_elf32_arm_set_target_params): This.  Pass all values via a struct
+       elf32_arm_params rather than as individual parameters.
+
+2016-08-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * elf32-arm.c (elf32_arm_get_stub_entry): Assert that we don't access
+       passed the end of htab->stub_group array.
+       (elf32_arm_create_or_find_stub_sec): Likewise.
+       (elf32_arm_create_stub): Likewise.
+
+2016-08-26  Cupertino Miranda  <cmiranda@synopsys.com>
+
+       * elf32-arc.c (elf_arc_relocate_section): Changed. Set should_relocate
+       to TRUE for GOT and TLS relocs.
+
+2016-08-26  Cupertino Miranda  <cmiranda@synospsys.com>
+
+       * elf32-arc.c (elf_arc_finish_dynamic_sections): Changed.
+
+2016-08-26  Cupertino Miranda  <cmiranda@synopsys.com>
+
+       * elf-bfd.h: Added ARC_ELF_DATA to enum elf_target_id.
+       * elf32-arc.c (struct elf_arc_link_hash_entry): Added.
+       (struct elf_arc_link_hash_table): Likewise.
+       (elf_arc_link_hash_newfunc): Likewise.
+       (elf_arc_link_hash_table_free): Likewise.
+       (arc_elf_link_hash_table_create): Likewise.
+       (elf_arc_relocate_section): Fixed conditions related to dynamic
+       (elf_arc_check_relocs): Likewise.
+       (arc_elf_create_dynamic_sections): Added
+       (elf_arc_adjust_dynamic_symbol): Changed access to .rela.bss to be done
+       through the hash table.
+
+2016-08-26  Cupertino Miranda  <cmiranda@synopsys.com>
+
+       * arc-got.h (relocate_fix_got_relocs_for_got_info): Fixed addresses in
+       debug comments. Fixed address in .got related to TLS_IE_GOT dynamic
+       relocation.
+
+2016-08-26  Cupertino Miranda  <cmiranda@synopsys.com>
+
+       * reloc.c: Fixed type in ARC_SECTOFF relocations. Added ARC_SDA_12
+       relocation.
+       * bfd-in2.h: Regenerated from the previous changes.
+       * libbfd.h: Regenerated from the previous changes.
+
+2016-08-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add a new parameter for
+       the input import library bfd.
+       * bfd-in2.h: Regenerate.
+       * elf32-arm.c (struct elf32_arm_link_hash_table): New in_implib_bfd
+       and new_cmse_stub_offset fields.
+       (stub_hash_newfunc): Initialize stub_offset and stub_template_size to
+       -1.
+       (elf32_arm_add_stub): Likewise for stub_offset.
+       (arm_new_stubs_start_offset_ptr): New function.
+       (arm_build_one_stub): Only allocate a stub_offset if it is -1.  Allow
+       empty SG veneers to have zero relocations.
+       (arm_size_one_stub): Only initialize stub size and template
+       information for non empty veneers.  Do not update veneer section size
+       if veneer already has an offset.
+       (elf32_arm_create_stub): Return the stub entry pointer or NULL instead
+       of a boolean indicating success or failure.
+       (cmse_scan): Change stub_changed parameter into an integer pointer
+       parameter cmse_stub_created to count the number of stub created and
+       adapt to change of return value in elf32_arm_create_stub.
+       (cmse_entry_fct_p): New function.
+       (arm_list_new_cmse_stub): Likewise.
+       (set_cmse_veneer_addr_from_implib): Likewise.
+       (elf32_arm_size_stubs): Define cmse_stub_created, pass its address to
+       cmse_scan instead of that of cmse_stub_changed to compute the number
+       of stub created and use it to initialize stub_changed.  Call
+       set_cmse_veneer_addr_from_implib after all cmse_scan.  Adapt to change
+       of return value in elf32_arm_create_stub.  Use
+       arm_stub_section_start_offset () if not NULL to initialize size of
+       secure gateway veneers section.  Initialize stub_offset of Cortex-A8
+       erratum fix to -1.  Use ret to hold return value.
+       (elf32_arm_build_stubs): Use arm_stub_section_start_offset () if not
+       NULL to initialize size of secure gateway veneers section.  Adapt
+       comment to stress the importance of zeroing veneer section content.
+       (bfd_elf32_arm_set_target_relocs): Add new in_implib_bfd parameter to
+       initialize eponymous field in struct elf32_arm_link_hash_table.
+
+2016-08-25  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+       * elf32-s390.c (stdarg.h): New include.
+       (elf_s390_grok_psinfo): New function.
+       (elf_s390_write_core_note): New function.
+       (elf_backend_grok_psinfo): Declare backend hook.
+       (elf_backend_write_core_note): Likewise.
+       * elf64-s390.c (stdarg.h): New include.
+       (elf_s390_grok_prstatus): New function.
+       (elf_s390_grok_psinfo): New function.
+       (elf_s390_write_core_note): New function.
+       (elf_backend_grok_prstatus): Declare backend hook.
+       (elf_backend_grok_psinfo): Likewise.
+       (elf_backend_write_core_note): Likewise.
+
+2016-08-25  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+       * elf32-s390.c (allocate_dynrelocs): Fix indentation.
+       (elf_s390_finish_ifunc_symbol): Likewise.
+       (elf_s390_finish_dynamic_symbol): Likewise.
+       (elf_s390_finish_dynamic_sections): Likewise.
+       (elf_s390_grok_prstatus): Likewise.
+       * elf64-s390.c (elf_s390_hash_table): Fix indentation.
+       (elf_s390_finish_dynamic_symbol): Likewise.
+
+2016-08-24  Anton Kolesov  <Anton.Kolesov@synopsys.com>
+
+       * elf32-arc.c (elf32_arc_grok_prstatus): New function.
+
+2016-08-23  Nick Clifton  <nickc@redhat.com>
+
+       * elf32-arm.c (elf32_arm_count_additional_relocs): Return zero if
+       there is no arm data associated with the section.
+
+2016-08-23  Alan Modra  <amodra@gmail.com>
+
+       PR 20475
+       * elf32-or1k.c (or1k_elf_relocate_section): Offset from
+       _GLOBAL_OFFSET_TABLE_, not start of .got section.
+
+2016-08-22  Nick Clifton  <nickc@redhat.com>
+
+       * doc/chew.c (main): Free the string buffer used to files as they
+       are parsed.
+
+2016-08-22  Alan Modra  <amodra@gmail.com>
+
+       * elf32-ppc.c (ppc_elf_check_relocs): Move error for @local ifunc..
+       (ppc_elf_relocate_section): ..to here.  Comment.  Error on
+       detecting -mbss-plt -fPIC local ifuncs too.
+       (ppc_elf_size_dynamic_sections): Comment on unnecessary glink
+       branch table entries.
+
+2016-08-19  Nick Clifton  <nickc@redhat.com>
+
+       * elf.c (assign_section_numbers): Assign number for the .shstrtab
+       section after the symbol table and string table sections.
+
+2016-08-19  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (struct ppc_link_hash_entry): Add weakref.
+       (ppc64_elf_copy_indirect_symbol): Set weakref.  Don't merge
+       dyn_relocs for weakdefs.
+       (alias_readonly_dynrelocs): New function.
+       (ppc64_elf_adjust_dynamic_symbol): Use alias_readonly_dynrelocs.
+       (ppc64_elf_relocate_section): Simplify condition under which
+       dyn_relocs are emitted.
+
+2016-08-19  Alan Modra  <amodra@gmail.com>
+
+       PR 20472
+       * elf64-ppc.c (ppc64_elf_before_check_relocs): Tweak abiversion test.
+       (readonly_dynrelocs): Comment fix.
+       (global_entry_stub): New function.
+       (ppc64_elf_adjust_dynamic_symbol): Tweak abiversion test.  Match
+       ELFv2 code deciding on dynamic relocs vs. global entry stubs to
+       that in size_global_entry_stubs, handling ifunc too.  Delete dead
+       weak sym code.
+       (allocate_dynrelocs): Ensure dyn_relocs field is cleared when no
+       dyn_relocs are needed.  Correct handling of ifunc dyn_relocs.
+       Tidy ELIMINATE_COPY_RELOCS code, only setting dynindx for
+       undefweak syms.  Expand and correct comments.
+       (size_global_entry_stubs): Ensure symbol is defined.
+       (ppc64_elf_relocate_section): Match condition under which
+       dyn_relocs are emitted to that in allocate_dynrelocs.
+
+2016-08-12  Alan Modra  <amodra@gmail.com>
+
+       * elf-bfd.h (struct elf_link_hash_table): Add local_dynsymcount.
+       * elflink.c (_bfd_elf_link_renumber_dynsyms): Set local_dynsymcount.
+       (bfd_elf_final_link): Set .dynsym sh_info from local_dynsymcount.
+
+2016-08-11  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Don't exit with
+       non_got_ref true in any case where we could have generated dynbss
+       copies but decide not to do so.
+
+2016-08-10  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elfxx-mips.c (mips_elf_add_la25_stub): Clear the ISA bit of
+       the stub address retrieved if associated with a microMIPS
+       function.
+
+2016-08-10  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elfxx-mips.c (mips_elf_create_stub_symbol): For a microMIPS
+       stub also add STO_MICROMIPS annotation.
+
+2016-08-10  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elfxx-mips.c (mips_elf_calculate_relocation): Set the ISA bit
+       in microMIPS LA25 stub references.
+
+2016-08-09  Jiaming Wei  <jmwei@hxgpt.com>
+
+       * elf64-alpha.c (elf64_alpha_copy_indirect_symbol): Fix thinko
+       adjusting the use_count of merged .got entries.
+
+2016-08-08  Nick Clifton  <nickc@redhat.com>
+
+       * doc/chew.c (delete_string): Only free the string buffer if it is
+       there.  Mark the buffer as NULL after freeing.
+       (drop): Free the dropped string.
+       (free_words): New function: Frees the memory allocated to the
+       dictionary.
+       (add_instrinsic): Duplicate the name string, so that it can be
+       freed later on.
+       (compile): Free unused words.
+       (main): Free the dictionary and top level string buffers at the
+       end.
+
 2016-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
 
        * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add one parameter.
This page took 0.033116 seconds and 4 git commands to generate.