When we have --icf=safe we should be able to define --icf=all as a shorthand for --icf=safe --ignore-function-address-equality.
For now --ignore-function-address-equality is used only to control access to non preemptable symbols in shared libraries.
Paths
| Differential D41207
Rename --icf-data and add a corresponding flag for functions AbandonedPublic Authored by • espindola on Dec 13 2017, 4:15 PM.
Details
Diff Detail Event TimelineComment Actions There exists -icf=all, -icf=safe and -icf=none to choose ICF levels, and this patch adds other flags (-ignore-{data,function}-address-equality) to control ICF levels. It doesn't seems like the new flags are in line with the existing options. I'd keep the existing notation which is -icf=<something>. If we use clang as a precedence, one candidate would be -icf=everything (just like -Weverything as opposed to -Wall) which would do more than -icf=all.
Revision Contents
Diff 127447 ELF/Config.h
ELF/Driver.cpp
ELF/ICF.cpp
ELF/Options.td
ELF/Relocations.cpp
test/ELF/Inputs/protected-data-access.s
test/ELF/Inputs/protected-function-access.s
test/ELF/icf9.s
test/ELF/protected-data-access.s
test/ELF/protected-function-access.s
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||