From ec3d8bb5aae2326fb37126819a82de193cb24ead Mon Sep 17 00:00:00 2001 From: ceriel Date: Fri, 14 Apr 1989 18:25:39 +0000 Subject: [PATCH] fix: filename label sometimes turned up as external --- lang/m2/comp/walk.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lang/m2/comp/walk.c b/lang/m2/comp/walk.c index d8520ae41..91795e294 100644 --- a/lang/m2/comp/walk.c +++ b/lang/m2/comp/walk.c @@ -280,7 +280,15 @@ WalkProcedure(procedure) /* Generate code for this procedure */ TmpOpen(procscope); - C_insertpart(partno2); + C_insertpart(partno2); /* procedure header */ + /* generate code for filename only when the procedure can be + exported, either directly or by taking the address. + This cannot be done if the level is bigger than one (because in + this case it is a nested procedure). + */ + DoFilename(procscope->sc_level == 1); + DoPriority(); + C_insertpart(partno); text_label = 1; /* label at end of procedure */ @@ -288,13 +296,6 @@ WalkProcedure(procedure) end_reached = WalkNode(procedure->prc_body, NO_EXIT_LABEL, REACH_FLAG); C_beginpart(partno); - DoPriority(); - /* generate code for filename only when the procedure can be - exported, either directly or by taking the address. - This cannot be done if the level is bigger than one (because in - this case it is a nested procedure). - */ - DoFilename(procscope->sc_level == 1); /* Generate calls to initialization routines of modules defined within this procedure