public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/13555] New: ICE in verify_flow_info with the new register allocator (x86/Linux)
@ 2004-01-03 16:02 jjhellst at cc dot hut dot fi
  2004-01-03 16:06 ` [Bug c/13555] " jjhellst at cc dot hut dot fi
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: jjhellst at cc dot hut dot fi @ 2004-01-03 16:02 UTC (permalink / raw)
  To: gcc-bugs

I don't know what I should put into "Host triplet", but I guess gcc -v explains
it all.

Here's the version info on GCC:
----
[janne@cs149169 ns]$ /usr/local/gcc3.4/bin/gcc -v
Reading specs from /usr/local/gcc3.4/lib/gcc/i686-pc-linux-gnu/3.4.0/specs
Configured with: ../gcc-3.4-20031224/configure --prefix=/usr/local/gcc3.4
--enable-languages=c,c++
Thread model: posix
gcc version 3.4.0 20031224 (experimental)
----

I'm running Linux Fedore Core 1.

When compiling the file appended after this mail, GCC reports:
----
[janne@cs149169 ns]$ /usr/local/gcc3.4/bin/gcc -O3 -fnew-ra -c nsMemory.i
sources/nsMemory.c:23: warning: conflicting types for built-in function 'memset'
sources/nsMemory.c: In function `myMalloc':
sources/nsMemory.c:48: error: Abnormal edges for no purpose in bb 0
sources/nsMemory.c:48: internal compiler error: verify_flow_info failed
----

Here's the code. I am sorry, it is a bit lengthy -- I tried ripping away some of
my own functions, but then the bug doesn't manifest itself anymore.

Hope this helps,
Janne Hellsten

---
# 1 "<built-in>"
# 1 "<command line>"
# 1 "sources/nsMemory.c"
# 16 "sources/nsMemory.c"
# 1 "sources/nsMemory.h" 1
# 19 "sources/nsMemory.h"
# 1 "sources/nsDefs.h" 1




# 1 "../../../../libs/hg/hgDefs.h" 1
# 52 "../../../../libs/hg/hgDefs.h"
# 1 "../../../../libs/hg/hgPublicDefs.h" 1
# 244 "../../../../libs/hg/hgPublicDefs.h"
# 1 "/usr/local/gcc3.4/lib/gcc/i686-pc-linux-gnu/3.4.0/include/stddef.h" 1 3 4
# 213 "/usr/local/gcc3.4/lib/gcc/i686-pc-linux-gnu/3.4.0/include/stddef.h" 3 4
typedef unsigned int size_t;
# 245 "../../../../libs/hg/hgPublicDefs.h" 2
# 254 "../../../../libs/hg/hgPublicDefs.h"
typedef signed char HGint8;
typedef unsigned char HGuint8;
typedef short HGint16;
typedef unsigned short HGuint16;
typedef int HGint32;
typedef unsigned int HGuint32;
typedef unsigned long HGuintptr;
typedef signed long HGintptr;
typedef float HGfloat;
typedef double HGdouble;
typedef int HGbool;
typedef HGint32 HGpredicate;
# 53 "../../../../libs/hg/hgDefs.h" 2
# 78 "../../../../libs/hg/hgDefs.h"
 typedef unsigned long long int HGuint64;
 typedef signed long long int HGint64;
# 144 "../../../../libs/hg/hgDefs.h"
 typedef union
 {
  struct
  {
   HGuint32 l,h;
  } c;
  HGuint64 r;
 } HGuint64_s;

 typedef union
 {
  struct
  {
   HGint32 l,h;
  } c;
  HGint64 r;
 } HGint64_s;
# 271 "../../../../libs/hg/hgDefs.h"
typedef union
{
 HGfloat f;
 HGuint32 i;
} HGfloatInt;





