changeset 70:1b2bd8c6cc25

general: code cleanup for -Wall
author Lewin Bormann <lbo@spheniscida.de>
date Sun, 25 Aug 2019 16:46:00 +0200
parents bc9b86683bc3
children 462e9b547fed
files .clang CMakeLists.txt gen/debug_lexer.c gen/debug_parser.c gen/y.lex gen/y.yy src/.clang src/atom.c src/base/str.c src/base/str_test.c src/base/vec_test.c src/expr.c src/expr_test.c src/parse_test.c src/sizes_test.c src/types.h src/value.c src/value_test.c
diffstat 18 files changed, 24 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/.clang	Sun Aug 25 16:04:53 2019 +0200
+++ b/.clang	Sun Aug 25 16:46:00 2019 +0200
@@ -1,1 +1,1 @@
-flags = -I. -Ibuild
+flags = -I. -Ibuild/
--- a/CMakeLists.txt	Sun Aug 25 16:04:53 2019 +0200
+++ b/CMakeLists.txt	Sun Aug 25 16:46:00 2019 +0200
@@ -4,8 +4,9 @@
 
 PROJECT(ylisp C)
 
-ADD_COMPILE_OPTIONS(-std=c11 -D_XOPEN_SOURCE=500 -D__ISOC99_SOURCE -D_POSIX_C_SOURCE=200809)
+ADD_COMPILE_OPTIONS(-W -Wall -Wno-unused-function -std=c11 -D_XOPEN_SOURCE=500 -D__ISOC99_SOURCE -D_POSIX_C_SOURCE=200809)
 
+# Clang compile commands database
 # SET(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 
 if (CMAKE_BUILD_TYPE STREQUAL "")
--- a/gen/debug_lexer.c	Sun Aug 25 16:04:53 2019 +0200
+++ b/gen/debug_lexer.c	Sun Aug 25 16:46:00 2019 +0200
@@ -1,8 +1,8 @@
 #include <stdio.h>
 
-extern int lex(FILE* in);
+extern int ylex(FILE* in);
 
 int main(void) {
-    lex(stdin);
+    ylex(stdin);
     return 0;
 }
--- a/gen/debug_parser.c	Sun Aug 25 16:04:53 2019 +0200
+++ b/gen/debug_parser.c	Sun Aug 25 16:46:00 2019 +0200
@@ -8,7 +8,7 @@
 
 int y_bison_parse(FILE* in, yvec_t* out, ystr_t* ystr_error);
 
