ada/9519: gnat-3.2: clash of assembler symbols for overloaded names
oliver.kellogg@sysde.eads.net
oliver.kellogg@sysde.eads.net
Fri Jan 31 12:26:00 GMT 2003
>Number: 9519
>Category: ada
>Synopsis: gnat-3.2: clash of assembler symbols for overloaded names
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Jan 31 10:46:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: Oliver Kellogg
>Release: gcc-3.2 and 3.2.1
>Organization:
>Environment:
RedHat Linux 8.0 (i686)
>Description:
This is a regression.
With gnat-3.13p, correct assembler names are generated:
$ nm ovrlod.o
00000418 T ovrlod__subprog
00000850 T ovrlod__subprog__2
00000000 t ovrlod__subprog__io__get.0
000000fc t ovrlod__subprog__io__get__2.1
00000534 t ovrlod__subprog__io__get__2.7
00000634 t ovrlod__subprog__io__get__3.10
000001fc t ovrlod__subprog__io__get__3.4
00000434 t ovrlod__subprog__io__get.6
00000368 t ovrlod__subprog__io__put.2
00000390 t ovrlod__subprog__io__put__2.3
000007c8 t ovrlod__subprog__io__put__2.9
000007f4 t ovrlod__subprog__io__put__3.11
000003bc t ovrlod__subprog__io__put__3.5
000007a0 t ovrlod__subprog__io__put.8
gnat-3.2 and 3.2.1 generate assembler names
that are liable to clash:
$ gcc -c ovrlod.adb
/tmp/ccBg9i2E.s: Assembler messages:
/tmp/ccBg9i2E.s:422: Error: symbol `ovrlod__subprog__io__get__2' is already defined
/tmp/ccBg9i2E.s:497: Error: symbol `ovrlod__subprog__io__get__3' is already defined
/tmp/ccBg9i2E.s:610: Error: symbol `ovrlod__subprog__io__put__2' is already defined
/tmp/ccBg9i2E.s:629: Error: symbol `ovrlod__subprog__io__put__3' is already defined
>How-To-Repeat:
Compile the body of this package:
-- file: ovrlod.ads
package Ovrlod is
procedure Subprog;
function Subprog return String;
end Ovrlod;
-- file: ovrlod.adb
with Text_IO;
package body Ovrlod is
procedure Subprog is
package Io is new Text_Io.Integer_Io (Integer);
begin
null;
end Subprog;
function Subprog return String is
package Io is new Text_Io.Integer_Io (Integer);
begin
return "";
end Subprog;
end Ovrlod;
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-bugs
mailing list