 During compilation of an unsafe language run-time checks is added to the low-level code to detect source-level undefined behavior.An example is the use of canaries, which can terminate a program when discovering bounds violations.A downside of using run-time checks such as in bounds-checking is that they impose considerable performance overhead.