@nonconst1@ type T; identifier x; position p; @@ const T x@p = { ... }; @@ type T; expression E; statement S1, S2; identifier x; identifier f; position p != nonconst1.p; @@ { ... when != { ... } when any T x@p = { - .f = E, }; ... when != S1 ++ x.f = E; S2 ... when any } @nonconst2@ type T; identifier x; position p; @@ const T x@p = { ... }; @@ type T; statement S1, S2; identifier x; position p != nonconst2.p; @@ { ... when != { ... } when any T x@p - = {0} ; ... when != S1 when != x ++ _memclr(&x, sizeof(x)); S2 ... when any } @nonconst3@ type T; identifier x; position p; @@ const T x@p = { ... }; @@ type T; statement S1, S2; identifier x; position p != nonconst3.p; @@ { ... when != { ... } when any T x@p - = {} ; ... when != S1 when != x ++ _memclr(&x, sizeof(x)); S2 ... when any }