Dynamic erroneous attributes
Submitted by Botond Baranyi
Assigned to Botond Baranyi
Link to original bug (#511903)
Description
Currently erroneous 'with' attributes (used by codecs for negative testing) may only be specified at the declaration of the values or templates they affect, and they may only contain literals or references to constants.
For the codecs in TITAN to be used for fuzzing, these erroneous attributes must be dynamically changeable.
Suggestion: Implement a new statement called '@update' with the following syntax:
@update(<value or template>
) with { <attributes>
}
This statement would set the erroneous attributes of the value or template parameter to the ones specified in the 'with' branch. Any erroneous attributes the value or template might have (from its declaration or from previous @update statements) will be overwritten.
The erroneous attributes in the '@update' statement may contain references to values that are not known at compile-time (e.g.: variables, function calls, etc.).
The statement's 'with' branch may not contain any other types of attributes other than erroneous attributes.
The 'with' branch may be empty or omitted, in which case the '@update' statement erases any previously set erroneous attributes from the value or template.