The following testprogram causes an ICE in the compiler.
[G5:~/gpc/testgpc/adriaan] adriaan% cat ice4.pas program ice4;
type Str9 = record sLength: Byte; sChars: packed array[ 1.. 9] of char end; Str255 = record sLength: Byte; sChars: packed array[ 1..255] of char end;
operator + ( const s1: Str9; const s2: Str255 ) = theResult : Str255; operator + ( const s1: Str9; const s2: Str255 ) = theResult : Str9;
procedure P; var s1: Str9; s2: Str255; begin s1:= s1 + s2 end;
begin end.
[G5:~/gpc/testgpc/adriaan] adriaan% gpc ice4.pas ice4.pas: In operator `+ (Str9, Str255)': ice4.pas:19: error: syntax error before `.' ice4.pas:8: confused by earlier errors, bailing out
Date/Time: 2006-02-14 17:52:23 +0100 OS Version: 10.3.9 (Build 7W98) Report Version: 2
Command: gpc1 Path: /Developer/Pascal/gpc345u2/libexec/gcc/powerpc-apple-darwin7/3.4.5/gpc1 Version: ??? (???) PID: 3239 Thread: 0
Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000010
Thread 0 Crashed: 0 gpc1 0x000a7724 all_blocks + 0x2c 1 gpc1 0x000a7758 all_blocks + 0x60 2 gpc1 0x000a7758 all_blocks + 0x60 3 gpc1 0x000a7758 all_blocks + 0x60 4 gpc1 0x000a77a8 get_block_vector + 0x20 5 gpc1 0x000a7818 identify_blocks + 0x3c 6 gpc1 0x000c05f0 rest_of_compilation + 0x2d0 7 gpc1 0x000ae950 output_inline_function + 0xa8 8 gpc1 0x00012680 poplevel + 0xd0 9 gpc1 0x001357f4 lhd_clear_binding_stack + 0x2c 10 gpc1 0x000c30d0 toplev_main + 0x84c 11 gpc1 0x00002468 _start + 0x188 12 dyld 0x8fe1a278 _dyld_start + 0x64
PPC Thread State: srr0: 0x000a7724 srr1: 0x0000f930 vrsave: 0x00000000 cr: 0x42002224 xer: 0x00000000 lr: 0x000a7758 ctr: 0x0013561c r0: 0x000a7758 r1: 0xbfffedc0 r2: 0x00000000 r3: 0x00000008 r4: 0x00000000 r5: 0x00000000 r6: 0x404e7530 r7: 0x00000001 r8: 0x0000001e r9: 0x405ec300 r10: 0x405ed000 r11: 0x00000001 r12: 0x42002224 r13: 0x00000000 r14: 0x00000000 r15: 0x00000000 r16: 0x00000000 r17: 0x00000000 r18: 0x00000000 r19: 0x00000000 r20: 0x00000000 r21: 0x00000000 r22: 0x404e72d4 r23: 0x404e7618 r24: 0x0045f0ec r25: 0x0048e8b0 r26: 0x0046714c r27: 0x00000000 r28: 0x00000000 r29: 0x00000000 r30: 0x00000008 r31: 0x000a77e4
Binary Images Description: 0x1000 - 0x457fff gpc1 /Developer/Pascal/gpc345u2/libexec/gcc/powerpc-apple-darwin7/3.4.5/ gpc1 0x8fe00000 - 0x8fe4ffff dyld /usr/lib/dyld 0x93a50000 - 0x93a54fff libmathCommon.A.dylib /usr/lib/system/libmathCommon.A.dylib 0x95f30000 - 0x9601efff libiconv.2.dylib /usr/lib/libiconv.2.dylib 0x98d8e000 - 0x98eddfff libSystem.B.dylib /usr/lib/libSystem.B.dylib
[G5:~/gpc/testgpc/adriaan] adriaan% gpc -v Reading specs from /Developer/Pascal/gpc345u2/lib/gcc/powerpc-apple-darwin7/3.4.5/specs Configured with: ../gcc-3.4.5/configure --enable-languages=pascal,c --enable-threads=posix --target=powerpc-apple-darwin7 --host=powerpc-apple-darwin7 --build=powerpc-apple-darwin7 --prefix=/Developer/Pascal/gpc345u2 Thread model: posix gpc version 20051116, based on gcc-3.4.5
Regards,
Adriaan van Os
Same applies to Linux X86 and SPARC Sun Solaris 2.6.
Regards
Pascal Viandier
-----Message d'origine----- De : gpc-owner@gnu.de [mailto:gpc-owner@gnu.de] De la part de Adriaan van Os Envoyé : February 14, 2006 12:00 À : gpc@gnu.de Objet : ICE on unimplemented operators
The following testprogram causes an ICE in the compiler.
[G5:~/gpc/testgpc/adriaan] adriaan% cat ice4.pas program ice4;
type Str9 = record sLength: Byte; sChars: packed array[ 1.. 9] of char end; Str255 = record sLength: Byte; sChars: packed array[ 1..255] of char end;
operator + ( const s1: Str9; const s2: Str255 ) = theResult : Str255; operator + ( const s1: Str9; const s2: Str255 ) = theResult : Str9;
procedure P; var s1: Str9; s2: Str255; begin s1:= s1 + s2 end;
begin end.
[G5:~/gpc/testgpc/adriaan] adriaan% gpc ice4.pas ice4.pas: In operator `+ (Str9, Str255)': ice4.pas:19: error: syntax error before `.' ice4.pas:8: confused by earlier errors, bailing out
Date/Time: 2006-02-14 17:52:23 +0100 OS Version: 10.3.9 (Build 7W98) Report Version: 2
Command: gpc1 Path: /Developer/Pascal/gpc345u2/libexec/gcc/powerpc-apple-darwin7/3.4.5/gpc1 Version: ??? (???) PID: 3239 Thread: 0
Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000010
Thread 0 Crashed: 0 gpc1 0x000a7724 all_blocks + 0x2c 1 gpc1 0x000a7758 all_blocks + 0x60 2 gpc1 0x000a7758 all_blocks + 0x60 3 gpc1 0x000a7758 all_blocks + 0x60 4 gpc1 0x000a77a8 get_block_vector + 0x20 5 gpc1 0x000a7818 identify_blocks + 0x3c 6 gpc1 0x000c05f0 rest_of_compilation + 0x2d0 7 gpc1 0x000ae950 output_inline_function + 0xa8 8 gpc1 0x00012680 poplevel + 0xd0 9 gpc1 0x001357f4 lhd_clear_binding_stack + 0x2c 10 gpc1 0x000c30d0 toplev_main + 0x84c 11 gpc1 0x00002468 _start + 0x188 12 dyld 0x8fe1a278 _dyld_start + 0x64
PPC Thread State: srr0: 0x000a7724 srr1: 0x0000f930 vrsave: 0x00000000 cr: 0x42002224 xer: 0x00000000 lr: 0x000a7758 ctr: 0x0013561c r0: 0x000a7758 r1: 0xbfffedc0 r2: 0x00000000 r3: 0x00000008 r4: 0x00000000 r5: 0x00000000 r6: 0x404e7530 r7: 0x00000001 r8: 0x0000001e r9: 0x405ec300 r10: 0x405ed000 r11: 0x00000001 r12: 0x42002224 r13: 0x00000000 r14: 0x00000000 r15: 0x00000000 r16: 0x00000000 r17: 0x00000000 r18: 0x00000000 r19: 0x00000000 r20: 0x00000000 r21: 0x00000000 r22: 0x404e72d4 r23: 0x404e7618 r24: 0x0045f0ec r25: 0x0048e8b0 r26: 0x0046714c r27: 0x00000000 r28: 0x00000000 r29: 0x00000000 r30: 0x00000008 r31: 0x000a77e4
Binary Images Description: 0x1000 - 0x457fff gpc1 /Developer/Pascal/gpc345u2/libexec/gcc/powerpc-apple-darwin7/3.4.5/ gpc1 0x8fe00000 - 0x8fe4ffff dyld /usr/lib/dyld 0x93a50000 - 0x93a54fff libmathCommon.A.dylib /usr/lib/system/libmathCommon.A.dylib 0x95f30000 - 0x9601efff libiconv.2.dylib /usr/lib/libiconv.2.dylib 0x98d8e000 - 0x98eddfff libSystem.B.dylib /usr/lib/libSystem.B.dylib
[G5:~/gpc/testgpc/adriaan] adriaan% gpc -v Reading specs from /Developer/Pascal/gpc345u2/lib/gcc/powerpc-apple-darwin7/3.4.5/specs Configured with: ../gcc-3.4.5/configure --enable-languages=pascal,c --enable-threads=posix --target=powerpc-apple-darwin7 --host=powerpc-apple-darwin7 --build=powerpc-apple-darwin7 --prefix=/Developer/Pascal/gpc345u2 Thread model: posix gpc version 20051116, based on gcc-3.4.5
Regards,
Adriaan van Os
Adriaan,
Thanks for the reports (this and ICE on bad forward declaration) and test programs. Both were easy to fix. The fiexes will be in the new snapshot.