1! RUN: %S/test_errors.sh %s %t %flang_fc1 2! REQUIRES: shell 3! Check that if constructs only accept scalar logical expressions. 4! TODO: expand the test to check this restriction for more types. 5 6INTEGER :: I 7LOGICAL, DIMENSION (2) :: B 8 9!ERROR: Must be a scalar value, but is a rank-1 array 10if ( B ) then 11 a = 1 12end if 13 14!ERROR: Must be a scalar value, but is a rank-1 array 15if ( B ) then 16 a = 2 17else 18 a = 3 19endif 20 21!ERROR: Must be a scalar value, but is a rank-1 array 22if ( B ) then 23 a = 4 24!ERROR: Must be a scalar value, but is a rank-1 array 25else if( B ) then 26 a = 5 27end if 28 29!ERROR: Must be a scalar value, but is a rank-1 array 30if ( B ) then 31 a = 6 32!ERROR: Must be a scalar value, but is a rank-1 array 33else if( B ) then 34 a = 7 35!ERROR: Must be a scalar value, but is a rank-1 array 36elseif( B ) then 37 a = 8 38end if 39 40!ERROR: Must be a scalar value, but is a rank-1 array 41if ( B ) then 42 a = 9 43!ERROR: Must be a scalar value, but is a rank-1 array 44else if( B ) then 45 a = 10 46else 47 a = 11 48end if 49 50!ERROR: Must be a scalar value, but is a rank-1 array 51if ( B ) then 52 a = 12 53!ERROR: Must be a scalar value, but is a rank-1 array 54else if( B ) then 55 a = 13 56!ERROR: Must be a scalar value, but is a rank-1 array 57else if( B ) then 58 a = 14 59end if 60 61 62!ERROR: Must have LOGICAL type, but is INTEGER(4) 63if ( I ) then 64 a = 1 65end if 66 67!ERROR: Must have LOGICAL type, but is INTEGER(4) 68if ( I ) then 69 a = 2 70else 71 a = 3 72endif 73 74!ERROR: Must have LOGICAL type, but is INTEGER(4) 75if ( I ) then 76 a = 4 77!ERROR: Must have LOGICAL type, but is INTEGER(4) 78else if( I ) then 79 a = 5 80end if 81 82!ERROR: Must have LOGICAL type, but is INTEGER(4) 83if ( I ) then 84 a = 6 85!ERROR: Must have LOGICAL type, but is INTEGER(4) 86else if( I ) then 87 a = 7 88!ERROR: Must have LOGICAL type, but is INTEGER(4) 89elseif( I ) then 90 a = 8 91end if 92 93!ERROR: Must have LOGICAL type, but is INTEGER(4) 94if ( I ) then 95 a = 9 96!ERROR: Must have LOGICAL type, but is INTEGER(4) 97else if( I ) then 98 a = 10 99else 100 a = 11 101end if 102 103!ERROR: Must have LOGICAL type, but is INTEGER(4) 104if ( I ) then 105 a = 12 106!ERROR: Must have LOGICAL type, but is INTEGER(4) 107else if( I ) then 108 a = 13 109!ERROR: Must have LOGICAL type, but is INTEGER(4) 110else if( I ) then 111 a = 14 112end if 113 114!ERROR: Must have LOGICAL type, but is REAL(4) 115if (f()) then 116 a = 15 117end if 118 119contains 120 real function f() 121 f = 1.0 122 end 123end 124