http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49732
Summary: GNAT 4.6.[01] crashes on terminal_interface-curses-menus.adb from ncruses 5.9 Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassig...@gcc.gnu.org ReportedBy: vorfeed.ca...@gmail.com This is Linux (I've tried both i686 and x86-64). GCC was compiled with the following options: /localbuild/src/sysnative-pregcc-4.6.1/gcc-4.6.1/configure --with-gmp=/localbuild/install/sysnative-pregcc-4.6.1/gmp-5.0.2 --with-mpfr=/localbuild/install/sysnative-pregcc-4.6.1/mpfr-3.0.1 --with-mpc=/localbuild/install/sysnative-pregcc-4.6.1/mpc-0.9 --enable-symvers=gnu-versioned-namespace --enable-cloog-backend=isl --enable-threads --enable-tls --enable-languages=ada,c,c++ --prefix=/sysnative --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu I'm not sure what command line was issued to call the GCC but from ncurses 5.9 compilation log: gnatmake -P/localbuild/src/sysnative-prencurses-5.9/Ada95/src/library.gpr -XBUILD_DIR=`cd ..;pwd` -XSOURCE_DIR=`cd ..;pwd` -XSOURCE_DIR2=`cd /localbuild/src/sysnative-prencurses-5.9/Ada95/src;pwd` -XLIB_NAME=AdaCurses -XSONAME=libAdaCurses.so.1 -XLIB_KIND=static gcc -c -g -O2 -gnatafno -gnatVa -gnatwa -I- -gnatA /localbuild/build/sysnative-prencurses-5.9/narrowc/Ada95/src/terminal_interface-curses-trace.adb gcc -c -g -O2 -gnatafno -gnatVa -gnatwa -I- -gnatA /localbuild/src/sysnative-prencurses-5.9/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb gcc -c -g -O2 -gnatafno -gnatVa -gnatwa -I- -gnatA /localbuild/src/sysnative-prencurses-5.9/Ada95/src/terminal_interface-curses-termcap.adb gcc -c -g -O2 -gnatafno -gnatVa -gnatwa -I- -gnatA /localbuild/src/sysnative-prencurses-5.9/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb gcc -c -g -O2 -gnatafno -gnatVa -gnatwa -I- -gnatA /localbuild/src/sysnative-prencurses-5.9/Ada95/src/terminal_interface-curses-text_io-integer_io.adb gcc -c -g -O2 -gnatafno -gnatVa -gnatwa -I- -gnatA /localbuild/src/sysnative-prencurses-5.9/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb gcc -c -g -O2 -gnatafno -gnatVa -gnatwa -I- -gnatA /localbuild/src/sysnative-prencurses-5.9/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb gcc -c -g -O2 -gnatafno -gnatVa -gnatwa -I- -gnatA /localbuild/src/sysnative-prencurses-5.9/Ada95/src/terminal_interface-curses-menus.adb raised STORAGE_ERROR : stack overflow (or erroneous memory access) The following patch to terminal_interface-curses-menus.adb fixes the problem: --- Ada95/src/terminal_interface-curses-menus.adb +++ Ada95/src/terminal_interface-curses-menus.adb @@ -101,7 +101,2 @@ - type Name_String is new char_array (0 .. Name'Length); - type Name_String_Ptr is access Name_String; - pragma Controlled (Name_String_Ptr); - - type Desc_String is new char_array (0 .. Description'Length); - type Desc_String_Ptr is access Desc_String; - pragma Controlled (Desc_String_Ptr); + type String_Ptr is access all char_array; + pragma Controlled (String_Ptr); @@ -109,2 +104,2 @@ - Name_Str : constant Name_String_Ptr := new Name_String; - Desc_Str : constant Desc_String_Ptr := new Desc_String; + Name_Str : constant String_Ptr := new char_array(0 .. Name'Length); + Desc_Str : constant String_Ptr := new char_array(0 .. Description'Length); But this is not a proper solution: original core looks correct to me. ncurses source was pulled from ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz and configured in the following way: /localbuild/src/sysnative-prencurses-5.9/configure --prefix=/sysnative --includedir=/sysnative/include --with-ada-sharedlib --with-shared --disable-termcap --enable-symlinks --with-rcs-ids --enable-const --enable-sp-funcs --enable-colorfgbg --enable-ext-mouse --enable-reentrant --enable-interop --with-pthread --enable-pthreads-eintr --enable-weak-symbols --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu P.S. I'm not an Ada guru - I just wanted to rebuild packages for our local linux flavor using GCC 4.6 and NCurses 5.9...