summaryrefslogtreecommitdiffstats
path: root/include/llvm/AbstractTypeUser.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/AbstractTypeUser.h')
-rw-r--r--include/llvm/AbstractTypeUser.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/llvm/AbstractTypeUser.h b/include/llvm/AbstractTypeUser.h
index c1216ba..b6cceb4 100644
--- a/include/llvm/AbstractTypeUser.h
+++ b/include/llvm/AbstractTypeUser.h
@@ -31,6 +31,7 @@
namespace llvm {
+class Value;
class Type;
class DerivedType;
template<typename T> struct simplify_type;
@@ -55,6 +56,12 @@ template<typename T> struct simplify_type;
class AbstractTypeUser {
protected:
virtual ~AbstractTypeUser(); // Derive from me
+
+ /// setType - It's normally not possible to change a Value's type in place,
+ /// but an AbstractTypeUser subclass that knows what its doing can be
+ /// permitted to do so with care.
+ void setType(Value *V, const Type *NewTy);
+
public:
/// refineAbstractType - The callback method invoked when an abstract type is
@@ -65,7 +72,7 @@ public:
const Type *NewTy) = 0;
/// The other case which AbstractTypeUsers must be aware of is when a type
- /// makes the transition from being abstract (where it has clients on it's
+ /// makes the transition from being abstract (where it has clients on its
/// AbstractTypeUsers list) to concrete (where it does not). This method
/// notifies ATU's when this occurs for a type.
///
OpenPOWER on IntegriCloud