On May 3, 2010, at 12:33 PM, Jay K wrote:

> 
> VMS decc$types.h:
> 
>     typedef unsigned int __size_t;
> 
> but with GCC 4.5.0 this preprocesses as:
> 
>     typedef unsigned int ;
>     
> and there are ensuing errors e.g. when compiling gcc/libiberty/regex.c
> 
> probably because of:
> 
> /usr/local/lib/gcc/alpha-dec-vms/4_5_0/include/stddef.h (it does get included)
> #if defined (__FreeBSD__) && (__FreeBSD__>= 5)
> /* __size_t is a typedef on FreeBSD 5!, must not trash it. */
> #else
> #define __size_t
> #endif
> 
> presumably should be more like:
> 
> #if (defined (__FreeBSD__) && (__FreeBSD__>= 5)) || defined(__vms)
> /* __size_t is a typedef on FreeBSD 5 and VMS, must not trash it! */
> #else
> #define __size_t
> #endif

Hi,

yes, I think this is necessary on VMS.  Could you submit formally a patch (I 
can't approve it, but it is
a required first step).

> That gets further, then hits 
> 
> 
> src/gcc-4.5.0/libiberty/regex.c: In function 'byte_insert_op2':
> /src/gcc-4.5.0/libiberty/regex.c:4279:1: error: unrecognizable insn:
> (insn 62 61 63 5 /src/gcc-4.5.0/libiberty/regex.c:4276 (set (reg:DI 135)
>         (plus:SI (subreg/s:SI (reg/v/f:DI 109 [ pfrom ]) 0)
>             (const_int 5 [0x5]))) -1 (nil))
> /src/gcc-4.5.0/libiberty/regex.c:4279:1: internal compiler error: in 
> extract_insn, at recog.c:2103
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <http://gcc.gnu.org/bugs.html> for instructions.
> make: *** [regex.o] Error 1

I suppose you have hit a 32/64 pointer issue.  This requires some 
investigation!  We plan to fix them,
but we haven't yet started this work on gcc 4.5

Tristan.

Reply via email to