diff options
author | Douglas Yung <douglas.yung@sony.com> | 2018-05-12 00:06:59 +0000 |
---|---|---|
committer | Douglas Yung <douglas.yung@sony.com> | 2018-05-12 00:06:59 +0000 |
commit | dde9de7cf943ace41ac69589df661b2ab54dd76b (patch) | |
tree | 0d035e91adb07f02d2e25e8bcd21a80baf18a363 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 79a736136772fab259f5e28ff2581fd37f97e43f (diff) | |
download | bcm5719-llvm-dde9de7cf943ace41ac69589df661b2ab54dd76b.tar.gz bcm5719-llvm-dde9de7cf943ace41ac69589df661b2ab54dd76b.zip |
Force the PS4 clang ABI version to 6.
The PS4 requires clang ABI version 6 for compatibility reasons. This change forces this and if the user specifies a different version when the PS4 target is specified, the compiler emits a warning that the specified version is being ignored.
Reviewers: probinson
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D46767
llvm-svn: 332160
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 05e5196e32d..b8e05b523ef 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -2751,6 +2751,16 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK, << A->getAsString(Args) << A->getValue(); } } + // The PS4 requires version 6 of the clang ABI. + if (T.isPS4()) { + // Issue a warning if another version of the ABI was requested. + if (Args.getLastArg(OPT_fclang_abi_compat_EQ) && + Opts.getClangABICompat() != LangOptions::ClangABI::Ver6) { + Diags.Report(diag::warn_drv_ignored_clang_abi_version) + << 6; + } + Opts.setClangABICompat(LangOptions::ClangABI::Ver6); + } } static bool isStrictlyPreprocessorAction(frontend::ActionKind Action) { |