summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorSunil Srivastava <sunil_srivastava@playstation.sony.com>2016-02-05 20:50:02 +0000
committerSunil Srivastava <sunil_srivastava@playstation.sony.com>2016-02-05 20:50:02 +0000
commit0ce2f227e83bb46da47921165792eaa26002a9e9 (patch)
tree4c0349fab2cfa069e223914873a5f3c3212c2ff3 /clang/lib/Basic
parent00ab73dcb0d602608a0851bb61aa378ef5ed3215 (diff)
downloadbcm5719-llvm-0ce2f227e83bb46da47921165792eaa26002a9e9.tar.gz
bcm5719-llvm-0ce2f227e83bb46da47921165792eaa26002a9e9.zip
Do not honor explicit alignment attribute on fields for PS4.
This change reverts r257462 for PS4 triple. Differential Revision: http://reviews.llvm.org/D16788 llvm-svn: 259916
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/TargetInfo.cpp1
-rw-r--r--clang/lib/Basic/Targets.cpp4
2 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Basic/TargetInfo.cpp b/clang/lib/Basic/TargetInfo.cpp
index 1648a27d8b3..4a2341e565e 100644
--- a/clang/lib/Basic/TargetInfo.cpp
+++ b/clang/lib/Basic/TargetInfo.cpp
@@ -66,6 +66,7 @@ TargetInfo::TargetInfo(const llvm::Triple &T) : TargetOpts(), Triple(T) {
UseSignedCharForObjCBool = true;
UseBitFieldTypeAlignment = true;
UseZeroLengthBitfieldAlignment = false;
+ UseExplicitBitFieldAlignment = true;
ZeroLengthBitfieldBoundary = 0;
HalfFormat = &llvm::APFloat::IEEEhalf;
FloatFormat = &llvm::APFloat::IEEEsingle;
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 1c05eeef841..cbbf51be18e 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -606,6 +606,10 @@ public:
this->MaxTLSAlign = 256;
this->UserLabelPrefix = "";
+ // On PS4, do not honor explicit bit field alignment,
+ // as in "__attribute__((aligned(2))) int b : 1;".
+ this->UseExplicitBitFieldAlignment = false;
+
switch (Triple.getArch()) {
default:
case llvm::Triple::x86_64:
OpenPOWER on IntegriCloud