https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113039
Hongtao Liu <liuhongt at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |liuhongt at gcc dot gnu.org --- Comment #3 from Hongtao Liu <liuhongt at gcc dot gnu.org> --- Currently it's defined as EnumSet and -fcf-protection=branch won't unset any others bits since they're in different groups. 2000fcf-protection= 2001Common Joined RejectNegative Enum(cf_protection_level) EnumSet Var(flag_cf_protection) Init(CF_NONE) 2002-fcf-protection=[full|branch|return|none|check] Instrument functions with checks to verify jump/call/return control-flow transfer 2003instructions have valid targets. 2004 2005Enum 2006Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs) 2007 2008EnumValue 2009Enum(cf_protection_level) String(full) Value(CF_FULL) Set(1) 2010 2011EnumValue 2012Enum(cf_protection_level) String(branch) Value(CF_BRANCH) Set(2) 2013 2014EnumValue 2015Enum(cf_protection_level) String(return) Value(CF_RETURN) Set(3) 2016 2017EnumValue 2018Enum(cf_protection_level) String(check) Value(CF_CHECK) Set(4) 2019 2020EnumValue 2021Enum(cf_protection_level) String(none) Value(CF_NONE) Set(1)