[Ada] Do full name qualification of local exception names for LLVM
authorGary Dismukes <dismukes@adacore.com>
Tue, 13 Aug 2019 08:07:51 +0000 (08:07 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Tue, 13 Aug 2019 08:07:51 +0000 (08:07 +0000)
commit93bfc8c003e7367f0f873b566833a12c092b2755
tree230d6b94363947497aebb04b7ccf3f8f52ae1652
parent4167b0752365c69e5895b5c8097e7dba34f735f5
[Ada] Do full name qualification of local exception names for LLVM

Exceptions declared within subprograms are associated with objects
allocated statically (at the global level), and it's helpful for the
LLVM compiler (and likely others, such as CCG) if the exception name is
fully qualified, to avoid link name clashes (gcc-based GNAT has always
"uniquified" these names). GNAT was using the simple name for local
exceptions (as for other local objects), but it now uses fully qualified
names for all exceptions.

When compiled with the command:

gcc -c -gnatG local_exception.adb | grep "local_exception__local_exc"

the following output is generated for the test further below:

   local_exception__local_exc : static exception := (
        local_exception__local_exc'unrestricted_access));

procedure Local_Exception is

  Local_Exc : exception;

begin
   null;
end Local_Exception;

2019-08-13  Gary Dismukes  <dismukes@adacore.com>

gcc/ada/

* exp_dbug.adb (Fully_Qualify_Name): Add full name qualification
for the E_Exception case.

From-SVN: r274349
gcc/ada/ChangeLog
gcc/ada/exp_dbug.adb