#define LLVM_ARGUMENT_H
#include "llvm/Value.h"
-#include "llvm/ParameterAttributes.h"
+#include "llvm/Attributes.h"
+#include "llvm/ADT/ilist_node.h"
+#include "llvm/ADT/Twine.h"
namespace llvm {
/// Argument ctor - If Function argument is specified, this argument is
/// inserted at the end of the argument list for the function.
///
- explicit Argument(const Type *Ty, const std::string &Name = "",
- Function *F = 0);
+ explicit Argument(const Type *Ty, const Twine &Name = "", Function *F = 0);
inline const Function *getParent() const { return Parent; }
inline Function *getParent() { return Parent; }
/// in its containing function.
bool hasByValAttr() const;
+ /// hasNestAttr - Return true if this argument has the nest attribute on
+ /// it in its containing function.
+ bool hasNestAttr() const;
+
/// hasNoAliasAttr - Return true if this argument has the noalias attribute on
/// it in its containing function.
bool hasNoAliasAttr() const;
+ /// hasNoCaptureAttr - Return true if this argument has the nocapture
+ /// attribute on it in its containing function.
+ bool hasNoCaptureAttr() const;
+
/// hasSRetAttr - Return true if this argument has the sret attribute on it in
/// its containing function.
bool hasStructRetAttr() const;
- /// addAttr - Add a ParamAttr to an argument
- void addAttr(ParameterAttributes);
+ /// addAttr - Add a Attribute to an argument
+ void addAttr(Attributes);
- /// removeAttr - Remove a ParamAttr from an argument
- void removeAttr(ParameterAttributes);
+ /// removeAttr - Remove a Attribute from an argument
+ void removeAttr(Attributes);
/// classof - Methods for support type inquiry through isa, cast, and
/// dyn_cast: