CBMC is a bounded model checker for C and C++
CBMC is a bounded model checker for C and C++. It can verify array bounds, pointer safety, exception catchment and user-specified assertions. It is primarily aimed at embedded software but supports dynamic memory allocation. It is available for Linux, Solaris, Mac OS X and Windows.