[flang] dodge clang build problem with constexpr
Original-commit: flang-compiler/f18@83995a5a98 Reviewed-on: https://github.com/flang-compiler/f18/pull/449 Tree-same-pre-rewrite: false
This commit is contained in:
parent
04d85f1754
commit
91de1f62fb
|
@ -107,19 +107,23 @@ public:
|
|||
template<typename T> void Descend(const Expr<T> &expr) { Visit(expr.u); }
|
||||
template<typename T> void Descend(Expr<T> &expr) { Visit(expr.u); }
|
||||
|
||||
template<typename D, typename R, typename... O>
|
||||
void Descend(const Operation<D, R, O...> &op) {
|
||||
template<typename D, typename R, typename X>
|
||||
void Descend(const Operation<D, R, X> &op) {
|
||||
Visit(op.left());
|
||||
if constexpr (op.operands > 1) {
|
||||
Visit(op.right());
|
||||
}
|
||||
}
|
||||
template<typename D, typename R, typename... O>
|
||||
void Descend(Operation<D, R, O...> &op) {
|
||||
template<typename D, typename R, typename X>
|
||||
void Descend(Operation<D, R, X> &op) {
|
||||
Visit(op.left());
|
||||
if constexpr (op.operands > 1) {
|
||||
Visit(op.right());
|
||||
}
|
||||
}
|
||||
template<typename D, typename R, typename X, typename Y>
|
||||
void Descend(const Operation<D, R, X, Y> &op) {
|
||||
Visit(op.left());
|
||||
Visit(op.right());
|
||||
}
|
||||
template<typename D, typename R, typename X, typename Y>
|
||||
void Descend(Operation<D, R, X, Y> &op) {
|
||||
Visit(op.left());
|
||||
Visit(op.right());
|
||||
}
|
||||
|
||||
void Descend(const Relational<SomeType> &r) { Visit(r.u); }
|
||||
|
|
Loading…
Reference in a new issue