diff options
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/CodeGen/CGCall.h | 2 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CGValue.h | 13 |
2 files changed, 9 insertions, 6 deletions
diff --git a/clang/lib/CodeGen/CGCall.h b/clang/lib/CodeGen/CGCall.h index 495baf0f9a2..1cac032aaf9 100644 --- a/clang/lib/CodeGen/CGCall.h +++ b/clang/lib/CodeGen/CGCall.h @@ -224,7 +224,7 @@ public: /// CallArgList - Type for representing both the value and type of /// arguments in a call. class CallArgList : - public SmallVector<CallArg, 16> { + public SmallVector<CallArg, 8> { public: CallArgList() : StackBase(nullptr) {} diff --git a/clang/lib/CodeGen/CGValue.h b/clang/lib/CodeGen/CGValue.h index 7d07ea4516c..a32be194968 100644 --- a/clang/lib/CodeGen/CGValue.h +++ b/clang/lib/CodeGen/CGValue.h @@ -193,7 +193,7 @@ class LValue { // The alignment to use when accessing this lvalue. (For vector elements, // this is the alignment of the whole vector.) - int64_t Alignment; + unsigned Alignment; // objective-c's ivar bool Ivar:1; @@ -215,13 +215,13 @@ class LValue { // to make the default bitfield pattern all-zeroes. bool ImpreciseLifetime : 1; - LValueBaseInfo BaseInfo; - TBAAAccessInfo TBAAInfo; - // This flag shows if a nontemporal load/stores should be used when accessing // this lvalue. bool Nontemporal : 1; + LValueBaseInfo BaseInfo; + TBAAAccessInfo TBAAInfo; + Expr *BaseIvarExp; private: @@ -231,7 +231,10 @@ private: "initializing l-value with zero alignment!"); this->Type = Type; this->Quals = Quals; - this->Alignment = Alignment.getQuantity(); + const unsigned MaxAlign = 1U << 31; + this->Alignment = Alignment.getQuantity() <= MaxAlign + ? Alignment.getQuantity() + : MaxAlign; assert(this->Alignment == Alignment.getQuantity() && "Alignment exceeds allowed max!"); this->BaseInfo = BaseInfo; |

