From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1499) id A0D7C3858416; Fri, 17 Mar 2023 00:23:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A0D7C3858416 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1679012625; bh=2EGaA4n5LaYb8XP+zqJ4AADUQbC8zoQrrNxAUdeuemA=; h=From:To:Subject:Date:From; b=mUWZxyvmxf9uuI1PMWd3wL7+8LVodY69GOyKWFL3R6qCtNSHB+9eb1swIs8HwUDX4 Iu8WYo0tTsysJRpzWidSthLCUT3GJvdQsUOnVAXEm4VBsQtUvCvjSSMB7BHa7mhVLe NElnOiJUlaG/dO2Q6orSgTsEghpO5ktmjFMS/v3k= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Gaius Mulley To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-6726] [modula2] Bugfix local symbol names for -fm2-whole-program X-Act-Checkin: gcc X-Git-Author: Gaius Mulley X-Git-Refname: refs/heads/master X-Git-Oldrev: 5c389a5c36f1c82fef82115270109f19c1237eaa X-Git-Newrev: 6bf80413deb5c1eacbefd685e106c6351b75ecf2 Message-Id: <20230317002345.A0D7C3858416@sourceware.org> Date: Fri, 17 Mar 2023 00:23:45 +0000 (GMT) List-Id: https://gcc.gnu.org/g:6bf80413deb5c1eacbefd685e106c6351b75ecf2 commit r13-6726-g6bf80413deb5c1eacbefd685e106c6351b75ecf2 Author: Gaius Mulley Date: Fri Mar 17 00:23:02 2023 +0000 [modula2] Bugfix local symbol names for -fm2-whole-program Local symbols must be prefixed by the modulename if -fm2-whole-program is used to avoid a name clash. gcc/m2/ChangeLog: * gm2-compiler/M2AsmUtil.mod (SymNeedsModulePrefix): Re-implemented. * gm2-libs/SysStorage.mod (enableTrace): Disable tracing. Signed-off-by: Gaius Mulley Diff: --- gcc/m2/gm2-compiler/M2AsmUtil.mod | 28 +++++++++++++--------------- gcc/m2/gm2-libs/SysStorage.mod | 2 +- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/gcc/m2/gm2-compiler/M2AsmUtil.mod b/gcc/m2/gm2-compiler/M2AsmUtil.mod index 85bbceba3ea..9ee5dd35df7 100644 --- a/gcc/m2/gm2-compiler/M2AsmUtil.mod +++ b/gcc/m2/gm2-compiler/M2AsmUtil.mod @@ -40,7 +40,7 @@ FROM SymbolTable IMPORT NulSym, IsProcedure, IsModule, IsDefImp, - IsExportQualified, + IsExportQualified, IsExportUnQualified, IsExported, IsPublic, IsExtern, IsMonoName, IsDefinitionForC ; @@ -146,28 +146,26 @@ END GetFullSymName ; (* - SymNeedsModulePrefix - + SymNeedsModulePrefix - return TRUE if symbol mod is required to have a prefix. *) PROCEDURE SymNeedsModulePrefix (sym, mod: CARDINAL) : BOOLEAN ; BEGIN - IF IsDefImp(mod) + IF IsDefImp (mod) THEN - IF WholeProgram + IF IsExportUnQualified (sym) THEN - IF NOT IsDefinitionForC(mod) - THEN - RETURN( TRUE ) - END - ELSIF IsExportQualified(sym) - THEN - RETURN( TRUE ) + RETURN FALSE + ELSE + (* We need to force the prefix if whole program is used otherwise + local symbols from multipl modules might conflict. *) + RETURN WholeProgram OR IsExportQualified (sym) END - ELSIF IsModule(mod) + ELSIF IsModule (mod) THEN - RETURN( WholeProgram ) + RETURN WholeProgram END ; - RETURN( FALSE ) + RETURN FALSE END SymNeedsModulePrefix ; @@ -185,7 +183,7 @@ BEGIN THEN RETURN( ConCat(ConCatChar(InitStringCharStar(KeyToCharStar(GetSymName(ModSym))), '_'), GetModulePrefix(Name, ModSym, GetScope(ModSym))) ) - ELSIF SymNeedsModulePrefix(Sym, ModSym) + ELSIF SymNeedsModulePrefix (Sym, ModSym) THEN RETURN( ConCatChar(ConCat(InitStringCharStar(KeyToCharStar(GetSymName(ModSym))), Mark(Name)), '_') ) END diff --git a/gcc/m2/gm2-libs/SysStorage.mod b/gcc/m2/gm2-libs/SysStorage.mod index 2277f93a398..2318ab7a6c5 100644 --- a/gcc/m2/gm2-libs/SysStorage.mod +++ b/gcc/m2/gm2-libs/SysStorage.mod @@ -34,7 +34,7 @@ FROM SYSTEM IMPORT ADR ; CONST enableDeallocation = TRUE ; enableZero = TRUE ; - enableTrace = TRUE ; + enableTrace = FALSE ; VAR callno: CARDINAL ;