I have included the configure, and build command below. This seems really easy to reproduce, create and array of integer values (I am unsure if integer is significant) the upper bound of which is determined by a function call declare the array as volatile
+===========================GNAT BUG DETECTED==============================+ | 4.0.2 (i686-pc-cygwin) in tree_low_cst, at tree.c:3850 | | Error detected at mfd_transmitter.2.ada:540:9 | | Please submit a bug report; see http://gcc.gnu.org/bugs.html. | | Include the entire contents of this bug box in the report. | | Include the exact gcc or gnatmake command that you entered. | | Also include sources listed below in gnatchop format | | (concatenated together with no headers between files). | +==========================================================================+ This error can be avoided by using a fixed size array or removing the volatile from the array. gcc -c -g -fstack-check -gnata -gnato -gnatE -gnatf -I- -gnatA -x ada project_top.adb $ gcc -v Using built-in specs. Target: i686-pc-cygwin Configured with: ../gcc-4.0.2/configure --enable-languages=ada --disable-win32-registry Thread model: single gcc version 4.0.2 -- Summary: Use of volatile array with bounds determined at run time. Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ben dot midgley at ultra-datel dot com GCC build triplet: included in description GCC host triplet: included in description GCC target triplet: included in description http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26306