pr37101.c
来自「用于进行gcc测试」· C语言 代码 · 共 65 行
C
65 行
/* { dg-do compile } *//* { dg-options "-O2 -msse2 -ftree-vectorize -march=nocona" } */typedef __SIZE_TYPE__ size_t;extern void *malloc (size_t);extern void free (void *);typedef struct _Resource{ struct _Resource *next; unsigned int id;} ResourceRec, *ResourcePtr;typedef struct _ClientResource{ ResourcePtr *resources; int elements; int buckets; int hashsize;} ClientResourceRec;static ClientResourceRec clientTable[256];voidRebuildTable (int client){ int j; ResourcePtr res, next; ResourcePtr **tails, *resources; ResourcePtr **tptr, *rptr; j = 2 * clientTable[client].buckets; tails = (ResourcePtr **) malloc ((unsigned long) (j * sizeof (ResourcePtr *))); resources = (ResourcePtr *) malloc ((unsigned long) (j * sizeof (ResourcePtr))); for (rptr = resources, tptr = tails; --j >= 0; rptr++, tptr++) { *rptr = ((ResourcePtr) ((void *) 0)); *tptr = rptr; } clientTable[client].hashsize++; for (j = clientTable[client].buckets, rptr = clientTable[client].resources; --j >= 0; rptr++) { for (res = *rptr; res; res = next) { next = res->next; res->next = ((ResourcePtr) ((void *) 0)); tptr = &tails[Hash (client, res->id)]; **tptr = res; *tptr = &res->next; } } free ((void *) tails); clientTable[client].buckets *= 2; free ((void *) clientTable[client].resources); clientTable[client].resources = resources;}/* { dg-final { scan-assembler-not "movlps" } } */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?