restrict

In the C programming language, restrict is a keyword, introduced by the C99 standard,[1] that can be used in pointer declarations.

If the declaration of intent is not followed and the object is accessed by an independent pointer, this will result in undefined behavior.

Benefit with the above mini-example tends to be small, and in real-life cases large loops doing heavy memory access tends to be what is really helped by restrict.

The exact interpretation of these alternative keywords vary by the compiler: To help prevent incorrect code, some compilers and other tools try to detect when overlapping arguments have been passed to functions with parameters marked restrict.

[3] The CERT C Coding Standard considers misuse of restrict and library functions marked with it (EXP43-C) a probable source of software bugs, although as of November 2019 no vulnerabilities are known to have been caused by this.