The Alfa section of ALI files mentioned objects of task type or protected type
in effects, but it should not, because we do not consider effects on such
objects. The present patch fixes this.

Tested on x86_64-pc-linux-gnu, committed on trunk

2011-09-05  Johannes Kanig  <ka...@adacore.com>

        * lib-xref-alfa.adb (Is_Alfa_Reference): Never declare effects on
        objects of task type or protected type.

Index: lib-xref-alfa.adb
===================================================================
--- lib-xref-alfa.adb   (revision 178448)
+++ lib-xref-alfa.adb   (working copy)
@@ -620,7 +620,22 @@
                   return False;
 
                when others =>
+
+                  --  Objects of Task type or protected type are not Alfa
+                  --  references.
+
+                  if Present (Etype (E)) then
+                     case Ekind (Etype (E)) is
+                        when E_Task_Type | E_Protected_Type =>
+                           return False;
+
+                        when others =>
+                           null;
+                     end case;
+                  end if;
+
                   return Typ = 'r' or else Typ = 'm';
+
             end case;
          end Is_Alfa_Reference;
 

Reply via email to