[PATCH] D18708: Set C99 as default C Standard for PS4 target
Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 4 16:01:37 PDT 2016
This revision was automatically updated to reflect the committed changes.
Closed by commit rL265359: Set the default C standard to C99 when targeting the PS4. (authored by ssrivastava).
Changed prior to commit:
http://reviews.llvm.org/D18708?vs=52622&id=52633#toc
Repository:
rL LLVM
http://reviews.llvm.org/D18708
Files:
cfe/trunk/include/clang/Frontend/CompilerInvocation.h
cfe/trunk/lib/Frontend/CompilerInvocation.cpp
cfe/trunk/test/Preprocessor/init.c
Index: cfe/trunk/include/clang/Frontend/CompilerInvocation.h
===================================================================
--- cfe/trunk/include/clang/Frontend/CompilerInvocation.h
+++ cfe/trunk/include/clang/Frontend/CompilerInvocation.h
@@ -153,8 +153,10 @@
///
/// \param Opts - The LangOptions object to set up.
/// \param IK - The input language.
+ /// \param T - The target triple.
/// \param LangStd - The input language standard.
static void setLangDefaults(LangOptions &Opts, InputKind IK,
+ const llvm::Triple &T,
LangStandard::Kind LangStd = LangStandard::lang_unspecified);
/// \brief Retrieve a module hash string that is suitable for uniquely
Index: cfe/trunk/test/Preprocessor/init.c
===================================================================
--- cfe/trunk/test/Preprocessor/init.c
+++ cfe/trunk/test/Preprocessor/init.c
@@ -8358,6 +8358,7 @@
// PS4:#define __SSE2__ 1
// PS4:#define __SSE_MATH__ 1
// PS4:#define __SSE__ 1
+// PS4:#define __STDC_VERSION__ 199901L
// PS4:#define __UINTMAX_TYPE__ long unsigned int
// PS4:#define __USER_LABEL_PREFIX__
// PS4:#define __WCHAR_MAX__ 65535
Index: cfe/trunk/lib/Frontend/CompilerInvocation.cpp
===================================================================
--- cfe/trunk/lib/Frontend/CompilerInvocation.cpp
+++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp
@@ -1355,6 +1355,7 @@
}
void CompilerInvocation::setLangDefaults(LangOptions &Opts, InputKind IK,
+ const llvm::Triple &T,
LangStandard::Kind LangStd) {
// Set some properties which depend solely on the input kind; it would be nice
// to move these to the language standard, and have the driver resolve the
@@ -1387,7 +1388,11 @@
case IK_PreprocessedC:
case IK_ObjC:
case IK_PreprocessedObjC:
- LangStd = LangStandard::lang_gnu11;
+ // The PS4 uses C99 as the default C standard.
+ if (T.isPS4())
+ LangStd = LangStandard::lang_gnu99;
+ else
+ LangStd = LangStandard::lang_gnu11;
break;
case IK_CXX:
case IK_PreprocessedCXX:
@@ -1541,7 +1546,8 @@
LangStd = OpenCLLangStd;
}
- CompilerInvocation::setLangDefaults(Opts, IK, LangStd);
+ llvm::Triple T(TargetOpts.Triple);
+ CompilerInvocation::setLangDefaults(Opts, IK, T, LangStd);
// We abuse '-f[no-]gnu-keywords' to force overriding all GNU-extension
// keywords. This behavior is provided by GCC's poorly named '-fasm' flag,
@@ -1861,7 +1867,6 @@
// Provide diagnostic when a given target is not expected to be an OpenMP
// device or host.
if (Opts.OpenMP && !Opts.OpenMPIsDevice) {
- llvm::Triple T(TargetOpts.Triple);
switch (T.getArch()) {
default:
break;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18708.52633.patch
Type: text/x-patch
Size: 2827 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160404/4ec7fa43/attachment-0001.bin>
More information about the cfe-commits
mailing list