This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug ada/49732] New: GNAT 4.6.[01] crashes on terminal_interface-curses-menus.adb from ncruses 5.9
- From: "vorfeed.canal at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 13 Jul 2011 12:56:32 +0000
- Subject: [Bug ada/49732] New: GNAT 4.6.[01] crashes on terminal_interface-curses-menus.adb from ncruses 5.9
- Auto-submitted: auto-generated
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: unassigned@gcc.gnu.org
ReportedBy: vorfeed.canal@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...