An efficient and backwards-compatible transformation to ensure memory safety of C programs | Synapse