diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2022-05-20 19:06:28 +0200 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2022-06-02 09:06:46 +0000 |
commit | da7cd04339b4db1bfdc4846eca2df04deca1a9b2 (patch) | |
tree | 375733322f45e3e7a664f5fcd421a8968ed82347 /gcc | |
parent | b05a31e579ec2e46c46c4b3f36fffdf0e959bd1f (diff) | |
download | gcc-da7cd04339b4db1bfdc4846eca2df04deca1a9b2.zip gcc-da7cd04339b4db1bfdc4846eca2df04deca1a9b2.tar.gz gcc-da7cd04339b4db1bfdc4846eca2df04deca1a9b2.tar.bz2 |
[Ada] Never make symbols for thunks public
Thunks are only referenced locally by dispatch tables and never inlined.
gcc/ada/
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Clear the Is_Public
flag on thunks.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sem_ch6.adb | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index 8fd88ad..848c234 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -4772,6 +4772,13 @@ package body Sem_Ch6 is if Nkind (N) /= N_Subprogram_Body or else not Was_Expression_Function (N) then + -- First clear the Is_Public flag on thunks since they are only + -- referenced locally by dispatch tables and thus never inlined. + + if Is_Thunk (Body_Id) then + Set_Is_Public (Body_Id, False); + end if; + Freeze_Before (N, Body_Id); end if; |