aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/lib.h
diff options
authorLinus Torvalds <torvalds@ppc970.osdl.org>2004-11-27 11:18:24 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-07 21:05:05 -0700
commit60039668043e01e8b7c8d324b4bf2c43fbb41a58 (patch)
tree9a5f5c063894f3b07df782d3724ca32c7abfee32 /lib.h
parent31522eac8c9d594f6e0f0298ac20d6638a4dfd75 (diff)
downloadsparse-dev-60039668043e01e8b7c8d324b4bf2c43fbb41a58.tar.gz
Trying to use the new RECURSE() on any non-trivial list showed a
few problems..
Diffstat (limited to 'lib.h')
-rw-r--r--lib.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib.h b/lib.h
index f597eb43..229fe59c 100644
--- a/lib.h
+++ b/lib.h
@@ -347,11 +347,15 @@ static inline void add_expression(struct expression_list **list, struct expressi
struct ptr_list *__newlist = __list; \
int __newnr = __nr; \
new = ptr; \
+ goto __inside##new; \
if (1) { \
do { \
+ __newlist = __newlist->prev; \
+ __newnr = __newlist->nr; \
+ __inside##new: \
while (--__newnr >= 0) { \
do { \
- new = (__typeof__(ptr)) (__list->list[__newnr]);\
+ new = (__typeof__(ptr)) (__newlist->list[__newnr]);\
do {
#define RECURSE_PTR_REVERSE(ptr, new) \