Fil-C: completely compatible memory safety for C and C++