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] Crash while processing illegal state refinement


This patch modifies the parser to catch a case where the argument of SPARK
aspect Refined_State is not properly parenthesized.

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

--  no_parens.ads

package No_Parens
  with SPARK_Mode => On,
       Abstract_State => State
is
   pragma Elaborate_Body;
end No_Parens;

--  no_parens.adb

package body No_Parens
  with SPARK_Mode => On,
       Refined_State => State => (Speed, Status)
is
   Speed  : Integer := 0;
   Status : Integer := 0;
end No_Parens;

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

$ gcc -c no_parens.adb
no_parens.adb:3:25: missing "("

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

2014-07-17  Hristian Kirtchev  <kirtchev@adacore.com>

	* par-ch13.adb (Get_Aspect_Specifications):
	Catch a case where the argument of SPARK aspect Refined_State
	is not properly parenthesized.

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]