-int main(int argc, char** argv) {
+int main(void) {
     YENABLE_DEBUG_PRINT = true;
     yvec_t expr;
     ystr_t err;
--- a/gen/y.lex	Sun Aug 25 16:04:53 2019 +0200
+++ b/gen/y.lex	Sun Aug 25 16:46:00 2019 +0200
@@ -39,7 +39,7 @@
 
 // Lex input from in. Closes after finishing.
 // Only used by debug_lexer.
-int lex(FILE* in) {
+int ylex(FILE* in) {
     yyscan_t scanner;
     assert(0 == yylex_init(&scanner));
 
--- a/gen/y.yy	Sun Aug 25 16:04:53 2019 +0200
+++ b/gen/y.yy	Sun Aug 25 16:46:00 2019 +0200
@@ -176,7 +176,7 @@
      } | literal;
 
 literal: TOK_NUMBER_LITERAL {
-        ydbg_print("found number %d\n", $1);
+        ydbg_print("found number %lld\n", $1);
         yexpr_t expr = yexpr_new();
         yexpr_set_number(&expr, $1);
         $$ = expr;
--- a/src/.clang	Sun Aug 25 16:04:53 2019 +0200
+++ b/src/.clang	Sun Aug 25 16:46:00 2019 +0200
@@ -1,1 +1,1 @@
-flags = -I.. -I../build
+compilation_database = "../build/compile_commands.json"
--- a/src/atom.c	Sun Aug 25 16:04:53 2019 +0200
+++ b/src/atom.c	Sun Aug 25 16:46:00 2019 +0200
@@ -30,7 +30,7 @@
 yatom_t yatom_get_or_add(const char* name) {
     yatom_init_table();
     ENTRY wanted, *found;
-    wanted.key = name;  // Safe, because we only use it for find.
+    wanted.key = (char*)name;  // Safe, because we only use it for find.
     if (0 == hsearch_r(wanted, FIND, &found, &yatom_table)) {
         // Not found -- insert.
         wanted.key = strdup(name);
--- a/src/base/str.c	Sun Aug 25 16:04:53 2019 +0200
+++ b/src/base/str.c	Sun Aug 25 16:46:00 2019 +0200
@@ -101,7 +101,7 @@
 void ystr_split(ystr_t *s, char limit, yvec_t *dst) {
     size_t parts = 0;
     size_t len = ystr_len(s);
-    for (int i = 0; i < len; i++) {
+    for (size_t i = 0; i < len; i++) {
         if (ystr_at(s, i) == limit)
             parts++;
     }
--- a/src/base/str_test.c	Sun Aug 25 16:04:53 2019 +0200
+++ b/src/base/str_test.c	Sun Aug 25 16:46:00 2019 +0200
@@ -178,7 +178,7 @@
     ystr_destroy(&s2);
 }
 
-int main(int argc, char** argv) {
+int main(void) {
     // Use `make valgrind` to check that all memory is freed by str_test.
     test_inline_string();
     test_str_set_owned();
--- a/src/base/vec_test.c	Sun Aug 25 16:04:53 2019 +0200
+++ b/src/base/vec_test.c	Sun Aug 25 16:46:00 2019 +0200
@@ -30,7 +30,7 @@
 
     // Depends on growth_factor!
     assert(128 == vec.cap);
-    fprintf(stderr, "%ld %ld %ld %d\n", vec.cap, vec.len, vec.size,
+    fprintf(stderr, "%d %d %d %d\n", vec.cap, vec.len, vec.size,
             *YVEC_AT(&vec, 98, int));
     assert(98 == *YVEC_AT(&vec, 98, int));
 
--- a/src/expr.c	Sun Aug 25 16:04:53 2019 +0200
+++ b/src/expr.c	Sun Aug 25 16:46:00 2019 +0200
@@ -99,7 +99,7 @@
 
     if (v->typ == YEXPR_UNDEF) {
         v->typ = YEXPR_LIST;
-        yvec_init(&v->value.list, sizeof(yexpr_t), 4);
+        yvec_init(&v->value.list, sizeof(yexpr_t), INITIAL_LIST_SIZE);
     }
     YVEC_PUSH(&v->value.list, &new_val);
 }
--- a/src/expr_test.c	Sun Aug 25 16:04:53 2019 +0200
+++ b/src/expr_test.c	Sun Aug 25 16:46:00 2019 +0200
@@ -119,7 +119,7 @@
     yexpr_destroy(&expr);
 }
 
-int main(int argc, char** argv) {
+int main(void) {
     test_expr_ref_type();
     test_expr_set();
     return 0;
--- a/src/parse_test.c	Sun Aug 25 16:04:53 2019 +0200
+++ b/src/parse_test.c	Sun Aug 25 16:46:00 2019 +0200
@@ -40,7 +40,7 @@
     fclose(input_f);
 }
 
-int main(int argc, char** argv) {
+int main(void) {
     test_simple_parse();
     test_parse_fail();
     return 0;
--- a/src/sizes_test.c	Sun Aug 25 16:04:53 2019 +0200
+++ b/src/sizes_test.c	Sun Aug 25 16:46:00 2019 +0200
@@ -8,7 +8,7 @@
 #include <src/value.h>
 
 void print_sizes(void) {
-#define PRINT_SIZE(TYP) fprintf(stderr, "%s: %d bytes\n", #TYP, sizeof(TYP))
+#define PRINT_SIZE(TYP) fprintf(stderr, "%s: %lu bytes\n", #TYP, sizeof(TYP))
 
     PRINT_SIZE(yatom_t);
     PRINT_SIZE(yexpr_t);
@@ -39,7 +39,7 @@
     assert(access[0] == 0 && access[7] == 0xff);
 }
 
-int main(int argc, char** argv) {
+int main(void) {
     print_sizes();
     assert_sizes();
     assert_little_endian();
--- a/src/types.h	Sun Aug 25 16:04:53 2019 +0200
+++ b/src/types.h	Sun Aug 25 16:46:00 2019 +0200
@@ -57,6 +57,9 @@
 
     YBUILTIN_IF = 8,
     YBUILTIN_SEQ = 9,
+
+    YBUILTIN_EQ = 10,
+    YBUILTIN_LT = 11,
 } YBUILTIN_TYPE;
 
 /**
--- a/src/value.c	Sun Aug 25 16:04:53 2019 +0200
+++ b/src/value.c	Sun Aug 25 16:46:00 2019 +0200
@@ -172,6 +172,7 @@
         // Unnamed value.
         ref.ref.id = yvalue_counter++;
         size_t new_index = YVEC_PUSH(&yvalue_table, val);
+        assert(new_index == (yvalue_counter - YVALUE_COUNTER_OFFSET));
         return ref;
     } else {
         yvalue_t* valp = yvalue_get(ref);
--- a/src/value_test.c	Sun Aug 25 16:04:53 2019 +0200
+++ b/src/value_test.c	Sun Aug 25 16:46:00 2019 +0200
@@ -65,7 +65,7 @@
     // Get symbolically.
     yref_t ref3 = yref_new_str(&symbol2);
     yvalue_t* got3 = yvalue_get(ref3);
-    assert(12346 == got2->value.expr.value.n);
+    assert(12346 == got3->value.expr.value.n);
 
     // Get invalid entry.
     yref_t ref_invalid = yref_new_c("invalid_entry");
@@ -80,7 +80,7 @@
     yref_destroy(&ref_invalid);
 }
 
-int main(int argc, char** argv) {
+int main(void) {
     test_value_create_resolve();
     test_ref_create_resolve();
     test_value_set();