-Wall -Wextra -Werror -pedantic