From 1b24ada5aba090c1b641353f94cba86730c99105 Mon Sep 17 00:00:00 2001 From: Robert Dewar Date: Wed, 26 Mar 2008 08:36:02 +0100 Subject: ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record 2008-03-26 Robert Dewar * 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 --- gcc/ada/ali.adb | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gcc/ada/ali.adb') diff --git a/gcc/ada/ali.adb b/gcc/ada/ali.adb index 8466ddd..96624d6 100644 --- a/gcc/ada/ali.adb +++ b/gcc/ada/ali.adb @@ -818,6 +818,7 @@ package body ALI is No_Object => False, Normalize_Scalars => False, Ofile_Full_Name => Full_Object_File_Name, + Optimize_Alignment_Setting => 'O', Queuing_Policy => ' ', Restrictions => No_Restrictions, SAL_Interface => False, @@ -1040,6 +1041,11 @@ package body ALI is Fatal_Error_Ignore; end if; + -- Processing for Ox + + elsif C = 'O' then + ALIs.Table (Id).Optimize_Alignment_Setting := Getc; + -- Processing for Qx elsif C = 'Q' then -- cgit v1.1