[Ada] Suppress GNAT FE up-level reference transformation for GNAT-LLVM
In the case of GNAT-LLVM, the GNAT FE no longer does expansion of up-level references identified by the subprogram unnesting machinery into activation record references. This is now only done by the FE when generating C code. This expansion is already taken care of by the gnat-llvm middle phase, so there's no benefit to also doing it in the front end. 2019-09-19 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * exp_unst.adb (Unnest_Subprogram): Bypass the transformation of up-level references unless Opt.Generate_C_Code is enabled. From-SVN: r275942
This commit is contained in:
parent
1dd3915be1
commit
143df1f9aa
|
@ -1,3 +1,8 @@
|
|||
2019-09-19 Gary Dismukes <dismukes@adacore.com>
|
||||
|
||||
* exp_unst.adb (Unnest_Subprogram): Bypass the transformation of
|
||||
up-level references unless Opt.Generate_C_Code is enabled.
|
||||
|
||||
2019-09-19 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* exp_ch4.adb (Expand_Array_Equality): If optimization is
|
||||
|
|
|
@ -2177,11 +2177,14 @@ package body Exp_Unst is
|
|||
-- not need rewriting (e.g. the appearence in a conversion).
|
||||
-- Also ignore if no reference was specified or if the rewriting
|
||||
-- has already been done (this can happen if the N_Identifier
|
||||
-- occurs more than one time in the tree).
|
||||
-- occurs more than one time in the tree). Also ignore references
|
||||
-- when not generating C code (in particular for the case of LLVM,
|
||||
-- since GNAT-LLVM will handle the processing for up-level refs).
|
||||
|
||||
if No (UPJ.Ref)
|
||||
or else not Is_Entity_Name (UPJ.Ref)
|
||||
or else not Present (Entity (UPJ.Ref))
|
||||
or else not Opt.Generate_C_Code
|
||||
then
|
||||
goto Continue;
|
||||
end if;
|
||||
|
|
Loading…
Reference in New Issue