Thread View: gnu.gcc.bug
1 messages
1 total messages
Started by Bruno Haible
Sun, 20 Dec 1992 23:46
long longs on i386 crash gcc
Author: Bruno Haible
Date: Sun, 20 Dec 1992 23:46
Date: Sun, 20 Dec 1992 23:46
83 lines
3361 bytes
3361 bytes
gcc aborts (cc1 gets signal 6) when called on the following file.
I'm working with gcc 2.2.2, configured as i386-linux.
"gcc -S -g llbug3.i" is the command I used.
================= llbug3.i ===================================================
typedef char BYTE;
typedef unsigned char UBYTE;
typedef short WORD;
typedef unsigned short UWORD;
typedef long LONG;
typedef unsigned long ULONG;
typedef long long LONGLONG;
typedef unsigned long long ULONGLONG;
typedef unsigned int boolean;
typedef signed int signean;
typedef UBYTE uint8;
typedef BYTE sint8;
typedef UWORD uint16;
typedef WORD sint16;
typedef ULONG uint32;
typedef LONG sint32;
typedef ULONGLONG uint64;
typedef LONGLONG sint64;
typedef sint8 sintB;
typedef uint8 uintB;
typedef sint16 sintW;
typedef uint16 uintW;
typedef sint32 sintL;
typedef uint32 uintL;
typedef uint64 oint;
typedef oint object;
typedef uint32 tint;
typedef uint32 aint;
typedef struct { union { object _GCself; uintB flags[4]; } header; }
varobject_;
typedef varobject_ * Varobject;
typedef struct { union { object _GCself; uintB flags[4]; } header;
object symvalue;
object symfunction;
object proplist;
object pname;
object homepackage;
}
symbol_;
typedef symbol_ * Symbol;
typedef struct { union { object _GCself; uintB flags[4]; } header;
uintL length;
uint8 data[0 ];
}
sbvector_;
typedef sbvector_ * Sbvector;
typedef void Values;
extern object* STACK;
extern struct symbol_tab_ {
symbol_ S_nil;
symbol_ S_t;
}
symbol_tab_data;
extern object I_minus1_plus_I (object x);
typedef boolean (*up_function) (object* stackptr, object x);
static void seq_filterop_help1(stackptr,up_fun,bvl)
object* stackptr;
up_function up_fun;
uintL bvl;
{ uintL dl = 0;
{uintL bvi = bvl;
while(!(bvi==0))
{ bvi--;
{(((Sbvector)((void*)(aint)(STACK[-1-(0+2)]) ))
->data[(uintL)(bvi)/8]
|= (1LL<<((~(uintL)(bvi)) % 8)) ) ;
dl++;
if (!( ( (( (STACK[-1-(1+4+2)]) ) ==
((((object)(((oint)(tint)(0x20)<<32) +
((oint)(aint)(&symbol_tab_data.S_nil)<<0)))))))))
{ ((STACK[-1-(0)])) = I_minus1_plus_I((STACK[-1-(0)])); }
}
}} }
=============================================================================
Changing the "1LL" into "1L" makes things work OK.
Bruno Haible
haible@ma2s2.mathematik.uni-karlsruhe.de
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads