Tested x86_64-pc-linux-gnu, applying to trunk.
-- 8< --
As a followup to the previous patch for 116954, there's no reason to do
anything in remove_contract_attributes if contracts aren't enabled.
PR c++/116954
gcc/cp/ChangeLog:
* contracts.cc (remove_contract_attributes): Return early if
not enabled.
---
gcc/cp/contracts.cc | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gcc/cp/contracts.cc b/gcc/cp/contracts.cc
index 3ca2102e866..d0cfd2efd55 100644
--- a/gcc/cp/contracts.cc
+++ b/gcc/cp/contracts.cc
@@ -860,6 +860,9 @@ cp_contract_assertion_p (const_tree attr)
void
remove_contract_attributes (tree fndecl)
{
+ if (!flag_contracts)
+ return;
+
tree list = NULL_TREE;
for (tree p = DECL_ATTRIBUTES (fndecl); p; p = TREE_CHAIN (p))
if (!cxx_contract_attribute_p (p))
base-commit: fa61afef18a8566d1907a5ae0e7754e1eac207d9
--
2.49.0