Blob
- Date:
- Message:
- fix a format string issue in array test ARRAYLIST_IDX deals with the head pointer. Explicitly cast to unsigned long and use %lu in the format string. Clang 10.0.1 used to complain as follows: arraylist_test.c:19:2: warning: format specifies type 'int' but the argument has type 'long' [-Wformat] arraylist_test.c:15:24: note: expanded from macro 'dump' printf("[%d] %d\n", ARRAYLIST_IDX(p, list), *p); \ ~~ ^~~~~~~~~~~~~~~~~~~~~~
- Actions:
- History | Blame | Raw File
1 #include <stdio.h>2 #include <stdlib.h>3 #include <string.h>4 #include <arraylist.h>6 void test_basic(void)7 {8 int *p;9 ARRAYLIST(int) list;10 ARRAYLIST_INIT(list, 2);12 #define dump() do {\13 printf("(%d items)\n", list.len); \14 ARRAYLIST_FOREACH(p, list) \15 printf("[%lu] %d\n", \16 (unsigned long)ARRAYLIST_IDX(p, list), *p); \17 printf("\n"); \18 } while(0)20 dump();22 ARRAYLIST_ADD(p, list);23 *p = 100;24 dump();26 ARRAYLIST_ADD(p, list);27 *p = 101;28 dump();30 ARRAYLIST_ADD(p, list);31 *p = 102;32 dump();34 #define insert_test(AT) do {\35 printf("insert at [" #AT "]:\n"); \36 ARRAYLIST_INSERT(p, list, AT); \37 *p = AT; \38 dump(); \39 } while(0)41 insert_test(list.len - 1);42 insert_test(1);43 insert_test(0);44 insert_test(6);45 insert_test(123);46 insert_test(-42);48 printf("clear:\n");49 ARRAYLIST_CLEAR(list);50 dump();52 ARRAYLIST_FREE(list);53 }55 int main(void)56 {57 test_basic();58 }