From dde9de7cf943ace41ac69589df661b2ab54dd76b Mon Sep 17 00:00:00 2001 From: Douglas Yung Date: Sat, 12 May 2018 00:06:59 +0000 Subject: 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 --- clang/lib/Frontend/CompilerInvocation.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'clang/lib/Frontend/CompilerInvocation.cpp') diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 05e5196e3..b8e05b5 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) { -- cgit v1.1