forked from OSchip/llvm-project
parent
de04672797
commit
6e4d106c21
|
@ -193,14 +193,15 @@ inline bool isa(Y Val) { return X::classof(Val); }
|
||||||
|
|
||||||
// cast<X> - Return the argument parameter cast to the specified type. This
|
// cast<X> - Return the argument parameter cast to the specified type. This
|
||||||
// casting operator asserts that the type is correct, so it does not return null
|
// casting operator asserts that the type is correct, so it does not return null
|
||||||
// on failure. Used Like this:
|
// on failure. But it will correctly return NULL when the input is NULL.
|
||||||
|
// Used Like this:
|
||||||
//
|
//
|
||||||
// cast< Instruction>(myVal)->getParent()
|
// cast< Instruction>(myVal)->getParent()
|
||||||
// cast<const Instruction>(myVal)->getParent()
|
// cast<const Instruction>(myVal)->getParent()
|
||||||
//
|
//
|
||||||
template <class X, class Y>
|
template <class X, class Y>
|
||||||
inline X *cast(Y Val) {
|
inline X *cast(Y Val) {
|
||||||
assert(isa<X>(Val) && "Invalid cast argument type!");
|
assert((Val == 0 || isa<X>(Val)) && "Invalid cast argument type!");
|
||||||
return (X*)(real_type<Y>::Type)Val;
|
return (X*)(real_type<Y>::Type)Val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue