[flang] fold LOGICAL intrinsic calls
Folding of LOGICAL intrinsic procedure was missing in the front-end causing
crash when using it in parameter expressions.
Simply fold LOGICAL calls to evaluate::Convert<T>.
Differential Revision: https://reviews.llvm.org/D99346
diff --git a/flang/test/Evaluate/folding01.f90 b/flang/test/Evaluate/folding01.f90
index 465b2275..b12c6a0 100644
--- a/flang/test/Evaluate/folding01.f90
+++ b/flang/test/Evaluate/folding01.f90
@@ -30,6 +30,9 @@
logical, parameter :: test_neqv3 = .NOT.(.false..NEQV..false.)
logical, parameter :: test_neqv4 = .NOT.(.true..NEQV..true.)
+ logical, parameter :: test_logical1 = logical(logical(.true., 2))
+ logical, parameter :: test_logical2 = .NOT.logical(logical(.false., 2))
+
! Check integer intrinsic operator folding
! Check integer relational intrinsic operation folding