clang will complain about main not returning void