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] Aspect Abstract_State and nested packages


This patch corrects the insertion of the corresponding pragma for aspect
Abstract_State when the related construct is a nested package. The pragma
appears in the visible declarations of the package.

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

--  pack.ads

package Pack with Abstract_State => Pack_State is
   Pack_Var : Integer;

   package Nested with Abstract_State => Nested_State is
      Nested_Var : Integer;
   end Nested;
end Pack;

----------------------------
-- Compilation and output --
----------------------------

$ gcc -c -gnat12 -gnatd.V -gnatdg pack.ads
Source recreated from tree for Pack (spec)
------------------------------------------

pack_E : short_integer := 0;

package pack with abstract_state => pack_state is
   pragma abstract_state (pack_state);
   pack__pack_var : integer;

   package pack__nested with abstract_state => nested_state is
      pragma abstract_state (nested_state);
      pack__nested__nested_var : integer;
   end pack__nested;
end pack;

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

2013-04-12  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications):
	Insert the corresponding pragma for aspect Abstract_State at
	the top of the visible declarations of the related package.
	Previously this was only done when the package is a compilation
	unit.

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]