[Bug ada/53323] assertion failure on indefinite array of controlled objects and storage pools
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53323 Eric Botcazou changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |4.8.0 --- Comment #8 from Eric Botcazou --- .
[Bug ada/53323] assertion failure on indefinite array of controlled objects and storage pools
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53323 --- Comment #6 from simon at pushface dot org 2013-03-23 12:14:00 UTC --- (In reply to comment #5) Sort of, we now disable the front-end assertions on release branches. Hmm, this doesn't really seem appropriate. Quoting Robert Dewar in [1] (talking about contracts, but it must apply here), Like all runtime checks, these checks can optionally be removed for the final production build. This is often done in safety-critical applications such as aircraft software, where the verification process provides sufficient confidence that the checks will not fail. [...] In this context, the runtime checks are a means to the end of making sure they are not needed. But in other contexts, if the extra inefficiency is not a problem, it may well make sense to leave the checks enabled. Better to have an ATM machine shut down than to get an undetected error and hand out the wrong amount of money. ... or have a compiler generate incorrect code. (NB, in this case I accept that it may well be the check that's wrong, not the generated code). [1] http://www.drdobbs.com/architecture-and-design/ada-2012-ada-with-contracts/240150569?cid=twitter_
[Bug ada/53323] assertion failure on indefinite array of controlled objects and storage pools
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53323 --- Comment #7 from Eric Botcazou ebotcazou at gcc dot gnu.org 2013-03-23 12:41:46 UTC --- ... or have a compiler generate incorrect code. (NB, in this case I accept that it may well be the check that's wrong, not the generated code). Yes, that's the key point, there are enough internal assertions in the back-end (which are always enabled) to rule out wrong code generation issues. See: http://gcc.gnu.org/ml/gcc-patches/2013-01/msg00581.html
[Bug ada/53323] assertion failure on indefinite array of controlled objects and storage pools
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53323 --- Comment #2 from simon at pushface dot org 2013-03-20 09:36:44 UTC --- Still fails on 4.8. However: package Indefinite_Dynamic begins generic type Item () is private; type Item_Ptr is access Item; Storage : in out System.Storage_Pools.Root_Storage_Pool'Class; Initial_Size : Positive := 10; package Indefinite_Dynamic is and I find that the problem goes away if I move the formal parameters around so that Storage is the last parameter.
[Bug ada/53323] assertion failure on indefinite array of controlled objects and storage pools
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53323 Eric Botcazou ebotcazou at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-03-20 Ever Confirmed|0 |1 --- Comment #3 from Eric Botcazou ebotcazou at gcc dot gnu.org 2013-03-20 09:43:27 UTC --- Confirmed on mainline, but this will compile with the 4.8.0 release.
[Bug ada/53323] assertion failure on indefinite array of controlled objects and storage pools
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53323 --- Comment #4 from simon at pushface dot org 2013-03-20 17:24:06 UTC --- (In reply to comment #3) Confirmed on mainline, but this will compile with the 4.8.0 release. So it will (with gcc version 4.8.0 20130320 (prerelease) [gcc-4_8-branch revision 196828] (GCC)). Must have been a recent fix, cos it failed with gcc version 4.8.0 20130309 (experimental) [trunk revision 196573] (GCC)!
[Bug ada/53323] assertion failure on indefinite array of controlled objects and storage pools
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53323 --- Comment #5 from Eric Botcazou ebotcazou at gcc dot gnu.org 2013-03-20 22:00:26 UTC --- Must have been a recent fix, cos it failed with gcc version 4.8.0 20130309 (experimental) [trunk revision 196573] (GCC)! Sort of, we now disable the front-end assertions on release branches.
[Bug ada/53323] assertion failure on indefinite array of controlled objects and storage pools
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53323 Eric Botcazou ebotcazou at gcc dot gnu.org changed: What|Removed |Added CC||ebotcazou at gcc dot ||gnu.org Summary|Compiler bomb with |assertion failure on |indefinite array of |indefinite array of |controlled objects and |controlled objects and |storage pools |storage pools --- Comment #1 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-05-12 14:47:36 UTC --- Hopefully the compiler doesn't really bomb by you...