compile with -Wextra