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 + -
显示快捷键?