diff options
author | Abhina Sree <Abhina.Sreeskantharajan@ibm.com> | 2024-08-08 08:35:22 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-08 08:35:22 -0400 |
commit | 135fecd4441068667ef23f56098befd0c42f89f2 (patch) | |
tree | a1d7265fc12e84bab39a8e46bfa7dbc71fc3d172 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 7e7a439705f4926a798785579aeb9bfff07049c7 (diff) | |
download | llvm-135fecd4441068667ef23f56098befd0c42f89f2.zip llvm-135fecd4441068667ef23f56098befd0c42f89f2.tar.gz llvm-135fecd4441068667ef23f56098befd0c42f89f2.tar.bz2 |
[SystemZ][z/OS] __ptr32 support for z/OS (#101696)
Enabling __ptr32 keyword to support in Clang for z/OS. It is represented
by addrspace(1) in LLVM IR. Unlike existing implementation, __ptr32 is
not mangled into symbol names for z/OS.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 225bd641..4dbb13f 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -3650,6 +3650,11 @@ void CompilerInvocationBase::GenerateLangArgs(const LangOptions &Opts, GenerateArg(Consumer, OPT_ftrigraphs); } + if (T.isOSzOS() && !Opts.ZOSExt) + GenerateArg(Consumer, OPT_fno_zos_extensions); + else if (Opts.ZOSExt) + GenerateArg(Consumer, OPT_fzos_extensions); + if (Opts.Blocks && !(Opts.OpenCL && Opts.OpenCLVersion == 200)) GenerateArg(Consumer, OPT_fblocks); @@ -4051,6 +4056,9 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, Opts.Trigraphs = Args.hasFlag(OPT_ftrigraphs, OPT_fno_trigraphs, Opts.Trigraphs); + Opts.ZOSExt = + Args.hasFlag(OPT_fzos_extensions, OPT_fno_zos_extensions, T.isOSzOS()); + Opts.Blocks = Args.hasArg(OPT_fblocks) || (Opts.OpenCL && Opts.OpenCLVersion == 200); |