home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / gnu / gcc / bug / 3031 next >
Encoding:
Text File  |  1992-12-21  |  3.2 KB  |  97 lines

  1. Newsgroups: gnu.gcc.bug
  2. Path: sparky!uunet!cis.ohio-state.edu!ma2s2.mathematik.uni-karlsruhe.de!haible
  3. From: haible@ma2s2.mathematik.uni-karlsruhe.de (Bruno Haible)
  4. Subject: long longs on i386 crash gcc
  5. Message-ID: <9212202146.AA02063@ma2s2.mathematik.uni-karlsruhe.de>
  6. Sender: gnulists@ai.mit.edu
  7. Organization: GNUs Not Usenet
  8. Distribution: gnu
  9. Date: Sun, 20 Dec 1992 23:46:11 GMT
  10. Approved: bug-gcc@prep.ai.mit.edu
  11. Lines: 84
  12.  
  13. gcc aborts (cc1 gets signal 6) when called on the following file.
  14. I'm working with gcc 2.2.2, configured as i386-linux.
  15. "gcc -S -g llbug3.i" is the command I used.
  16.  
  17. ================= llbug3.i ===================================================
  18.       typedef char         BYTE;
  19.     typedef unsigned char  UBYTE;
  20.     typedef short          WORD;
  21.     typedef unsigned short UWORD;
  22.     typedef long           LONG;
  23.     typedef unsigned long  ULONG;
  24.     typedef long long           LONGLONG;
  25.     typedef unsigned long long  ULONGLONG;
  26.   typedef unsigned int  boolean;
  27.   typedef signed int  signean;
  28.   typedef UBYTE   uint8;    
  29.   typedef BYTE    sint8;    
  30.   typedef UWORD   uint16;   
  31.   typedef WORD    sint16;   
  32.   typedef ULONG   uint32;   
  33.   typedef LONG    sint32;   
  34.   typedef ULONGLONG  uint64;   
  35.   typedef LONGLONG   sint64;   
  36.     typedef   sint8        sintB;
  37.     typedef   uint8      uintB;
  38.     typedef   sint16        sintW;
  39.     typedef   uint16      uintW;
  40.     typedef   sint32        sintL;
  41.     typedef   uint32      uintL;
  42.   typedef  uint64  oint;
  43.   typedef  oint  object;
  44.     typedef   uint32      tint;
  45.     typedef   uint32      aint;
  46. typedef struct { union { object _GCself; uintB flags[4]; } header;  }
  47.         varobject_;
  48. typedef varobject_ *  Varobject;
  49. typedef struct { union { object _GCself; uintB flags[4]; } header; 
  50.                  object symvalue;     
  51.                  object symfunction;  
  52.                  object proplist;     
  53.                  object pname;        
  54.                  object homepackage;  
  55.                }
  56.         symbol_;
  57. typedef symbol_ *  Symbol;
  58. typedef struct { union { object _GCself; uintB flags[4]; } header;   
  59.                  uintL  length;    
  60.                  uint8  data[0 ];  
  61.                }
  62.         sbvector_;
  63. typedef sbvector_ *  Sbvector;
  64.     typedef void Values;
  65.     extern object* STACK;
  66.   extern struct symbol_tab_ {
  67.  symbol_ S_nil; 
  68.  symbol_ S_t; 
  69.                             }
  70.          symbol_tab_data;
  71.   extern object I_minus1_plus_I (object x);
  72. typedef boolean (*up_function) (object* stackptr, object x);
  73. static  void seq_filterop_help1(stackptr,up_fun,bvl)
  74.   object* stackptr;
  75.   up_function up_fun;
  76.   uintL bvl;
  77. { uintL dl = 0;
  78.  {uintL bvi = bvl;
  79.   while(!(bvi==0)) 
  80.     { bvi--;
  81.      {(((Sbvector)((void*)(aint)(STACK[-1-(0+2)]) ))
  82.                   ->data[(uintL)(bvi)/8]
  83.                   |=  (1LL<<((~(uintL)(bvi)) % 8))  ) ;
  84.       dl++;
  85.       if (!( ( (( (STACK[-1-(1+4+2)]) ) ==
  86.                ((((object)(((oint)(tint)(0x20)<<32) + 
  87.             ((oint)(aint)(&symbol_tab_data.S_nil)<<0)))))))))
  88.         { ((STACK[-1-(0)])) = I_minus1_plus_I((STACK[-1-(0)])); }
  89.      }
  90. }}  }
  91. =============================================================================
  92. Changing the "1LL" into "1L" makes things work OK.
  93.  
  94. Bruno Haible
  95. haible@ma2s2.mathematik.uni-karlsruhe.de
  96.  
  97.