blob: d77b4648107d233aef728c2d584b486fb084d0d9 [file] [log] [blame]
Csaba Dabis0202c352019-08-22 00:20:36 +00001#pragma clang system_header
2
3namespace llvm {
4template <class X, class Y>
5const X *cast(Y Value);
6
7template <class X, class Y>
8const X *dyn_cast(Y *Value);
9template <class X, class Y>
10const X &dyn_cast(Y &Value);
11
12template <class X, class Y>
13const X *cast_or_null(Y Value);
14
15template <class X, class Y>
16const X *dyn_cast_or_null(Y *Value);
17template <class X, class Y>
18const X *dyn_cast_or_null(Y &Value);
Csaba Dabis4d716002019-08-22 02:57:59 +000019
20template <class X, class Y>
21bool isa(Y Value);
22
23template <class X, class Y>
24bool isa_and_nonnull(Y Value);
Csaba Dabis0202c352019-08-22 00:20:36 +000025} // namespace llvm