OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [trim_1.f90] - Rev 708

Go to most recent revision | Compare with Previous | Blame | View Log

! { dg-do run }

! Torture-test TRIM and LEN_TRIM for correctness.


! Given a total string length and a trimmed length, construct an
! appropriate string and check gfortran gets it right.

SUBROUTINE check_trim (full_len, trimmed_len)
  IMPLICIT NONE
  INTEGER, INTENT(IN) :: full_len, trimmed_len
  CHARACTER(LEN=full_len) :: string

  string = ""
  IF (trimmed_len > 0) THEN
    string(trimmed_len:trimmed_len) = "x"
  END IF

  IF (LEN (string) /= full_len &
      .OR. LEN_TRIM (string) /= trimmed_len &
      .OR. LEN (TRIM (string)) /= trimmed_len &
      .OR. TRIM (string) /= string (1:trimmed_len)) THEN
    PRINT *, full_len, trimmed_len
    PRINT *, LEN (string), LEN_TRIM (string)
    CALL abort ()
  END IF
END SUBROUTINE check_trim


! The main program, check with various combinations.

PROGRAM main
  IMPLICIT NONE
  INTEGER :: i, j

  DO i = 0, 20
    DO j = 0, i
      CALL check_trim (i, j)
    END DO
  END DO
END PROGRAM main

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.