Add code to check good generation with intrusive list.

This commit is contained in:
Patrick Pelissier committed 2017-03-06 21:51:32 +01:00
1 parent d6ee3c6329
commit 7be58b4a97
1 file changed
+12 -16
+12 -16
View File
@@ -22,9 +22,13 @@
*/ */
#include "m-list.h" #include "m-list.h"
#include "m-i-list.h"
LIST_DEF(dbl, double) LIST_DEF(dbl, double)
void f_push_back(list_dbl_t list);
double f_iterator(list_dbl_t list);
void f_push_back(list_dbl_t list) void f_push_back(list_dbl_t list)
{ {
list_dbl_push_back(list, 2.0); list_dbl_push_back(list, 2.0);
@@ -39,24 +43,16 @@ double f_iterator(list_dbl_t list)
return s; return s;
} }
struct tata { struct itest {
int x; int n;
}; ILIST_INTERFACE (list, struct itest);
struct tutu {
void (* const init) (void);
void (* const add) (int *t);
struct tata *data;
}; };
int f(int p) ILIST_DEF(list, struct itest)
extern void f_init(ilist_list_t l);
void f_init(ilist_list_t l)
{ {
struct tata el_data; ilist_list_init(l);
inline void __attribute__((always_inline)) el_init (void) { el_data.x = 0; };
inline void __attribute__((always_inline)) el_add (int *t) { el_data.x += *t; };
const struct tutu el = { .init = el_init, .add = el_add, .data = &el_data };
el.init();
el.add (&p);
return 0;
} }