Implement -Wmissing-prototypes. Fixes PR3911.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68110 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/clang-cc/Warnings.cpp b/tools/clang-cc/Warnings.cpp
index 698e44f..be93c67 100644
--- a/tools/clang-cc/Warnings.cpp
+++ b/tools/clang-cc/Warnings.cpp
@@ -140,6 +140,9 @@
diag::ext_typecheck_convert_incompatible_pointer_sign
};
static const diag::kind DeprecatedDeclarations[] = { diag::warn_deprecated };
+static const diag::kind MissingPrototypesDiags[] = {
+ diag::warn_missing_prototype
+};
// Hmm ... this option is currently actually completely ignored.
//static const diag::kind StrictSelectorMatchDiags[] = { };
@@ -149,6 +152,7 @@
{ "float-equal", DIAGS(FloatEqualDiags) },
{ "format-nonliteral", DIAGS(FormatNonLiteralDiags) },
{ "implicit-function-declaration", DIAGS(ImplicitFunctionDeclarationDiags) },
+ { "missing-prototypes", DIAGS(MissingPrototypesDiags) },
{ "pointer-sign", DIAGS(PointerSignDiags) },
{ "readonly-setter-attrs", DIAGS(ReadOnlySetterAttrsDiags) },
{ "undef", DIAGS(UndefDiags) },
@@ -179,6 +183,7 @@
Diags.setDiagnosticMapping(diag::err_pp_file_not_found, diag::MAP_FATAL);
Diags.setDiagnosticMapping(diag::err_template_recursion_depth_exceeded,
diag::MAP_FATAL);
+ Diags.setDiagnosticMapping(diag::warn_missing_prototype, diag::MAP_IGNORE);
Diags.setSuppressSystemWarnings(!OptWarnInSystemHeaders);
for (OptionsList::iterator it = Options.begin(), e = Options.end();