@@ -3230,7 +3230,7 @@ parameter_abstract_declarator:
32303230 | parameter_postfix_abstract_declarator
32313231 ;
32323232
3233- cprover_contract :
3233+ cprover_function_contract :
32343234 TOK_CPROVER_ENSURES ' (' ACSL_binding_expression ' )'
32353235 {
32363236 $$=$1 ;
@@ -3243,7 +3243,11 @@ cprover_contract:
32433243 set ($$, ID_C_spec_requires);
32443244 mto ($$, $3 );
32453245 }
3246- | TOK_CPROVER_ASSIGNS ' (' argument_expression_list ' )'
3246+ | cprover_contract_assigns_opt
3247+ ;
3248+
3249+ cprover_contract_assigns_opt:
3250+ TOK_CPROVER_ASSIGNS ' (' argument_expression_list ' )'
32473251 {
32483252 $$=$1 ;
32493253 set ($$, ID_C_spec_assigns);
@@ -3252,19 +3256,19 @@ cprover_contract:
32523256 }
32533257 ;
32543258
3255- cprover_contract_sequence :
3256- cprover_contract
3257- | cprover_contract_sequence cprover_contract
3259+ cprover_function_contract_sequence :
3260+ cprover_function_contract
3261+ | cprover_function_contract_sequence cprover_function_contract
32583262 {
32593263 $$=$1 ;
32603264 merge ($$, $2 );
32613265 }
32623266 ;
32633267
3264- cprover_contract_sequence_opt :
3268+ cprover_function_contract_sequence_opt :
32653269 /* nothing */
32663270 { init ($$); }
3267- | cprover_contract_sequence
3271+ | cprover_function_contract_sequence
32683272 ;
32693273
32703274postfixing_abstract_declarator:
@@ -3305,7 +3309,7 @@ postfixing_abstract_declarator:
33053309parameter_postfixing_abstract_declarator:
33063310 array_abstract_declarator
33073311 | ' (' ' )'
3308- cprover_contract_sequence_opt
3312+ cprover_function_contract_sequence_opt
33093313 {
33103314 set ($1 , ID_code);
33113315 stack_type ($1 ).add (ID_parameters);
@@ -3322,7 +3326,7 @@ parameter_postfixing_abstract_declarator:
33223326 parameter_type_list
33233327 ' )'
33243328 KnR_parameter_header_opt
3325- cprover_contract_sequence_opt
3329+ cprover_function_contract_sequence_opt
33263330 {
33273331 set ($1 , ID_code);
33283332 stack_type ($1 ).subtype ()=typet (ID_abstract);
0 commit comments