Fail-Safe C is a memory-safe implementation of the full ANSI C language. More precisely, it detects and disallows all unsafe operations, yet conforming to the full ANSI C standard (including casts and unions) and even supporting many “dirty tricks” common in many existing programs which do not strictly conform to the standard. This work also proposes several techniques---both compile-time and runtime---to reduce the overhead of runtime checks. By using the Fail-Safe C compiler, programmers can easily make their programs safe without performing heavy rewriting or porting of their code.

For more details, refer the following: