[Ada] Pragma Linker_Section in subprogram instantiations in CCG
2019-12-13 Javier Miranda <miranda@adacore.com> gcc/ada/ * sem_prag.adb (Analyze_Pragma): Propagate the Linker_Section_Attribute to the ultimate alias of the subprogram to facilitate the C backend processing this attribute. From-SVN: r279360
This commit is contained in:
parent
de12d07e93
commit
48f05f09e6
@ -1,3 +1,9 @@
|
||||
2019-12-13 Javier Miranda <miranda@adacore.com>
|
||||
|
||||
* sem_prag.adb (Analyze_Pragma): Propagate the
|
||||
Linker_Section_Attribute to the ultimate alias of the subprogram
|
||||
to facilitate the C backend processing this attribute.
|
||||
|
||||
2019-12-13 Yannick Moy <moy@adacore.com>
|
||||
|
||||
* sem_util.adb (Original_Aspect_Pragma_Name): Go through
|
||||
|
@ -19188,6 +19188,17 @@ package body Sem_Prag is
|
||||
Set_Linker_Section_Pragma
|
||||
(Entity (Corresponding_Aspect (N)), N);
|
||||
|
||||
-- Propagate it to its ultimate aliased entity to
|
||||
-- facilitate the backend processing this attribute
|
||||
-- in instantiations of generic subprograms.
|
||||
|
||||
if Present (Alias (Entity (Corresponding_Aspect (N))))
|
||||
then
|
||||
Set_Linker_Section_Pragma
|
||||
(Ultimate_Alias
|
||||
(Entity (Corresponding_Aspect (N))), N);
|
||||
end if;
|
||||
|
||||
-- Pragma case, we must climb the homonym chain, but skip
|
||||
-- any for which the linker section is already set.
|
||||
|
||||
@ -19196,6 +19207,15 @@ package body Sem_Prag is
|
||||
if No (Linker_Section_Pragma (Ent)) then
|
||||
Set_Linker_Section_Pragma (Ent, N);
|
||||
|
||||
-- Propagate it to its ultimate aliased entity to
|
||||
-- facilitate the backend processing this attribute
|
||||
-- in instantiations of generic subprograms.
|
||||
|
||||
if Present (Alias (Ent)) then
|
||||
Set_Linker_Section_Pragma
|
||||
(Ultimate_Alias (Ent), N);
|
||||
end if;
|
||||
|
||||
-- A pragma that applies to a Ghost entity becomes
|
||||
-- Ghost for the purposes of legality checks and
|
||||
-- removal of ignored Ghost code.
|
||||
|
Loading…
Reference in New Issue
Block a user