From 191d48723f8b853a6ad65532c173c67155cbe606 Mon Sep 17 00:00:00 2001 From: Peter Klausler Date: Tue, 9 May 2023 14:01:18 -0700 Subject: [flang] Finer control over warnings Establish a set of optional usage warnings, and enable some only in "-pedantic" mode that, in our subjective experience with application codes, seem to issue frequently without indicating usage that really needs to be corrected. By default, with this patch the compiler should appear to be somewhat less persnickety but not less informative. Differential Revision: https://reviews.llvm.org/D150710 --- flang/lib/Frontend/CompilerInvocation.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'flang/lib/Frontend/CompilerInvocation.cpp') diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp index 6672777..84478f2 100644 --- a/flang/lib/Frontend/CompilerInvocation.cpp +++ b/flang/lib/Frontend/CompilerInvocation.cpp @@ -774,8 +774,9 @@ static bool parseDialectArgs(CompilerInvocation &res, llvm::opt::ArgList &args, // -pedantic if (args.hasArg(clang::driver::options::OPT_pedantic)) { res.setEnableConformanceChecks(); + res.setEnableUsageChecks(); } - // -std=f2018 (currently this implies -pedantic) + // -std=f2018 // TODO: Set proper options when more fortran standards // are supported. if (args.hasArg(clang::driver::options::OPT_std_EQ)) { @@ -1045,9 +1046,11 @@ void CompilerInvocation::setFortranOpts() { if (frontendOptions.needProvenanceRangeToCharBlockMappings) fortranOptions.needProvenanceRangeToCharBlockMappings = true; - if (getEnableConformanceChecks()) { + if (getEnableConformanceChecks()) fortranOptions.features.WarnOnAllNonstandard(); - } + + if (getEnableUsageChecks()) + fortranOptions.features.WarnOnAllUsage(); } void CompilerInvocation::setSemanticsOpts( @@ -1060,7 +1063,6 @@ void CompilerInvocation::setSemanticsOpts( semanticsContext->set_moduleDirectory(getModuleDir()) .set_searchDirectories(fortranOptions.searchDirectories) .set_intrinsicModuleDirectories(fortranOptions.intrinsicModuleDirectories) - .set_warnOnNonstandardUsage(getEnableConformanceChecks()) .set_warningsAreErrors(getWarnAsErr()) .set_moduleFileSuffix(getModuleFileSuffix()); -- cgit v1.1