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