Skip to content

Commit 1bb4ae0

Browse files
committed
Merge branch 'res' into 'master'
Add tests for keyword identifiers See merge request lfortran/lfortran!640
2 parents aa8d4e8 + 9d2cdd7 commit 1bb4ae0

9 files changed

+117
-0
lines changed

integration_tests/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,10 @@ RUN(NAME arrays_02 LABELS gfortran)
132132
RUN(NAME arrays_06 LABELS gfortran)
133133
RUN(NAME arrays_07 LABELS gfortran)
134134

135+
RUN(NAME reserved_01 LABELS gfortran)
136+
RUN(NAME reserved_02 LABELS gfortran llvm)
137+
RUN(NAME reserved_03 LABELS gfortran)
138+
135139
RUN(NAME intrinsics_01 LABELS gfortran)
136140

137141
RUN(NAME parameter_01 LABELS gfortran)

integration_tests/reserved_01.f90

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
program reserved_01
2+
implicit none
3+
if (end(1, 2) /= 2) error stop
4+
if (end(2, 1) /= 2) error stop
5+
6+
contains
7+
8+
integer function end(return,&
9+
integer)result(function);;;;&
10+
integer integer,return;;;;;;&
11+
;;function=return;if(return>&
12+
integer)return;;;;;function=&
13+
integer;;end function end;;;;
14+
15+
end program

integration_tests/reserved_02.f90

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
program reserved_02
2+
implicit none
3+
if (integer() /= 1) error stop
4+
5+
contains
6+
7+
integer function integer()
8+
integer function
9+
function = function/function
10+
integer = function
11+
end function
12+
13+
end program

integration_tests/reserved_03.f90

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
program reserved_03
2+
implicit none
3+
integer endsubroutine
4+
call integer
5+
if (endsubroutine /= 1) error stop
6+
7+
contains
8+
9+
subroutine integer
10+
integer subroutine
11+
endsubroutine &
12+
= subroutine/subroutine
13+
endsubroutine &
14+
15+
16+
; end program
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"basename": "ast_f90-reserved_01-d8d7bd5",
3+
"cmd": "lfortran --show-ast-f90 --no-color {infile}",
4+
"infile": "tests/../integration_tests/reserved_01.f90",
5+
"infile_hash": "8f2d369e0f1a924d90eacfcc549441b5c9e0b56d89b4fda9164c8a84",
6+
"outfile": null,
7+
"outfile_hash": null,
8+
"stdout": "ast_f90-reserved_01-d8d7bd5.stdout",
9+
"stdout_hash": "8cc662160b14aafe8ede0ecb6caea32653394db60df2432a4699903e",
10+
"stderr": null,
11+
"stderr_hash": null,
12+
"returncode": 0
13+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
program reserved_01
2+
if ((end(1, 2))/=(2)) then
3+
error stop
4+
end if
5+
if ((end(2, 1))/=(2)) then
6+
error stop
7+
end if
8+
9+
contains
10+
11+
integer function end(return, integer) result(function)
12+
integer :: integer
13+
integer :: return
14+
function = return
15+
if ((return)>(integer)) then
16+
return
17+
end if
18+
function = integer
19+
end function end
20+
21+
end program reserved_01
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"basename": "ast_f90-reserved_02-edc293b",
3+
"cmd": "lfortran --show-ast-f90 --no-color {infile}",
4+
"infile": "tests/../integration_tests/reserved_02.f90",
5+
"infile_hash": "53fd885967ecf00fd1073cda95a659fa31a4f3d4da78a0fe31cab23b",
6+
"outfile": null,
7+
"outfile_hash": null,
8+
"stdout": "ast_f90-reserved_02-edc293b.stdout",
9+
"stdout_hash": "b3107be8a67a283b148911a790bc57e68f27b43509abb75dd5bd455b",
10+
"stderr": null,
11+
"stderr_hash": null,
12+
"returncode": 0
13+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
program reserved_02
2+
if ((integer())/=(1)) then
3+
error stop
4+
end if
5+
6+
contains
7+
8+
integer function integer()
9+
integer :: function
10+
function = (function)/(function)
11+
integer = function
12+
end function integer
13+
14+
end program reserved_02

tests/tests.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,3 +576,11 @@ ast_f90 = true
576576
filename = "fn_call1.f90"
577577
ast = true
578578
ast_f90 = true
579+
580+
[[test]]
581+
filename = "../integration_tests/reserved_01.f90"
582+
ast_f90 = true
583+
584+
[[test]]
585+
filename = "../integration_tests/reserved_02.f90"
586+
ast_f90 = true

0 commit comments

Comments
 (0)