Csaba Dabis | 0202c35 | 2019-08-22 00:20:36 +0000 | [diff] [blame] | 1 | #pragma clang system_header |
| 2 | |
Artem Dergachev | af992e6 | 2019-08-23 03:23:58 +0000 | [diff] [blame] | 3 | #include "system-header-simulator-cxx.h" |
| 4 | |
Csaba Dabis | 0202c35 | 2019-08-22 00:20:36 +0000 | [diff] [blame] | 5 | namespace llvm { |
| 6 | template <class X, class Y> |
| 7 | const X *cast(Y Value); |
| 8 | |
| 9 | template <class X, class Y> |
| 10 | const X *dyn_cast(Y *Value); |
| 11 | template <class X, class Y> |
| 12 | const X &dyn_cast(Y &Value); |
| 13 | |
| 14 | template <class X, class Y> |
| 15 | const X *cast_or_null(Y Value); |
| 16 | |
| 17 | template <class X, class Y> |
| 18 | const X *dyn_cast_or_null(Y *Value); |
| 19 | template <class X, class Y> |
| 20 | const X *dyn_cast_or_null(Y &Value); |
Csaba Dabis | 4d71600 | 2019-08-22 02:57:59 +0000 | [diff] [blame] | 21 | |
| 22 | template <class X, class Y> |
| 23 | bool isa(Y Value); |
| 24 | |
| 25 | template <class X, class Y> |
| 26 | bool isa_and_nonnull(Y Value); |
Artem Dergachev | af992e6 | 2019-08-23 03:23:58 +0000 | [diff] [blame] | 27 | |
| 28 | template <typename X, typename Y> |
| 29 | std::unique_ptr<X> cast(std::unique_ptr<Y> &&Value); |
Csaba Dabis | 0202c35 | 2019-08-22 00:20:36 +0000 | [diff] [blame] | 30 | } // namespace llvm |