[llvm] r301697 - [IR] Make add/remove Attributes use AttrBuilder instead of AttributeList

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 28 15:29:15 PDT 2017


I think this broke the clang build.

~Craig

On Fri, Apr 28, 2017 at 2:48 PM, Reid Kleckner via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: rnk
> Date: Fri Apr 28 16:48:28 2017
> New Revision: 301697
>
> URL: http://llvm.org/viewvc/llvm-project?rev=301697&view=rev
> Log:
> [IR] Make add/remove Attributes use AttrBuilder instead of AttributeList
>
> This change cleans up call sites and avoids creating temporary
> AttributeList objects.
>
> NFC
>
> Modified:
>     llvm/trunk/include/llvm/CodeGen/CommandFlags.h
>     llvm/trunk/include/llvm/IR/Attributes.h
>     llvm/trunk/include/llvm/IR/Function.h
>     llvm/trunk/lib/CodeGen/GlobalISel/CallLowering.cpp
>     llvm/trunk/lib/IR/Attributes.cpp
>     llvm/trunk/lib/IR/Function.cpp
>     llvm/trunk/lib/Target/Mips/Mips16HardFloat.cpp
>     llvm/trunk/lib/Transforms/Coroutines/CoroSplit.cpp
>     llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
>     llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp
>     llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
>     llvm/trunk/unittests/IR/AttributesTest.cpp
>
> Modified: llvm/trunk/include/llvm/CodeGen/CommandFlags.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/CodeGen/CommandFlags.h?rev=301697&r1=301696&r2=301697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/include/llvm/CodeGen/CommandFlags.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/CommandFlags.h Fri Apr 28 16:48:28
> 2017
> @@ -346,29 +346,21 @@ static inline void setFunctionAttributes
>                                           Module &M) {
>    for (auto &F : M) {
>      auto &Ctx = F.getContext();
> -    AttributeList Attrs = F.getAttributes(), NewAttrs;
> +    AttributeList Attrs = F.getAttributes();
> +    AttrBuilder NewAttrs;
>
>      if (!CPU.empty())
> -      NewAttrs = NewAttrs.addAttribute(Ctx, AttributeList::FunctionIndex,
> -                                       "target-cpu", CPU);
> -
> +      NewAttrs.addAttribute("target-cpu", CPU);
>      if (!Features.empty())
> -      NewAttrs = NewAttrs.addAttribute(Ctx, AttributeList::FunctionIndex,
> -                                       "target-features", Features);
> -
> +      NewAttrs.addAttribute("target-features", Features);
>      if (DisableFPElim.getNumOccurrences() > 0)
> -      NewAttrs = NewAttrs.addAttribute(Ctx, AttributeList::FunctionIndex,
> -                                       "no-frame-pointer-elim",
> -                                       DisableFPElim ? "true" : "false");
> -
> +      NewAttrs.addAttribute("no-frame-pointer-elim",
> +                            DisableFPElim ? "true" : "false");
>      if (DisableTailCalls.getNumOccurrences() > 0)
> -      NewAttrs = NewAttrs.addAttribute(Ctx, AttributeList::FunctionIndex,
> -                                       "disable-tail-calls",
> -                                       toStringRef(DisableTailCalls));
> -
> +      NewAttrs.addAttribute("disable-tail-calls",
> +                            toStringRef(DisableTailCalls));
>      if (StackRealign)
> -      NewAttrs = NewAttrs.addAttribute(Ctx, AttributeList::FunctionIndex,
> -                                       "stackrealign");
> +      NewAttrs.addAttribute("stackrealign");
>
>      if (TrapFuncName.getNumOccurrences() > 0)
>        for (auto &B : F)
> @@ -382,8 +374,8 @@ static inline void setFunctionAttributes
>                      Attribute::get(Ctx, "trap-func-name", TrapFuncName));
>
>      // Let NewAttrs override Attrs.
> -    NewAttrs = Attrs.addAttributes(Ctx, AttributeList::FunctionIndex,
> NewAttrs);
> -    F.setAttributes(NewAttrs);
> +    F.setAttributes(
> +        Attrs.addAttributes(Ctx, AttributeList::FunctionIndex, NewAttrs));
>    }
>  }
>
>
> Modified: llvm/trunk/include/llvm/IR/Attributes.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/IR/Attributes.h?rev=301697&r1=301696&r2=301697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/include/llvm/IR/Attributes.h (original)
> +++ llvm/trunk/include/llvm/IR/Attributes.h Fri Apr 28 16:48:28 2017
> @@ -354,9 +354,6 @@ public:
>    /// \brief Add attributes to the attribute set at the given index.
> Because
>    /// attribute sets are immutable, this returns a new set.
>    AttributeList addAttributes(LLVMContext &C, unsigned Index,
> -                              AttributeList Attrs) const;
> -
> -  AttributeList addAttributes(LLVMContext &C, unsigned Index,
>                                const AttrBuilder &B) const;
>
>    /// \brief Remove the specified attribute at the specified index from
> this
> @@ -375,13 +372,7 @@ public:
>    /// attribute list. Because attribute lists are immutable, this returns
> the
>    /// new list.
>    AttributeList removeAttributes(LLVMContext &C, unsigned Index,
> -                                 AttributeList Attrs) const;
> -
> -  /// \brief Remove the specified attributes at the specified index from
> this
> -  /// attribute list. Because attribute lists are immutable, this returns
> the
> -  /// new list.
> -  AttributeList removeAttributes(LLVMContext &C, unsigned Index,
> -                                 const AttrBuilder &Attrs) const;
> +                                 const AttrBuilder &AttrsToRemove) const;
>
>    /// \brief Remove all attributes at the specified index from this
>    /// attribute list. Because attribute lists are immutable, this returns
> the
>
> Modified: llvm/trunk/include/llvm/IR/Function.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/IR/Function.h?rev=301697&r1=301696&r2=301697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/include/llvm/IR/Function.h (original)
> +++ llvm/trunk/include/llvm/IR/Function.h Fri Apr 28 16:48:28 2017
> @@ -279,7 +279,7 @@ public:
>    void addAttribute(unsigned i, Attribute Attr);
>
>    /// @brief adds the attributes to the list of attributes.
> -  void addAttributes(unsigned i, AttributeList Attrs);
> +  void addAttributes(unsigned i, const AttrBuilder &Attrs);
>
>    /// @brief removes the attribute from the list of attributes.
>    void removeAttribute(unsigned i, Attribute::AttrKind Kind);
> @@ -288,7 +288,7 @@ public:
>    void removeAttribute(unsigned i, StringRef Kind);
>
>    /// @brief removes the attributes from the list of attributes.
> -  void removeAttributes(unsigned i, AttributeList Attrs);
> +  void removeAttributes(unsigned i, const AttrBuilder &Attrs);
>
>    /// @brief check if an attributes is in the list of attributes.
>    bool hasAttribute(unsigned i, Attribute::AttrKind Kind) const {
>
> Modified: llvm/trunk/lib/CodeGen/GlobalISel/CallLowering.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> CodeGen/GlobalISel/CallLowering.cpp?rev=301697&
> r1=301696&r2=301697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/CodeGen/GlobalISel/CallLowering.cpp (original)
> +++ llvm/trunk/lib/CodeGen/GlobalISel/CallLowering.cpp Fri Apr 28
> 16:48:28 2017
> @@ -83,8 +83,8 @@ void CallLowering::setArgFlags(CallLower
>      // For ByVal, alignment should be passed from FE.  BE will guess if
>      // this info is not there but there are cases it cannot get right.
>      unsigned FrameAlign;
> -    if (FuncInfo.getParamAlignment(OpIdx - 1))
> -      FrameAlign = FuncInfo.getParamAlignment(OpIdx - 1);
> +    if (FuncInfo.getParamAlignment(OpIdx - 2))
> +      FrameAlign = FuncInfo.getParamAlignment(OpIdx - 2);
>      else
>        FrameAlign = getTLI()->getByValTypeAlignment(ElementTy, DL);
>      Arg.Flags.setByValAlign(FrameAlign);
>
> Modified: llvm/trunk/lib/IR/Attributes.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/
> Attributes.cpp?rev=301697&r1=301696&r2=301697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/IR/Attributes.cpp (original)
> +++ llvm/trunk/lib/IR/Attributes.cpp Fri Apr 28 16:48:28 2017
> @@ -936,7 +936,9 @@ AttributeList AttributeList::get(LLVMCon
>  AttributeList AttributeList::addAttribute(LLVMContext &C, unsigned Index,
>                                            Attribute::AttrKind Kind) const
> {
>    if (hasAttribute(Index, Kind)) return *this;
> -  return addAttributes(C, Index, AttributeList::get(C, Index, Kind));
> +  AttrBuilder B;
> +  B.addAttribute(Kind);
> +  return addAttributes(C, Index, B);
>  }
>
>  AttributeList AttributeList::addAttribute(LLVMContext &C, unsigned Index,
> @@ -944,7 +946,7 @@ AttributeList AttributeList::addAttribut
>                                            StringRef Value) const {
>    AttrBuilder B;
>    B.addAttribute(Kind, Value);
> -  return addAttributes(C, Index, AttributeList::get(C, Index, B));
> +  return addAttributes(C, Index, B);
>  }
>
>  AttributeList AttributeList::addAttribute(LLVMContext &C,
> @@ -978,14 +980,6 @@ AttributeList AttributeList::addAttribut
>  }
>
>  AttributeList AttributeList::addAttributes(LLVMContext &C, unsigned
> Index,
> -                                           AttributeList Attrs) const {
> -  if (!pImpl) return Attrs;
> -  if (!Attrs.pImpl) return *this;
> -
> -  return addAttributes(C, Index, Attrs.getAttributes(Index));
> -}
> -
> -AttributeList AttributeList::addAttributes(LLVMContext &C, unsigned
> Index,
>                                             const AttrBuilder &B) const {
>    if (!B.hasAttributes())
>      return *this;
> @@ -1034,18 +1028,17 @@ AttributeList AttributeList::addAttribut
>  AttributeList AttributeList::removeAttribute(LLVMContext &C, unsigned
> Index,
>                                               Attribute::AttrKind Kind)
> const {
>    if (!hasAttribute(Index, Kind)) return *this;
> -  return removeAttributes(C, Index, AttributeList::get(C, Index, Kind));
> +  AttrBuilder B;
> +  B.addAttribute(Kind);
> +  return removeAttributes(C, Index, B);
>  }
>
>  AttributeList AttributeList::removeAttribute(LLVMContext &C, unsigned
> Index,
>                                               StringRef Kind) const {
>    if (!hasAttribute(Index, Kind)) return *this;
> -  return removeAttributes(C, Index, AttributeList::get(C, Index, Kind));
> -}
> -
> -AttributeList AttributeList::removeAttributes(LLVMContext &C, unsigned
> Index,
> -                                              AttributeList Attrs) const {
> -  return removeAttributes(C, Index, AttrBuilder(Attrs.
> getAttributes(Index)));
> +  AttrBuilder B;
> +  B.addAttribute(Kind);
> +  return removeAttributes(C, Index, B);
>  }
>
>  AttributeList AttributeList::removeAttributes(LLVMContext &C, unsigned
> Index,
> @@ -1103,7 +1096,7 @@ AttributeList AttributeList::addDerefere
>                                                      uint64_t Bytes) const
> {
>    AttrBuilder B;
>    B.addDereferenceableAttr(Bytes);
> -  return addAttributes(C, Index, AttributeList::get(C, Index, B));
> +  return addAttributes(C, Index, B);
>  }
>
>  AttributeList
> @@ -1111,7 +1104,7 @@ AttributeList::addDereferenceableOrNullA
>                                              uint64_t Bytes) const {
>    AttrBuilder B;
>    B.addDereferenceableOrNullAttr(Bytes);
> -  return addAttributes(C, Index, AttributeList::get(C, Index, B));
> +  return addAttributes(C, Index, B);
>  }
>
>  AttributeList
> @@ -1120,7 +1113,7 @@ AttributeList::addAllocSizeAttr(LLVMCont
>                                  const Optional<unsigned> &NumElemsArg) {
>    AttrBuilder B;
>    B.addAllocSizeAttr(ElemSizeArg, NumElemsArg);
> -  return addAttributes(C, Index, AttributeList::get(C, Index, B));
> +  return addAttributes(C, Index, B);
>  }
>
>  //===-------------------------------------------------------
> ---------------===//
> @@ -1610,12 +1603,10 @@ static void adjustCallerSSPLevel(Functio
>    // If upgrading the SSP attribute, clear out the old SSP Attributes
> first.
>    // Having multiple SSP attributes doesn't actually hurt, but it adds
> useless
>    // clutter to the IR.
> -  AttrBuilder B;
> -  B.addAttribute(Attribute::StackProtect)
> -    .addAttribute(Attribute::StackProtectStrong)
> -    .addAttribute(Attribute::StackProtectReq);
> -  AttributeList OldSSPAttr =
> -      AttributeList::get(Caller.getContext(),
> AttributeList::FunctionIndex, B);
> +  AttrBuilder OldSSPAttr;
> +  OldSSPAttr.addAttribute(Attribute::StackProtect)
> +      .addAttribute(Attribute::StackProtectStrong)
> +      .addAttribute(Attribute::StackProtectReq);
>
>    if (Callee.hasFnAttribute(Attribute::StackProtectReq)) {
>      Caller.removeAttributes(AttributeList::FunctionIndex, OldSSPAttr);
>
> Modified: llvm/trunk/lib/IR/Function.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/
> Function.cpp?rev=301697&r1=301696&r2=301697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/IR/Function.cpp (original)
> +++ llvm/trunk/lib/IR/Function.cpp Fri Apr 28 16:48:28 2017
> @@ -328,7 +328,7 @@ void Function::addAttribute(unsigned i,
>    setAttributes(PAL);
>  }
>
> -void Function::addAttributes(unsigned i, AttributeList Attrs) {
> +void Function::addAttributes(unsigned i, const AttrBuilder &Attrs) {
>    AttributeList PAL = getAttributes();
>    PAL = PAL.addAttributes(getContext(), i, Attrs);
>    setAttributes(PAL);
> @@ -346,7 +346,7 @@ void Function::removeAttribute(unsigned
>    setAttributes(PAL);
>  }
>
> -void Function::removeAttributes(unsigned i, AttributeList Attrs) {
> +void Function::removeAttributes(unsigned i, const AttrBuilder &Attrs) {
>    AttributeList PAL = getAttributes();
>    PAL = PAL.removeAttributes(getContext(), i, Attrs);
>    setAttributes(PAL);
>
> Modified: llvm/trunk/lib/Target/Mips/Mips16HardFloat.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
> Mips/Mips16HardFloat.cpp?rev=301697&r1=301696&r2=301697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/Target/Mips/Mips16HardFloat.cpp (original)
> +++ llvm/trunk/lib/Target/Mips/Mips16HardFloat.cpp Fri Apr 28 16:48:28
> 2017
> @@ -490,15 +490,14 @@ static void createFPFnStub(Function *F,
>  // remove the use-soft-float attribute
>  //
>  static void removeUseSoftFloat(Function &F) {
> -  AttributeList A;
> +  AttrBuilder B;
>    DEBUG(errs() << "removing -use-soft-float\n");
> -  A = A.addAttribute(F.getContext(), AttributeList::FunctionIndex,
> -                     "use-soft-float", "false");
> -  F.removeAttributes(AttributeList::FunctionIndex, A);
> +  B.addAttribute("use-soft-float", "false");
> +  F.removeAttributes(AttributeList::FunctionIndex, B);
>    if (F.hasFnAttribute("use-soft-float")) {
>      DEBUG(errs() << "still has -use-soft-float\n");
>    }
> -  F.addAttributes(AttributeList::FunctionIndex, A);
> +  F.addAttributes(AttributeList::FunctionIndex, B);
>  }
>
>
>
> Modified: llvm/trunk/lib/Transforms/Coroutines/CoroSplit.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> Transforms/Coroutines/CoroSplit.cpp?rev=301697&r1=
> 301696&r2=301697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/Transforms/Coroutines/CoroSplit.cpp (original)
> +++ llvm/trunk/lib/Transforms/Coroutines/CoroSplit.cpp Fri Apr 28
> 16:48:28 2017
> @@ -245,9 +245,7 @@ static Function *createClone(Function &F
>    // Remove old return attributes.
>    NewF->removeAttributes(
>        AttributeList::ReturnIndex,
> -      AttributeList::get(
> -          NewF->getContext(), AttributeList::ReturnIndex,
> -          AttributeFuncs::typeIncompatible(NewF->getReturnType())));
> +      AttributeFuncs::typeIncompatible(NewF->getReturnType()));
>
>    // Make AllocaSpillBlock the new entry block.
>    auto *SwitchBB = cast<BasicBlock>(VMap[ResumeEntry]);
>
> Modified: llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> Transforms/Instrumentation/DataFlowSanitizer.cpp?rev=
> 301697&r1=301696&r2=301697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
> (original)
> +++ llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp Fri
> Apr 28 16:48:28 2017
> @@ -254,7 +254,7 @@ class DataFlowSanitizer : public ModuleP
>    MDNode *ColdCallWeights;
>    DFSanABIList ABIList;
>    DenseMap<Value *, Function *> UnwrappedFnMap;
> -  AttributeList ReadOnlyNoneAttrs;
> +  AttrBuilder ReadOnlyNoneAttrs;
>    bool DFSanRuntimeShadowMask;
>
>    Value *getShadowAddress(Value *Addr, Instruction *Pos);
> @@ -544,16 +544,12 @@ DataFlowSanitizer::buildWrapperFunction(
>    NewF->copyAttributesFrom(F);
>    NewF->removeAttributes(
>        AttributeList::ReturnIndex,
> -      AttributeList::get(
> -          F->getContext(), AttributeList::ReturnIndex,
> -          AttributeFuncs::typeIncompatible(NewFT->getReturnType())));
> +      AttributeFuncs::typeIncompatible(NewFT->getReturnType()));
>
>    BasicBlock *BB = BasicBlock::Create(*Ctx, "entry", NewF);
>    if (F->isVarArg()) {
> -    NewF->removeAttributes(
> -        AttributeList::FunctionIndex,
> -        AttributeList().addAttribute(*Ctx, AttributeList::FunctionIndex,
> -                                     "split-stack"));
> +    NewF->removeAttributes(AttributeList::FunctionIndex,
> +                           AttrBuilder().addAttribute("split-stack"));
>      CallInst::Create(DFSanVarargWrapperFn,
>                       IRBuilder<>(BB).CreateGlobalStringPtr(F->getName()),
> "",
>                       BB);
> @@ -698,9 +694,8 @@ bool DataFlowSanitizer::runOnModule(Modu
>      }
>    }
>
> -  AttrBuilder B;
> -  B.addAttribute(Attribute::ReadOnly).addAttribute(Attribute::ReadNone);
> -  ReadOnlyNoneAttrs = AttributeList::get(*Ctx,
> AttributeList::FunctionIndex, B);
> +  ReadOnlyNoneAttrs.addAttribute(Attribute::ReadOnly)
> +      .addAttribute(Attribute::ReadNone);
>
>    // First, change the ABI of every function in the module.  ABI-listed
>    // functions keep their original ABI and get a wrapper function.
> @@ -722,9 +717,7 @@ bool DataFlowSanitizer::runOnModule(Modu
>          NewF->copyAttributesFrom(&F);
>          NewF->removeAttributes(
>              AttributeList::ReturnIndex,
> -            AttributeList::get(
> -                NewF->getContext(), AttributeList::ReturnIndex,
> -                AttributeFuncs::typeIncompatible(NewFT->
> getReturnType())));
> +            AttributeFuncs::typeIncompatible(NewFT->getReturnType()));
>          for (Function::arg_iterator FArg = F.arg_begin(),
>                                      NewFArg = NewF->arg_begin(),
>                                      FArgEnd = F.arg_end();
>
> Modified: llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> Transforms/Instrumentation/MemorySanitizer.cpp?rev=
> 301697&r1=301696&r2=301697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp
> (original)
> +++ llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp Fri Apr
> 28 16:48:28 2017
> @@ -2607,10 +2607,7 @@ struct MemorySanitizerVisitor : public I
>          AttrBuilder B;
>          B.addAttribute(Attribute::ReadOnly)
>            .addAttribute(Attribute::ReadNone);
> -        Func->removeAttributes(AttributeList::FunctionIndex,
> -                               AttributeList::get(Func->getContext(),
> -
> AttributeList::FunctionIndex,
> -                                                  B));
> +        Func->removeAttributes(AttributeList::FunctionIndex, B);
>        }
>
>        maybeMarkSanitizerLibraryCallNoBuiltin(Call, TLI);
> @@ -3659,9 +3656,7 @@ bool MemorySanitizer::runOnFunction(Func
>    AttrBuilder B;
>    B.addAttribute(Attribute::ReadOnly)
>      .addAttribute(Attribute::ReadNone);
> -  F.removeAttributes(
> -      AttributeList::FunctionIndex,
> -      AttributeList::get(F.getContext(), AttributeList::FunctionIndex,
> B));
> +  F.removeAttributes(AttributeList::FunctionIndex, B);
>
>    return Visitor.runOnFunction();
>  }
>
> Modified: llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/
> RewriteStatepointsForGC.cpp?rev=301697&r1=301696&r2=301697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
> (original)
> +++ llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp Fri Apr
> 28 16:48:28 2017
> @@ -2290,8 +2290,7 @@ static void RemoveNonValidAttrAtIndex(LL
>      R.addAttribute(Attribute::NoAlias);
>
>    if (!R.empty())
> -    AH.setAttributes(AH.getAttributes().removeAttributes(
> -        Ctx, Index, AttributeList::get(Ctx, Index, R)));
> +    AH.setAttributes(AH.getAttributes().removeAttributes(Ctx, Index, R));
>  }
>
>  void
>
> Modified: llvm/trunk/unittests/IR/AttributesTest.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/
> IR/AttributesTest.cpp?rev=301697&r1=301696&r2=301697&view=diff
> ============================================================
> ==================
> --- llvm/trunk/unittests/IR/AttributesTest.cpp (original)
> +++ llvm/trunk/unittests/IR/AttributesTest.cpp Fri Apr 28 16:48:28 2017
> @@ -45,7 +45,7 @@ TEST(Attributes, Ordering) {
>                           AttributeList::get(C, 1, Attribute::SExt)};
>
>    AttributeList SetA = AttributeList::get(C, ASs);
> -  AttributeList SetB = SetA.removeAttributes(C, 1, ASs[1]);
> +  AttributeList SetB = SetA.removeAttributes(C, 1,
> ASs[1].getAttributes(1));
>    EXPECT_NE(SetA, SetB);
>  }
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170428/770e62aa/attachment.html>


More information about the llvm-commits mailing list