! { dg-do run } ! inspired by PR17175 REAL X DOUBLE PRECISION Y INTEGER, PARAMETER :: DP = KIND(Y) INTEGER(kind=1) I1 INTEGER(kind=2) I2 INTEGER(kind=4) I4 INTEGER(kind=8) I8 X = 1. Y = 1._DP I1 = 10 I2 = -10 I4 = 20 I8 = -20 X = SCALE (X, I1) X = SCALE (X, I2) IF (X.NE.1.) CALL ABORT() X = SCALE (X, I4) X = SCALE (X, I8) IF (X.NE.1.) CALL ABORT() Y = SCALE (Y, I1) Y = SCALE (Y, I2) IF (Y.NE.1._DP) CALL ABORT() Y = SCALE (Y, I4) Y = SCALE (Y, I8) IF (Y.NE.1._DP) CALL ABORT() END