[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#395406: gnat-4.1: Assert_Failure sinfo.adb:649



Subject: gnat-4.1: Assert_Failure sinfo.adb:649
Package: gnat-4.1
Version: 4.1.1-16
Severity: normal

*** Please type your report below this line ***

Trying to compile an Ada program, I have this bug with gnatmake :
****************************************
$ gnatmake -gnat05 rv.adb
gcc-4.1 -c -gnat05 rv.adb
+===========================GNAT BUG DETECTED==============================+
| 4.1.2 20061007 (prerelease) (Debian 4.1.1-16) (i486-pc-linux-gnu)        |
| Assert_Failure sinfo.adb:649                                             |
| Error detected at rv.adb:83:26                                           |
| Please submit a bug report; see http://gcc.gnu.org/bugs.html.            |
| Use a subject line meaningful to you and us to track the bug.            |
| Include the entire contents of this bug box in the report.               |
| Include the exact gcc-4.1 or gnatmake command that you entered.          |
| Also include sources listed below in gnatchop format                     |
| (concatenated together with no headers between files).                   |
+==========================================================================+

Please include these source files with error report
Note that list may not be accurate in some cases,
so please double check that the problem can still
be reproduced with the set of files listed.

rv.adb
list may be incomplete
compilation abandoned
gnatmake: "rv.adb" compilation error
****************************************
error code : 4

My source code : rv.adb
****************************************
with text_io;
use  text_io;

procedure rv is

    p     : constant integer := 6; -- nombre de tâches "processus" 
    nb_rv : constant integer := 2; -- nombre de rendez-vous successifs
    subtype indice_processus is integer range 1..p;
    type    etat_processus is (run, wait);

    ---------------- variables partagées ------------------ à compléter -------------
    etat : array(indice_processus) of etat_processus := (others => run);

    -------------------------
    ----- Tache serveur -----
    -------------------------

    task serveur is
        entry rendez_vous;
        entry photo;
    end serveur ;

    task body serveur is
    begin
        loop
            select
                accept rendez_vous;
            or
                accept photo do
                    for i in etat'Range loop
                        if etat(i) = run then
                            put("|   ");
                        else
                            put("+   ");
                        end if;
                    end loop;
                    put(Natural'Image(rendez_vous'Count));
                    new_line(1);
                end photo;
            end select;
        end loop;
    end serveur ;

    ---------------------------
    ----- Tache processus -----
    ---------------------------

    task type processus (numero : indice_processus);
    task body processus is
    begin
        serveur.rendez_vous;
    end processus;

    -----------------------
    ----- Tache trace -----
    -----------------------

    task trace;
    task body trace is
    begin
        serveur.photo;
    end trace ;

begin
    ------------------------------------------ affiche en-tête de la trace -----------
    new_line(1);
    put_line(integer'image(p)&" processus se donnent "&integer'image(nb_rv)&" rendez-vous" );
    new_line(1);
    put_line("Les processus s'executent : | , ou attendent : +") ;
    new_line(1);
    -- le header
    --put(" ");
    for i in 1..p loop
        put("p" & integer'image(i)(2..3) & "   ");
    end loop ;
    put("rendez_vous'count");
    new_line(1) ;
    -- les processus
    declare 
        taches : array(1..p) of access processus;
    begin
        for i in indice_processus loop
            taches(i) := new processus(i);
        end loop;
    end;
end rv;

****************************************

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-1-686
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)

Versions of packages gnat-4.1 depends on:
ii  gcc-4.1                      4.1.1-13    The GNU C compiler
ii  gnat-4.1-base                4.1.1-16    The GNU Compiler Collection (gnat 
ii  libc6                        2.3.6.ds1-4 GNU C Library: Shared libraries
ii  libc6-dev                    2.3.6.ds1-4 GNU C Library: Development Librari
ii  libgcc1                      1:4.1.1-13  GCC support library
ii  libgnat-4.1                  4.1.1-16    Runtime library for GNU Ada applic
ii  libgnatprj4.1                4.1.1-16    GNU Ada Project Manager
ii  libgnatvsn4.1                4.1.1-16    GNU Ada compiler version library

gnat-4.1 recommends no packages.

-- no debconf information

-- 
Mildred       <xmpp:mildred@jabber.fr> <http://mildred632.free.fr/>
Clef GPG :    <hkp://pgp.mit.edu> ou <http://mildred632.free.fr/gpg_key>
Fingerprint : 197C A7E6 645B 4299 6D37 684B 6F9D A8D6 [9A7D 2E2B]

Attachment: signature.asc
Description: PGP signature


Reply to: