diff options
author | Martin Liska <mliska@suse.cz> | 2020-11-23 13:40:04 +0100 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2020-12-04 10:13:51 +0100 |
commit | 7caa49706316e650fb67719e1a1bf3a35054b685 (patch) | |
tree | bfe3d80eb7261ea7781761b41c645f4951d47e1b /gcc/varasm.c | |
parent | 241a2c498005207d52a3d64884e41953fc00275c (diff) | |
download | gcc-7caa49706316e650fb67719e1a1bf3a35054b685.zip gcc-7caa49706316e650fb67719e1a1bf3a35054b685.tar.gz gcc-7caa49706316e650fb67719e1a1bf3a35054b685.tar.bz2 |
Refactor -frecord-gcc-switches.
gcc/ChangeLog:
* doc/tm.texi: Change argument of the record_gcc_switches
hook and remove SWITCH_TYPE_* enum values.
* dwarf2out.c (gen_producer_string): Move to opts.c and remove
handling of the dwarf_record_gcc_switches option.
(dwarf2out_early_finish): Use moved gen_producer_string
function.
* opts.c (gen_producer_string): New.
* opts.h (gen_producer_string): New.
* target.def: Change type of record_gcc_switches.
* target.h (enum print_switch_type): Remove.
(elf_record_gcc_switches): Change first argument.
* toplev.c (MAX_LINE): Remove.
(print_to_asm_out_file): Likewise.
(print_to_stderr): Likewise.
(print_single_switch): Likewise.
(print_switch_values): Likewise.
(init_asm_output): Use new gen_producer_string function.
(process_options): Likewise.
* varasm.c (elf_record_gcc_switches): Just save the string argument
to the ELF container.
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r-- | gcc/varasm.c | 48 |
1 files changed, 10 insertions, 38 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index 961d2d6..0fac368 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -43,6 +43,7 @@ along with GCC; see the file COPYING3. If not see #include "fold-const.h" #include "stor-layout.h" #include "varasm.h" +#include "version.h" #include "flags.h" #include "stmt.h" #include "expr.h" @@ -58,6 +59,8 @@ along with GCC; see the file COPYING3. If not see #include "rtl-iter.h" #include "file-prefix-map.h" /* remap_debug_filename() */ #include "alloc-pool.h" +#include "toplev.h" +#include "opts.h" #ifdef XCOFF_DEBUGGING_INFO #include "xcoffout.h" /* Needed for external data declarations. */ @@ -8053,45 +8056,14 @@ output_object_blocks (void) we want to emit NUL strings terminators into the object file we have to use ASM_OUTPUT_SKIP. */ -int -elf_record_gcc_switches (print_switch_type type, const char * name) +void +elf_record_gcc_switches (const char *options) { - switch (type) - { - case SWITCH_TYPE_PASSED: - ASM_OUTPUT_ASCII (asm_out_file, name, strlen (name)); - ASM_OUTPUT_SKIP (asm_out_file, HOST_WIDE_INT_1U); - break; - - case SWITCH_TYPE_DESCRIPTIVE: - if (name == NULL) - { - /* Distinguish between invocations where name is NULL. */ - static bool started = false; - - if (!started) - { - section * sec; - - sec = get_section (targetm.asm_out.record_gcc_switches_section, - SECTION_DEBUG - | SECTION_MERGE - | SECTION_STRINGS - | (SECTION_ENTSIZE & 1), - NULL); - switch_to_section (sec); - started = true; - } - } - - default: - break; - } - - /* The return value is currently ignored by the caller, but must be 0. - For -fverbose-asm the return value would be the number of characters - emitted into the assembler file. */ - return 0; + section *sec = get_section (targetm.asm_out.record_gcc_switches_section, + SECTION_DEBUG | SECTION_MERGE + | SECTION_STRINGS | (SECTION_ENTSIZE & 1), NULL); + switch_to_section (sec); + ASM_OUTPUT_ASCII (asm_out_file, options, strlen (options) + 1); } /* Emit text to declare externally defined symbols. It is needed to |