ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
authorRobert Dewar <dewar@adacore.com>
Wed, 26 Mar 2008 07:36:02 +0000 (08:36 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 26 Mar 2008 07:36:02 +0000 (08:36 +0100)
commit1b24ada5aba090c1b641353f94cba86730c99105
tree70dbf93da9aba2214e551ac66d758a30077cf351
parent9fbecd1a76ba3508fac12e5795923d6ca9efe309
ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record

2008-03-26  Robert Dewar  <dewar@adacore.com>

* ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record

* bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure

* debug.adb: Add debug flags d.r and d.v
Add debug flag .T (Optimize_Alignment (Time))
Add debug flag .S (Optimize_Alignment (Space))

* freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
depending on setting of relevant debug flags.
Replace use of Warnings_Off by Has_Warnings_Off
(Freeze_Entity): In circuit for warning on suspicious convention
actuals, do not give warning if subprogram has same entity as formal
type, or if subprogram does not come from source.
(Freeze_Entity): Don't reset Is_Packed for fully rep speced record
if Optimize_Alignment set to Space.

* frontend.adb: Add call to Sem_Warn.Initialize
Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
Reset Optimize_Alignment mode from debug switches .S and .T

* layout.adb (Layout_Composite_Object): Rewritten for
Optimize_Aligment pragma.

* lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
mode.

* opt.ads, opt.adb: (Optimize_Alignment): New global switch

* par-prag.adb (N_Pragma): Chars field removed, use Chars
(Pragma_Identifier (..  instead, adjustments throughout to accomodate
this change. Add entry for pragma Optimize_Alignment

* sem_prag.adb (N_Pragma): Chars field removed, use Chars
(Pragma_Identifier (..
instead, adjustments throughout to accomodate this change.
(Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
(Favor_Top_Level): Use new function Is_Access_Subprogram_Type
Add implementation of pragma Optimize_Alignment

From-SVN: r133549
13 files changed:
gcc/ada/ali.adb
gcc/ada/ali.ads
gcc/ada/bcheck.adb
gcc/ada/debug.adb
gcc/ada/freeze.adb
gcc/ada/frontend.adb
gcc/ada/layout.adb
gcc/ada/lib-writ.adb
gcc/ada/lib-writ.ads
gcc/ada/opt.adb
gcc/ada/opt.ads
gcc/ada/par-prag.adb
gcc/ada/sem_prag.adb