[flang-commits] [flang] [flang] Make -fsave-main-program default (PR #137090)

Eugene Epshteyn via flang-commits flang-commits at lists.llvm.org
Wed Apr 23 17:08:31 PDT 2025


https://github.com/eugeneepshteyn created https://github.com/llvm/llvm-project/pull/137090

There are many Fortran tests that assume that the variables in Fortran main program have implicit SAVE attribute. These tests don't initialize such variables in some cases, relying on them having been automatically initialized to zero. With -fno-save-main-program being the default, such tests encounter undefined behavior.

>From 9876c3ff951a7c2a3eee2004e3672d52e4bd035f Mon Sep 17 00:00:00 2001
From: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: Wed, 23 Apr 2025 20:02:49 -0400
Subject: [PATCH] [flang] Make -fsave-main-program default

There are many Fortran tests that assume that the variables in Fortran
main program have implicit SAVE attribute. These tests don't initialize
such variables in some cases, relying on them having been automatically
initialized to zero. With -fno-save-main-program being the default, such
tests encounter undefined behavior.
---
 flang/lib/Frontend/CompilerInvocation.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index 6f87a18d69c3d..a2401bd78c2b8 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -820,7 +820,7 @@ static bool parseFrontendArgs(FrontendOptions &opts, llvm::opt::ArgList &args,
   opts.features.Enable(
       Fortran::common::LanguageFeature::SaveMainProgram,
       args.hasFlag(clang::driver::options::OPT_fsave_main_program,
-                   clang::driver::options::OPT_fno_save_main_program, false));
+                   clang::driver::options::OPT_fno_save_main_program, true));
 
   if (args.hasArg(
           clang::driver::options::OPT_falternative_parameter_statement)) {



More information about the flang-commits mailing list