compile under clang with -Weverything