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 crash for bad Depends operand


This fixes a failure to properly diagnose a bad Depends operand.
The following program used to provoke this crash:

     1. procedure DependsCrash is
     2.    type R is record
     3.       B : Boolean;
     4.    end record;
     5.
     6.    procedure Test (X : R; B : out Boolean)
                           |
        >>> item "X" must appear in at least one input list
            of aspect Depends

     7.      with Depends => (B => X.B);
                                    |
        >>> item must denote variable, state or formal
            parameter

     8.
     9.    procedure Test (X : R; B : out Boolean)
    10.    is begin null; end;
    11.
    12. begin
    13.    null;
    14. end DependsCrash;

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

2014-01-24  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Input_Output): Add missing error check
	for junk operand.
	* sem_util.adb (Is_Refined_State): Add defense against junk
	tree from error.

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]