X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FSupport%2FCasting.h;h=48988f8a6bb8354c71326e634364acbb2895b4b2;hb=6d53f55291c8541a508a8c26d847b942196f6f1c;hp=5132b4ec2885d04a0f4c37ba53bb0575b3758eac;hpb=63b3afa98460ce38a1c48d3c44ef6edfdaf37b77;p=oota-llvm.git diff --git a/include/llvm/Support/Casting.h b/include/llvm/Support/Casting.h index 5132b4ec288..48988f8a6bb 100644 --- a/include/llvm/Support/Casting.h +++ b/include/llvm/Support/Casting.h @@ -2,8 +2,8 @@ // // The LLVM Compiler Infrastructure // -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // @@ -15,6 +15,8 @@ #ifndef LLVM_SUPPORT_CASTING_H #define LLVM_SUPPORT_CASTING_H +#include + namespace llvm { //===----------------------------------------------------------------------===// @@ -219,7 +221,7 @@ inline typename cast_retty::ret_type cast_or_null(Y *Val) { // template -inline typename cast_retty::ret_type dyn_cast(Y Val) { +inline typename cast_retty::ret_type dyn_cast(const Y &Val) { return isa(Val) ? cast(Val) : 0; } @@ -227,13 +229,13 @@ inline typename cast_retty::ret_type dyn_cast(Y Val) { // value is accepted. // template -inline typename cast_retty::ret_type dyn_cast_or_null(Y Val) { +inline typename cast_retty::ret_type dyn_cast_or_null(const Y &Val) { return (Val && isa(Val)) ? cast(Val) : 0; } #ifdef DEBUG_CAST_OPERATORS -#include +#include "llvm/Support/Streams.h" struct bar { bar() {}