Use the AttributeSet when adding multiple attributes and an Attribute::AttrKind
[oota-llvm.git] / lib / IR / Function.cpp
index 6a5e61611c1e50b5e7c59abe7d40e1ebf590a1c1..4d047f6443cabc8702240497ee5216a466673665 100644 (file)
@@ -125,7 +125,10 @@ bool Argument::hasStructRetAttr() const {
 
 /// addAttr - Add a Attribute to an argument
 void Argument::addAttr(Attribute attr) {
-  getParent()->addAttribute(getArgNo() + 1, attr);
+  AttrBuilder B(attr);
+  getParent()->addAttributes(getArgNo() + 1,
+                             AttributeSet::get(getParent()->getContext(),
+                                               getArgNo() + 1, B));
 }
 
 /// removeAttr - Remove a Attribute from an argument
@@ -248,17 +251,21 @@ void Function::dropAllReferences() {
     BasicBlocks.begin()->eraseFromParent();
 }
 
-void Function::addAttribute(unsigned i, Attribute attr) {
+void Function::addAttribute(unsigned i, Attribute::AttrKind attr) {
   AttributeSet PAL = getAttributes();
-  AttrBuilder B(attr);
-  PAL = PAL.addAttributes(getContext(), i,
-                          AttributeSet::get(getContext(), i, B));
+  PAL = PAL.addAttribute(getContext(), i, attr);
+  setAttributes(PAL);
+}
+
+void Function::addAttributes(unsigned i, AttributeSet attrs) {
+  AttributeSet PAL = getAttributes();
+  PAL = PAL.addAttributes(getContext(), i, attrs);
   setAttributes(PAL);
 }
 
-void Function::removeAttribute(unsigned i, Attribute attr) {
+void Function::removeAttribute(unsigned i, Attribute attrs) {
   AttributeSet PAL = getAttributes();
-  PAL = PAL.removeAttr(getContext(), i, attr);
+  PAL = PAL.removeAttr(getContext(), i, attrs);
   setAttributes(PAL);
 }