主题 : arm_linux_gcc 4.3.2 是不是有bug啊 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 9609
精华: 0
发帖: 1
金钱: 10 两
威望: 5 点
综合积分: 2 分
注册时间: 2009-10-07
最后登录: 2009-11-21
楼主  发表于: 2009-11-21 00:12

 arm_linux_gcc 4.3.2 是不是有bug啊

typedef long Int32;
typedef char Bool;
#define NULL 0
#define TRUE (1 == 1)
#define FALSE (0 == 1)

typedef struct blockhead_t {
    Int32 signature;
    Bool allocated;
    unsigned long size;
    struct blockhead_t *next;
    struct blockhead_t *prev;
} blockhead;

static blockhead *gHeapBase = NULL;

static inline int mmalloc_init(unsigned char *heap, unsigned long size)
{
    if (gHeapBase != NULL) return -1;

    DPRINTK("malloc_init(): initialize heap area at 0x%08lx, size = 0x%08lx\n",
        heap, size);

    gHeapBase = (blockhead *)(heap);
    gHeapBase->allocated=FALSE;
    gHeapBase->signature=BLOCKHEAD_SIGNATURE;
    gHeapBase->next=NULL;
    gHeapBase->prev=NULL;
    gHeapBase->size = size - sizeof(blockhead);

    return 0;
}

上面这段代码是从heap.c中拿出来的,为什么gHeapBase不为NULL, 但把gHeapBase = (blockhead *)(heap);去掉,则gHeapBase就为NULL了,arm_linux_gcc 4.3.2是不是有bug?
级别: 新手上路
UID: 11206
精华: 0
发帖: 15
金钱: 155 两
威望: 73 点
综合积分: 30 分
注册时间: 2009-11-30
最后登录: 2010-11-28
1楼  发表于: 2009-11-30 20:16
不能用吗。我再用,没问题啊