Works up to clang