https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677
Bug ID: 79677 Summary: Weird handling of -Werror= Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- On the following testcase: int main() { char message[10] = ""; __builtin_printf(message); return 0; } we warn (or error) e.g. with: -Wformat -Wformat-security -Wformat -Werror=format-security -Wall -Wformat-security -Wall -Werror=format-security -Wformat -Wformat-security -Wformat -Wall -Wformat-security -Wformat -Wformat -Wformat-security -Wall -Wall -Wformat-security -Wall -Wformat -Wformat-security -Werror=format-security -Wformat -Wall -Wformat-security -Werror=format-security -Wformat -Wformat -Wformat-security -Werror=format-security -Wall -Wall -Wformat-security -Werror=format-security -Wall but not with: -Wformat -Werror=format-security -Wformat -Wall -Werror=format-security -Wformat -Wformat -Werror=format-security -Wall -Wall -Werror=format-security -Wall -Wall implies -Wformat (level 1) and -Wformat only for level 2 implies -Wformat-security, so something in the -Wformat or -Wall handling disables warn_format_security, but strangely only when the -Werror option is used.