changed to clang and added undefined behavior compiler flags.