typedef char HG_constraint_3_281 [(sizeof(HGint8) == 1u) ? 1 : -1];
typedef char HG_constraint_3_282 [(sizeof(HGuint8) == 1u) ? 1 : -1];
typedef char HG_constraint_3_283 [(sizeof(HGuint16)== 2u) ? 1 : -1];
typedef char HG_constraint_3_284 [(sizeof(HGint16) == 2u) ? 1 : -1];
typedef char HG_constraint_3_285 [(sizeof(HGuint32)== 4u) ? 1 : -1];
typedef char HG_constraint_3_286 [(sizeof(HGint32) == 4u) ? 1 : -1];
typedef char HG_constraint_3_287 [(sizeof(HGfloatInt) == 4u) ? 1 : -1];
typedef char HG_constraint_3_288 [(sizeof(HGuintptr) >= sizeof(void*)) ? 1 : -1];
typedef char HG_constraint_3_289 [(sizeof(HGintptr) >= sizeof(void*)) ? 1 : -1];
typedef char HG_constraint_3_290 [(sizeof(HGint64) ==8u) ? 1 : -1];
typedef char HG_constraint_3_291 [(sizeof(HGuint64)==8u) ? 1 : -1];
# 450 "../../../../libs/hg/hgDefs.h"
typedef enum
{
 HG_ENDIAN_LITTLE = 0,
 HG_ENDIAN_BIG = 1
} HGEndianess;
# 464 "../../../../libs/hg/hgDefs.h"
static inline __attribute__ ((always_inline)) HGEndianess hgGetEndianess (void)
{
 static const HGuint32 v = 0x12345678u;
 const HGuint8* p = (const HGuint8*)(&v);
 ((void)(0));
 return (HGEndianess)((*p == 0x12) ? HG_ENDIAN_BIG : HG_ENDIAN_LITTLE);
}
# 492 "../../../../libs/hg/hgDefs.h"
static inline __attribute__ ((always_inline)) HGuint32 hgReverseByteOrder
(HGuint32 x)
{
 return (x>>24) | (((x >> 16)&0xFFu)<<8) | (((x >> 8)&0xFFu) << 16) | (x << 24);
}
# 736 "../../../../libs/hg/hgDefs.h"
static inline __attribute__ ((always_inline)) HGuintptr hgAlignCacheLine (const
void* foo)
{
 return (((HGuintptr)(foo)+(HGuintptr)(32 -1))&~(HGuintptr)(32 -1));
}
# 6 "sources/nsDefs.h" 2
# 14 "sources/nsDefs.h"
typedef struct NSMemory_s NSMemory;
# 20 "sources/nsMemory.h" 2
# 31 "sources/nsMemory.h"
void NSMemory_init(void);
void NSMemory_exit(void);

void* NSMemory_alloc (size_t size, const char* file, int line);
void* NSMemory_calloc (size_t size, const char* file, int line);
void NSMemory_free (void* block);
void NSMemory_check (void);
void NSMemory_checkPtr (void* ptr);
# 17 "sources/nsMemory.c" 2
# 1 "../../../../libs/hgDebugMalloc/hgDebugMalloc.h" 1
# 35 "../../../../libs/hgDebugMalloc/hgDebugMalloc.h"
typedef void* (*HGDebugMallocAllocFunc)(void* heap, size_t bytes);
typedef void* (*HGDebugMallocReallocFunc)(void* heap, void* ptr, size_t bytes);
typedef void (*HGDebugMallocFreeFunc)(void* heap, void* ptr);
typedef void (*HGDebugMallocPrintFunc)(const char* string);

typedef struct HGDebugMalloc_s HGDebugMalloc;







HGDebugMalloc* HGDebugMalloc_init (void* heap, HGDebugMallocAllocFunc allocFunc,
HGDebugMallocReallocFunc reallocFunc, HGDebugMallocFreeFunc freeFunc,
HGDebugMallocPrintFunc printFunc);
void HGDebugMalloc_exit (HGDebugMalloc* pMemory);
void* HGDebugMalloc_malloc (HGDebugMalloc* pMemory, size_t bytes, const char*
allocationName, const char* fileName, HGint32 lineNumber);
void* HGDebugMalloc_realloc (HGDebugMalloc* pMemory, void* ptr, size_t bytes);
void HGDebugMalloc_free (HGDebugMalloc* pMemory, void* ptr);
void HGDebugMalloc_dump (const HGDebugMalloc* pMemory);
void HGDebugMalloc_check (const HGDebugMalloc* pMemory);
void HGDebugMalloc_checkPointer (const HGDebugMalloc* pMemory, const void* ptr);
HGint32 HGDebugMalloc_allocationCount (const HGDebugMalloc* pMemory);
HGint32 HGDebugMalloc_maxAllocationCount(const HGDebugMalloc* pMemory);
size_t HGDebugMalloc_memUsed (const HGDebugMalloc* pMemory);
size_t HGDebugMalloc_maxMemUsed (const HGDebugMalloc* pMemory);



# 18 "sources/nsMemory.c" 2


extern void* malloc(size_t size);
extern void free(void* ptr);
extern void* realloc(void* ptr, size_t size);
extern void memset(void* dst, int p, size_t size);
# 32 "sources/nsMemory.c"
struct NSMemory_s
{
 void* hgDebugMgr;
};

static NSMemory mgr;

static void print(const char* str)
{

}

static void* myMalloc(void* heap, size_t size)
{
 ((void)(heap));
 return malloc(size);
}

static void* myRealloc(void* heap, void* block, size_t size)
{
 ((void)(heap));
 return realloc(block, size);
}

static void myFree(void* heap, void* block)
{
 ((void)(heap));
 free(block);
}

