diff options
Diffstat (limited to 'lib/Bitcode/Writer/BitcodeWriter.cpp')
| -rw-r--r-- | lib/Bitcode/Writer/BitcodeWriter.cpp | 12 | 
1 files changed, 6 insertions, 6 deletions
| diff --git a/lib/Bitcode/Writer/BitcodeWriter.cpp b/lib/Bitcode/Writer/BitcodeWriter.cpp index 97caefb4c494..e79eeb079ed8 100644 --- a/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -232,6 +232,8 @@ static uint64_t getAttrKindEncoding(Attribute::AttrKind Kind) {      return bitc::ATTR_KIND_STACK_PROTECT_REQ;    case Attribute::StackProtectStrong:      return bitc::ATTR_KIND_STACK_PROTECT_STRONG; +  case Attribute::SafeStack: +    return bitc::ATTR_KIND_SAFESTACK;    case Attribute::StructRet:      return bitc::ATTR_KIND_STRUCT_RET;    case Attribute::SanitizeAddress: @@ -693,7 +695,7 @@ static void WriteModuleInfo(const Module *M, const ValueEnumerator &VE,    for (const Function &F : *M) {      // FUNCTION:  [type, callingconv, isproto, linkage, paramattrs, alignment,      //             section, visibility, gc, unnamed_addr, prologuedata, -    //             dllstorageclass, comdat, prefixdata] +    //             dllstorageclass, comdat, prefixdata, personalityfn]      Vals.push_back(VE.getTypeID(F.getFunctionType()));      Vals.push_back(F.getCallingConv());      Vals.push_back(F.isDeclaration()); @@ -710,6 +712,8 @@ static void WriteModuleInfo(const Module *M, const ValueEnumerator &VE,      Vals.push_back(F.hasComdat() ? VE.getComdatID(F.getComdat()) : 0);      Vals.push_back(F.hasPrefixData() ? (VE.getValueID(F.getPrefixData()) + 1)                                       : 0); +    Vals.push_back( +        F.hasPersonalityFn() ? (VE.getValueID(F.getPersonalityFn()) + 1) : 0);      unsigned AbbrevToUse = 0;      Stream.EmitRecord(bitc::MODULE_CODE_FUNCTION, Vals, AbbrevToUse); @@ -1857,7 +1861,6 @@ static void WriteInstruction(const Instruction &I, unsigned InstID,      const LandingPadInst &LP = cast<LandingPadInst>(I);      Code = bitc::FUNC_CODE_INST_LANDINGPAD;      Vals.push_back(VE.getTypeID(LP.getType())); -    PushValueAndType(LP.getPersonalityFn(), InstID, Vals, VE);      Vals.push_back(LP.isCleanup());      Vals.push_back(LP.getNumClauses());      for (unsigned I = 0, E = LP.getNumClauses(); I != E; ++I) { @@ -2403,10 +2406,7 @@ enum {  static void WriteInt32ToBuffer(uint32_t Value, SmallVectorImpl<char> &Buffer,                                 uint32_t &Position) { -  Buffer[Position + 0] = (unsigned char) (Value >>  0); -  Buffer[Position + 1] = (unsigned char) (Value >>  8); -  Buffer[Position + 2] = (unsigned char) (Value >> 16); -  Buffer[Position + 3] = (unsigned char) (Value >> 24); +  support::endian::write32le(&Buffer[Position], Value);    Position += 4;  } | 
