| 584 | */ |
| 585 | |
| 586 | RULE * new_rule_body( module_t * m, OBJECT * rulename, FUNCTION * procedure, |
| 587 | int exported ) |
| 588 | { |
| 589 | RULE * const local = define_rule( m, rulename, m ); |
| 590 | local->exported = exported; |
| 591 | set_rule_body( local, procedure ); |
| 592 | |
| 593 | /* Mark the procedure with the global rule name, regardless of whether the |
| 594 | * rule is exported. That gives us something reasonably identifiable that we |
| 595 | * can use, e.g. in profiling output. Only do this once, since this could be |
| 596 | * called multiple times with the same procedure. |
| 597 | */ |
| 598 | if ( !function_rulename( procedure ) ) |
| 599 | function_set_rulename( procedure, global_rule_name( local ) ); |
| 600 | |
| 601 | return local; |
| 602 | } |
| 603 | |
| 604 | |
| 605 | static void set_rule_actions( RULE * rule, rule_actions * actions ) |
no test coverage detected