Skip to content

Commit aeedd9a

Browse files
committed
Add missing type descriptor on subroutine calls
This fixes an issue where called subroutines have mismatched arguments.
1 parent 7fcd634 commit aeedd9a

File tree

1 file changed

+5
-13
lines changed

1 file changed

+5
-13
lines changed

tools/flang1/flang1exe/semant.c

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2748,19 +2748,11 @@ semant1(int rednum, SST *top)
27482748
* <end stmt> ::= <END stmt> |
27492749
*/
27502750
case END_STMT1:
2751-
if (sem.interface && !gbl.rutype) {
2752-
error(310, 3, gbl.lineno, "Missing ENDINTERFACE statement", CNULL);
2753-
} else if (sem.interface) {
2754-
if (flg.standard) {
2755-
error(155, 3, gbl.lineno,
2756-
"END statement for interface procedure must be END",
2757-
name_of_rutype(gbl.rutype));
2758-
} else {
2759-
error(155, 2, gbl.lineno,
2760-
"END statement for internal procedure should be END",
2761-
name_of_rutype(gbl.rutype));
2762-
}
2763-
}
2751+
if (sem.interface && !gbl.rutype)
2752+
error(310, 3, gbl.lineno, "Missing ENDINTERFACE statement", CNULL);
2753+
else if (sem.which_pass)
2754+
fix_class_args(gbl.currsub);
2755+
27642756
dummy_program();
27652757
if (IN_MODULE_SPEC && gbl.internal == 0)
27662758
goto end_of_module;

0 commit comments

Comments
 (0)