| ! { dg-do compile } |
| ! PR fortran/50514 |
| program ishft_3 |
| |
| implicit none |
| |
| integer j, m |
| |
| m = 42 |
| ! |
| ! These should compile. |
| ! |
| j = ishft(m, 16) |
| j = ishft(m, -16) |
| j = ishftc(m, 16) |
| j = ishftc(m, -16) |
| ! |
| ! These should issue an error. |
| ! |
| j = ishft(m, 640) ! { dg-error "absolute value of SHIFT" } |
| j = ishftc(m, 640) ! { dg-error "absolute value of SHIFT" } |
| j = ishft(m, -640) ! { dg-error "absolute value of SHIFT" } |
| j = ishftc(m, -640) ! { dg-error "absolute value of SHIFT" } |
| |
| ! abs(SHIFT) must be <= SIZE |
| |
| j = ishftc(m, 1, 2) |
| j = ishftc(m, 1, 2) |
| j = ishftc(m, -1, 2) |
| j = ishftc(m, -1, 2) |
| |
| j = ishftc(m, 10, 2)! { dg-error "absolute value of SHIFT" } |
| j = ishftc(m, 10, 2)! { dg-error "absolute value of SHIFT" } |
| j = ishftc(m, -10, 2)! { dg-error "absolute value of SHIFT" } |
| j = ishftc(m, -10, 2)! { dg-error "absolute value of SHIFT" } |
| |
| j = ishftc(m, 1, -2) ! { dg-error "must be positive" } |
| end program |