From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id BFAB8385842F; Mon, 18 Dec 2023 02:42:07 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BFAB8385842F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1702867327; bh=nHc5S//7/UqMlUU0Kvtu9eBEjXNtckm2hvQG3jkzIJY=; h=From:To:Subject:Date:In-Reply-To:References:From; b=tTiFc7UdOoK26/nUERkmIwoZ0t6wuHM40lldMj6htzxUIZbnFT94UkfxcCFFbvDk0 yZiTvOQxR/Q45AhCvfVNfcSl65InXgUqJGar+8CdbQH7FouWWPAv2Nua4SuqfqZ0Il Oy6qfVlCw6PMZ3hHe1iT/sXy8XxlfLR8S9hUtYDk= From: "liuhongt at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/113039] [14 Regression] -fcf-protection -fcf-protection=branch doesn't work Date: Mon, 18 Dec 2023 02:42:07 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: liuhongt at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 14.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D113039 Hongtao Liu changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |liuhongt at gcc dot gnu.org --- Comment #3 from Hongtao Liu --- Currently it's defined as EnumSet and -fcf-protection=3Dbranch won't unset = any others bits since they're in different groups. 2000fcf-protection=3D 2001Common Joined RejectNegative Enum(cf_protection_level) EnumSet Var(flag_cf_protection) Init(CF_NONE) 2002-fcf-protection=3D[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)=