Originally contract attributes were stored separately from standard c++11 attributes in several places. Changes have since been made so that on the final FUNCTION_DECL they're stored in DECL_ATTRIBUTES along with other attributes, but cp_declarator still has three places "attributes" are stored:
attributes (gnu attrs)
std_attributes
contracts
Now that contract attributes have been rewritten to behave more like other DECL_ATTRIBUTES, we may be able to drop the contracts member and just process them while they're in std_attributes.
Originally contract attributes were stored separately from standard c++11 attributes in several places. Changes have since been made so that on the final
FUNCTION_DECLthey're stored inDECL_ATTRIBUTESalong with other attributes, butcp_declaratorstill has three places "attributes" are stored:attributes(gnu attrs)std_attributescontractsNow that contract attributes have been rewritten to behave more like other
DECL_ATTRIBUTES, we may be able to drop thecontractsmember and just process them while they're instd_attributes.