Interface MemType

All Superinterfaces:
ObjectType, SetType, Type, UnqualifiedObjectType

public interface MemType extends UnqualifiedObjectType, SetType

This class represents the $mem type which stands for a set of (typed) memory locations.

There is always an implicit type conversion from SetType with element of pointer type to MemType. An expression e in CIVL-C language of $mem type can only be one of the following forms:

  • e is an identifier
  • e is a function call, to which returns $mem type object
  • e has form: ($mem)e' where the cast can be either an explicit cast or an implicit conversion. The expression e' is an expression of (set-of) pointer types

In CIVL-C, an expression e of set type can only appear as a sub-expression of such a form: ($mem)e' where the cast can be either an explicit cast or an implicit conversion. Hence e is either e' or a sub-expression of e'. See SetType for more informations.

In addition, for an expression of the form: ($mem)e' where the cast can be either an explicit cast or an implicit conversion, there are restrictions on the form of e'. See MemConversion for more informations.