aboutsummaryrefslogtreecommitdiff
path: root/gcc/intl.c
diff options
context:
space:
mode:
authorHristian Kirtchev <kirtchev@adacore.com>2018-11-14 11:40:25 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-11-14 11:40:25 +0000
commit923ecd0e4b472073e2794ad2cb272880c3c9e937 (patch)
tree72fd4d6256c239869946eaddcb4333bfdc02b243 /gcc/intl.c
parente3548b69ad7ce76aa9e9aecf6a707ab0f88114ae (diff)
downloadgcc-923ecd0e4b472073e2794ad2cb272880c3c9e937.zip
gcc-923ecd0e4b472073e2794ad2cb272880c3c9e937.tar.gz
gcc-923ecd0e4b472073e2794ad2cb272880c3c9e937.tar.bz2
[Ada] Lingering loop for ignored Ghost assignment
The following patch ensures that loops generated for aggregates as part of ignored Ghost assignments are correctly eliminated from the generated code. ------------ -- Source -- ------------ -- pack.ads package Pack is type addr4k is new Integer range 0 .. 100 with Size => 32; type Four_KB_Page_Property is record Is_Scrubbed : Boolean := False; end record with Ghost; type Four_KB_Page_Array is array (addr4k range <>) of Four_KB_Page_Property with Ghost; type Base_Memory is tagged record Four_KB_Pages : Four_KB_Page_Array (addr4k) := (others => (Is_Scrubbed => False)); end record with Ghost; subtype Memory is Base_Memory with Ghost; Global_Memory : Memory with Ghost; procedure Assign; end Pack; -- pack.adb package body Pack is procedure Assign is begin Global_Memory.Four_KB_Pages := (others => (Is_Scrubbed => True)); end Assign; end Pack; ---------------------------- -- Compilation and output -- ---------------------------- $ gcc -c -gnatDG pack.adb $ grep -c "loop" pack.adb.dg 0 2018-11-14 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * exp_ch4.adb (Expand_Concatenate): Use the proper routine to set the need for debug info. * exp_dbug.adb (Build_Subprogram_Instance_Renamings): Use the proper routine to set the need for debug info. * exp_prag.adb (Expand_Pragma_Initial_Condition): Use the proper routine to set the need for debug info. * exp_util.adb (Build_DIC_Procedure_Declaration): Use the proper routine to set the need for debug info. (Build_Invariant_Procedure_Declaration): Use the proper routine to set the need for debug info. * ghost.adb (Record_Ignored_Ghost_Node): Add statements as a whole class to the list of top level ignored Ghost nodes. * sem_util.adb (Set_Debug_Info_Needed): Do not generate debug info for an ignored Ghost entity. From-SVN: r266111
Diffstat (limited to 'gcc/intl.c')
0 files changed, 0 insertions, 0 deletions