-Wall -Wdeclaration-after-statement -Wempty-body -Wformat -Wformat-nonliteral -Wformat-security -Winit-self -Winline -Wmissing-include-dirs -Wno-strict-aliasing -Wno-uninitialized -Wredundant-decls -Wshadow -Wswitch-default -Wswitch-enum -Wundef -Wuninitialized -Wexpansion-to-defined -pedantic