pr18241-2.c
来自「用于进行gcc测试」· C语言 代码 · 共 66 行
C
66 行
/* { dg-do run } *//* { dg-options "-std=gnu99 -Wall -Wextra -O1" } */ extern void *memset (void*, int, __SIZE_TYPE__);extern void abort (void);struct radix_tree_root { unsigned int height; struct radix_tree_node *rnode;};struct radix_tree_node { unsigned int count; void *slots[64]; unsigned long tags[2];};struct radix_tree_path { struct radix_tree_node *node, **slot; int offset;};void radix_tree_tag_clear(struct radix_tree_root *root, unsigned long index){ struct radix_tree_path path[7], *pathp = path; unsigned int height, shift; volatile unsigned long *addr; height = root->height; shift = (height - 1) * 6; path[0].slot = &root->rnode; while (height > 0) { int offset; offset = (index >> shift) & (64-1); pathp[1].offset = offset; pathp[1].node = *pathp[0].slot; pathp[1].slot = (struct radix_tree_node **) (pathp[1].node->slots + offset); pathp++; shift -= 6; height--; } addr = &(pathp->node->tags[0]) + 1; *addr = 574;}struct radix_tree_root r;struct radix_tree_node node;int main (){ r.height = 1; r.rnode = &node; memset (&node, 0, sizeof (node)); node.count = 1; radix_tree_tag_clear (&r, 13); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?