comp.lang.ada
 help / color / mirror / Atom feed
From: Daniel King <daniel.dmk@googlemail.com>
Subject: GNAT bug with protected procedure interrupt handler
Date: Fri, 24 Jun 2016 19:40:30 -0700 (PDT)
Date: 2016-06-24T19:40:30-07:00	[thread overview]
Message-ID: <35e9e475-7ddd-49ec-a7a3-1e72810b27f1@googlegroups.com> (raw)

I'm working on a project using GNAT GPL 2016 and AdaCore's ravenscar-sfp-stm32f4 runtime and I am encountering GNAT bugs when using the Attach_Handler aspect/pragma on a protected procedure.

More specifically, given the following (trivial) code:

    with Ada.Interrupts.Names;
    with System;

    package IRQ_Test
    is
       protected type IRQ_Test_Type
       is
          procedure Handle_IRQ
            with Attach_Handler => Ada.Interrupts.Names.RTC_Interrupt;
       end IRQ_Test_Type;
    end IRQ_Test;

I encounter the following GNAT bug message:

    +===========================GNAT BUG DETECTED==============================+
    | GPL 2016 (20160515-49) (arm-eabi) Program_Error sem_type.adb:814 explicit raise|
    | Error detected at irq_test.ads:6:4                                       |
    | Please submit a bug report by email to report@adacore.com.               |
    | GAP members can alternatively use GNAT Tracker:                          |
    | http://www.adacore.com/ section 'send a report'.                         |
    | See gnatinfo.txt for full info on procedure for submitting bugs.         |
    | 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 command that you entered.                              |
    | Also include sources listed below.                                       |
    | Use plain ASCII or MIME attachment(s).                                   |
    +==========================================================================+

    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.
    Consider also -gnatd.n switch (see debug.adb).

    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/arch/system.ads
    /home/dan/projects/ada/stm32test/irq_test.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/common/ada.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/a-interr.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-interr.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-taskin.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/common/a-unccon.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/common/s-stoele.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/common/s-parame.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-tasinf.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-taspri.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-osinte.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-multip.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/common/s-bb.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-arch/s-bbpara.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/common/interfac.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/bsp/i-stm32.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/bsp/i-stm32-rcc.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/common/i-bit_types.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/bsp/s-stm32.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/bsp/s-bbbopa.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/bsp/s-bbmcpa.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/bsp/i-stm32-pwr.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-bbthre.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-bbcppr.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-bbtime.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-bbinte.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-bcprmu.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-bbthqu.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-bbbosu.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-taprob.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-mufalo.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-musplo.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/s-tposen.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-common/a-taside.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/gnarl-bsp/a-intnam.ads
    /usr/gnat/arm-eabi/lib/gnat/ravenscar-sfp-stm32f4/common/s-unstyp.ads

If I omit the Attach_Handler line on my original example then there are no errors.

Has anyone else seen this problem, or are able to reproduce it? Have you found a workaround?

Daniel


             reply	other threads:[~2016-06-25  2:40 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-25  2:40 Daniel King [this message]
2016-06-25  5:27 ` GNAT bug with protected procedure interrupt handler Egil H H
2016-06-25  7:28   ` Simon Wright
2016-06-25 12:27     ` Daniel King
2016-06-25 13:15       ` Simon Wright
2016-06-25 14:27         ` Daniel King
2016-06-25 14:34           ` Simon Wright
2016-06-30 16:00             ` Daniel King
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox