* gc.h (gc_process_relocs): Check if icf is enabled using new
authorSriraman Tallam <tmsriram@google.com>
Tue, 13 Oct 2009 21:17:43 +0000 (21:17 +0000)
committerSriraman Tallam <tmsriram@google.com>
Tue, 13 Oct 2009 21:17:43 +0000 (21:17 +0000)
commit032ce4e9e37bd92e928352fca78b1eee3bb41fdd
treeca3bb0efd21ae5b265a39f8b4179c4d28d3465b2
parent55b126d49cd449155a9057c7212d0b2e74bab465
* gc.h (gc_process_relocs): Check if icf is enabled using new
function.
* gold.cc (queue_initial_tasks): Likewise.
(queue_middle_tasks): Likewise.
* object.cc (do_layout): Likewise.
* symtab.cc (is_section_folded): Likewise.
* main.cc (main): Likewise.
* reloc.cc (Read_relocs::run): Likewise.
(Sized_relobj::do_scan_relocs): Likewise.
* icf.cc (is_function_ctor_or_dtor): New function.
(Icf::find_identical_sections): Check if function is ctor or dtor when
safe icf is chosen.
* options.h (General_options::icf): Change option to be an enum.
(Icf_status): New enum.
(icf_enabled): New method.
(icf_safe_folding): New method.
(set_icf_status): New method.
(icf_status_): New variable.
* (options.cc) (General_options::finalize): Set icf_status_.
* testsuite/Makefile.am: Add commands to build icf_safe_test. Modify
icf_test and icf_keep_unique_test to use the --icf enum flag.
* testsuite/icf_safe_test.sh: New file.
* testsuite/icf_safe_test.cc: New file.
14 files changed:
gold/ChangeLog
gold/gc.h
gold/gold.cc
gold/icf.cc
gold/main.cc
gold/object.cc
gold/options.cc
gold/options.h
gold/reloc.cc
gold/symtab.cc
gold/testsuite/Makefile.am
gold/testsuite/Makefile.in
gold/testsuite/icf_safe_test.cc [new file with mode: 0644]
gold/testsuite/icf_safe_test.sh [new file with mode: 0755]