https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81212
Bug ID: 81212 Summary: -Wreturn-type is disabled when used together with -fsanitize=return Product: gcc Version: 7.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: vanyacpp at gmail dot com Target Milestone: --- Consider this code snippet: struct X { X(void* p); void* p; }; X f(bool x, void* p) { if (x) return X(p); } Compiling it with gcc 7.1 -Wreturn-type gives a warning: warning: control reaches end of non-void function [-Wreturn-type] But compiling it with gcc 7.1 -Wreturn-type and -fsanitize=return gives no warning. Clang 4.0 gives the warning in both cases. It would be great if gcc gave the warning in both cases too.