Skip to content

Commit 0abec4b

Browse files
committed
following standard, no exception for gfortran 10 needed
1 parent f563893 commit 0abec4b

File tree

2 files changed

+41
-48
lines changed

2 files changed

+41
-48
lines changed

src/CMakeLists.txt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,6 @@ endif()
5353

5454
add_subdirectory(tests)
5555

56-
# relax standard checks
57-
if(CMAKE_Fortran_COMPILER_ID STREQUAL GNU)
58-
if(CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)
59-
set_source_files_properties("stdlib_experimental_ascii.f90" PROPERTIES COMPILE_FLAGS "-fallow-invalid-boz")
60-
endif()
61-
endif()
62-
6356
install(TARGETS fortran_stdlib
6457
RUNTIME DESTINATION bin
6558
ARCHIVE DESTINATION lib

src/stdlib_experimental_ascii.f90

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -15,39 +15,39 @@ module stdlib_experimental_ascii
1515
public :: to_lower, to_upper
1616

1717
! All control characters in the ASCII table (see www.asciitable.com).
18-
character(len=1), public, parameter :: NUL = achar(z'00') !! Null
19-
character(len=1), public, parameter :: SOH = achar(z'01') !! Start of heading
20-
character(len=1), public, parameter :: STX = achar(z'02') !! Start of text
21-
character(len=1), public, parameter :: ETX = achar(z'03') !! End of text
22-
character(len=1), public, parameter :: EOT = achar(z'04') !! End of transmission
23-
character(len=1), public, parameter :: ENQ = achar(z'05') !! Enquiry
24-
character(len=1), public, parameter :: ACK = achar(z'06') !! Acknowledge
25-
character(len=1), public, parameter :: BEL = achar(z'07') !! Bell
26-
character(len=1), public, parameter :: BS = achar(z'08') !! Backspace
27-
character(len=1), public, parameter :: TAB = achar(z'09') !! Horizontal tab
28-
character(len=1), public, parameter :: LF = achar(z'0A') !! NL line feed, new line
29-
character(len=1), public, parameter :: VT = achar(z'0B') !! Vertical tab
30-
character(len=1), public, parameter :: FF = achar(z'0C') !! NP form feed, new page
31-
character(len=1), public, parameter :: CR = achar(z'0D') !! Carriage return
32-
character(len=1), public, parameter :: SO = achar(z'0E') !! Shift out
33-
character(len=1), public, parameter :: SI = achar(z'0F') !! Shift in
34-
character(len=1), public, parameter :: DLE = achar(z'10') !! Data link escape
35-
character(len=1), public, parameter :: DC1 = achar(z'11') !! Device control 1
36-
character(len=1), public, parameter :: DC2 = achar(z'12') !! Device control 2
37-
character(len=1), public, parameter :: DC3 = achar(z'13') !! Device control 3
38-
character(len=1), public, parameter :: DC4 = achar(z'14') !! Device control 4
39-
character(len=1), public, parameter :: NAK = achar(z'15') !! Negative acknowledge
40-
character(len=1), public, parameter :: SYN = achar(z'16') !! Synchronous idle
41-
character(len=1), public, parameter :: ETB = achar(z'17') !! End of transmission block
42-
character(len=1), public, parameter :: CAN = achar(z'18') !! Cancel
43-
character(len=1), public, parameter :: EM = achar(z'19') !! End of medium
44-
character(len=1), public, parameter :: SUB = achar(z'1A') !! Substitute
45-
character(len=1), public, parameter :: ESC = achar(z'1B') !! Escape
46-
character(len=1), public, parameter :: FS = achar(z'1C') !! File separator
47-
character(len=1), public, parameter :: GS = achar(z'1D') !! Group separator
48-
character(len=1), public, parameter :: RS = achar(z'1E') !! Record separator
49-
character(len=1), public, parameter :: US = achar(z'1F') !! Unit separator
50-
character(len=1), public, parameter :: DEL = achar(z'7F') !! Delete
18+
character(len=1), public, parameter :: NUL = achar(int(z'00')) !! Null
19+
character(len=1), public, parameter :: SOH = achar(int(z'01')) !! Start of heading
20+
character(len=1), public, parameter :: STX = achar(int(z'02')) !! Start of text
21+
character(len=1), public, parameter :: ETX = achar(int(z'03')) !! End of text
22+
character(len=1), public, parameter :: EOT = achar(int(z'04')) !! End of transmission
23+
character(len=1), public, parameter :: ENQ = achar(int(z'05')) !! Enquiry
24+
character(len=1), public, parameter :: ACK = achar(int(z'06')) !! Acknowledge
25+
character(len=1), public, parameter :: BEL = achar(int(z'07')) !! Bell
26+
character(len=1), public, parameter :: BS = achar(int(z'08')) !! Backspace
27+
character(len=1), public, parameter :: TAB = achar(int(z'09')) !! Horizontal tab
28+
character(len=1), public, parameter :: LF = achar(int(z'0A')) !! NL line feed, new line
29+
character(len=1), public, parameter :: VT = achar(int(z'0B')) !! Vertical tab
30+
character(len=1), public, parameter :: FF = achar(int(z'0C')) !! NP form feed, new page
31+
character(len=1), public, parameter :: CR = achar(int(z'0D')) !! Carriage return
32+
character(len=1), public, parameter :: SO = achar(int(z'0E')) !! Shift out
33+
character(len=1), public, parameter :: SI = achar(int(z'0F')) !! Shift in
34+
character(len=1), public, parameter :: DLE = achar(int(z'10')) !! Data link escape
35+
character(len=1), public, parameter :: DC1 = achar(int(z'11')) !! Device control 1
36+
character(len=1), public, parameter :: DC2 = achar(int(z'12')) !! Device control 2
37+
character(len=1), public, parameter :: DC3 = achar(int(z'13')) !! Device control 3
38+
character(len=1), public, parameter :: DC4 = achar(int(z'14')) !! Device control 4
39+
character(len=1), public, parameter :: NAK = achar(int(z'15')) !! Negative acknowledge
40+
character(len=1), public, parameter :: SYN = achar(int(z'16')) !! Synchronous idle
41+
character(len=1), public, parameter :: ETB = achar(int(z'17')) !! End of transmission block
42+
character(len=1), public, parameter :: CAN = achar(int(z'18')) !! Cancel
43+
character(len=1), public, parameter :: EM = achar(int(z'19')) !! End of medium
44+
character(len=1), public, parameter :: SUB = achar(int(z'1A')) !! Substitute
45+
character(len=1), public, parameter :: ESC = achar(int(z'1B')) !! Escape
46+
character(len=1), public, parameter :: FS = achar(int(z'1C')) !! File separator
47+
character(len=1), public, parameter :: GS = achar(int(z'1D')) !! Group separator
48+
character(len=1), public, parameter :: RS = achar(int(z'1E')) !! Record separator
49+
character(len=1), public, parameter :: US = achar(int(z'1F')) !! Unit separator
50+
character(len=1), public, parameter :: DEL = achar(int(z'7F')) !! Delete
5151

5252
! Constant character sequences
5353
character(len=*), public, parameter :: fullhex_digits = "0123456789ABCDEFabcdef" !! 0 .. 9A .. Fa .. f
@@ -79,15 +79,15 @@ pure logical function is_alphanum(c)
7979
! i.e. in the range 0 .. 0x7F.
8080
pure logical function is_ascii(c)
8181
character(len=1), intent(in) :: c !! The character to test.
82-
is_ascii = iachar(c) <= z'7F'
82+
is_ascii = iachar(c) <= int(z'7F')
8383
end function
8484

8585
!> Checks whether `c` is a control character.
8686
pure logical function is_control(c)
8787
character(len=1), intent(in) :: c !! The character to test.
8888
integer :: ic
8989
ic = iachar(c)
90-
is_control = ic < z'20' .or. ic == z'7F'
90+
is_control = ic < int(z'20') .or. ic == int(z'7F')
9191
end function
9292

9393
!> Checks whether `c` is a digit (0 .. 9).
@@ -116,7 +116,7 @@ pure logical function is_punctuation(c)
116116
character(len=1), intent(in) :: c !! The character to test.
117117
integer :: ic
118118
ic = iachar(c) ! '~' '!'
119-
is_punctuation = (ic <= z'7E') .and. (ic >= z'21') .and. &
119+
is_punctuation = (ic <= int(z'7E')) .and. (ic >= int(z'21')) .and. &
120120
(.not. is_alphanum(c))
121121
end function
122122

@@ -126,7 +126,7 @@ pure logical function is_graphical(c)
126126
character(len=1), intent(in) :: c !! The character to test.
127127
integer :: ic
128128
ic = iachar(c) ! '!' '~'
129-
is_graphical = (z'21' <= ic) .and. (ic <= z'7E')
129+
is_graphical = (int(z'21') <= ic) .and. (ic <= int(z'7E'))
130130
end function
131131

132132
!> Checks whether or not `c` is a printable character - including the
@@ -135,7 +135,7 @@ pure logical function is_printable(c)
135135
character(len=1), intent(in) :: c !! The character to test.
136136
integer :: ic
137137
ic = iachar(c) ! '~'
138-
is_printable = c >= ' ' .and. ic <= z'7E'
138+
is_printable = c >= ' ' .and. ic <= int(z'7E')
139139
end function
140140

141141
!> Checks whether `c` is a lowercase ASCII letter (a .. z).
@@ -157,7 +157,7 @@ pure logical function is_white(c)
157157
character(len=1), intent(in) :: c !! The character to test.
158158
integer :: ic
159159
ic = iachar(c) ! TAB, LF, VT, FF, CR
160-
is_white = (c == ' ') .or. (ic >= z'09' .and. ic <= z'0D');
160+
is_white = (c == ' ') .or. (ic >= int(z'09') .and. ic <= int(z'0D'));
161161
end function
162162

163163
!> Checks whether or not `c` is a blank character. That includes the
@@ -166,7 +166,7 @@ pure logical function is_blank(c)
166166
character(len=1), intent(in) :: c !! The character to test.
167167
integer :: ic
168168
ic = iachar(c) ! TAB
169-
is_blank = (c == ' ') .or. (ic == z'09');
169+
is_blank = (c == ' ') .or. (ic == int(z'09'));
170170
end function
171171

172172
!> Returns the corresponding lowercase letter, if `c` is an uppercase
@@ -193,4 +193,4 @@ pure function to_upper(c) result(t)
193193
if (is_lower(t)) t = achar(iachar(t) + diff)
194194
end function
195195

196-
end module
196+
end module

0 commit comments

Comments
 (0)