void NSMemory_init(void)
{
 mgr.hgDebugMgr = HGDebugMalloc_init(&mgr, myMalloc, myRealloc, myFree, print);
}

void NSMemory_exit(void)
{
 HGDebugMalloc_dump(mgr.hgDebugMgr);
 HGDebugMalloc_exit(mgr.hgDebugMgr);
}
# 81 "sources/nsMemory.c"
void* NSMemory_alloc(size_t size, const char* file, int line)
{
 return HGDebugMalloc_malloc(mgr.hgDebugMgr, size, 0, file, line);
}
# 95 "sources/nsMemory.c"
void* NSMemory_calloc(size_t size, const char* file, int line)
{
 void* block;
 ((void)(0));
 block = NSMemory_alloc(size, file, line);
 memset(block, 0, size);
 return block;
}






void NSMemory_free(void* block)
{
 ((void)(0));
 HGDebugMalloc_free(mgr.hgDebugMgr, block);
}





void NSMemory_check(void)
{
 HGDebugMalloc_check(mgr.hgDebugMgr);
}






void NSMemory_checkPtr(void* ptr)
{
 HGDebugMalloc_checkPointer(mgr.hgDebugMgr, ptr);
}

-- 
           Summary: ICE in verify_flow_info with the new register allocator
                    (x86/Linux)
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jjhellst at cc dot hut dot fi
                CC: gcc-bugs at gcc dot gnu dot org


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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c/13555] ICE in verify_flow_info with the new register allocator (x86/Linux)
  2004-01-03 16:02 [Bug c/13555] New: ICE in verify_flow_info with the new register allocator (x86/Linux) jjhellst at cc dot hut dot fi
@ 2004-01-03 16:06 ` jjhellst at cc dot hut dot fi
  2004-01-03 16:12 ` [Bug optimization/13555] [new-ra] " pinskia at gcc dot gnu dot org
  2005-01-17 15:19 ` [Bug rtl-optimization/13555] " pinskia at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: jjhellst at cc dot hut dot fi @ 2004-01-03 16:06 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code


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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug optimization/13555] [new-ra] ICE in verify_flow_info with the new register allocator (x86/Linux)
  2004-01-03 16:02 [Bug c/13555] New: ICE in verify_flow_info with the new register allocator (x86/Linux) jjhellst at cc dot hut dot fi
  2004-01-03 16:06 ` [Bug c/13555] " jjhellst at cc dot hut dot fi
@ 2004-01-03 16:12 ` pinskia at gcc dot gnu dot org
  2005-01-17 15:19 ` [Bug rtl-optimization/13555] " pinskia at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-01-03 16:12 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-01-03 16:12 -------
Confirmed, but minor because -fnew-ra is not going to be fixed for 3.4 at all.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |13246
              nThis|                            |
           Severity|critical                    |normal
             Status|UNCONFIRMED                 |NEW
          Component|c                           |optimization
     Ever Confirmed|                            |1
 GCC target triplet|                            |i686-pc-linux-gnu
   Last reconfirmed|0000-00-00 00:00:00         |2004-01-03 16:12:21
               date|                            |
            Summary|ICE in verify_flow_info with|[new-ra] ICE in
                   |the new register allocator  |verify_flow_info with the
                   |(x86/Linux)                 |new register allocator
                   |                            |(x86/Linux)
   Target Milestone|---                         |3.5.0


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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug rtl-optimization/13555] [new-ra] ICE in verify_flow_info with the new register allocator (x86/Linux)
  2004-01-03 16:02 [Bug c/13555] New: ICE in verify_flow_info with the new register allocator (x86/Linux) jjhellst at cc dot hut dot fi
  2004-01-03 16:06 ` [Bug c/13555] " jjhellst at cc dot hut dot fi
  2004-01-03 16:12 ` [Bug optimization/13555] [new-ra] " pinskia at gcc dot gnu dot org
@ 2005-01-17 15:19 ` pinskia at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-01-17 15:19 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-17 15:16 -------
Closing as wiill not fix as new-ra was removed from the mainline.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|SUSPENDED                   |RESOLVED
         Resolution|                            |WONTFIX
   Target Milestone|---                         |4.0.0


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


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-01-17 15:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-03 16:02 [Bug c/13555] New: ICE in verify_flow_info with the new register allocator (x86/Linux) jjhellst at cc dot hut dot fi
2004-01-03 16:06 ` [Bug c/13555] " jjhellst at cc dot hut dot fi
2004-01-03 16:12 ` [Bug optimization/13555] [new-ra] " pinskia at gcc dot gnu dot org
2005-01-17 15:19 ` [Bug rtl-optimization/13555] " pinskia at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).