[Bug c/42224] New: 32bit pointers to 32bit pointers abort on 64bit VMS

rupp at gnat dot com gcc-bugzilla@gcc.gnu.org
Sun Nov 29 22:25:00 GMT 2009


This is a major bug on VMS, it prevents gnatlib compilation. Please fix.

Ubuntu Linux Desktop 8.04 LTS

Target: ia64-hp-openvms8_3
Configured with: ../gcc-head-src/configure --target=ia64-hp-openvms8_3
--prefix=/vmsbuild/gcc/gnatxx --with-local-prefix=/vmsbuild/gcc/gnatxx/local
--with-gnu-as --enable-threads=posix --disable-shared --disable-nls
--disable-multilib --disable-libssp --disable-libada --disable-decimal-float
--disable-fixed-point --enable-checking=release --enable-languages=c
--with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib
--with-mpfr-include=/us/local/include --with-mpfr-lib=/usr/local/lib
Thread model: posix
gcc version 4.5.0 20091129 (experimental) (GCC) 

--------------

$ ./cc1 foo.c
 to_ptr32 to_int to_ptr32_ptr32
foo.c: In function 'to_ptr32_ptr32':
foo.c:28:3: internal compiler error: in int_or_pointer_precision, at
tree.c:10583


--------------> Reproducer:

$ cat foo.c
typedef char* __char_ptr32 __attribute__ (( mode (SI) ));
typedef __char_ptr32 *__char_ptr_char_ptr32 __attribute__ ((mode (SI)));

void to_ptr32 (int x)
{
  __char_ptr32 ptr = (__char_ptr32) x;
}

void to_int (__char_ptr32 ptr)
{
  int x = (int) ptr;
}

__char_ptr_char_ptr32
to_ptr32_ptr32 (char **ptr64)
{
  int argc;
  __char_ptr_char_ptr32 short_argv;

  for (argc=0; ptr64[argc]; argc++);

  short_argv = (__char_ptr_char_ptr32) malloc32
    (sizeof (__char_ptr32) * (argc + 1));

  for (argc=0; ptr64[argc]; argc++)
    short_argv[argc] = (__char_ptr32) strdup32 (ptr64[argc]);

  short_argv[argc] = (__char_ptr32) 0;
  return short_argv;

}


-- 
           Summary: 32bit pointers to 32bit pointers abort on 64bit VMS
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rupp at gnat dot com
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: ia64-hp-openvms8_3


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42224



More information about the Gcc-bugs mailing list