This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Ada] Fix delayed analysis of aspect specification when scopes differ


This patch properly analyses aspects in cases when scopes differ such as
protected types, tasks, etc.
The test illustrates the analysis of aspects at freeze point specified for a
protected object.

------------
-- Source --
------------

package T is
   type Typ is new Integer with Size => 128;

   protected type Prot with Lock_Free => True is
      procedure Reset;

   private
      Counter : Typ := 0;
   end Prot;
end T;

package body T is
   protected body Prot is
      procedure Reset is
      begin
         Counter := 0;
      end Reset;
   end Prot;
end T;

-----------------
-- Compilation --
-----------------

$ gnatmake -q -gnat12 t.adb
t.adb:3:07: illegal body when Lock_Free given
t.adb:5:10: type of "Counter" must support atomic operations
gnatmake: "t.adb" compilation error

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

2012-08-06  Vincent Pucci  <pucci@adacore.com>

	* sem_ch13.adb: Current scope must be within
	or same as the scope of the entity while analysing aspect
	specifications at freeze point.

Attachment: difs
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]