include/linux/rbtree_augmented.h:123: warning: '__rb_erase_color' declared
Subsystems (2)
PATCH 93/137 include/linux/rbtree_augmented.h:123: warning: '__rb_erase_color' declared
Hi Michel,
FYI, there are new compile warnings show up in
tree: git://git.kernel.org/pub/scm/linux/kernel/git/mhocko/mm.git since-3.5 head: d64f22e5761b1e367ba5d1e04d2fe5e0283aecbc commit: 20710551fa2659c765f88380f3b40a0e714000b1 [93/137] rbtree: move augmented rbtree functionality to rbtree_augmented.h config: avr32-atngw100_defconfig
All error/warnings:
include/linux/rbtree_augmented.h:123: warning: '__rb_erase_color' declared inline after being called include/linux/rbtree_augmented.h:123: warning: previous declaration of '__rb_erase_color' was here
vim +123 include/linux/rbtree_augmented.h
113 if (parent) {
114 if (parent->rb_left = old)
115 parent->rb_left = new;
116 else
117 parent->rb_right = new;
118 } else
119 root->rb_node = new;
120 }
121
122 extern void __rb_erase_color(struct rb_node *parent, struct rb_root *root,
Quoted 1 line
123 void (*augment_rotate)(struct
rb_node*old, structrb_node*new));
124
125 static __always_inline void
126 rb_erase_augmented(struct rb_node *node, struct rb_root *root,
127 const struct rb_augment_callbacks *augment)
128 {
129 struct rb_node *child = node->rb_right, *tmp = node->rb_left;
130 struct rb_node *parent, *rebalance;
131 unsigned long pc;
132
133 if (!tmp) {
---
0-DAY kernel build testing backend Open Source Technology Centre
Fengguang Wu <[email protected]> Intel Corporation
Andrew Morton
maintainerRe: [memcg:since-3.5 93/137] include/linux/rbtree_augmented.h:123: warning: '__rb_erase_color' decla
Quoted 9 lines · On Fri, 14 Sep 2012 10:59:22 +0800 Fengguang Wu <[email protected]> wrote:
Hi Michel,
FYI, there are new compile warnings show up in
tree: git://git.kernel.org/pub/scm/linux/kernel/git/mhocko/mm.git since-3.5 head: d64f22e5761b1e367ba5d1e04d2fe5e0283aecbc commit: 20710551fa2659c765f88380f3b40a0e714000b1 [93/137] rbtree: move augmented rbtree functionality to rbtree_augmented.h config: avr32-atngw100_defconfig
Quoted 5 lines
All error/warnings:
include/linux/rbtree_augmented.h:123: warning: '__rb_erase_color' declared inline after being calledinclude/linux/rbtree_augmented.h:123: warning: previous declaration of '__rb_erase_color' was here
Yes, that is a bit screwed up.
What is more screwed up is that the insanely huge rb_erase_augmented() is inlined.
Looky:
lib/rbtree_test.c renamed from lib/rbtree_test.c~a +1 -0
@@ -90,6 +90,7 @@ static void insert_augmented(struct teststatic void erase_augmented (struct test_node *node,struct rb_root *root) {rb_erase_augmented (&node->rb, root, &augment_callbacks); +rb_erase_augmented (&node->rb, root, &augment_callbacks); }static void init (void )
akpm:/usr/src/25> size lib/rbtree_test.o
text data bss dec hex filename
3599 117 5224 8940 22ec lib/rbtree_test.o (before) 4176 117 5384 9677 25cd lib/rbtree_test.o (after)
that's crazy!
<wonders why bss got larger>
Andrew Morton
maintainerRe: [memcg:since-3.5 93/137] include/linux/rbtree_augmented.h:123: warning: '__rb_erase_color' decla
In reply to Fengguang WuQuoted 6 lines · On Fri, 14 Sep 2012 14:10:04 -0700 Andrew Morton <[email protected]>…
akpm:/usr/src/25> size
lib/rbtree_test.o
text data bss dec hex filename3599 117 5224 8940 22ec lib/rbtree_test.o (before) 4176 117 5384 9677 25cd lib/rbtree_test.o (after)that's crazy!
Although the changelog and Documentation/rbtree.txt do explain the situation. Nobody ever reads them. This explanation should be in a big fat comment at the rb_erase_augmented() site, please.