bug-524691.c
来自「sdcc是为51等小型嵌入式cpu设计的c语言编译器支持数种不同类型的cpu」· C语言 代码 · 共 55 行
C
55 行
/* Division by powers of two. */#include <testfwk.h>typedef unsigned int UINT;typedef struct _HeapEntryState{ void *pBase; UINT uFlags;} HeapEntryState;static HeapEntryState *_getHeapEntryState(void *p, HeapEntryState *pStates, UINT nStateEntries){ int uLeft = -1, uRight = nStateEntries, uMiddle; while (uRight - uLeft > 1) { int iDiff; uMiddle = (uLeft + uRight)/2; /* A divide by zero is added just before iDiff is assigned */ iDiff = pStates[uMiddle].pBase - p; if (iDiff > 0) { uRight = uMiddle; } else if (iDiff < 0) { uLeft = uMiddle; } else { return pStates + uMiddle; } } return NULL;}voidtestDivByZero(void){ HeapEntryState aStates[] = { { (void xdata *)1, 0 } }; void *p = (void xdata *)0x1234; ASSERT(_getHeapEntryState(p, aStates, 1) == NULL); aStates[0].pBase = p; ASSERT(_getHeapEntryState(p, aStates, 1) == aStates + 0);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?