From: Robert Dewar Date: Wed, 20 Aug 2008 15:51:37 +0000 (+0000) Subject: 2008-08-20 Robert Dewar X-Git-Tag: releases/gcc-4.4.0~3011 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5e5dc75a3ef9ebff03bbf57fc7152e17e2449737;p=thirdparty%2Fgcc.git 2008-08-20 Robert Dewar * sem_ch13.adb: (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for non-existing component clause. From-SVN: r139323 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 571e30e7ab50..e5057d222bdf 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,19 @@ +2008-08-20 Robert Dewar + + * sem_ch13.adb: + (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for + non-existing component clause. + + * exp_ch5.adb: Minor reformatting + + * g-comlin.adb: Minor reformatting + + * make.adb: Minor reformatting + + * prj-proc.adb: Minor reformatting + + * stylesw.ads: Minor reformatting + 2008-08-20 Vincent Celier * make.adb (Gnatmake_Switch_Found): New Boolean global variable diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb index a0154d25da2b..0de30ebaec70 100644 --- a/gcc/ada/sem_ch13.adb +++ b/gcc/ada/sem_ch13.adb @@ -222,66 +222,69 @@ package body Sem_Ch13 is Comp := First_Component_Or_Discriminant (R); while Present (Comp) loop declare - CC : constant Node_Id := Component_Clause (Comp); - Fbit : constant Uint := Static_Integer (First_Bit (CC)); + CC : constant Node_Id := Component_Clause (Comp); begin if Present (CC) then + declare + Fbit : constant Uint := Static_Integer (First_Bit (CC)); - -- Case of component with size > max machine scalar - - if Esize (Comp) > Max_Machine_Scalar_Size then + begin + -- Case of component with size > max machine scalar - -- Must begin on byte boundary + if Esize (Comp) > Max_Machine_Scalar_Size then - if Fbit mod SSU /= 0 then - Error_Msg_N - ("illegal first bit value for reverse bit order", - First_Bit (CC)); - Error_Msg_Uint_1 := SSU; - Error_Msg_Uint_2 := Max_Machine_Scalar_Size; + -- Must begin on byte boundary - Error_Msg_N - ("\must be a multiple of ^ if size greater than ^", - First_Bit (CC)); + if Fbit mod SSU /= 0 then + Error_Msg_N + ("illegal first bit value for reverse bit order", + First_Bit (CC)); + Error_Msg_Uint_1 := SSU; + Error_Msg_Uint_2 := Max_Machine_Scalar_Size; - -- Must end on byte boundary + Error_Msg_N + ("\must be a multiple of ^ if size greater than ^", + First_Bit (CC)); - elsif Esize (Comp) mod SSU /= 0 then - Error_Msg_N - ("illegal last bit value for reverse bit order", - Last_Bit (CC)); - Error_Msg_Uint_1 := SSU; - Error_Msg_Uint_2 := Max_Machine_Scalar_Size; + -- Must end on byte boundary - Error_Msg_N - ("\must be a multiple of ^ if size greater than ^", - Last_Bit (CC)); + elsif Esize (Comp) mod SSU /= 0 then + Error_Msg_N + ("illegal last bit value for reverse bit order", + Last_Bit (CC)); + Error_Msg_Uint_1 := SSU; + Error_Msg_Uint_2 := Max_Machine_Scalar_Size; - -- OK, give warning if enabled + Error_Msg_N + ("\must be a multiple of ^ if size greater than ^", + Last_Bit (CC)); - elsif Warn_On_Reverse_Bit_Order then - Error_Msg_N - ("multi-byte field specified with non-standard" - & " Bit_Order?", CC); + -- OK, give warning if enabled - if Bytes_Big_Endian then - Error_Msg_N - ("\bytes are not reversed " - & "(component is big-endian)?", CC); - else + elsif Warn_On_Reverse_Bit_Order then Error_Msg_N - ("\bytes are not reversed " - & "(component is little-endian)?", CC); + ("multi-byte field specified with non-standard" + & " Bit_Order?", CC); + + if Bytes_Big_Endian then + Error_Msg_N + ("\bytes are not reversed " + & "(component is big-endian)?", CC); + else + Error_Msg_N + ("\bytes are not reversed " + & "(component is little-endian)?", CC); + end if; end if; - end if; - -- Case where size is not greater than max machine scalar. - -- For now, we just count these. + -- Case where size is not greater than max machine + -- scalar. For now, we just count these. - else - Num_CC := Num_CC + 1; - end if; + else + Num_CC := Num_CC + 1; + end if; + end; end if; end;