diff options
Diffstat (limited to 'gcc-4.8.1/gcc/testsuite/gcc.dg/pr18241-2.c')
-rw-r--r-- | gcc-4.8.1/gcc/testsuite/gcc.dg/pr18241-2.c | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/gcc-4.8.1/gcc/testsuite/gcc.dg/pr18241-2.c b/gcc-4.8.1/gcc/testsuite/gcc.dg/pr18241-2.c deleted file mode 100644 index a3ff1de0f..000000000 --- a/gcc-4.8.1/gcc/testsuite/gcc.dg/pr18241-2.c +++ /dev/null @@ -1,65 +0,0 @@ -/* { 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; -} |