aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorKiran Chandramohan <kiran.chandramohan@arm.com>2025-01-15 15:06:57 +0000
committerGitHub <noreply@github.com>2025-01-15 15:06:57 +0000
commitc593e3d0f77509ce65a6f5bd744f2d1ea9935c47 (patch)
treef528677face78d972c043617d3e47090757e6c91 /flang/lib/Frontend/CompilerInvocation.cpp
parente9504c52edd796a22a879b381f17bd8ed235bfd4 (diff)
downloadllvm-c593e3d0f77509ce65a6f5bd744f2d1ea9935c47.zip
llvm-c593e3d0f77509ce65a6f5bd744f2d1ea9935c47.tar.gz
llvm-c593e3d0f77509ce65a6f5bd744f2d1ea9935c47.tar.bz2
[Flang][Driver] Add a flag to control zero initialization of global v… (#122144)
…ariables Patch adds a flag to control zero initialization of global variables without default initialization. The default is to zero initialize.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--flang/lib/Frontend/CompilerInvocation.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index 5e71273..78d1199 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -1373,6 +1373,14 @@ bool CompilerInvocation::createFromArgs(
invoc.loweringOpts.setNoPPCNativeVecElemOrder(true);
}
+ // -f[no-]init-global-zero
+ if (args.hasFlag(clang::driver::options::OPT_finit_global_zero,
+ clang::driver::options::OPT_fno_init_global_zero,
+ /*default=*/true))
+ invoc.loweringOpts.setInitGlobalZero(true);
+ else
+ invoc.loweringOpts.setInitGlobalZero(false);
+
// Preserve all the remark options requested, i.e. -Rpass, -Rpass-missed or
// -Rpass-analysis. This will be used later when processing and outputting the
// remarks generated by LLVM in ExecuteCompilerInvocation.cpp.