[Bug ada/69926] GNAT bug detected -- Storage_Error stack overflow or erroneous memory access

2016-02-23 Thread keith at aquilonis dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69926

--- Comment #1 from Keith Godfrey  ---
Created attachment 37772
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37772&action=edit
specification source file

[Bug ada/69926] New: GNAT bug detected -- Storage_Error stack overflow or erroneous memory access

2016-02-23 Thread keith at aquilonis dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69926

Bug ID: 69926
   Summary: GNAT bug detected -- Storage_Error stack overflow or
erroneous memory access
   Product: gcc
   Version: 4.9.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
  Assignee: unassigned at gcc dot gnu.org
  Reporter: keith at aquilonis dot net
  Target Milestone: ---

Created attachment 37771
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37771&action=edit
source file to reproduce error

Internal error detected in GNAT



$ gcc -v -save-temps -c muscles.adb
Using built-in specs.
COLLECT_GCC=gcc
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.9.2-10'
--with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.9 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify
--enable-plugin --with-system-zlib --disable-browser-plugin
--enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
gcc version 4.9.2 (Debian 4.9.2-10) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.9/gnat1 -quiet -dumpbase muscles.adb -auxbase
muscles -mtune=generic -march=x86-64 muscles.adb -o muscles.s
+===GNAT BUG DETECTED==+
| 4.9.2 (x86_64-linux-gnu) Storage_Error stack overflow or erroneous memory
access|
| Error detected at muscles.adb:8:17   |
| 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.9 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.
Consider also -gnatd.n switch (see debug.adb).

muscles.adb
muscles.ads

:8:60: missing ")"
compilation abandoned

[Bug ada/69926] GNAT bug detected -- Storage_Error stack overflow or erroneous memory access

2016-02-23 Thread keith at aquilonis dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69926

--- Comment #2 from Keith Godfrey  ---
Source code attached. Here is code as a comment:

 muscles.ads
package Muscles is
   type stretch is digits 5 range 0.0 .. 1.0;

   type spindle_t is
  record
 center: stretch := 0.0;
  end record;

   type spindle_array is array(1 .. 40) of spindle_t;

   procedure foo(spindles: in out spindle_array);
end Muscles;

 muscles.adb
package body Muscles is
   -- 
   procedure foo(spindles: in out spindle_array) is
  pos: stretch;
   begin
  for i in spindles'range loop
 pos := stretch(float(i - 1) / float(spindles'range - 1)):
 spindles(i).center := pos;
  end loop;
   end foo;
end Muscles;

[Bug ada/69926] GNAT bug detected -- Storage_Error stack overflow or erroneous memory access

2016-02-23 Thread keith at aquilonis dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69926

--- Comment #3 from Keith Godfrey  ---
Error seems to be caused by using an incorrect attribute (I used 'range when I
meant 'last). 

This is not a priority to fix. I only reported it because it induced an
internal error in the compiler