| ! RUN: %python %S/test_errors.py %s %flang_fc1 |
| ! Check that if constructs only accept scalar logical expressions. |
| ! TODO: expand the test to check this restriction for more types. |
| |
| INTEGER :: I |
| LOGICAL, DIMENSION (2) :: B |
| |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| if ( B ) then |
| a = 1 |
| end if |
| |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| if ( B ) then |
| a = 2 |
| else |
| a = 3 |
| endif |
| |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| if ( B ) then |
| a = 4 |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| else if( B ) then |
| a = 5 |
| end if |
| |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| if ( B ) then |
| a = 6 |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| else if( B ) then |
| a = 7 |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| elseif( B ) then |
| a = 8 |
| end if |
| |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| if ( B ) then |
| a = 9 |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| else if( B ) then |
| a = 10 |
| else |
| a = 11 |
| end if |
| |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| if ( B ) then |
| a = 12 |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| else if( B ) then |
| a = 13 |
| !ERROR: Must be a scalar value, but is a rank-1 array |
| else if( B ) then |
| a = 14 |
| end if |
| |
| |
| !ERROR: Must have LOGICAL type, but is INTEGER(4) |
| if ( I ) then |
| a = 1 |
| end if |
| |
| !ERROR: Must have LOGICAL type, but is INTEGER(4) |
| if ( I ) then |
| a = 2 |
| else |
| a = 3 |
| endif |
| |
| !ERROR: Must have LOGICAL type, but is INTEGER(4) |
| if ( I ) then |
| a = 4 |
| !ERROR: Must have LOGICAL type, but is INTEGER(4) |
| else if( I ) then |
| a = 5 |
| end if |
| |
| !ERROR: Must have LOGICAL type, but is INTEGER(4) |
| if ( I ) then |
| a = 6 |
| !ERROR: Must have LOGICAL type, but is INTEGER(4) |
| else if( I ) then |
| a = 7 |
| !ERROR: Must have LOGICAL type, but is INTEGER(4) |
| elseif( I ) then |
| a = 8 |
| end if |
| |
| !ERROR: Must have LOGICAL type, but is INTEGER(4) |
| if ( I ) then |
| a = 9 |
| !ERROR: Must have LOGICAL type, but is INTEGER(4) |
| else if( I ) then |
| a = 10 |
| else |
| a = 11 |
| end if |
| |
| !ERROR: Must have LOGICAL type, but is INTEGER(4) |
| if ( I ) then |
| a = 12 |
| !ERROR: Must have LOGICAL type, but is INTEGER(4) |
| else if( I ) then |
| a = 13 |
| !ERROR: Must have LOGICAL type, but is INTEGER(4) |
| else if( I ) then |
| a = 14 |
| end if |
| |
| !ERROR: Must have LOGICAL type, but is REAL(4) |
| if (f()) then |
| a = 15 |
| end if |
| |
| contains |
| real function f() |
| f = 1.0 |
| end |
| end |