OSDN Git Service

2008-08-20 Robert Dewar <dewar@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Aug 2008 15:51:37 +0000 (15:51 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Aug 2008 15:51:37 +0000 (15:51 +0000)
* sem_ch13.adb:
(Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
non-existing component clause.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139323 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/sem_ch13.adb

index 571e30e..e5057d2 100644 (file)
@@ -1,3 +1,19 @@
+2008-08-20  Robert Dewar  <dewar@adacore.com>
+
+       * 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  <celier@adacore.com>
 
        * make.adb (Gnatmake_Switch_Found): New Boolean global variable
index a0154d2..0de30eb 100644 (file)
@@ -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;