diff options
author | Yannick Moy <moy@adacore.com> | 2019-07-23 08:13:01 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2019-07-23 08:13:01 +0000 |
commit | 39c20502ef7398766a8c9520c4210c2df9769d15 (patch) | |
tree | 0df1c95911c37142af392c2da93d5aac8422b887 /gcc/testsuite | |
parent | 58b8c5a87b0bac61bb88e802fc742fdc0d3e6699 (diff) | |
download | gcc-39c20502ef7398766a8c9520c4210c2df9769d15.zip gcc-39c20502ef7398766a8c9520c4210c2df9769d15.tar.gz gcc-39c20502ef7398766a8c9520c4210c2df9769d15.tar.bz2 |
[Ada] Fix binding of ghost units with finalizer
Linking of an enabled ghost unit which requires a finalizer lead to an
error, as the name generated by the binder for calling the finalizer was
not the same as the name chosen by the compiler. Now fixed.
2019-07-23 Yannick Moy <moy@adacore.com>
gcc/ada/
* exp_ch7.adb (Create_Finalizer): Force finalizer not to be
Ghost enabled.
* exp_dbug.adb (Get_External_Name): Explain special case of
Ghost finalizer.
gcc/testsuite/
* gnat.dg/ghost6.adb, gnat.dg/ghost6_pkg.ads: New testcase.
From-SVN: r273720
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/ghost6.adb | 10 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/ghost6_pkg.ads | 7 |
3 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2b3e477..0ef05dd 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2019-07-23 Yannick Moy <moy@adacore.com> + + * gnat.dg/ghost6.adb, gnat.dg/ghost6_pkg.ads: New testcase. + 2019-07-22 Sylvia Taylor <sylvia.taylor@arm.com> * gcc.target/aarch64/simd/ssra.c: New test. diff --git a/gcc/testsuite/gnat.dg/ghost6.adb b/gcc/testsuite/gnat.dg/ghost6.adb new file mode 100644 index 0000000..01a2417 --- /dev/null +++ b/gcc/testsuite/gnat.dg/ghost6.adb @@ -0,0 +1,10 @@ +-- { dg-do link } +-- { dg-options "-gnata -g" } + +with Ghost6_Pkg; + +procedure Ghost6 is + X : Ghost6_Pkg.T with Ghost; +begin + null; +end Ghost6; diff --git a/gcc/testsuite/gnat.dg/ghost6_pkg.ads b/gcc/testsuite/gnat.dg/ghost6_pkg.ads new file mode 100644 index 0000000..7fbd942 --- /dev/null +++ b/gcc/testsuite/gnat.dg/ghost6_pkg.ads @@ -0,0 +1,7 @@ +with Ada.Finalization; + +package Ghost6_Pkg with + Ghost +is + type T is new Ada.Finalization.Controlled with null record; +end Ghost6_Pkg; |