satoshinm / NetCraft

Web-based fork of fogleman/Craft ⛺
https://satoshinm.github.io/NetCraft/
MIT License
57 stars 13 forks source link

Warnings with -Weverything #141

Closed satoshinm closed 7 years ago

satoshinm commented 7 years ago

-Wchar-subscripts: 1 - looking up lookup[input], is this bad? -Wbad-function-cast: 2 - casting return values from float/double to int -Wswitch-enum: 1 - miniz, not handling MZ_ZIP_TOTAL_ERRORS in switch -Wcovered-switch-default: 1 - lodepng, default: is everything -Wdate-time: 1 - using __DATE__ is considered not reproducible, yes that's true... -Wdisabled-macro-expansion: 1 - recursive macro expansion from fprintf stderr, what? -Wdollar-in-identifier-extension: 2 - its in EM_ASM() embedded JavaScript, $0 to pass -Wfloat-equal: 5 - even == 0 with initialized float? -Wformat-nonliteral: 2 - sscanf in protocol parser, try fixed concatenated at compile time? -Wmissing-braces: 3 - float ao[][] = {0} wants more braces, {{0}} -Wmissing-field-initializers: 5 - initializing with = {0} is simpler than naming all the members.. -Wmissing-noreturn: 1 - thrd_exit() in tinycthread could use c11 noreturn -Wmissing-variable-declarations: 7 - in touch.c, legitimately could add static since isn't extern -Wpedantic: 2 - user data void * no cast -Wshadow: 10 - some global and local variable shadowing, window, height -Wshorten-64-to-32: 2 - miniz long long to long -Wunused-macro: 6 - some unused, others only if not __EMSCRIPTEN__

-Wstrict-prototypes: 101 - add (void) for zero-argument () function declarations -Wpadded: 22 - good it is padding, what to do about it? -Wundef: 26 - #if without defined, says evaluates to 0, not #ifdef? or define it? -Wcast-align: 2 - increases alignment requirement -Wcast-qual: 8 - const char * to char * drops const, yes.. -Wcomma: 23 - wants (void)(...) around before a, b comma expression

-Wsign-conversion: 231 - implicit signess -Wconversion: 142 - loses integer precision -Wmissing-prototypes: 178 - yes, there are missing prototypes -Wunused-parameter: 96 - yes, some functions require parameters not used, add attribute unused? -Wdocumentation: 42 - tinycthread header doc * @return -Wdouble-promotion: 58 - implicit conversion increasing float to double -Wreserved-id-macro: 58 - using _-prefixed macros for inclusion guards. #pragma once? or drop _ -Wfloat-conversion: 31 - float to int implicit -Wunused-variable: 17 - could probably remove these unused local variables -Wsign-compare: 7 - comparing int and unsigned int

build $ make
-- Configuring done
-- Generating done
-- Build files have been written to: NetCraft/build
[  4%] Building C object CMakeFiles/craft.dir/src/auth.c.o
NetCraft/src/auth.c:12:8: warning: no previous prototype for function 'write_function' [-Wmissing-prototypes]
size_t write_function(char *data, size_t size, size_t count, void *arg) {
       ^
NetCraft/src/auth.c:9:9: warning: macro is not used [-Wunused-macros]
#define MAX_POST_LENGTH 1024
        ^
NetCraft/src/auth.c:24:11: warning: unused parameter 'result' [-Wunused-parameter]
    char *result, int length, char *username, char *identity_token)
          ^
NetCraft/src/auth.c:24:23: warning: unused parameter 'length' [-Wunused-parameter]
    char *result, int length, char *username, char *identity_token)
                      ^
NetCraft/src/auth.c:24:37: warning: unused parameter 'username' [-Wunused-parameter]
    char *result, int length, char *username, char *identity_token)
                                    ^
NetCraft/src/auth.c:24:53: warning: unused parameter 'identity_token' [-Wunused-parameter]
    char *result, int length, char *username, char *identity_token)
                                                    ^
6 warnings generated.
[  9%] Building C object CMakeFiles/craft.dir/src/client.c.o
In file included from NetCraft/src/client.c:16:
NetCraft/src/client.h:14:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void client_enable();
                  ^
                   void
NetCraft/src/client.h:15:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void client_disable();
                   ^
                    void
NetCraft/src/client.h:16:24: warning: this function declaration is not a prototype [-Wstrict-prototypes]
bool get_client_enabled();
                       ^
                        void
NetCraft/src/client.h:18:18: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void client_start();
                 ^
                  void
NetCraft/src/client.h:19:17: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void client_stop();
                ^
                 void
NetCraft/src/client.h:22:18: warning: this function declaration is not a prototype [-Wstrict-prototypes]
char *client_recv();
                 ^
                  void
In file included from NetCraft/src/client.c:17:
NetCraft/deps/tinycthread/tinycthread.h:25:9: warning: macro name is a reserved identifier [-Wreserved-id-macro]
#define _TINYCTHREAD_H_
        ^
NetCraft/deps/tinycthread/tinycthread.h:55:13: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #define _TTHREAD_POSIX_
            ^
NetCraft/deps/tinycthread/tinycthread.h:57:11: warning: macro name is a reserved identifier [-Wreserved-id-macro]
  #define _TTHREAD_PLATFORM_DEFINED_
          ^
NetCraft/deps/tinycthread/tinycthread.h:62:10: warning: macro name is a reserved identifier [-Wreserved-id-macro]
  #undef _FEATURES_H
         ^
NetCraft/deps/tinycthread/tinycthread.h:64:13: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #define _GNU_SOURCE
            ^
NetCraft/deps/tinycthread/tinycthread.h:67:12: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #undef _POSIX_C_SOURCE
           ^
NetCraft/deps/tinycthread/tinycthread.h:68:13: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #define _POSIX_C_SOURCE 199309L
            ^
NetCraft/deps/tinycthread/tinycthread.h:71:12: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #undef _XOPEN_SOURCE
           ^
NetCraft/deps/tinycthread/tinycthread.h:72:13: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #define _XOPEN_SOURCE 500
            ^
NetCraft/deps/tinycthread/tinycthread.h:157:11: warning: macro name is a reserved identifier [-Wreserved-id-macro]
  #define _Thread_local __thread
          ^
NetCraft/deps/tinycthread/tinycthread.h:199:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:214:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:227:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_busy if the resource
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:235:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:253:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:268:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:278:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:290:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:303:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success upon success, or @ref thrd_timeout if the time
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:302:10: warning: parameter 'xt' not found in the function declaration [-Wdocumentation]
* @param xt A point in time at which the request will time out (absolute time).
         ^~
NetCraft/deps/tinycthread/tinycthread.h:302:10: note: did you mean 'ts'?
* @param xt A point in time at which the request will time out (absolute time).
         ^~
         ts
NetCraft/deps/tinycthread/tinycthread.h:331:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_nomem if no memory could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:367:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:406:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:432:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/src/client.c:35:6: warning: no previous prototype for function 'client_enable' [-Wmissing-prototypes]
void client_enable() {
     ^
NetCraft/src/client.h:14:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void client_enable();
     ^
                   void
NetCraft/src/client.c:39:6: warning: no previous prototype for function 'client_disable' [-Wmissing-prototypes]
void client_disable() {
     ^
NetCraft/src/client.h:15:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void client_disable();
     ^
                    void
NetCraft/src/client.c:43:6: warning: no previous prototype for function 'get_client_enabled' [-Wmissing-prototypes]
bool get_client_enabled() {
     ^
NetCraft/src/client.h:16:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
bool get_client_enabled();
     ^
                        void
NetCraft/src/client.c:47:24: warning: declaration shadows a variable in the global scope [-Wshadow]
int client_sendall(int sd, char *data, int length) {
                       ^
NetCraft/src/client.c:27:12: note: previous declaration is here
static int sd = 0;
           ^
NetCraft/src/client.c:53:40: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
        int n = send(sd, data + count, length, 0);
                ~~~~                   ^~~~~~
NetCraft/src/client.c:47:5: warning: no previous prototype for function 'client_sendall' [-Wmissing-prototypes]
int client_sendall(int sd, char *data, int length) {
    ^
NetCraft/src/client.c:68:34: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
    if (client_sendall(sd, data, strlen(data)) == -1) {
        ~~~~~~~~~~~~~~           ^~~~~~~~~~~~
NetCraft/src/client.c:103:9: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    if (distance < 0.0001) {
        ^~~~~~~~ ~
NetCraft/src/client.c:108:60: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    snprintf(buffer, 1024, "P,%.2f,%.2f,%.2f,%.2f,%.2f\n", x, y, z, rx, ry);
    ~~~~~~~~                                               ^
NetCraft/src/client.c:108:63: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    snprintf(buffer, 1024, "P,%.2f,%.2f,%.2f,%.2f,%.2f\n", x, y, z, rx, ry);
    ~~~~~~~~                                                  ^
NetCraft/src/client.c:108:66: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    snprintf(buffer, 1024, "P,%.2f,%.2f,%.2f,%.2f,%.2f\n", x, y, z, rx, ry);
    ~~~~~~~~                                                     ^
NetCraft/src/client.c:108:69: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    snprintf(buffer, 1024, "P,%.2f,%.2f,%.2f,%.2f,%.2f\n", x, y, z, rx, ry);
    ~~~~~~~~                                                        ^~
NetCraft/src/client.c:108:73: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    snprintf(buffer, 1024, "P,%.2f,%.2f,%.2f,%.2f,%.2f\n", x, y, z, rx, ry);
    ~~~~~~~~                                                            ^~
NetCraft/src/client.c:170:12: warning: initializing 'void (*)(char *)' with an expression of type 'void *' converts between void pointer and function pointer [-Wpedantic]
    void (*parse_buffer)(char *) = userData;
           ^                       ~~~~~~~~
NetCraft/src/client.c:244:32: warning: cast from 'char *' to 'struct in_addr *' increases required alignment from 1 to 4 [-Wcast-align]
    address.sin_addr.s_addr = ((struct in_addr *)(host->h_addr_list[0]))->s_addr;
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/client.c:245:30: warning: implicit conversion loses integer precision: 'int' to 'uint16_t' (aka 'unsigned short') [-Wconversion]
    address.sin_port = htons(port);
                       ~~~~~ ^~~~
NetCraft/src/client.c:264:36: warning: '$' in identifier [-Wdollar-in-identifier-extension]
            const host = getString($0);
                                   ^
NetCraft/src/client.c:265:26: warning: '$' in identifier [-Wdollar-in-identifier-extension]
            const port = $1;
                         ^
NetCraft/src/client.c:296:6: warning: no previous prototype for function 'client_start' [-Wmissing-prototypes]
void client_start() {
     ^
NetCraft/src/client.h:18:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void client_start();
     ^
                  void
NetCraft/src/client.c:23:9: warning: macro is not used [-Wunused-macros]
#define RECV_SIZE 4096
        ^
NetCraft/src/client.c:312:6: warning: no previous prototype for function 'client_stop' [-Wmissing-prototypes]
void client_stop() {
     ^
NetCraft/src/client.h:19:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void client_stop();
     ^
                 void
NetCraft/src/client.c:29:12: warning: unused variable 'bytes_received' [-Wunused-variable]
static int bytes_received = 0;
           ^
NetCraft/src/client.c:32:15: warning: unused variable 'recv_thread' [-Wunused-variable]
static thrd_t recv_thread;
              ^
NetCraft/src/client.c:33:14: warning: unused variable 'mutex' [-Wunused-variable]
static mtx_t mutex;
             ^
54 warnings generated.
[ 13%] Building C object CMakeFiles/craft.dir/src/cube.c.o
In file included from NetCraft/src/cube.c:6:
NetCraft/src/util.h:29:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
double rand_double();
                  ^
                   void
NetCraft/src/cube.c:57:17: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    float b = s - 1 / (32 * 16 * 8.0);
          ~   ~~^~~~~~~~~~~~~~~~~~~~~
NetCraft/src/cube.c:57:15: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    float b = s - 1 / (32 * 16 * 8.0);
              ^ ~
NetCraft/src/cube.c:153:29: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    mat_rotate(mb, 0, 1, 0, RADIANS(rotation));
    ~~~~~~~~~~              ^~~~~~~~~~~~~~~~~
NetCraft/src/util.h:10:42: note: expanded from macro 'RADIANS'
#define RADIANS(degrees) ((degrees) * PI / 180)
                          ~~~~~~~~~~~~~~~^~~~~
NetCraft/src/cube.c:153:37: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    mat_rotate(mb, 0, 1, 0, RADIANS(rotation));
                            ~~~~~~~~^~~~~~~~~
NetCraft/src/util.h:10:28: note: expanded from macro 'RADIANS'
#define RADIANS(degrees) ((degrees) * PI / 180)
                           ^~~~~~~  ~
NetCraft/src/cube.c:165:23: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    float ao[6][4] = {0};
                      ^
                      {}
NetCraft/src/cube.c:167:10: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~^~~
NetCraft/src/cube.c:167:15: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~     ^~~
NetCraft/src/cube.c:167:20: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~          ^~~
NetCraft/src/cube.c:167:25: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~               ^~~
NetCraft/src/cube.c:168:10: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~^~~
NetCraft/src/cube.c:168:15: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~     ^~~
NetCraft/src/cube.c:168:20: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~          ^~~
NetCraft/src/cube.c:168:25: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~               ^~~
NetCraft/src/cube.c:169:10: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~^~~
NetCraft/src/cube.c:169:15: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~     ^~~
NetCraft/src/cube.c:169:20: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~          ^~~
NetCraft/src/cube.c:169:25: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~               ^~~
NetCraft/src/cube.c:170:10: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~^~~
NetCraft/src/cube.c:170:15: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~     ^~~
NetCraft/src/cube.c:170:20: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~          ^~~
NetCraft/src/cube.c:170:25: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~               ^~~
NetCraft/src/cube.c:171:10: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~^~~
NetCraft/src/cube.c:171:15: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~     ^~~
NetCraft/src/cube.c:171:20: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~          ^~~
NetCraft/src/cube.c:171:25: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8},
        ~               ^~~
NetCraft/src/cube.c:172:10: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8}
        ~^~~
NetCraft/src/cube.c:172:15: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8}
        ~     ^~~
NetCraft/src/cube.c:172:20: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8}
        ~          ^~~
NetCraft/src/cube.c:172:25: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        {0.8, 0.8, 0.8, 0.8}
        ~               ^~~
NetCraft/src/cube.c:179:18: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        0, 0, 0, 0.4);
                 ^~~
NetCraft/src/cube.c:281:18: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    float pv = s / 2.5;
          ~~   ~~^~~~~
NetCraft/src/cube.c:281:16: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    float pv = s / 2.5;
               ^ ~
NetCraft/src/cube.c:331:32: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        tab[0] = 0; tab[1] = 1 - acosf(ab[1]) / PI;
                           ~ ~~^~~~~~~~~~~~~~~~~~~
NetCraft/src/cube.c:331:34: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        tab[0] = 0; tab[1] = 1 - acosf(ab[1]) / PI;
                                 ^~~~~~~~~~~~ ~
NetCraft/src/cube.c:332:32: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        tac[0] = 0; tac[1] = 1 - acosf(ac[1]) / PI;
                           ~ ~~^~~~~~~~~~~~~~~~~~~
NetCraft/src/cube.c:332:34: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        tac[0] = 0; tac[1] = 1 - acosf(ac[1]) / PI;
                                 ^~~~~~~~~~~~ ~
NetCraft/src/cube.c:333:32: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        tbc[0] = 0; tbc[1] = 1 - acosf(bc[1]) / PI;
                           ~ ~~^~~~~~~~~~~~~~~~~~~
NetCraft/src/cube.c:333:34: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        tbc[0] = 0; tbc[1] = 1 - acosf(bc[1]) / PI;
                                 ^~~~~~~~~~~~ ~
NetCraft/src/cube.c:302:5: warning: no previous prototype for function '_make_sphere' [-Wmissing-prototypes]
int _make_sphere(
    ^
40 warnings generated.
[ 18%] Building C object CMakeFiles/craft.dir/src/db.c.o
In file included from NetCraft/src/db.c:3:
NetCraft/src/db.h:7:15: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_enable();
              ^
               void
NetCraft/src/db.h:8:16: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_disable();
               ^
                void
NetCraft/src/db.h:9:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
bool get_db_enabled();
                   ^
                    void
NetCraft/src/db.h:11:14: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_close();
             ^
              void
NetCraft/src/db.h:12:15: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_commit();
              ^
               void
NetCraft/src/db.h:15:25: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_auth_select_none();
                        ^
                         void
NetCraft/src/db.h:30:25: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_delete_all_signs();
                        ^
                         void
NetCraft/src/db.h:36:21: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_worker_start();
                    ^
                     void
NetCraft/src/db.h:37:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_worker_stop();
                   ^
                    void
NetCraft/src/db.c:554:6: warning: no previous prototype for function 'db_enable' [-Wmissing-prototypes]
void db_enable() {}
     ^
NetCraft/src/db.h:7:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void db_enable();
     ^
               void
NetCraft/src/db.c:555:6: warning: no previous prototype for function 'db_disable' [-Wmissing-prototypes]
void db_disable() {}
     ^
NetCraft/src/db.h:8:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void db_disable();
     ^
                void
NetCraft/src/db.c:556:6: warning: no previous prototype for function 'get_db_enabled' [-Wmissing-prototypes]
bool get_db_enabled() { return false; }
     ^
NetCraft/src/db.h:9:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
bool get_db_enabled();
     ^
                    void
NetCraft/src/db.c:557:19: warning: unused parameter 'path' [-Wunused-parameter]
int db_init(char *path) { return 0; }
                  ^
NetCraft/src/db.c:558:6: warning: no previous prototype for function 'db_close' [-Wmissing-prototypes]
void db_close() {}
     ^
NetCraft/src/db.h:11:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void db_close();
     ^
              void
NetCraft/src/db.c:559:6: warning: no previous prototype for function 'db_commit' [-Wmissing-prototypes]
void db_commit() {}
     ^
NetCraft/src/db.h:12:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void db_commit();
     ^
               void
NetCraft/src/db.c:560:24: warning: unused parameter 'username' [-Wunused-parameter]
void db_auth_set(char *username, char *identity_token) {}
                       ^
NetCraft/src/db.c:560:40: warning: unused parameter 'identity_token' [-Wunused-parameter]
void db_auth_set(char *username, char *identity_token) {}
                                       ^
NetCraft/src/db.c:561:26: warning: unused parameter 'username' [-Wunused-parameter]
int db_auth_select(char *username) { return 0; }
                         ^
NetCraft/src/db.c:562:6: warning: no previous prototype for function 'db_auth_select_none' [-Wmissing-prototypes]
void db_auth_select_none() {}
     ^
NetCraft/src/db.h:15:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void db_auth_select_none();
     ^
                         void
NetCraft/src/db.c:564:11: warning: unused parameter 'username' [-Wunused-parameter]
    char *username,
          ^
NetCraft/src/db.c:565:11: warning: unused parameter 'identity_token' [-Wunused-parameter]
    char *identity_token, int identity_token_length) { return false; }
          ^
NetCraft/src/db.c:565:31: warning: unused parameter 'identity_token_length' [-Wunused-parameter]
    char *identity_token, int identity_token_length) { return false; }
                              ^
NetCraft/src/db.c:567:11: warning: unused parameter 'username' [-Wunused-parameter]
    char *username, int username_length,
          ^
NetCraft/src/db.c:567:25: warning: unused parameter 'username_length' [-Wunused-parameter]
    char *username, int username_length,
                        ^
NetCraft/src/db.c:568:11: warning: unused parameter 'identity_token' [-Wunused-parameter]
    char *identity_token, int identity_token_length) { return false; }
          ^
NetCraft/src/db.c:568:31: warning: unused parameter 'identity_token_length' [-Wunused-parameter]
    char *identity_token, int identity_token_length) { return false; }
                              ^
NetCraft/src/db.c:569:26: warning: unused parameter 'x' [-Wunused-parameter]
void db_save_state(float x, float y, float z, float rx, float ry) {}
                         ^
NetCraft/src/db.c:569:35: warning: unused parameter 'y' [-Wunused-parameter]
void db_save_state(float x, float y, float z, float rx, float ry) {}
                                  ^
NetCraft/src/db.c:569:44: warning: unused parameter 'z' [-Wunused-parameter]
void db_save_state(float x, float y, float z, float rx, float ry) {}
                                           ^
NetCraft/src/db.c:569:53: warning: unused parameter 'rx' [-Wunused-parameter]
void db_save_state(float x, float y, float z, float rx, float ry) {}
                                                    ^
NetCraft/src/db.c:569:63: warning: unused parameter 'ry' [-Wunused-parameter]
void db_save_state(float x, float y, float z, float rx, float ry) {}
                                                              ^
NetCraft/src/db.c:570:27: warning: unused parameter 'x' [-Wunused-parameter]
bool db_load_state(float *x, float *y, float *z, float *rx, float *ry) { return false; }
                          ^
NetCraft/src/db.c:570:37: warning: unused parameter 'y' [-Wunused-parameter]
bool db_load_state(float *x, float *y, float *z, float *rx, float *ry) { return false; }
                                    ^
NetCraft/src/db.c:570:47: warning: unused parameter 'z' [-Wunused-parameter]
bool db_load_state(float *x, float *y, float *z, float *rx, float *ry) { return false; }
                                              ^
NetCraft/src/db.c:570:57: warning: unused parameter 'rx' [-Wunused-parameter]
bool db_load_state(float *x, float *y, float *z, float *rx, float *ry) { return false; }
                                                        ^
NetCraft/src/db.c:570:68: warning: unused parameter 'ry' [-Wunused-parameter]
bool db_load_state(float *x, float *y, float *z, float *rx, float *ry) { return false; }
                                                                   ^
NetCraft/src/db.c:571:26: warning: unused parameter 'p' [-Wunused-parameter]
void db_insert_block(int p, int q, int x, int y, int z, int w) {}
                         ^
NetCraft/src/db.c:571:33: warning: unused parameter 'q' [-Wunused-parameter]
void db_insert_block(int p, int q, int x, int y, int z, int w) {}
                                ^
NetCraft/src/db.c:571:40: warning: unused parameter 'x' [-Wunused-parameter]
void db_insert_block(int p, int q, int x, int y, int z, int w) {}
                                       ^
NetCraft/src/db.c:571:47: warning: unused parameter 'y' [-Wunused-parameter]
void db_insert_block(int p, int q, int x, int y, int z, int w) {}
                                              ^
NetCraft/src/db.c:571:54: warning: unused parameter 'z' [-Wunused-parameter]
void db_insert_block(int p, int q, int x, int y, int z, int w) {}
                                                     ^
NetCraft/src/db.c:571:61: warning: unused parameter 'w' [-Wunused-parameter]
void db_insert_block(int p, int q, int x, int y, int z, int w) {}
                                                            ^
NetCraft/src/db.c:572:26: warning: unused parameter 'p' [-Wunused-parameter]
void db_insert_light(int p, int q, int x, int y, int z, int w) {}
                         ^
NetCraft/src/db.c:572:33: warning: unused parameter 'q' [-Wunused-parameter]
void db_insert_light(int p, int q, int x, int y, int z, int w) {}
                                ^
NetCraft/src/db.c:572:40: warning: unused parameter 'x' [-Wunused-parameter]
void db_insert_light(int p, int q, int x, int y, int z, int w) {}
                                       ^
NetCraft/src/db.c:572:47: warning: unused parameter 'y' [-Wunused-parameter]
void db_insert_light(int p, int q, int x, int y, int z, int w) {}
                                              ^
NetCraft/src/db.c:572:54: warning: unused parameter 'z' [-Wunused-parameter]
void db_insert_light(int p, int q, int x, int y, int z, int w) {}
                                                     ^
NetCraft/src/db.c:572:61: warning: unused parameter 'w' [-Wunused-parameter]
void db_insert_light(int p, int q, int x, int y, int z, int w) {}
                                                            ^
NetCraft/src/db.c:574:9: warning: unused parameter 'p' [-Wunused-parameter]
    int p, int q, int x, int y, int z, int face, const char *text) {}
        ^
NetCraft/src/db.c:574:16: warning: unused parameter 'q' [-Wunused-parameter]
    int p, int q, int x, int y, int z, int face, const char *text) {}
               ^
NetCraft/src/db.c:574:23: warning: unused parameter 'x' [-Wunused-parameter]
    int p, int q, int x, int y, int z, int face, const char *text) {}
                      ^
NetCraft/src/db.c:574:30: warning: unused parameter 'y' [-Wunused-parameter]
    int p, int q, int x, int y, int z, int face, const char *text) {}
                             ^
NetCraft/src/db.c:574:37: warning: unused parameter 'z' [-Wunused-parameter]
    int p, int q, int x, int y, int z, int face, const char *text) {}
                                    ^
NetCraft/src/db.c:574:44: warning: unused parameter 'face' [-Wunused-parameter]
    int p, int q, int x, int y, int z, int face, const char *text) {}
                                           ^
NetCraft/src/db.c:574:62: warning: unused parameter 'text' [-Wunused-parameter]
    int p, int q, int x, int y, int z, int face, const char *text) {}
                                                             ^
NetCraft/src/db.c:575:25: warning: unused parameter 'x' [-Wunused-parameter]
void db_delete_sign(int x, int y, int z, int face) {}
                        ^
NetCraft/src/db.c:575:32: warning: unused parameter 'y' [-Wunused-parameter]
void db_delete_sign(int x, int y, int z, int face) {}
                               ^
NetCraft/src/db.c:575:39: warning: unused parameter 'z' [-Wunused-parameter]
void db_delete_sign(int x, int y, int z, int face) {}
                                      ^
NetCraft/src/db.c:575:46: warning: unused parameter 'face' [-Wunused-parameter]
void db_delete_sign(int x, int y, int z, int face) {}
                                             ^
NetCraft/src/db.c:576:26: warning: unused parameter 'x' [-Wunused-parameter]
void db_delete_signs(int x, int y, int z) {}
                         ^
NetCraft/src/db.c:576:33: warning: unused parameter 'y' [-Wunused-parameter]
void db_delete_signs(int x, int y, int z) {}
                                ^
NetCraft/src/db.c:576:40: warning: unused parameter 'z' [-Wunused-parameter]
void db_delete_signs(int x, int y, int z) {}
                                       ^
NetCraft/src/db.c:577:6: warning: no previous prototype for function 'db_delete_all_signs' [-Wmissing-prototypes]
void db_delete_all_signs() {}
     ^
NetCraft/src/db.h:30:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void db_delete_all_signs();
     ^
                         void
NetCraft/src/db.c:578:26: warning: unused parameter 'map' [-Wunused-parameter]
void db_load_blocks(Map *map, int p, int q) {}
                         ^
NetCraft/src/db.c:578:35: warning: unused parameter 'p' [-Wunused-parameter]
void db_load_blocks(Map *map, int p, int q) {}
                                  ^
NetCraft/src/db.c:578:42: warning: unused parameter 'q' [-Wunused-parameter]
void db_load_blocks(Map *map, int p, int q) {}
                                         ^
NetCraft/src/db.c:579:26: warning: unused parameter 'map' [-Wunused-parameter]
void db_load_lights(Map *map, int p, int q) {}
                         ^
NetCraft/src/db.c:579:35: warning: unused parameter 'p' [-Wunused-parameter]
void db_load_lights(Map *map, int p, int q) {}
                                  ^
NetCraft/src/db.c:579:42: warning: unused parameter 'q' [-Wunused-parameter]
void db_load_lights(Map *map, int p, int q) {}
                                         ^
NetCraft/src/db.c:580:30: warning: unused parameter 'list' [-Wunused-parameter]
void db_load_signs(SignList *list, int p, int q) {}
                             ^
NetCraft/src/db.c:580:40: warning: unused parameter 'p' [-Wunused-parameter]
void db_load_signs(SignList *list, int p, int q) {}
                                       ^
NetCraft/src/db.c:580:47: warning: unused parameter 'q' [-Wunused-parameter]
void db_load_signs(SignList *list, int p, int q) {}
                                              ^
NetCraft/src/db.c:581:20: warning: unused parameter 'p' [-Wunused-parameter]
int db_get_key(int p, int q) { return 0; }
                   ^
NetCraft/src/db.c:581:27: warning: unused parameter 'q' [-Wunused-parameter]
int db_get_key(int p, int q) { return 0; }
                          ^
NetCraft/src/db.c:582:21: warning: unused parameter 'p' [-Wunused-parameter]
void db_set_key(int p, int q, int key) {}
                    ^
NetCraft/src/db.c:582:28: warning: unused parameter 'q' [-Wunused-parameter]
void db_set_key(int p, int q, int key) {}
                           ^
NetCraft/src/db.c:582:35: warning: unused parameter 'key' [-Wunused-parameter]
void db_set_key(int p, int q, int key) {}
                                  ^
NetCraft/src/db.c:583:6: warning: no previous prototype for function 'db_worker_start' [-Wmissing-prototypes]
void db_worker_start() {}
     ^
NetCraft/src/db.h:36:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void db_worker_start();
     ^
                     void
NetCraft/src/db.c:584:6: warning: no previous prototype for function 'db_worker_stop' [-Wmissing-prototypes]
void db_worker_stop() {}
     ^
NetCraft/src/db.h:37:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void db_worker_stop();
     ^
                    void
NetCraft/src/db.c:585:25: warning: unused parameter 'arg' [-Wunused-parameter]
int db_worker_run(void *arg) { return 0; }
                        ^
80 warnings generated.
[ 22%] Building C object CMakeFiles/craft.dir/src/fullscreen.c.o
In file included from NetCraft/src/fullscreen.c:10:
NetCraft/src/vr.h:1:13: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void init_vr();
            ^
             void
NetCraft/src/vr.h:2:38: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void vr_toggle_skip_barrel_distortion();
                                     ^
                                      void
NetCraft/src/vr.h:4:15: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void vr_render();
              ^
               void
NetCraft/src/fullscreen.c:24:42: warning: unused parameter 'eventType' [-Wunused-parameter]
static EM_BOOL on_canvassize_changed(int eventType, const void *reserved, void *userData) {
                                         ^
NetCraft/src/fullscreen.c:24:65: warning: unused parameter 'reserved' [-Wunused-parameter]
static EM_BOOL on_canvassize_changed(int eventType, const void *reserved, void *userData) {
                                                                ^
NetCraft/src/fullscreen.c:24:81: warning: unused parameter 'userData' [-Wunused-parameter]
static EM_BOOL on_canvassize_changed(int eventType, const void *reserved, void *userData) {
                                                                                ^
NetCraft/src/fullscreen.c:62:23: warning: unused variable 'ret' [-Wunused-variable]
    EMSCRIPTEN_RESULT ret = emscripten_enter_soft_fullscreen("#canvas", &strategy);
                      ^
NetCraft/src/fullscreen.c:69:33: warning: declaration shadows a variable in the global scope [-Wshadow]
void on_window_size(GLFWwindow* window, int width, int height) {
                                ^
NetCraft/src/fullscreen.c:12:20: note: previous declaration is here
static GLFWwindow *window;
                   ^
NetCraft/src/fullscreen.c:71:16: warning: unused variable 'inFullscreen' [-Wunused-variable]
    static int inFullscreen = 0;
               ^
NetCraft/src/fullscreen.c:69:33: warning: unused parameter 'window' [-Wunused-parameter]
void on_window_size(GLFWwindow* window, int width, int height) {
                                ^
NetCraft/src/fullscreen.c:69:6: warning: no previous prototype for function 'on_window_size' [-Wmissing-prototypes]
void on_window_size(GLFWwindow* window, int width, int height) {
     ^
NetCraft/src/fullscreen.c:95:47: warning: unused parameter 'eventType' [-Wunused-parameter]
static EM_BOOL fullscreen_change_callback(int eventType, const EmscriptenFullscreenChangeEvent *event, void *userData) {
                                              ^
NetCraft/src/fullscreen.c:95:110: warning: unused parameter 'userData' [-Wunused-parameter]
static EM_BOOL fullscreen_change_callback(int eventType, const EmscriptenFullscreenChangeEvent *event, void *userData) {
                                                                                                             ^
NetCraft/src/fullscreen.c:164:6: warning: no previous prototype for function 'init_fullscreen_monitor_dimensions' [-Wmissing-prototypes]
void init_fullscreen_monitor_dimensions(GLFWwindow *w) {
     ^
NetCraft/src/fullscreen.c:199:6: warning: no previous prototype for function 'fullscreen_toggle' [-Wmissing-prototypes]
void fullscreen_toggle() {
     ^
NetCraft/src/fullscreen.c:13:12: warning: unused variable 'window_width' [-Wunused-variable]
static int window_width;
           ^
NetCraft/src/fullscreen.c:14:12: warning: unused variable 'window_height' [-Wunused-variable]
static int window_height;
           ^
NetCraft/src/fullscreen.c:15:12: warning: unused variable 'window_xpos' [-Wunused-variable]
static int window_xpos;
           ^
NetCraft/src/fullscreen.c:16:12: warning: unused variable 'window_ypos' [-Wunused-variable]
static int window_ypos;
           ^
NetCraft/src/fullscreen.c:17:21: warning: unused variable 'fullscreen_monitor' [-Wunused-variable]
static GLFWmonitor *fullscreen_monitor;
                    ^
NetCraft/src/fullscreen.c:18:12: warning: unused variable 'fullscreen_width' [-Wunused-variable]
static int fullscreen_width;
           ^
NetCraft/src/fullscreen.c:19:12: warning: unused variable 'fullscreen_height' [-Wunused-variable]
static int fullscreen_height;
           ^
22 warnings generated.
[ 27%] Building C object CMakeFiles/craft.dir/src/item.c.o
In file included from NetCraft/src/item.c:4:
NetCraft/src/util.h:29:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
double rand_double();
                  ^
                   void
NetCraft/src/item.c:294:20: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
            return 0.2;
            ~~~~~~ ^~~
NetCraft/src/item.c:304:20: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
            return 0.4;
            ~~~~~~ ^~~
3 warnings generated.
[ 31%] Building C object CMakeFiles/craft.dir/src/joy.c.o
In file included from NetCraft/src/joy.c:5:
NetCraft/src/joy.h:17:26: warning: this function declaration is not a prototype [-Wstrict-prototypes]
bool is_gamepad_connected();
                         ^
                          void
NetCraft/src/joy.h:18:26: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void handle_gamepad_input();
                         ^
                          void
NetCraft/src/joy.h:20:29: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void init_joystick_callbacks();
                            ^
                             void
In file included from NetCraft/src/joy.c:7:
NetCraft/src/mining.h:2:15: warning: this function declaration is not a prototype [-Wstrict-prototypes]
bool is_mining();
              ^
               void
NetCraft/src/mining.h:3:17: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void mining_stop();
                ^
                 void
NetCraft/src/mining.h:4:17: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void mining_tick();
                ^
                 void
NetCraft/src/mining.h:5:18: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void mining_start();
                 ^
                  void
NetCraft/src/mining.h:6:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void building_stop();
                  ^
                   void
NetCraft/src/mining.h:7:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void building_tick();
                  ^
                   void
NetCraft/src/mining.h:8:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void building_start();
                   ^
                    void
NetCraft/src/mining.h:12:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
extern void on_mine();
                   ^
                    void
NetCraft/src/mining.h:13:21: warning: this function declaration is not a prototype [-Wstrict-prototypes]
extern void on_build();
                    ^
                     void
NetCraft/src/joy.c:24:6: warning: no previous prototype for function 'is_gamepad_connected' [-Wmissing-prototypes]
bool is_gamepad_connected() {
     ^
NetCraft/src/joy.h:17:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
bool is_gamepad_connected();
     ^
                          void
NetCraft/src/joy.c:54:30: warning: missing field 'axis' initializer [-Wmissing-field-initializers]
    } last_gamepad_state = {0};
                             ^
NetCraft/src/joy.c:46:6: warning: no previous prototype for function 'handle_gamepad_input' [-Wmissing-prototypes]
void handle_gamepad_input() {
     ^
NetCraft/src/joy.h:18:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void handle_gamepad_input();
     ^
                          void
NetCraft/src/joy.c:143:6: warning: no previous prototype for function 'on_joystick_connection' [-Wmissing-prototypes]
void on_joystick_connection(int joy, int event) {
     ^
NetCraft/src/joy.c:153:6: warning: no previous prototype for function 'init_joystick_callbacks' [-Wmissing-prototypes]
void init_joystick_callbacks() {
     ^
NetCraft/src/joy.h:20:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void init_joystick_callbacks();
     ^
                             void
NetCraft/src/joy.c:174:66: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        *sx += gamepad_state.axis[GAMEPAD_LEFT_STICK_HORIZONTAL] * gamepad_state.scale_moveH;
            ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/joy.c:175:64: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        *sz -= gamepad_state.axis[GAMEPAD_LEFT_STICK_VERTICAL] * gamepad_state.scale_moveV;
            ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/joy.c:184:71: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        *mx = px + gamepad_state.axis[GAMEPAD_RIGHT_STICK_HORIZONTAL] * gamepad_state.scale_lookH;
                 ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/joy.c:185:69: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        *my = py + gamepad_state.axis[GAMEPAD_RIGHT_STICK_VERTICAL] * gamepad_state.scale_lookV;
                 ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
21 warnings generated.
[ 36%] Building C object CMakeFiles/craft.dir/src/main.c.o
In file included from NetCraft/src/main.c:19:
NetCraft/src/client.h:14:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void client_enable();
                  ^
                   void
NetCraft/src/client.h:15:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void client_disable();
                   ^
                    void
NetCraft/src/client.h:16:24: warning: this function declaration is not a prototype [-Wstrict-prototypes]
bool get_client_enabled();
                       ^
                        void
NetCraft/src/client.h:18:18: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void client_start();
                 ^
                  void
NetCraft/src/client.h:19:17: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void client_stop();
                ^
                 void
NetCraft/src/client.h:22:18: warning: this function declaration is not a prototype [-Wstrict-prototypes]
char *client_recv();
                 ^
                  void
In file included from NetCraft/src/main.c:22:
NetCraft/src/db.h:7:15: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_enable();
              ^
               void
NetCraft/src/db.h:8:16: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_disable();
               ^
                void
NetCraft/src/db.h:9:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
bool get_db_enabled();
                   ^
                    void
NetCraft/src/db.h:11:14: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_close();
             ^
              void
NetCraft/src/db.h:12:15: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_commit();
              ^
               void
NetCraft/src/db.h:15:25: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_auth_select_none();
                        ^
                         void
NetCraft/src/db.h:30:25: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_delete_all_signs();
                        ^
                         void
NetCraft/src/db.h:36:21: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_worker_start();
                    ^
                     void
NetCraft/src/db.h:37:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void db_worker_stop();
                   ^
                    void
In file included from NetCraft/src/main.c:28:
NetCraft/deps/tinycthread/tinycthread.h:25:9: warning: macro name is a reserved identifier [-Wreserved-id-macro]
#define _TINYCTHREAD_H_
        ^
NetCraft/deps/tinycthread/tinycthread.h:55:13: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #define _TTHREAD_POSIX_
            ^
NetCraft/deps/tinycthread/tinycthread.h:57:11: warning: macro name is a reserved identifier [-Wreserved-id-macro]
  #define _TTHREAD_PLATFORM_DEFINED_
          ^
NetCraft/deps/tinycthread/tinycthread.h:62:10: warning: macro name is a reserved identifier [-Wreserved-id-macro]
  #undef _FEATURES_H
         ^
NetCraft/deps/tinycthread/tinycthread.h:64:13: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #define _GNU_SOURCE
            ^
NetCraft/deps/tinycthread/tinycthread.h:67:12: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #undef _POSIX_C_SOURCE
           ^
NetCraft/deps/tinycthread/tinycthread.h:68:13: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #define _POSIX_C_SOURCE 199309L
            ^
NetCraft/deps/tinycthread/tinycthread.h:71:12: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #undef _XOPEN_SOURCE
           ^
NetCraft/deps/tinycthread/tinycthread.h:72:13: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #define _XOPEN_SOURCE 500
            ^
NetCraft/deps/tinycthread/tinycthread.h:157:11: warning: macro name is a reserved identifier [-Wreserved-id-macro]
  #define _Thread_local __thread
          ^
NetCraft/deps/tinycthread/tinycthread.h:199:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:214:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:227:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_busy if the resource
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:235:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:253:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:268:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:278:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:290:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:303:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success upon success, or @ref thrd_timeout if the time
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:302:10: warning: parameter 'xt' not found in the function declaration [-Wdocumentation]
* @param xt A point in time at which the request will time out (absolute time).
         ^~
NetCraft/deps/tinycthread/tinycthread.h:302:10: note: did you mean 'ts'?
* @param xt A point in time at which the request will time out (absolute time).
         ^~
         ts
NetCraft/deps/tinycthread/tinycthread.h:331:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_nomem if no memory could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:367:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:406:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:432:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
In file included from NetCraft/src/main.c:29:
NetCraft/src/util.h:29:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
double rand_double();
                  ^
                   void
In file included from NetCraft/src/main.c:31:
NetCraft/src/mining.h:2:15: warning: this function declaration is not a prototype [-Wstrict-prototypes]
bool is_mining();
              ^
               void
NetCraft/src/mining.h:3:17: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void mining_stop();
                ^
                 void
NetCraft/src/mining.h:4:17: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void mining_tick();
                ^
                 void
NetCraft/src/mining.h:5:18: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void mining_start();
                 ^
                  void
NetCraft/src/mining.h:6:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void building_stop();
                  ^
                   void
NetCraft/src/mining.h:7:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void building_tick();
                  ^
                   void
NetCraft/src/mining.h:8:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void building_start();
                   ^
                    void
NetCraft/src/mining.h:12:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
extern void on_mine();
                   ^
                    void
NetCraft/src/mining.h:13:21: warning: this function declaration is not a prototype [-Wstrict-prototypes]
extern void on_build();
                    ^
                     void
In file included from NetCraft/src/main.c:32:
NetCraft/src/vr.h:1:13: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void init_vr();
            ^
             void
NetCraft/src/vr.h:2:38: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void vr_toggle_skip_barrel_distortion();
                                     ^
                                      void
NetCraft/src/vr.h:4:15: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void vr_render();
              ^
               void
In file included from NetCraft/src/main.c:33:
NetCraft/src/joy.h:17:26: warning: this function declaration is not a prototype [-Wstrict-prototypes]
bool is_gamepad_connected();
                         ^
                          void
NetCraft/src/joy.h:18:26: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void handle_gamepad_input();
                         ^
                          void
NetCraft/src/joy.h:20:29: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void init_joystick_callbacks();
                            ^
                             void
In file included from NetCraft/src/main.c:35:
NetCraft/src/fullscreen.h:2:23: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void fullscreen_toggle();
                      ^
                       void
NetCraft/src/main.c:75:10: warning: padding struct 'WorkerItem' with 3 bytes to align 'block_maps' [-Wpadded]
    Map *block_maps[3][3];
         ^
NetCraft/src/main.c:65:9: warning: padding struct 'Chunk' with 3 bytes to align 'miny' [-Wpadded]
    int miny;
        ^
NetCraft/src/main.c:189:12: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
    return floorf(roundf(x) / CHUNK_SIZE);
    ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:188:5: warning: no previous prototype for function 'chunked' [-Wmissing-prototypes]
int chunked(float x) {
    ^
NetCraft/src/main.c:197:23: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    t = glfwGetTime() + g->day_length/1.5;
      ~ ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:192:7: warning: no previous prototype for function 'time_of_day' [-Wmissing-prototypes]
float time_of_day() {
      ^
NetCraft/src/main.c:137:12: warning: padding struct 'Model' with 5 bytes to align 'last_commit' [-Wpadded]
    double last_commit;
           ^
NetCraft/src/main.c:154:9: warning: padding struct 'Model' with 2 bytes to align 'message_index' [-Wpadded]
    int message_index;
        ^
NetCraft/src/main.c:161:9: warning: padding struct 'Model' with 3 bytes to align 'item_index' [-Wpadded]
    int item_index;
        ^
NetCraft/src/main.c:167:9: warning: padding struct 'Model' with 3 bytes to align 'mode' [-Wpadded]
    int mode;
        ^
NetCraft/src/main.c:171:9: warning: padding struct 'Model' with 3 bytes to align 'server_port' [-Wpadded]
    int server_port;
        ^
NetCraft/src/main.c:174:11: warning: padding struct 'Model' with 3 bytes to align 'block0' [-Wpadded]
    Block block0;
          ^
NetCraft/src/main.c:133:9: warning: padding size of 'Model' with 7 bytes to alignment boundary [-Wpadded]
typedef struct {
        ^
NetCraft/src/main.c:205:9: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    if (timer < 0.5) {
        ^~~~~ ~
NetCraft/src/main.c:206:34: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        float t = (timer - 0.25) * 100;
              ~   ~~~~~~~~~~~~~~~^~~~~
NetCraft/src/main.c:206:20: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        float t = (timer - 0.25) * 100;
                   ^~~~~ ~
NetCraft/src/main.c:210:34: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        float t = (timer - 0.85) * 100;
              ~   ~~~~~~~~~~~~~~~^~~~~
NetCraft/src/main.c:210:20: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        float t = (timer - 0.85) * 100;
                   ^~~~~ ~
NetCraft/src/main.c:203:7: warning: no previous prototype for function 'get_daylight' [-Wmissing-prototypes]
float get_daylight() {
      ^
NetCraft/src/main.c:215:5: warning: no previous prototype for function 'get_scale_factor' [-Wmissing-prototypes]
int get_scale_factor(GLFWwindow *window) {
    ^
NetCraft/src/main.c:231:19: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    *vx = cosf(rx - RADIANS(90)) * m;
          ~~~~ ~~~^~~~~~~~~~~~~
NetCraft/src/main.c:231:16: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    *vx = cosf(rx - RADIANS(90)) * m;
               ^~ ~
NetCraft/src/main.c:233:19: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    *vz = sinf(rx - RADIANS(90)) * m;
          ~~~~ ~~~^~~~~~~~~~~~~
NetCraft/src/main.c:233:16: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    *vz = sinf(rx - RADIANS(90)) * m;
               ^~ ~
NetCraft/src/main.c:229:6: warning: no previous prototype for function 'get_sight_vector' [-Wmissing-prototypes]
void get_sight_vector(float rx, float ry, float *vx, float *vy, float *vz) {
     ^
NetCraft/src/main.c:239:10: warning: implicit conversion turns floating-point number into integer: 'double' to 'bool' [-Wfloat-conversion]
    if (!sz && !sx) {
        ~^~
NetCraft/src/main.c:239:17: warning: implicit conversion turns floating-point number into integer: 'double' to 'bool' [-Wfloat-conversion]
    if (!sz && !sx) {
               ~^~
NetCraft/src/main.c:242:27: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    float strafe = atan2f(sz, sx);
                   ~~~~~~ ^~
NetCraft/src/main.c:242:31: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    float strafe = atan2f(sz, sx);
                   ~~~~~~     ^~
NetCraft/src/main.c:246:13: warning: implicit conversion turns floating-point number into integer: 'double' to 'bool' [-Wfloat-conversion]
        if (sx) {
        ~~  ^~
NetCraft/src/main.c:247:18: warning: implicit conversion turns floating-point number into integer: 'double' to 'bool' [-Wfloat-conversion]
            if (!sz) {
                ~^~
NetCraft/src/main.c:255:23: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        *vx = cosf(rx + strafe) * m;
              ~~~~ ~~~^~~~~~~~
NetCraft/src/main.c:255:25: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        *vx = cosf(rx + strafe) * m;
                      ~ ^~~~~~
NetCraft/src/main.c:257:23: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        *vz = sinf(rx + strafe) * m;
              ~~~~ ~~~^~~~~~~~
NetCraft/src/main.c:257:25: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        *vz = sinf(rx + strafe) * m;
                      ~ ^~~~~~
NetCraft/src/main.c:260:23: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        *vx = cosf(rx + strafe);
              ~~~~ ~~~^~~~~~~~
NetCraft/src/main.c:260:25: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        *vx = cosf(rx + strafe);
                      ~ ^~~~~~
NetCraft/src/main.c:262:23: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        *vz = sinf(rx + strafe);
              ~~~~ ~~~^~~~~~~~
NetCraft/src/main.c:262:25: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        *vz = sinf(rx + strafe);
                      ~ ^~~~~~
NetCraft/src/main.c:236:6: warning: no previous prototype for function 'get_motion_vector' [-Wmissing-prototypes]
void get_motion_vector(bool flying, double sz, double sx, double rx, float ry,
     ^
NetCraft/src/main.c:266:8: warning: no previous prototype for function 'gen_crosshair_buffer' [-Wmissing-prototypes]
GLuint gen_crosshair_buffer() {
       ^
NetCraft/src/main.c:277:8: warning: no previous prototype for function 'gen_wireframe_buffer' [-Wmissing-prototypes]
GLuint gen_wireframe_buffer(float x, float y, float z, float n) {
       ^
NetCraft/src/main.c:283:8: warning: no previous prototype for function 'gen_sky_buffer' [-Wmissing-prototypes]
GLuint gen_sky_buffer() {
       ^
NetCraft/src/main.c:292:23: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    float ao[6][4] = {0};
                      ^
                      {}
NetCraft/src/main.c:290:8: warning: no previous prototype for function 'gen_cube_buffer' [-Wmissing-prototypes]
GLuint gen_cube_buffer(float x, float y, float z, float n, int w) {
       ^
NetCraft/src/main.c:309:23: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    float ao[6][4] = {0};
                      ^
                      {}
NetCraft/src/main.c:306:8: warning: no previous prototype for function 'gen_cube_buffer_faces' [-Wmissing-prototypes]
GLuint gen_cube_buffer_faces(float x, float y, float z, float n,
       ^
NetCraft/src/main.c:324:8: warning: no previous prototype for function 'gen_plant_buffer' [-Wmissing-prototypes]
GLuint gen_plant_buffer(float x, float y, float z, float n, int w) {
       ^
NetCraft/src/main.c:332:8: warning: no previous prototype for function 'gen_player_buffer' [-Wmissing-prototypes]
GLuint gen_player_buffer(float x, float y, float z, float rx, float ry) {
       ^
NetCraft/src/main.c:339:18: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
    int length = strlen(text);
        ~~~~~~   ^~~~~~~~~~~~
NetCraft/src/main.c:338:8: warning: no previous prototype for function 'gen_text_buffer' [-Wmissing-prototypes]
GLuint gen_text_buffer(float x, float y, float n, char *text) {
       ^
NetCraft/src/main.c:348:6: warning: no previous prototype for function 'draw_triangles_3d_ao' [-Wmissing-prototypes]
void draw_triangles_3d_ao(Attrib *attrib, GLuint buffer, int count) {
     ^
NetCraft/src/main.c:363:6: warning: no previous prototype for function 'draw_triangles_3d_text' [-Wmissing-prototypes]
void draw_triangles_3d_text(Attrib *attrib, GLuint buffer, int count) {
     ^
NetCraft/src/main.c:378:6: warning: no previous prototype for function 'draw_triangles_3d_sky' [-Wmissing-prototypes]
void draw_triangles_3d_sky(Attrib *attrib, GLuint buffer, int count) {
     ^
NetCraft/src/main.c:393:6: warning: no previous prototype for function 'draw_triangles_2d' [-Wmissing-prototypes]
void draw_triangles_2d(Attrib *attrib, GLuint buffer, int count) {
     ^
NetCraft/src/main.c:408:6: warning: no previous prototype for function 'draw_lines' [-Wmissing-prototypes]
void draw_lines(Attrib *attrib, GLuint buffer, int components, int count) {
     ^
NetCraft/src/main.c:419:6: warning: no previous prototype for function 'draw_chunk' [-Wmissing-prototypes]
void draw_chunk(Attrib *attrib, Chunk *chunk) {
     ^
NetCraft/src/main.c:423:6: warning: no previous prototype for function 'draw_item' [-Wmissing-prototypes]
void draw_item(Attrib *attrib, GLuint buffer, int count) {
     ^
NetCraft/src/main.c:427:6: warning: no previous prototype for function 'draw_text' [-Wmissing-prototypes]
void draw_text(Attrib *attrib, GLuint buffer, int length) {
     ^
NetCraft/src/main.c:434:6: warning: no previous prototype for function 'draw_signs' [-Wmissing-prototypes]
void draw_signs(Attrib *attrib, Chunk *chunk) {
     ^
NetCraft/src/main.c:441:6: warning: no previous prototype for function 'draw_sign' [-Wmissing-prototypes]
void draw_sign(Attrib *attrib, GLuint buffer, int length) {
     ^
NetCraft/src/main.c:448:6: warning: no previous prototype for function 'draw_cube' [-Wmissing-prototypes]
void draw_cube(Attrib *attrib, GLuint buffer) {
     ^
NetCraft/src/main.c:452:6: warning: no previous prototype for function 'draw_plant' [-Wmissing-prototypes]
void draw_plant(Attrib *attrib, GLuint buffer) {
     ^
NetCraft/src/main.c:456:6: warning: no previous prototype for function 'draw_player' [-Wmissing-prototypes]
void draw_player(Attrib *attrib, Player *player) {
     ^
NetCraft/src/main.c:460:9: warning: no previous prototype for function 'find_player' [-Wmissing-prototypes]
Player *find_player(int id) {
        ^
NetCraft/src/main.c:478:17: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        s2->t = glfwGetTime();
              ~ ^~~~~~~~~~~~~
NetCraft/src/main.c:479:20: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        if (s2->rx - s1->rx > PI) {
            ~~~~~~~^~~~~~~~ ~
NetCraft/src/main.c:482:20: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        if (s1->rx - s2->rx > PI) {
            ~~~~~~~^~~~~~~~ ~
NetCraft/src/main.c:470:6: warning: no previous prototype for function 'update_player' [-Wmissing-prototypes]
void update_player(Player *player,
     ^
NetCraft/src/main.c:498:30: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    float t2 = glfwGetTime() - s2->t;
          ~~   ~~~~~~~~~~~~~~^~~~~~~
NetCraft/src/main.c:498:36: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    float t2 = glfwGetTime() - s2->t;
                             ~ ~~~~^
NetCraft/src/main.c:500:14: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    t1 = MAX(t1, 0.1);
         ~~~~^~~~~~~~
NetCraft/src/util.h:13:21: note: expanded from macro 'MAX'
#define MAX(a, b) ((a) > (b) ? (a) : (b))
                    ^  ~
NetCraft/src/main.c:500:18: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    t1 = MAX(t1, 0.1);
       ~         ^~~
NetCraft/src/util.h:13:39: note: expanded from macro 'MAX'
#define MAX(a, b) ((a) > (b) ? (a) : (b))
                                      ^
NetCraft/src/main.c:494:6: warning: no previous prototype for function 'interpolate_player' [-Wmissing-prototypes]
void interpolate_player(Player *player) {
     ^
NetCraft/src/main.c:512:6: warning: no previous prototype for function 'delete_player' [-Wmissing-prototypes]
void delete_player(int id) {
     ^
NetCraft/src/main.c:524:6: warning: no previous prototype for function 'delete_all_players' [-Wmissing-prototypes]
void delete_all_players() {
     ^
NetCraft/src/main.c:532:7: warning: no previous prototype for function 'player_player_distance' [-Wmissing-prototypes]
float player_player_distance(Player *p1, Player *p2) {
      ^
NetCraft/src/main.c:541:7: warning: no previous prototype for function 'player_crosshair_distance' [-Wmissing-prototypes]
float player_crosshair_distance(Player *p1, Player *p2) {
      ^
NetCraft/src/main.c:558:23: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    float threshold = RADIANS(5);
          ~~~~~~~~~   ^~~~~~~~~~
NetCraft/src/util.h:10:42: note: expanded from macro 'RADIANS'
#define RADIANS(degrees) ((degrees) * PI / 180)
                          ~~~~~~~~~~~~~~~^~~~~
NetCraft/src/main.c:568:22: warning: comparing floating point with == or != is unsafe [-Wfloat-equal]
            if (best == 0 || d < best) {
                ~~~~ ^  ~
NetCraft/src/main.c:556:9: warning: no previous prototype for function 'player_crosshair' [-Wmissing-prototypes]
Player *player_crosshair(Player *player) {
        ^
NetCraft/src/main.c:577:8: warning: no previous prototype for function 'find_chunk' [-Wmissing-prototypes]
Chunk *find_chunk(int p, int q) {
       ^
NetCraft/src/main.c:587:5: warning: no previous prototype for function 'chunk_distance' [-Wmissing-prototypes]
int chunk_distance(Chunk *chunk, int p, int q) {
    ^
NetCraft/src/main.c:612:19: warning: declaration shadows a local variable [-Wshadow]
            float d =
                  ^
NetCraft/src/main.c:596:9: note: previous declaration is here
    int d = CHUNK_SIZE + 1;
        ^
NetCraft/src/main.c:593:5: warning: no previous prototype for function 'chunk_visible' [-Wmissing-prototypes]
int chunk_visible(float planes[6][4], int p, int q, int miny, int maxy) {
    ^
NetCraft/src/main.c:636:14: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
    int nx = roundf(x);
        ~~   ^~~~~~~~~
NetCraft/src/main.c:637:14: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
    int nz = roundf(z);
        ~~   ^~~~~~~~~
NetCraft/src/main.c:634:5: warning: no previous prototype for function 'highest_block' [-Wmissing-prototypes]
int highest_block(float x, float z) {
    ^
NetCraft/src/main.c:663:18: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
        int nx = roundf(x);
            ~~   ^~~~~~~~~
NetCraft/src/main.c:664:18: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
        int ny = roundf(y);
            ~~   ^~~~~~~~~
NetCraft/src/main.c:665:18: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
        int nz = roundf(z);
            ~~   ^~~~~~~~~
NetCraft/src/main.c:652:5: warning: no previous prototype for function '_hit_test' [-Wmissing-prototypes]
int _hit_test(
    ^
NetCraft/src/main.c:705:22: warning: comparing floating point with == or != is unsafe [-Wfloat-equal]
            if (best == 0 || d < best) {
                ~~~~ ^  ~
NetCraft/src/main.c:684:5: warning: no previous prototype for function 'hit_test' [-Wmissing-prototypes]
int hit_test(
    ^
NetCraft/src/main.c:717:9: warning: unused variable 'dx' [-Wunused-variable]
    int dx, dy, dz;
        ^
NetCraft/src/main.c:717:17: warning: unused variable 'dz' [-Wunused-variable]
    int dx, dy, dz;
                ^
NetCraft/src/main.c:717:13: warning: unused variable 'dy' [-Wunused-variable]
    int dx, dy, dz;
            ^
NetCraft/src/main.c:715:5: warning: no previous prototype for function 'hit_test_face' [-Wmissing-prototypes]
int hit_test_face(Player *player, int *x, int *y, int *z, int *face, int *nx, int *ny, int *nz) {
    ^
NetCraft/src/main.c:758:27: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
            int degrees = roundf(DEGREES(atan2f(s->x - dx - *x, s->z - dz - *z)));
                ~~~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:758:34: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
            int degrees = roundf(DEGREES(atan2f(s->x - dx - *x, s->z - dz - *z)));
                          ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/util.h:9:43: note: expanded from macro 'DEGREES'
#define DEGREES(radians) ((radians) * 180 / PI)
                          ~~~~~~~~~~~~~~~~^~~~
NetCraft/src/main.c:758:34: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
            int degrees = roundf(DEGREES(atan2f(s->x - dx - *x, s->z - dz - *z)));
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/util.h:9:37: note: expanded from macro 'DEGREES'
#define DEGREES(radians) ((radians) * 180 / PI)
                          ~~~~~~~~~~^~~~~ ~
NetCraft/src/main.c:749:6: warning: no previous prototype for function 'hit_test_face_rotation' [-Wmissing-prototypes]
bool hit_test_face_rotation(Player *player, int *x, int *y, int *z, int *face, int *rotation) {
     ^
NetCraft/src/main.c:780:14: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
    int nx = roundf(*x);
        ~~   ^~~~~~~~~~
NetCraft/src/main.c:781:14: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
    int ny = roundf(*y);
        ~~   ^~~~~~~~~~
NetCraft/src/main.c:782:14: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
    int nz = roundf(*z);
        ~~   ^~~~~~~~~~
NetCraft/src/main.c:771:6: warning: no previous prototype for function 'collide' [-Wmissing-prototypes]
bool collide(int height, float *x, float *y, float *z) {
     ^
NetCraft/src/main.c:817:14: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
    int nx = roundf(x);
        ~~   ^~~~~~~~~
NetCraft/src/main.c:818:14: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
    int ny = roundf(y);
        ~~   ^~~~~~~~~
NetCraft/src/main.c:819:14: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
    int nz = roundf(z);
        ~~   ^~~~~~~~~
NetCraft/src/main.c:812:6: warning: no previous prototype for function 'player_intersects_block' [-Wmissing-prototypes]
bool player_intersects_block(
     ^
NetCraft/src/main.c:845:27: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
    int rows = wrap(text, max_width, lines, 1024);
               ~~~~       ^~~~~~~~~
NetCraft/src/main.c:852:19: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    float n = 1.0 / (max_width / 10);
          ~   ~~~~^~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:852:32: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    float n = 1.0 / (max_width / 10);
                  ~  ~~~~~~~~~~^~~~
NetCraft/src/main.c:859:22: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
        int length = strlen(line);
            ~~~~~~   ^~~~~~~~~~~~
NetCraft/src/main.c:861:38: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
        line_width = MIN(line_width, max_width);
                   ~                 ^~~~~~~~~
NetCraft/src/util.h:12:39: note: expanded from macro 'MIN'
#define MIN(a, b) ((a) < (b) ? (a) : (b))
                                      ^
NetCraft/src/main.c:828:5: warning: no previous prototype for function '_gen_sign_buffer' [-Wmissing-prototypes]
int _gen_sign_buffer(
    ^
NetCraft/src/main.c:893:6: warning: no previous prototype for function 'gen_sign_buffer' [-Wmissing-prototypes]
void gen_sign_buffer(Chunk *chunk) {
     ^
NetCraft/src/main.c:898:23: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
    for (int i = 0; i < signs->size; i++) {
                    ~ ^ ~~~~~~~~~~~
NetCraft/src/main.c:906:23: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
    for (int i = 0; i < signs->size; i++) {
                    ~ ^ ~~~~~~~~~~~
NetCraft/src/main.c:917:6: warning: no previous prototype for function 'has_lights' [-Wmissing-prototypes]
bool has_lights(Chunk *chunk) {
     ^
NetCraft/src/main.c:939:6: warning: no previous prototype for function 'dirty_chunk' [-Wmissing-prototypes]
void dirty_chunk(Chunk *chunk) {
     ^
NetCraft/src/main.c:990:40: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
            float total = curve[value] + shade_sum / 4.0;
                  ~~~~~   ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
NetCraft/src/main.c:990:27: warning: implicit conversion increases floating-point precision: 'const float' to 'double' [-Wdouble-promotion]
            float total = curve[value] + shade_sum / 4.0;
                          ^~~~~~~~~~~~ ~
NetCraft/src/main.c:990:42: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
            float total = curve[value] + shade_sum / 4.0;
                                         ^~~~~~~~~ ~
NetCraft/src/main.c:991:28: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
            ao[i][j] = MIN(total, 1.0);
                       ~~~~^~~~~~~~~~~
NetCraft/src/util.h:12:21: note: expanded from macro 'MIN'
#define MIN(a, b) ((a) < (b) ? (a) : (b))
                    ^  ~
NetCraft/src/main.c:992:44: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
            light[i][j] = light_sum / 15.0 / 4.0;
                        ~ ~~~~~~~~~~~~~~~~~^~~~~
NetCraft/src/main.c:992:27: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
            light[i][j] = light_sum / 15.0 / 4.0;
                          ^~~~~~~~~ ~
NetCraft/src/main.c:953:6: warning: no previous prototype for function 'occlusion' [-Wmissing-prototypes]
void occlusion(
     ^
NetCraft/src/main.c:1023:28: warning: implicit conversion loses integer precision: 'int' to 'char' [-Wconversion]
    light[XYZ(x, y, z)] = w--;
                        ~ ~^~
NetCraft/src/main.c:1004:6: warning: no previous prototype for function 'light_fill' [-Wmissing-prototypes]
void light_fill(
     ^
NetCraft/src/main.c:1076:64: warning: implicit conversion loses integer precision: 'int' to 'char' [-Wconversion]
                    highest[XZ(x, z)] = MAX(highest[XZ(x, z)], y);
                                      ~                        ^
NetCraft/src/util.h:13:39: note: expanded from macro 'MAX'
#define MAX(a, b) ((a) > (b) ? (a) : (b))
                                      ^
NetCraft/src/main.c:1162:34: warning: declaration shadows a local variable [-Wshadow]
                        for (int oy = 0; oy < 8; oy++) {
                                 ^
NetCraft/src/main.c:1038:9: note: previous declaration is here
    int oy = -1;
        ^
NetCraft/src/main.c:1164:53: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
                                shades[index] = 1.0 - oy * 0.125;
                                              ~ ~~~~^~~~~~~~~~~~
NetCraft/src/main.c:1174:15: warning: declaration shadows a local variable [-Wshadow]
        float light[6][4];
              ^
NetCraft/src/main.c:1034:11: note: previous declaration is here
    char *light = (char *)calloc(XZ_SIZE * XZ_SIZE * Y_SIZE, sizeof(char));
          ^
NetCraft/src/main.c:1032:6: warning: no previous prototype for function 'compute_chunk' [-Wmissing-prototypes]
void compute_chunk(WorkerItem *item) {
     ^
NetCraft/src/main.c:1210:6: warning: no previous prototype for function 'generate_chunk' [-Wmissing-prototypes]
void generate_chunk(Chunk *chunk, WorkerItem *item) {
     ^
NetCraft/src/main.c:1219:6: warning: no previous prototype for function 'gen_chunk_buffer' [-Wmissing-prototypes]
void gen_chunk_buffer(Chunk *chunk) {
     ^
NetCraft/src/main.c:1245:6: warning: no previous prototype for function 'map_set_func' [-Wmissing-prototypes]
void map_set_func(int x, int y, int z, int w, void *arg) {
     ^
NetCraft/src/main.c:1250:6: warning: no previous prototype for function 'load_chunk' [-Wmissing-prototypes]
void load_chunk(WorkerItem *item) {
     ^
NetCraft/src/main.c:1260:6: warning: no previous prototype for function 'request_chunk' [-Wmissing-prototypes]
void request_chunk(int p, int q) {
     ^
NetCraft/src/main.c:1265:6: warning: no previous prototype for function 'init_chunk' [-Wmissing-prototypes]
void init_chunk(Chunk *chunk, int p, int q) {
     ^
NetCraft/src/main.c:1285:6: warning: no previous prototype for function 'create_chunk' [-Wmissing-prototypes]
void create_chunk(Chunk *chunk, int p, int q) {
     ^
NetCraft/src/main.c:1299:6: warning: no previous prototype for function 'delete_chunks' [-Wmissing-prototypes]
void delete_chunks() {
     ^
NetCraft/src/main.c:1330:6: warning: no previous prototype for function 'delete_all_chunks' [-Wmissing-prototypes]
void delete_all_chunks() {
     ^
NetCraft/src/main.c:1342:6: warning: no previous prototype for function 'check_workers' [-Wmissing-prototypes]
void check_workers() {
     ^
NetCraft/src/main.c:1381:6: warning: no previous prototype for function 'force_chunks' [-Wmissing-prototypes]
void force_chunks(Player *player) {
     ^
NetCraft/src/main.c:1405:6: warning: no previous prototype for function 'ensure_chunks_worker' [-Wmissing-prototypes]
void ensure_chunks_worker(Player *player, Worker *worker) {
     ^
NetCraft/src/main.c:1492:6: warning: no previous prototype for function 'ensure_chunks' [-Wmissing-prototypes]
void ensure_chunks(Player *player) {
     ^
NetCraft/src/main.c:1505:5: warning: no previous prototype for function 'worker_run' [-Wmissing-prototypes]
int worker_run(void *arg) {
    ^
NetCraft/src/main.c:1526:6: warning: no previous prototype for function 'unset_sign' [-Wmissing-prototypes]
void unset_sign(int x, int y, int z) {
     ^
NetCraft/src/main.c:1542:6: warning: no previous prototype for function 'unset_sign_face' [-Wmissing-prototypes]
void unset_sign_face(int x, int y, int z, int face) {
     ^
NetCraft/src/main.c:1558:6: warning: no previous prototype for function '_set_sign' [-Wmissing-prototypes]
void _set_sign(
     ^
NetCraft/src/main.c:1576:6: warning: no previous prototype for function 'set_sign' [-Wmissing-prototypes]
void set_sign(int x, int y, int z, int face, int rotation, const char *text) {
     ^
NetCraft/src/main.c:1583:6: warning: no previous prototype for function 'toggle_light' [-Wmissing-prototypes]
void toggle_light(int x, int y, int z) {
     ^
NetCraft/src/main.c:1597:6: warning: no previous prototype for function 'set_light' [-Wmissing-prototypes]
void set_light(int p, int q, int x, int y, int z, int w) {
     ^
NetCraft/src/main.c:1611:6: warning: no previous prototype for function '_set_block' [-Wmissing-prototypes]
void _set_block(int p, int q, int x, int y, int z, int w, bool dirty) {
     ^
NetCraft/src/main.c:1631:6: warning: no previous prototype for function 'set_block' [-Wmissing-prototypes]
void set_block(int x, int y, int z, int w) {
     ^
NetCraft/src/main.c:1654:6: warning: no previous prototype for function 'record_block' [-Wmissing-prototypes]
void record_block(int x, int y, int z, int w) {
     ^
NetCraft/src/main.c:1662:5: warning: no previous prototype for function 'get_block' [-Wmissing-prototypes]
int get_block(int x, int y, int z) {
    ^
NetCraft/src/main.c:1673:6: warning: no previous prototype for function 'builder_block' [-Wmissing-prototypes]
void builder_block(int x, int y, int z, int w) {
     ^
NetCraft/src/main.c:1699:32: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniformMatrix4fv(attrib->matrix, 1, GL_FALSE, matrix);
    ~~~~~~~~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1700:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform3f(attrib->camera, s->x, s->y, s->z);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1701:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(attrib->sampler, 0);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~~
NetCraft/src/main.c:1702:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(attrib->extra1, 2);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1703:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1f(attrib->extra2, light);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1704:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1f(attrib->extra3, g->render_radius * CHUNK_SIZE);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1705:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(attrib->extra4, g->ortho);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1706:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1f(attrib->timer, time_of_day());
    ~~~~~~~~~~~ ~~~~~~~~^~~~~
NetCraft/src/main.c:1685:5: warning: no previous prototype for function 'render_chunks' [-Wmissing-prototypes]
int render_chunks(Attrib *attrib, Player *player) {
    ^
NetCraft/src/main.c:1734:32: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniformMatrix4fv(attrib->matrix, 1, GL_FALSE, matrix);
    ~~~~~~~~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1735:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(attrib->sampler, 3);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~~
NetCraft/src/main.c:1736:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(attrib->extra1, 1);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1723:6: warning: no previous prototype for function 'render_signs' [-Wmissing-prototypes]
void render_signs(Attrib *attrib, Player *player) {
     ^
NetCraft/src/main.c:1765:32: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniformMatrix4fv(attrib->matrix, 1, GL_FALSE, matrix);
    ~~~~~~~~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1766:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(attrib->sampler, 3);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~~
NetCraft/src/main.c:1767:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(attrib->extra1, 1);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1771:37: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
    GLfloat *data = malloc_faces(5, strlen(text));
                    ~~~~~~~~~~~~    ^~~~~~~~~~~~
NetCraft/src/main.c:1751:6: warning: no previous prototype for function 'render_sign' [-Wmissing-prototypes]
void render_sign(Attrib *attrib, Player *player) {
     ^
NetCraft/src/main.c:1785:32: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniformMatrix4fv(attrib->matrix, 1, GL_FALSE, matrix);
    ~~~~~~~~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1786:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform3f(attrib->camera, s->x, s->y, s->z);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1787:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(attrib->sampler, 0);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~~
NetCraft/src/main.c:1788:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1f(attrib->timer, time_of_day());
    ~~~~~~~~~~~ ~~~~~~~~^~~~~
NetCraft/src/main.c:1778:6: warning: no previous prototype for function 'render_players' [-Wmissing-prototypes]
void render_players(Attrib *attrib, Player *player) {
     ^
NetCraft/src/main.c:1804:32: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniformMatrix4fv(attrib->matrix, 1, GL_FALSE, matrix);
    ~~~~~~~~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1805:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(attrib->sampler, 2);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~~
NetCraft/src/main.c:1806:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1f(attrib->timer, time_of_day());
    ~~~~~~~~~~~ ~~~~~~~~^~~~~
NetCraft/src/main.c:1797:6: warning: no previous prototype for function 'render_sky' [-Wmissing-prototypes]
void render_sky(Attrib *attrib, Player *player, GLuint buffer) {
     ^
NetCraft/src/main.c:1822:36: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
        glUniformMatrix4fv(attrib->matrix, 1, GL_FALSE, matrix);
        ~~~~~~~~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1823:86: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        GLuint wireframe_buffer = gen_wireframe_buffer(target_x, target_y, target_z, 0.53);
                                  ~~~~~~~~~~~~~~~~~~~~                               ^~~~
NetCraft/src/main.c:1810:6: warning: no previous prototype for function 'render_wireframe' [-Wmissing-prototypes]
void render_wireframe(Attrib *attrib, Player *player) {
     ^
NetCraft/src/main.c:1839:32: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniformMatrix4fv(attrib->matrix, 1, GL_FALSE, matrix);
    ~~~~~~~~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1843:73: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    GLuint buffer = gen_cube_buffer_faces(target_x, target_y, target_z, 0.501, w, w, w, w, w, w);
                    ~~~~~~~~~~~~~~~~~~~~~                               ^~~~~
NetCraft/src/main.c:1832:6: warning: no previous prototype for function 'render_cover' [-Wmissing-prototypes]
void render_cover(Attrib *attrib, Player *player) {
     ^
NetCraft/src/main.c:1859:32: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniformMatrix4fv(attrib->matrix, 1, GL_FALSE, matrix);
    ~~~~~~~~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1851:6: warning: no previous prototype for function 'render_crosshairs' [-Wmissing-prototypes]
void render_crosshairs(Attrib *attrib) {
     ^
NetCraft/src/main.c:1872:32: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniformMatrix4fv(attrib->matrix, 1, GL_FALSE, matrix);
    ~~~~~~~~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1873:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform3f(attrib->camera, 0, 0, 5);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1874:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(attrib->sampler, 0);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~~
NetCraft/src/main.c:1875:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1f(attrib->timer, time_of_day());
    ~~~~~~~~~~~ ~~~~~~~~^~~~~
NetCraft/src/main.c:1868:6: warning: no previous prototype for function 'render_item' [-Wmissing-prototypes]
void render_item(Attrib *attrib) {
     ^
NetCraft/src/main.c:1895:32: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniformMatrix4fv(attrib->matrix, 1, GL_FALSE, matrix);
    ~~~~~~~~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1896:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(attrib->sampler, 1);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~~
NetCraft/src/main.c:1897:25: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(attrib->extra1, 0);
    ~~~~~~~~~~~ ~~~~~~~~^~~~~~
NetCraft/src/main.c:1898:18: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
    int length = strlen(text);
        ~~~~~~   ^~~~~~~~~~~~
NetCraft/src/main.c:1889:6: warning: no previous prototype for function 'render_text' [-Wmissing-prototypes]
void render_text(
     ^
NetCraft/src/main.c:1905:6: warning: no previous prototype for function 'add_message' [-Wmissing-prototypes]
void add_message(const char *text) {
     ^
NetCraft/src/main.c:1912:6: warning: no previous prototype for function 'login' [-Wmissing-prototypes]
void login() {
     ^
NetCraft/src/main.c:1935:6: warning: no previous prototype for function 'copy' [-Wmissing-prototypes]
void copy() {
     ^
NetCraft/src/main.c:1940:6: warning: no previous prototype for function 'paste' [-Wmissing-prototypes]
void paste() {
     ^
NetCraft/src/main.c:1962:6: warning: no previous prototype for function 'array' [-Wmissing-prototypes]
void array(Block *b1, Block *b2, int xc, int yc, int zc) {
     ^
NetCraft/src/main.c:1985:6: warning: no previous prototype for function 'cube' [-Wmissing-prototypes]
void cube(Block *b1, Block *b2, int fill) {
     ^
NetCraft/src/main.c:2015:6: warning: no previous prototype for function 'sphere' [-Wmissing-prototypes]
void sphere(Block *center, int radius, int fill, int fx, int fy, int fz) {
     ^
NetCraft/src/main.c:2064:6: warning: no previous prototype for function 'cylinder' [-Wmissing-prototypes]
void cylinder(Block *b1, Block *b2, int radius, int fill) {
     ^
NetCraft/src/main.c:2102:6: warning: no previous prototype for function 'tree' [-Wmissing-prototypes]
void tree(Block *block) {
     ^
NetCraft/src/main.c:2122:6: warning: no previous prototype for function 'set_db_path' [-Wmissing-prototypes]
void set_db_path() {
     ^
NetCraft/src/main.c:2128:23: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
    for (int i = 0; i < strlen(g->db_path); ++i) {
                    ~ ^ ~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2135:6: warning: no previous prototype for function 'parse_command' [-Wmissing-prototypes]
void parse_command(const char *buffer, bool forward) {
     ^
NetCraft/src/main.c:2247:6: warning: no previous prototype for function 'on_light' [-Wmissing-prototypes]
void on_light() {
     ^
NetCraft/src/main.c:2256:5: warning: no previous prototype for function 'get_targeted_block' [-Wmissing-prototypes]
int get_targeted_block(int *x, int *y, int *z, int *face) {
    ^
NetCraft/src/main.c:2261:6: warning: no previous prototype for function 'on_mine' [-Wmissing-prototypes]
void on_mine() {
     ^
NetCraft/src/mining.h:12:13: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
extern void on_mine();
            ^
                    void
NetCraft/src/main.c:2273:6: warning: no previous prototype for function 'on_build' [-Wmissing-prototypes]
void on_build() {
     ^
NetCraft/src/mining.h:13:13: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
extern void on_build();
            ^
                     void
NetCraft/src/main.c:2289:6: warning: no previous prototype for function 'on_middle_click' [-Wmissing-prototypes]
void on_middle_click() {
     ^
NetCraft/src/main.c:2301:6: warning: no previous prototype for function 'change_ortho_zoom' [-Wmissing-prototypes]
void change_ortho_zoom(double ydelta) {
     ^
NetCraft/src/main.c:2327:21: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
            int n = strlen(g->typing_buffer);
                ~   ^~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2342:39: warning: comparing floating point with == or != is unsafe [-Wfloat-equal]
        if (!g->typing && last_jumped != 0 && glfwGetTime() - last_jumped < JUMP_FLY_THRESHOLD) {
                          ~~~~~~~~~~~ ^  ~
NetCraft/src/main.c:2376:25: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
                int n = strlen(g->typing_buffer);
                    ~   ^~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2311:46: warning: unused parameter 'scancode' [-Wunused-parameter]
void on_key(GLFWwindow *window, int key, int scancode, int action, int mods) {
                                             ^
NetCraft/src/main.c:2311:6: warning: no previous prototype for function 'on_key' [-Wmissing-prototypes]
void on_key(GLFWwindow *window, int key, int scancode, int action, int mods) {
     ^
NetCraft/src/main.c:2453:6: warning: no previous prototype for function 'is_typing' [-Wmissing-prototypes]
bool is_typing() {
     ^
NetCraft/src/main.c:2465:21: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
            int n = strlen(g->typing_buffer);
                ~   ^~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2457:26: warning: unused parameter 'window' [-Wunused-parameter]
void on_char(GLFWwindow *window, unsigned int u) {
                         ^
NetCraft/src/main.c:2457:6: warning: no previous prototype for function 'on_char' [-Wmissing-prototypes]
void on_char(GLFWwindow *window, unsigned int u) {
     ^
NetCraft/src/main.c:2490:6: warning: no previous prototype for function '_on_scroll_blockselect' [-Wmissing-prototypes]
void _on_scroll_blockselect(double ydelta) {
     ^
NetCraft/src/main.c:2506:28: warning: unused parameter 'window' [-Wunused-parameter]
void on_scroll(GLFWwindow *window, double xdelta, double ydelta) {
                           ^
NetCraft/src/main.c:2506:43: warning: unused parameter 'xdelta' [-Wunused-parameter]
void on_scroll(GLFWwindow *window, double xdelta, double ydelta) {
                                          ^
NetCraft/src/main.c:2506:6: warning: no previous prototype for function 'on_scroll' [-Wmissing-prototypes]
void on_scroll(GLFWwindow *window, double xdelta, double ydelta) {
     ^
NetCraft/src/main.c:2516:6: warning: no previous prototype for function 'set_just_clicked' [-Wmissing-prototypes]
void set_just_clicked() {
     ^
In file included from NetCraft/src/main.c:2567:
NetCraft/deps/miniz/miniz.h:169:5: warning: 'MINIZ_X86_OR_X64_CPU' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_X86_OR_X64_CPU
    ^
NetCraft/src/main.c:2520:6: warning: no previous prototype for function 'on_mouse_button' [-Wmissing-prototypes]
void on_mouse_button(GLFWwindow *window, int button, int action, int mods) {
     ^
In file included from NetCraft/src/main.c:2567:
NetCraft/deps/miniz/miniz.h:522:5: warning: 'MINIZ_USE_UNALIGNED_LOADS_AND_STORES' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES &&MINIZ_LITTLE_ENDIAN
    ^
NetCraft/deps/miniz/miniz.h:738:41: warning: this function declaration is not a prototype [-Wstrict-prototypes]
tdefl_compressor *tdefl_compressor_alloc();
                                        ^
                                         void
NetCraft/deps/miniz/miniz.h:791:45: warning: this function declaration is not a prototype [-Wstrict-prototypes]
tinfl_decompressor *tinfl_decompressor_alloc();
                                            ^
                                             void
NetCraft/deps/miniz/miniz.h:862:5: warning: 'MINIZ_HAS_64BIT_REGISTERS' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_HAS_64BIT_REGISTERS
    ^
NetCraft/deps/miniz/miniz.h:866:5: warning: 'TINFL_USE_64BIT_BITBUF' is not defined, evaluates to 0 [-Wundef]
#if TINFL_USE_64BIT_BITBUF
    ^
NetCraft/src/main.c:2574:39: warning: cast from 'const char *' to 'char *' drops const qualifier [-Wcast-qual]
        char *base = basename((char *)path);
                                      ^
NetCraft/src/main.c:2568:31: warning: unused parameter 'window' [-Wunused-parameter]
void on_file_drop(GLFWwindow *window, int count, const char **paths) {
                              ^
NetCraft/src/main.c:2568:6: warning: no previous prototype for function 'on_file_drop' [-Wmissing-prototypes]
void on_file_drop(GLFWwindow *window, int count, const char **paths) {
     ^
In file included from NetCraft/src/main.c:2567:
NetCraft/deps/miniz/miniz.h:1039:9: warning: padding size of 'mz_zip_archive' with 4 bytes to alignment boundary [-Wpadded]
typedef struct
        ^
NetCraft/src/main.c:2623:6: warning: no previous prototype for function 'create_window' [-Wmissing-prototypes]
void create_window() {
     ^
NetCraft/src/main.c:2643:50: warning: implicit conversion turns floating-point number into integer: 'double' to 'bool' [-Wfloat-conversion]
    if (is_gamepad_connected() || (exclusive && (px || py))) {
                                                 ^~ ~~
NetCraft/src/main.c:2643:56: warning: implicit conversion turns floating-point number into integer: 'double' to 'bool' [-Wfloat-conversion]
    if (is_gamepad_connected() || (exclusive && (px || py))) {
                                                    ~~ ^~
NetCraft/src/main.c:2663:19: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        float m = 0.0025;
              ~   ^~~~~~
NetCraft/src/main.c:2664:30: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        s->rx += (mx - px) * m;
                           ~ ^
NetCraft/src/main.c:2666:34: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
            s->ry += (my - py) * m;
                               ~ ^
NetCraft/src/main.c:2669:34: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
            s->ry -= (my - py) * m;
                               ~ ^
NetCraft/src/main.c:2674:16: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        if (s->rx >= RADIANS(360)){
            ~~~^~ ~~
NetCraft/src/main.c:2677:24: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        s->ry = MAX(s->ry, -RADIANS(90));
                ~~~~~~~^~~~~~~~~~~~~~~~~
NetCraft/src/util.h:13:21: note: expanded from macro 'MAX'
#define MAX(a, b) ((a) > (b) ? (a) : (b))
                    ^  ~
NetCraft/src/main.c:2677:28: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        s->ry = MAX(s->ry, -RADIANS(90));
              ~ ~~~~~~~~~~~^~~~~~~~~~~~~
NetCraft/src/util.h:13:39: note: expanded from macro 'MAX'
#define MAX(a, b) ((a) > (b) ? (a) : (b))
                                      ^
NetCraft/src/main.c:2678:24: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
        s->ry = MIN(s->ry, RADIANS(90));
                ~~~~~~~^~~~~~~~~~~~~~~~
NetCraft/src/util.h:12:21: note: expanded from macro 'MIN'
#define MIN(a, b) ((a) < (b) ? (a) : (b))
                    ^  ~
NetCraft/src/main.c:2678:28: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        s->ry = MIN(s->ry, RADIANS(90));
              ~ ~~~~~~~~~~~^~~~~~~~~~~~
NetCraft/src/util.h:10:42: note: expanded from macro 'RADIANS'
#define RADIANS(degrees) ((degrees) * PI / 180)
                                         ^
NetCraft/src/util.h:12:39: note: expanded from macro 'MIN'
#define MIN(a, b) ((a) < (b) ? (a) : (b))
                                      ^
NetCraft/src/main.c:2634:6: warning: no previous prototype for function 'handle_mouse_input' [-Wmissing-prototypes]
void handle_mouse_input() {
     ^
NetCraft/src/main.c:2698:22: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        float m = dt * 1.0;
              ~   ~~~^~~~~
NetCraft/src/main.c:2714:45: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    get_motion_vector(g->flying, sz, sx, s->rx, s->ry, &vx, &vy, &vz);
    ~~~~~~~~~~~~~~~~~                    ~~~^~
NetCraft/src/main.c:2725:25: warning: comparing floating point with == or != is unsafe [-Wfloat-equal]
            else if (dy == 0) {
                     ~~ ^  ~
NetCraft/src/main.c:2742:20: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
    int estimate = roundf(sqrtf(
        ~~~~~~~~   ^~~~~~~~~~~~~
NetCraft/src/main.c:2745:35: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
        powf(vz * speed, 2)) * dt * 8);
        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
NetCraft/src/main.c:2742:27: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    int estimate = roundf(sqrtf(
                          ^~~~~~
NetCraft/src/main.c:2747:19: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    float ut = dt / step;
          ~~   ~~~^~~~~~
NetCraft/src/main.c:2692:6: warning: no previous prototype for function 'handle_movement' [-Wmissing-prototypes]
void handle_movement(double dt) {
     ^
NetCraft/src/main.c:2786:20: warning: comparing floating point with == or != is unsafe [-Wfloat-equal]
            if (uy == 0) {
                ~~ ^  ~
NetCraft/src/main.c:2849:26: warning: format string is not a string literal [-Wformat-nonliteral]
        if (sscanf(line, format, &pid, name) == 2) {
                         ^~~~~~
NetCraft/src/main.c:2860:26: warning: format string is not a string literal [-Wformat-nonliteral]
        if (sscanf(line, format,
                         ^~~~~~
NetCraft/src/main.c:2772:6: warning: no previous prototype for function 'parse_buffer' [-Wmissing-prototypes]
void parse_buffer(char *buffer) {
     ^
NetCraft/src/main.c:2876:6: warning: no previous prototype for function 'reset_model' [-Wmissing-prototypes]
void reset_model() {
     ^
NetCraft/src/main.c:2905:14: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void one_iter();
             ^
              void
NetCraft/src/main.c:2907:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void main_shutdown();
                  ^
                   void
NetCraft/src/main.c:2909:32: warning: missing field 'position' initializer [-Wmissing-field-initializers]
static Attrib block_attrib = {0};
                               ^
NetCraft/src/main.c:2910:31: warning: missing field 'position' initializer [-Wmissing-field-initializers]
static Attrib line_attrib = {0};
                              ^
NetCraft/src/main.c:2911:31: warning: missing field 'position' initializer [-Wmissing-field-initializers]
static Attrib text_attrib = {0};
                              ^
NetCraft/src/main.c:2912:30: warning: missing field 'position' initializer [-Wmissing-field-initializers]
static Attrib sky_attrib = {0};
                             ^
NetCraft/src/main.c:2921:11: warning: implicit conversion changes signedness: 'time_t' (aka 'long') to 'unsigned int' [-Wsign-conversion]
    srand(time(NULL));
    ~~~~~ ^~~~~~~~~~
NetCraft/src/main.c:2979:29: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    block_attrib.position = glGetAttribLocation(program, "position");
                          ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2980:23: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    block_attrib.uv = glGetAttribLocation(program, "uv");
                    ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2981:27: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    block_attrib.normal = glGetAttribLocation(program, "normal");
                        ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2982:27: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    block_attrib.matrix = glGetUniformLocation(program, "matrix");
                        ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2983:28: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    block_attrib.sampler = glGetUniformLocation(program, "sampler");
                         ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2984:27: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    block_attrib.extra1 = glGetUniformLocation(program, "sky_sampler");
                        ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2985:27: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    block_attrib.extra2 = glGetUniformLocation(program, "daylight");
                        ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2986:27: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    block_attrib.extra3 = glGetUniformLocation(program, "fog_distance");
                        ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2987:27: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    block_attrib.extra4 = glGetUniformLocation(program, "ortho");
                        ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2988:27: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    block_attrib.camera = glGetUniformLocation(program, "camera");
                        ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2989:26: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    block_attrib.timer = glGetUniformLocation(program, "timer");
                       ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2994:28: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    line_attrib.position = glGetAttribLocation(program, "position");
                         ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:2995:26: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    line_attrib.matrix = glGetUniformLocation(program, "matrix");
                       ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:3000:28: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    text_attrib.position = glGetAttribLocation(program, "position");
                         ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:3001:22: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    text_attrib.uv = glGetAttribLocation(program, "uv");
                   ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:3002:26: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    text_attrib.matrix = glGetUniformLocation(program, "matrix");
                       ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:3003:27: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    text_attrib.sampler = glGetUniformLocation(program, "sampler");
                        ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:3004:26: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    text_attrib.extra1 = glGetUniformLocation(program, "is_sign");
                       ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:3009:27: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    sky_attrib.position = glGetAttribLocation(program, "position");
                        ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:3010:21: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    sky_attrib.uv = glGetAttribLocation(program, "uv");
                  ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:3011:25: warning: implicit conversion changes signedness: 'int' to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    sky_attrib.normal = -1; // unused
                      ~ ^~
NetCraft/src/main.c:3012:25: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    sky_attrib.matrix = glGetUniformLocation(program, "matrix");
                      ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:3013:26: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    sky_attrib.sampler = glGetUniformLocation(program, "sampler");
                       ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:3014:24: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    sky_attrib.timer = glGetUniformLocation(program, "timer");
                     ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/main.c:3070:17: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void main_inited();
                ^
                 void
NetCraft/src/main.c:3072:24: warning: unused parameter 'fd' [-Wunused-parameter]
void client_opened(int fd, void *userData) {
                       ^
NetCraft/src/main.c:3072:34: warning: unused parameter 'userData' [-Wunused-parameter]
void client_opened(int fd, void *userData) {
                                 ^
NetCraft/src/main.c:3072:6: warning: no previous prototype for function 'client_opened' [-Wmissing-prototypes]
void client_opened(int fd, void *userData) {
     ^
NetCraft/src/main.c:3080:24: warning: unused parameter 'fd' [-Wunused-parameter]
void client_closed(int fd, void *userData) {
                       ^
NetCraft/src/main.c:3080:34: warning: unused parameter 'userData' [-Wunused-parameter]
void client_closed(int fd, void *userData) {
                                 ^
NetCraft/src/main.c:3080:6: warning: no previous prototype for function 'client_closed' [-Wmissing-prototypes]
void client_closed(int fd, void *userData) {
     ^
NetCraft/src/main.c:3085:30: warning: unused parameter 'fd' [-Wunused-parameter]
void client_socket_error(int fd, int err, const char *msg, void *userData) {
                             ^
NetCraft/src/main.c:3085:66: warning: unused parameter 'userData' [-Wunused-parameter]
void client_socket_error(int fd, int err, const char *msg, void *userData) {
                                                                 ^
NetCraft/src/main.c:3085:6: warning: no previous prototype for function 'client_socket_error' [-Wmissing-prototypes]
void client_socket_error(int fd, int err, const char *msg, void *userData) {
     ^
NetCraft/src/main.c:3097:21: warning: disabled expansion of recursive macro [-Wdisabled-macro-expansion]
            fprintf(stderr, "fatal error: db_init failed!\n");
                    ^
emsdk-portable/emscripten/1.37.9/system/include/libc/stdio.h:61:17: note: expanded from macro 'stderr'
#define stderr (stderr)
                ^
NetCraft/src/main.c:3119:48: warning: passing 'void (char *)' to parameter of type 'void *' converts between void pointer and function pointer [-Wpedantic]
        emscripten_set_socket_message_callback(parse_buffer, client_message);
                                               ^~~~~~~~~~~~
emsdk-portable/emscripten/1.37.9/system/include/emscripten/emscripten.h:92:58: note: passing argument to parameter 'userData' here
extern void emscripten_set_socket_message_callback(void *userData, em_socket_callback callback);
                                                         ^
NetCraft/src/main.c:3092:22: warning: unused parameter 'unused' [-Wunused-parameter]
void main_init(void *unused) {
                     ^
NetCraft/src/main.c:3131:6: warning: no previous prototype for function 'main_inited' [-Wmissing-prototypes]
void main_inited() {
     ^
NetCraft/src/main.c:3070:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void main_inited();
     ^
                 void
NetCraft/src/main.c:3156:13: warning: unused variable 'me' [-Wunused-variable]
    Player *me = g->players;
            ^
NetCraft/src/main.c:3154:6: warning: no previous prototype for function 'main_shutdown' [-Wmissing-prototypes]
void main_shutdown() {
     ^
NetCraft/src/main.c:2907:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void main_shutdown();
     ^
                   void
NetCraft/src/main.c:3169:18: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void render_scene();
                 ^
                  void
NetCraft/src/main.c:3170:6: warning: no previous prototype for function 'one_iter' [-Wmissing-prototypes]
void one_iter() {
     ^
NetCraft/src/main.c:2905:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void one_iter();
     ^
              void
NetCraft/src/main.c:3273:6: warning: no previous prototype for function 'translate_camera_x_offset' [-Wmissing-prototypes]
void translate_camera_x_offset(float h) {
     ^
NetCraft/src/main.c:3328:12: warning: expansion of date or time macro is not reproducible [-Wdate-time]
           __DATE__
           ^
NetCraft/src/main.c:3333:34: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
        int hour = time_of_day() * 24;
            ~~~~   ~~~~~~~~~~~~~~^~~~
NetCraft/src/main.c:3348:46: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
            chunked(s->x), chunked(s->z), s->x, s->y, s->z,
                                          ~~~^
NetCraft/src/main.c:3348:52: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
            chunked(s->x), chunked(s->z), s->x, s->y, s->z,
                                                ~~~^
NetCraft/src/main.c:3348:58: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
            chunked(s->x), chunked(s->z), s->x, s->y, s->z,
                                                      ~~~^
NetCraft/src/main.c:47:9: warning: macro is not used [-Wunused-macros]
#define ALIGN_RIGHT 2
        ^
NetCraft/src/main.c:3279:6: warning: no previous prototype for function 'render_scene' [-Wmissing-prototypes]
void render_scene() {
     ^
NetCraft/src/main.c:3169:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void render_scene();
     ^
                  void
387 warnings generated.
[ 40%] Building C object CMakeFiles/craft.dir/src/map.c.o
NetCraft/src/map.c:9:5: warning: no previous prototype for function 'hash_int' [-Wmissing-prototypes]
int hash_int(int key) {
    ^
NetCraft/src/map.c:19:5: warning: no previous prototype for function 'hash' [-Wmissing-prototypes]
int hash(int x, int y, int z) {
    ^
NetCraft/src/map.c:30:17: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    map->mask = mask;
              ~ ^~~~
NetCraft/src/map.c:50:26: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    unsigned int index = hash(x, y, z) & map->mask;
                         ^~~~~~~~~~~~~ ~
NetCraft/src/map.c:66:26: warning: implicit conversion loses integer precision: 'int' to 'char' [-Wconversion]
            entry->e.w = w;
                       ~ ^
NetCraft/src/map.c:71:22: warning: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Wconversion]
        entry->e.x = x;
                   ~ ^
NetCraft/src/map.c:72:22: warning: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Wconversion]
        entry->e.y = y;
                   ~ ^
NetCraft/src/map.c:73:22: warning: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Wconversion]
        entry->e.z = z;
                   ~ ^
NetCraft/src/map.c:74:22: warning: implicit conversion loses integer precision: 'int' to 'char' [-Wconversion]
        entry->e.w = w;
                   ~ ^
NetCraft/src/map.c:85:26: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    unsigned int index = hash(x, y, z) & map->mask;
                         ^~~~~~~~~~~~~ ~
10 warnings generated.
[ 45%] Building C object CMakeFiles/craft.dir/src/matrix.c.o
In file included from NetCraft/src/matrix.c:4:
NetCraft/src/util.h:16:5: warning: 'true' is not defined, evaluates to 0 [-Wundef]
#if DEBUG
    ^
NetCraft/src/config.h:5:15: note: expanded from macro 'DEBUG'
#define DEBUG true
              ^
In file included from NetCraft/src/matrix.c:4:
NetCraft/src/util.h:29:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
double rand_double();
                  ^
                   void
NetCraft/src/matrix.c:153:16: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    temp = 2.0 * znear;
         ~ ~~~~^~~~~~~
NetCraft/src/matrix.c:153:18: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    temp = 2.0 * znear;
               ~ ^~~~~
NetCraft/src/matrix.c:180:34: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    ymax = znear * tanf(fov * PI / 360.0);
                   ~~~~ ~~~~~~~~~^~~~~~~
NetCraft/src/matrix.c:180:25: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    ymax = znear * tanf(fov * PI / 360.0);
                        ^~~ ~
NetCraft/src/matrix.c:249:32: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    mat_rotate(b, 0, 1, 0, -PI / 4);
    ~~~~~~~~~~             ~~~~^~~
NetCraft/src/matrix.c:251:32: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    mat_rotate(b, 1, 0, 0, -PI / 10);
    ~~~~~~~~~~             ~~~~^~~~
8 warnings generated.
[ 50%] Building C object CMakeFiles/craft.dir/src/mining.c.o
In file included from NetCraft/src/mining.c:4:
NetCraft/src/mining.h:2:15: warning: this function declaration is not a prototype [-Wstrict-prototypes]
bool is_mining();
              ^
               void
NetCraft/src/mining.h:3:17: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void mining_stop();
                ^
                 void
NetCraft/src/mining.h:4:17: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void mining_tick();
                ^
                 void
NetCraft/src/mining.h:5:18: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void mining_start();
                 ^
                  void
NetCraft/src/mining.h:6:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void building_stop();
                  ^
                   void
NetCraft/src/mining.h:7:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void building_tick();
                  ^
                   void
NetCraft/src/mining.h:8:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void building_start();
                   ^
                    void
NetCraft/src/mining.h:12:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
extern void on_mine();
                   ^
                    void
NetCraft/src/mining.h:13:21: warning: this function declaration is not a prototype [-Wstrict-prototypes]
extern void on_build();
                    ^
                     void
NetCraft/src/mining.c:23:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
extern void on_mine();
                   ^
                    void
NetCraft/src/mining.c:24:21: warning: this function declaration is not a prototype [-Wstrict-prototypes]
extern void on_build();
                    ^
                     void
NetCraft/src/mining.c:27:6: warning: no previous prototype for function 'is_mining' [-Wmissing-prototypes]
bool is_mining() {
     ^
NetCraft/src/mining.h:2:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
bool is_mining();
     ^
               void
NetCraft/src/mining.c:31:6: warning: no previous prototype for function 'mining_stop' [-Wmissing-prototypes]
void mining_stop() {
     ^
NetCraft/src/mining.h:3:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void mining_stop();
     ^
                 void
NetCraft/src/mining.c:60:34: warning: cast from function call of type 'float' to non-matching type 'int' [-Wbad-function-cast]
        else mining_stage = (int)roundf((float)mining_progress / hardness * 9);
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/mining.c:37:6: warning: no previous prototype for function 'mining_tick' [-Wmissing-prototypes]
void mining_tick() {
     ^
NetCraft/src/mining.h:4:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void mining_tick();
     ^
                 void
NetCraft/src/mining.c:73:6: warning: no previous prototype for function 'mining_start' [-Wmissing-prototypes]
void mining_start() {
     ^
NetCraft/src/mining.h:5:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void mining_start();
     ^
                  void
NetCraft/src/mining.c:80:6: warning: no previous prototype for function 'building_stop' [-Wmissing-prototypes]
void building_stop() {
     ^
NetCraft/src/mining.h:6:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void building_stop();
     ^
                   void
NetCraft/src/mining.c:86:6: warning: no previous prototype for function 'building_tick' [-Wmissing-prototypes]
void building_tick() {
     ^
NetCraft/src/mining.h:7:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void building_tick();
     ^
                   void
NetCraft/src/mining.c:97:6: warning: no previous prototype for function 'building_start' [-Wmissing-prototypes]
void building_start() {
     ^
NetCraft/src/mining.h:8:6: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
void building_start();
     ^
                    void
19 warnings generated.
[ 54%] Building C object CMakeFiles/craft.dir/src/ring.c.o
NetCraft/src/ring.c:7:22: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    ring->capacity = capacity;
                   ~ ^~~~~~~~
NetCraft/src/ring.c:10:38: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    ring->data = (RingEntry *)calloc(capacity, sizeof(RingEntry));
                              ~~~~~~ ^~~~~~~~
NetCraft/src/ring.c:27:26: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
        return ring->end - ring->start;
        ~~~~~~ ~~~~~~~~~~^~~~~~~~~~~~~
NetCraft/src/ring.c:30:31: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
        return ring->capacity - (ring->start - ring->end);
        ~~~~~~ ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/ring.c:37:42: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
    ring_alloc(&new_ring, ring->capacity * 2);
    ~~~~~~~~~~            ~~~~~~~~~~~~~~~^~~
5 warnings generated.
[ 59%] Building C object CMakeFiles/craft.dir/src/sign.c.o
NetCraft/src/sign.c:8:22: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    list->capacity = capacity;
                   ~ ^~~~~~~~
NetCraft/src/sign.c:10:33: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    list->data = (Sign *)calloc(capacity, sizeof(Sign));
                         ~~~~~~ ^~~~~~~~
NetCraft/src/sign.c:19:47: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
    sign_list_alloc(&new_list, list->capacity * 2);
    ~~~~~~~~~~~~~~~            ~~~~~~~~~~~~~~~^~~
NetCraft/src/sign.c:26:6: warning: no previous prototype for function '_sign_list_add' [-Wmissing-prototypes]
void _sign_list_add(SignList *list, Sign *sign) {
     ^
NetCraft/src/sign.c:51:23: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
    for (int i = 0; i < list->size; i++) {
                    ~ ^ ~~~~~~~~~~
NetCraft/src/sign.c:65:23: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
    for (int i = 0; i < list->size; i++) {
                    ~ ^ ~~~~~~~~~~
6 warnings generated.
[ 63%] Building C object CMakeFiles/craft.dir/src/touch.c.o
In file included from NetCraft/src/touch.c:4:
NetCraft/src/mining.h:2:15: warning: this function declaration is not a prototype [-Wstrict-prototypes]
bool is_mining();
              ^
               void
NetCraft/src/mining.h:3:17: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void mining_stop();
                ^
                 void
NetCraft/src/mining.h:4:17: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void mining_tick();
                ^
                 void
NetCraft/src/mining.h:5:18: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void mining_start();
                 ^
                  void
NetCraft/src/mining.h:6:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void building_stop();
                  ^
                   void
NetCraft/src/mining.h:7:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void building_tick();
                  ^
                   void
NetCraft/src/mining.h:8:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
void building_start();
                   ^
                    void
NetCraft/src/mining.h:12:20: warning: this function declaration is not a prototype [-Wstrict-prototypes]
extern void on_mine();
                   ^
                    void
NetCraft/src/mining.h:13:21: warning: this function declaration is not a prototype [-Wstrict-prototypes]
extern void on_build();
                    ^
                     void
NetCraft/src/touch.c:6:6: warning: no previous extern declaration for non-static variable 'touch_forward' [-Wmissing-variable-declarations]
bool touch_forward = false;
     ^
NetCraft/src/touch.c:7:6: warning: no previous extern declaration for non-static variable 'touch_jump' [-Wmissing-variable-declarations]
bool touch_jump = false;
     ^
NetCraft/src/touch.c:9:6: warning: no previous extern declaration for non-static variable 'touch_active' [-Wmissing-variable-declarations]
long touch_active = 0;
     ^
NetCraft/src/touch.c:10:6: warning: no previous extern declaration for non-static variable 'touch_clientX' [-Wmissing-variable-declarations]
long touch_clientX = 0;
     ^
NetCraft/src/touch.c:11:6: warning: no previous extern declaration for non-static variable 'touch_clientY' [-Wmissing-variable-declarations]
long touch_clientY = 0;
     ^
NetCraft/src/touch.c:13:13: warning: no previous extern declaration for non-static variable 'window' [-Wmissing-variable-declarations]
GLFWwindow *window = NULL;
            ^
NetCraft/src/touch.c:24:29: warning: this function declaration is not a prototype [-Wstrict-prototypes]
extern void set_just_clicked();
                            ^
                             void
NetCraft/src/touch.c:26:34: warning: unused parameter 'eventType' [-Wunused-parameter]
static EM_BOOL on_touchstart(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData) {
                                 ^
NetCraft/src/touch.c:26:91: warning: unused parameter 'userData' [-Wunused-parameter]
static EM_BOOL on_touchstart(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData) {
                                                                                          ^
NetCraft/src/touch.c:48:33: warning: unused parameter 'eventType' [-Wunused-parameter]
static EM_BOOL on_touchmove(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData) {
                                ^
NetCraft/src/touch.c:48:90: warning: unused parameter 'userData' [-Wunused-parameter]
static EM_BOOL on_touchmove(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData) {
                                                                                         ^
NetCraft/src/touch.c:58:32: warning: unused parameter 'eventType' [-Wunused-parameter]
static EM_BOOL on_touchend(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData) {
                               ^
NetCraft/src/touch.c:58:89: warning: unused parameter 'userData' [-Wunused-parameter]
static EM_BOOL on_touchend(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData) {
                                                                                        ^
NetCraft/src/touch.c:98:35: warning: unused parameter 'eventType' [-Wunused-parameter]
static EM_BOOL on_touchcancel(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData) {
                                  ^
NetCraft/src/touch.c:98:74: warning: unused parameter 'touchEvent' [-Wunused-parameter]
static EM_BOOL on_touchcancel(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData) {
                                                                         ^
NetCraft/src/touch.c:98:92: warning: unused parameter 'userData' [-Wunused-parameter]
static EM_BOOL on_touchcancel(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData) {
                                                                                           ^
NetCraft/src/touch.c:103:6: warning: no previous prototype for function 'init_touch_callbacks' [-Wmissing-prototypes]
void init_touch_callbacks(GLFWwindow *w) {
     ^
26 warnings generated.
[ 68%] Building C object CMakeFiles/craft.dir/src/util.c.o
In file included from NetCraft/src/util.c:6:
NetCraft/deps/miniz/miniz.h:169:5: warning: 'MINIZ_X86_OR_X64_CPU' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_X86_OR_X64_CPU
    ^
NetCraft/deps/miniz/miniz.h:522:5: warning: 'MINIZ_USE_UNALIGNED_LOADS_AND_STORES' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES &&MINIZ_LITTLE_ENDIAN
    ^
NetCraft/deps/miniz/miniz.h:738:41: warning: this function declaration is not a prototype [-Wstrict-prototypes]
tdefl_compressor *tdefl_compressor_alloc();
                                        ^
                                         void
NetCraft/deps/miniz/miniz.h:791:45: warning: this function declaration is not a prototype [-Wstrict-prototypes]
tinfl_decompressor *tinfl_decompressor_alloc();
                                            ^
                                             void
NetCraft/deps/miniz/miniz.h:862:5: warning: 'MINIZ_HAS_64BIT_REGISTERS' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_HAS_64BIT_REGISTERS
    ^
NetCraft/deps/miniz/miniz.h:866:5: warning: 'TINFL_USE_64BIT_BITBUF' is not defined, evaluates to 0 [-Wundef]
#if TINFL_USE_64BIT_BITBUF
    ^
In file included from NetCraft/src/util.c:8:
NetCraft/src/util.h:16:5: warning: 'true' is not defined, evaluates to 0 [-Wundef]
#if DEBUG
    ^
NetCraft/src/config.h:5:15: note: expanded from macro 'DEBUG'
#define DEBUG true
              ^
In file included from NetCraft/src/util.c:8:
NetCraft/src/util.h:29:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
double rand_double();
                  ^
                   void
NetCraft/src/util.c:20:20: warning: cast from function call of type 'int' to non-matching type 'double' [-Wbad-function-cast]
    return (double)rand() / (double)RAND_MAX;
                   ^~~~~~
NetCraft/src/util.c:19:8: warning: no previous prototype for function 'rand_double' [-Wmissing-prototypes]
double rand_double() {
       ^
NetCraft/src/util.h:29:8: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
double rand_double();
       ^
                   void
NetCraft/src/util.c:28:20: warning: implicit conversion turns floating-point number into integer: 'double' to 'unsigned int' [-Wfloat-conversion]
        fps->fps = round(fps->frames / elapsed);
                 ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/util.c:37:17: warning: disabled expansion of recursive macro [-Wdisabled-macro-expansion]
        fprintf(stderr, "fopen %s failed: %d %s\n", path, errno, strerror(errno));
                ^
emsdk-portable/emscripten/1.37.9/system/include/libc/stdio.h:61:17: note: expanded from macro 'stderr'
#define stderr (stderr)
                ^
NetCraft/src/util.c:43:32: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    char *data = calloc(length + 1, sizeof(char));
                 ~~~~~~ ~~~~~~~^~~
NetCraft/src/util.c:44:20: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
    fread(data, 1, length, file);
    ~~~~~          ^~~~~~
NetCraft/src/util.c:34:7: warning: no previous prototype for function 'load_file' [-Wmissing-prototypes]
char *load_file(const char *path) {
      ^
NetCraft/src/util.c:63:41: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    return malloc(sizeof(GLfloat) * 6 * components * faces);
                                      ~ ^~~~~~~~~~
NetCraft/src/util.c:63:54: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    return malloc(sizeof(GLfloat) * 6 * components * faces);
                                                   ~ ^~~~~
NetCraft/src/util.c:68:42: warning: implicit conversion changes signedness: 'unsigned int' to 'GLsizei' (aka 'int') [-Wsign-conversion]
        sizeof(GLfloat) * 6 * components * faces, data);
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
NetCraft/src/util.c:68:31: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
        sizeof(GLfloat) * 6 * components * faces, data);
                            ~ ^~~~~~~~~~
NetCraft/src/util.c:68:44: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
        sizeof(GLfloat) * 6 * components * faces, data);
                                         ~ ^~~~~
NetCraft/src/util.c:82:31: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'unsigned int' [-Wsign-conversion]
        GLchar *info = calloc(length, sizeof(GLchar));
                       ~~~~~~ ^~~~~~
NetCraft/src/util.c:84:17: warning: disabled expansion of recursive macro [-Wdisabled-macro-expansion]
        fprintf(stderr, "glCompileShader failed:\n%s\n", info);
                ^
emsdk-portable/emscripten/1.37.9/system/include/libc/stdio.h:61:17: note: expanded from macro 'stderr'
#define stderr (stderr)
                ^
NetCraft/src/util.c:107:31: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'unsigned int' [-Wsign-conversion]
        GLchar *info = calloc(length, sizeof(GLchar));
                       ~~~~~~ ^~~~~~
NetCraft/src/util.c:109:17: warning: disabled expansion of recursive macro [-Wdisabled-macro-expansion]
        fprintf(stderr, "glLinkProgram failed: %s\n", info);
                ^
emsdk-portable/emscripten/1.37.9/system/include/libc/stdio.h:61:17: note: expanded from macro 'stderr'
#define stderr (stderr)
                ^
NetCraft/src/util.c:126:6: warning: no previous prototype for function 'flip_image_vertical' [-Wmissing-prototypes]
void flip_image_vertical(
     ^
NetCraft/src/util.c:146:17: warning: disabled expansion of recursive macro [-Wdisabled-macro-expansion]
        fprintf(stderr, "load_png_texture %s failed, error %u: %s\n", file_name, error, lodepng_error_text(error));
                ^
emsdk-portable/emscripten/1.37.9/system/include/libc/stdio.h:61:17: note: expanded from macro 'stderr'
#define stderr (stderr)
                ^
NetCraft/src/util.c:150:45: warning: implicit conversion changes signedness: 'unsigned int' to 'GLsizei' (aka 'int') [-Wsign-conversion]
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA,
    ~~~~~~~~~~~~                            ^~~~~
NetCraft/src/util.c:150:52: warning: implicit conversion changes signedness: 'unsigned int' to 'GLsizei' (aka 'int') [-Wsign-conversion]
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA,
    ~~~~~~~~~~~~                                   ^~~~~~
NetCraft/src/util.c:180:17: warning: disabled expansion of recursive macro [-Wdisabled-macro-expansion]
        fprintf(stderr, "load_block_texture_128 %s failed, error %u: %s\n", "textures/texture.png", error, lodepng_error_text(error));
                ^
emsdk-portable/emscripten/1.37.9/system/include/libc/stdio.h:61:17: note: expanded from macro 'stderr'
#define stderr (stderr)
                ^
NetCraft/src/util.c:189:17: warning: disabled expansion of recursive macro [-Wdisabled-macro-expansion]
        fprintf(stderr, "load_block_texture_128 %s failed, error %u: %s\n", path, error, lodepng_error_text(error));
                ^
emsdk-portable/emscripten/1.37.9/system/include/libc/stdio.h:61:17: note: expanded from macro 'stderr'
#define stderr (stderr)
                ^
NetCraft/src/util.c:194:39: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
    int stride = sizeof(char) * width * 4;
        ~~~~~~   ~~~~~~~~~~~~~~~~~~~~~^~~
NetCraft/src/util.c:195:41: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
    int stride2 = sizeof(char) * width2 * 4;
        ~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~^~~
NetCraft/src/util.c:216:45: warning: implicit conversion changes signedness: 'unsigned int' to 'GLsizei' (aka 'int') [-Wsign-conversion]
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA,
    ~~~~~~~~~~~~                            ^~~~~
NetCraft/src/util.c:216:52: warning: implicit conversion changes signedness: 'unsigned int' to 'GLsizei' (aka 'int') [-Wsign-conversion]
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA,
    ~~~~~~~~~~~~                                   ^~~~~~
NetCraft/src/util.c:196:23: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
    for (int i = 0; i < height2; i++) {
                    ~ ^ ~~~~~~~
NetCraft/src/util.c:197:27: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
        for (int j = 0; j < width2; j++) {
                        ~ ^ ~~~~~~
NetCraft/src/util.c:282:18: warning: array subscript is of type 'char' [-Wchar-subscripts]
    return lookup[input];
                 ^~~~~~
NetCraft/src/util.c:287:18: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
    int length = strlen(input);
        ~~~~~~   ^~~~~~~~~~~~~
NetCraft/src/util.c:311:43: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
                    strncat(output, "\n", max_length - strlen(output) - 1);
                                          ^~~~~~~~~~ ~
NetCraft/src/util.c:314:42: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
                    strncat(output, " ", max_length - strlen(output) - 1);
                                         ^~~~~~~~~~ ~
NetCraft/src/util.c:317:36: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
            strncat(output, token, max_length - strlen(output) - 1);
                                   ^~~~~~~~~~ ~
NetCraft/src/util.c:322:31: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
        strncat(output, "\n", max_length - strlen(output) - 1);
                              ^~~~~~~~~~ ~
NetCraft/src/util.c:329:21: warning: unused parameter 'width' [-Wunused-parameter]
void screenshot(int width, int height) {
                    ^
NetCraft/src/util.c:329:32: warning: unused parameter 'height' [-Wunused-parameter]
void screenshot(int width, int height) {
                               ^
44 warnings generated.
[ 72%] Building C object CMakeFiles/craft.dir/src/vr.c.o
In file included from NetCraft/src/vr.c:8:
NetCraft/src/util.h:29:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
double rand_double();
                  ^
                   void
NetCraft/src/vr.c:10:25: warning: this function declaration is not a prototype [-Wstrict-prototypes]
extern void render_scene();
                        ^
                         void
NetCraft/src/vr.c:70:26: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    vr_attrib.position = glGetAttribLocation(program, "position");;
                       ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/vr.c:71:20: warning: implicit conversion changes signedness: 'int' to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    vr_attrib.uv = -1; // unused
                 ~ ^~
NetCraft/src/vr.c:72:24: warning: implicit conversion changes signedness: 'int' to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    vr_attrib.normal = -1; // unused
                     ~ ^~
NetCraft/src/vr.c:73:24: warning: implicit conversion changes signedness: 'int' to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    vr_attrib.matrix = -1; // unused
                     ~ ^~
NetCraft/src/vr.c:74:25: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    vr_attrib.sampler = glGetUniformLocation(program, "texid");
                      ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/vr.c:75:23: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    vr_attrib.scale = glGetUniformLocation(program, "scale");
                    ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/vr.c:76:25: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    vr_attrib.scaleIn = glGetUniformLocation(program, "scaleIn");
                      ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/vr.c:77:28: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    vr_attrib.lensCenter = glGetUniformLocation(program, "lensCenter");
                         ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/vr.c:78:30: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    vr_attrib.hmdWarpParam = glGetUniformLocation(program, "hmdWarpParam");
                           ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/vr.c:79:30: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    vr_attrib.chromAbParam = glGetUniformLocation(program, "chromAbParam");
                           ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/vr.c:80:38: warning: implicit conversion changes signedness: 'GLint' (aka 'int') to 'GLuint' (aka 'unsigned int') [-Wsign-conversion]
    vr_attrib.skipBarrelDistortion = glGetUniformLocation(program, "skipBarrelDistortion");
                                   ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/vr.c:113:19: warning: implicit conversion loses floating-point precision: 'double' to 'GLfloat' (aka 'float') [-Wconversion]
    hScreenSize = 0.12576;
                ~ ^~~~~~~
NetCraft/src/vr.c:114:19: warning: implicit conversion loses floating-point precision: 'double' to 'GLfloat' (aka 'float') [-Wconversion]
    vScreenSize = 0.07074;
                ~ ^~~~~~~
NetCraft/src/vr.c:115:30: warning: implicit conversion loses floating-point precision: 'double' to 'GLfloat' (aka 'float') [-Wconversion]
    interpupillaryDistance = 0.0635;
                           ~ ^~~~~~
NetCraft/src/vr.c:116:30: warning: implicit conversion loses floating-point precision: 'double' to 'GLfloat' (aka 'float') [-Wconversion]
    lensSeparationDistance = 0.0635;
                           ~ ^~~~~~
NetCraft/src/vr.c:117:27: warning: implicit conversion loses floating-point precision: 'double' to 'GLfloat' (aka 'float') [-Wconversion]
    eyeToScreenDistance = 0.041;
                        ~ ^~~~~
NetCraft/src/vr.c:119:22: warning: implicit conversion loses floating-point precision: 'double' to 'GLfloat' (aka 'float') [-Wconversion]
    distortionK[1] = 0.22;
                   ~ ^~~~
NetCraft/src/vr.c:120:22: warning: implicit conversion loses floating-point precision: 'double' to 'GLfloat' (aka 'float') [-Wconversion]
    distortionK[2] = 1.24;
                   ~ ^~~~
NetCraft/src/vr.c:122:28: warning: implicit conversion loses floating-point precision: 'double' to 'GLfloat' (aka 'float') [-Wconversion]
    chromaAbParameter[0] = 0.996;
                         ~ ^~~~~
NetCraft/src/vr.c:123:28: warning: implicit conversion loses floating-point precision: 'double' to 'GLfloat' (aka 'float') [-Wconversion]
    chromaAbParameter[1] = -0.004;
                         ~ ^~~~~~
NetCraft/src/vr.c:124:28: warning: implicit conversion loses floating-point precision: 'double' to 'GLfloat' (aka 'float') [-Wconversion]
    chromaAbParameter[2] = 1.014;
                         ~ ^~~~~
NetCraft/src/vr.c:132:32: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    float aspect = hResolution / (2.0*vResolution);
          ~~~~~~   ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
NetCraft/src/vr.c:137:20: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    float r = -1.0 - (4 * (hScreenSize/4 - lensSeparationDistance/2) / hScreenSize);
          ~   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/vr.c:137:70: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    float r = -1.0 - (4 * (hScreenSize/4 - lensSeparationDistance/2) / hScreenSize);
                   ~  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
NetCraft/src/vr.c:142:63: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    double h = 4 * (hScreenSize/4 - interpupillaryDistance/2) / hScreenSize;
           ~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
NetCraft/src/vr.c:144:14: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    left.h = h;
           ~ ^
NetCraft/src/vr.c:145:15: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
    right.h = -h;
            ~ ^~
NetCraft/src/vr.c:170:19: warning: implicit conversion loses floating-point precision: 'double' to 'GLfloat' (aka 'float') [-Wconversion]
    scale[0] = 1.0/distScale;
             ~ ~~~^~~~~~~~~~
NetCraft/src/vr.c:170:20: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    scale[0] = 1.0/distScale;
                  ~^~~~~~~~~
NetCraft/src/vr.c:171:26: warning: implicit conversion loses floating-point precision: 'double' to 'GLfloat' (aka 'float') [-Wconversion]
    scale[1] = 1.0*aspect/distScale;
             ~ ~~~~~~~~~~^~~~~~~~~~
NetCraft/src/vr.c:171:20: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    scale[1] = 1.0*aspect/distScale;
                  ~^~~~~~
NetCraft/src/vr.c:171:27: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    scale[1] = 1.0*aspect/distScale;
                         ~^~~~~~~~~
NetCraft/src/vr.c:174:21: warning: implicit conversion loses floating-point precision: 'double' to 'GLfloat' (aka 'float') [-Wconversion]
    scaleIn[1] = 1.0/aspect;
               ~ ~~~^~~~~~~
NetCraft/src/vr.c:174:22: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
    scaleIn[1] = 1.0/aspect;
                    ~^~~~~~
NetCraft/src/vr.c:139:11: warning: unused variable 'fov' [-Wunused-variable]
    float fov = 2*atan2f(vScreenSize*distScale, 2*eyeToScreenDistance);
          ^
NetCraft/src/vr.c:83:6: warning: no previous prototype for function 'init_vr' [-Wmissing-prototypes]
void init_vr(GLFWwindow *window) {
     ^
NetCraft/src/vr.c:223:6: warning: no previous prototype for function 'vr_toggle_skip_barrel_distortion' [-Wmissing-prototypes]
void vr_toggle_skip_barrel_distortion() {
     ^
NetCraft/src/vr.c:227:29: warning: declaration shadows a variable in the global scope [-Wshadow]
void vr_update_viewport(int width, int height) {
                            ^
NetCraft/src/vr.c:13:12: note: previous declaration is here
static int width;
           ^
NetCraft/src/vr.c:227:40: warning: declaration shadows a variable in the global scope [-Wshadow]
void vr_update_viewport(int width, int height) {
                                       ^
NetCraft/src/vr.c:14:12: note: previous declaration is here
static int height;
           ^
NetCraft/src/vr.c:227:6: warning: no previous prototype for function 'vr_update_viewport' [-Wmissing-prototypes]
void vr_update_viewport(int width, int height) {
     ^
NetCraft/src/vr.c:242:16: warning: implicit conversion turns floating-point number into integer: 'float' to 'GLint' (aka 'int') [-Wfloat-conversion]
    glViewport(eye->viewport[0], eye->viewport[1], eye->viewport[2], eye->viewport[3]);
    ~~~~~~~~~~ ^~~~~~~~~~~~~~~~
NetCraft/src/vr.c:242:34: warning: implicit conversion turns floating-point number into integer: 'float' to 'GLint' (aka 'int') [-Wfloat-conversion]
    glViewport(eye->viewport[0], eye->viewport[1], eye->viewport[2], eye->viewport[3]);
    ~~~~~~~~~~                   ^~~~~~~~~~~~~~~~
NetCraft/src/vr.c:242:52: warning: implicit conversion turns floating-point number into integer: 'float' to 'GLsizei' (aka 'int') [-Wfloat-conversion]
    glViewport(eye->viewport[0], eye->viewport[1], eye->viewport[2], eye->viewport[3]);
    ~~~~~~~~~~                                     ^~~~~~~~~~~~~~~~
NetCraft/src/vr.c:242:70: warning: implicit conversion turns floating-point number into integer: 'float' to 'GLsizei' (aka 'int') [-Wfloat-conversion]
    glViewport(eye->viewport[0], eye->viewport[1], eye->viewport[2], eye->viewport[3]);
    ~~~~~~~~~~                                                       ^~~~~~~~~~~~~~~~
NetCraft/src/vr.c:250:27: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(vr_attrib.sampler, 4);
    ~~~~~~~~~~~ ~~~~~~~~~~^~~~~~~
NetCraft/src/vr.c:252:28: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform2fv(vr_attrib.scale, 1, scale);
    ~~~~~~~~~~~~ ~~~~~~~~~~^~~~~
NetCraft/src/vr.c:253:28: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform2fv(vr_attrib.scaleIn, 1, scaleIn);
    ~~~~~~~~~~~~ ~~~~~~~~~~^~~~~~~
NetCraft/src/vr.c:254:28: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform2fv(vr_attrib.lensCenter, 1, eye->lensCenter);
    ~~~~~~~~~~~~ ~~~~~~~~~~^~~~~~~~~~
NetCraft/src/vr.c:255:28: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform4fv(vr_attrib.hmdWarpParam, 1, distortionK); // hmdWarpParam = distortionK
    ~~~~~~~~~~~~ ~~~~~~~~~~^~~~~~~~~~~~
NetCraft/src/vr.c:256:28: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform4fv(vr_attrib.chromAbParam, 1, chromaAbParameter); // chromAbParam = chromaAbParameter
    ~~~~~~~~~~~~ ~~~~~~~~~~^~~~~~~~~~~~
NetCraft/src/vr.c:257:27: warning: implicit conversion changes signedness: 'GLuint' (aka 'unsigned int') to 'GLint' (aka 'int') [-Wsign-conversion]
    glUniform1i(vr_attrib.skipBarrelDistortion, skipBarrelDistortion);
    ~~~~~~~~~~~ ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
NetCraft/src/vr.c:276:6: warning: no previous prototype for function 'vr_render' [-Wmissing-prototypes]
void vr_render() {
     ^
NetCraft/src/vr.c:63:3: warning: no previous extern declaration for non-static variable 'vr_attrib' [-Wmissing-variable-declarations]
} vr_attrib;
  ^
55 warnings generated.
[ 77%] Building C object CMakeFiles/craft.dir/src/world.c.o
NetCraft/src/world.c:16:34: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
            float f = simplex2(x * 0.01, z * 0.01, 4, 0.5, 2);
                      ~~~~~~~~ ~~^~~~~~
NetCraft/src/world.c:16:44: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
            float f = simplex2(x * 0.01, z * 0.01, 4, 0.5, 2);
                      ~~~~~~~~           ~~^~~~~~
NetCraft/src/world.c:17:35: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
            float g = simplex2(-x * 0.01, -z * 0.01, 2, 0.9, 2);
                      ~~~~~~~~ ~~~^~~~~~
NetCraft/src/world.c:17:46: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
            float g = simplex2(-x * 0.01, -z * 0.01, 2, 0.9, 2);
                      ~~~~~~~~            ~~~^~~~~~
NetCraft/src/world.c:17:57: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
            float g = simplex2(-x * 0.01, -z * 0.01, 2, 0.9, 2);
                      ~~~~~~~~                          ^~~
NetCraft/src/world.c:18:29: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
            int mh = g * 32 + 16;
                ~~   ~~~~~~~^~~~
NetCraft/src/world.c:19:23: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
            int h = f * mh;
                ~   ~~^~~~
NetCraft/src/world.c:33:25: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
                    if (simplex2(-x * 0.1, z * 0.1, 4, 0.8, 2) > 0.6) {
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~
NetCraft/src/world.c:33:37: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
                    if (simplex2(-x * 0.1, z * 0.1, 4, 0.8, 2) > 0.6) {
                        ~~~~~~~~ ~~~^~~~~
NetCraft/src/world.c:33:46: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
                    if (simplex2(-x * 0.1, z * 0.1, 4, 0.8, 2) > 0.6) {
                        ~~~~~~~~           ~~^~~~~
NetCraft/src/world.c:33:56: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
                    if (simplex2(-x * 0.1, z * 0.1, 4, 0.8, 2) > 0.6) {
                        ~~~~~~~~                       ^~~
NetCraft/src/world.c:37:25: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
                    if (simplex2(x * 0.05, -z * 0.05, 4, 0.8, 2) > 0.7) {
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~
NetCraft/src/world.c:37:36: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
                    if (simplex2(x * 0.05, -z * 0.05, 4, 0.8, 2) > 0.7) {
                        ~~~~~~~~ ~~^~~~~~
NetCraft/src/world.c:37:47: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
                    if (simplex2(x * 0.05, -z * 0.05, 4, 0.8, 2) > 0.7) {
                        ~~~~~~~~           ~~~^~~~~~
NetCraft/src/world.c:37:58: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
                    if (simplex2(x * 0.05, -z * 0.05, 4, 0.8, 2) > 0.7) {
                        ~~~~~~~~                         ^~~
NetCraft/src/world.c:38:29: warning: declaration shadows a local variable [-Wshadow]
                        int w = 18 + simplex2(x * 0.1, z * 0.1, 4, 0.8, 2) * 7;
                            ^
NetCraft/src/world.c:20:17: note: previous declaration is here
            int w = 1;
                ^
NetCraft/src/world.c:38:36: warning: implicit conversion turns floating-point number into integer: 'float' to 'int' [-Wfloat-conversion]
                        int w = 18 + simplex2(x * 0.1, z * 0.1, 4, 0.8, 2) * 7;
                            ~   ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/src/world.c:38:49: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
                        int w = 18 + simplex2(x * 0.1, z * 0.1, 4, 0.8, 2) * 7;
                                     ~~~~~~~~ ~~^~~~~
NetCraft/src/world.c:38:58: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
                        int w = 18 + simplex2(x * 0.1, z * 0.1, 4, 0.8, 2) * 7;
                                     ~~~~~~~~          ~~^~~~~
NetCraft/src/world.c:38:68: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
                        int w = 18 + simplex2(x * 0.1, z * 0.1, 4, 0.8, 2) * 7;
                                     ~~~~~~~~                      ^~~
NetCraft/src/world.c:49:27: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
                if (ok && simplex2(x, z, 6, 0.5, 2) > 0.84) {
                          ^~~~~~~~~~~~~~~~~~~~~~~~~ ~
NetCraft/src/world.c:69:25: warning: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
                    if (simplex3(
                        ^~~~~~~~~
NetCraft/src/world.c:70:27: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
                        x * 0.01, y * 0.1, z * 0.01, 8, 0.5, 2) > 0.75)
                        ~~^~~~~~
NetCraft/src/world.c:70:37: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
                        x * 0.01, y * 0.1, z * 0.01, 8, 0.5, 2) > 0.75)
                                  ~~^~~~~
NetCraft/src/world.c:70:46: warning: implicit conversion loses floating-point precision: 'double' to 'float' [-Wconversion]
                        x * 0.01, y * 0.1, z * 0.01, 8, 0.5, 2) > 0.75)
                                           ~~^~~~~~
25 warnings generated.
[ 81%] Building C object CMakeFiles/craft.dir/deps/lodepng/lodepng.c.o
NetCraft/deps/lodepng/lodepng.c:333:67: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
  return (buffer[0] << 24) | (buffer[1] << 16) | (buffer[2] << 8) | buffer[3];
  ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:331:14: warning: no previous prototype for function 'lodepng_read32bitInt' [-Wmissing-prototypes]
unsigned int lodepng_read32bitInt(const unsigned char* buffer)
             ^
NetCraft/deps/lodepng/lodepng.c:394:17: warning: cast from 'const unsigned char *' to 'char *' drops const qualifier [-Wcast-qual]
  fwrite((char*)buffer , 1 , buffersize, file);
                ^
In file included from NetCraft/deps/lodepng/lodepng.c:2206:
NetCraft/deps/miniz/miniz.h:169:5: warning: 'MINIZ_X86_OR_X64_CPU' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_X86_OR_X64_CPU
    ^
NetCraft/deps/miniz/miniz.h:522:5: warning: 'MINIZ_USE_UNALIGNED_LOADS_AND_STORES' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES &&MINIZ_LITTLE_ENDIAN
    ^
NetCraft/deps/miniz/miniz.h:738:41: warning: this function declaration is not a prototype [-Wstrict-prototypes]
tdefl_compressor *tdefl_compressor_alloc();
                                        ^
                                         void
NetCraft/deps/miniz/miniz.h:791:45: warning: this function declaration is not a prototype [-Wstrict-prototypes]
tinfl_decompressor *tinfl_decompressor_alloc();
                                            ^
                                             void
NetCraft/deps/miniz/miniz.h:862:5: warning: 'MINIZ_HAS_64BIT_REGISTERS' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_HAS_64BIT_REGISTERS
    ^
NetCraft/deps/miniz/miniz.h:866:5: warning: 'TINFL_USE_64BIT_BITBUF' is not defined, evaluates to 0 [-Wundef]
#if TINFL_USE_64BIT_BITBUF
    ^
NetCraft/deps/lodepng/lodepng.c:2214:14: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
      return rc;
      ~~~~~~ ^~
NetCraft/deps/lodepng/lodepng.c:2208:81: warning: unused parameter 'settings' [-Wunused-parameter]
                                size_t insize, const LodePNGDecompressSettings* settings)
                                                                                ^
NetCraft/deps/lodepng/lodepng.c:2389:36: warning: implicit conversion changes signedness: 'const unsigned char' to 'char' [-Wsign-conversion]
  for(i = 0; i < 4; i++) type[i] = chunk[4 + i];
                                 ~ ^~~~~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:2489:14: warning: implicit conversion changes signedness: 'const char' to 'unsigned char' [-Wsign-conversion]
  chunk[4] = type[0];
           ~ ^~~~~~~
NetCraft/deps/lodepng/lodepng.c:2490:14: warning: implicit conversion changes signedness: 'const char' to 'unsigned char' [-Wsign-conversion]
  chunk[5] = type[1];
           ~ ^~~~~~~
NetCraft/deps/lodepng/lodepng.c:2491:14: warning: implicit conversion changes signedness: 'const char' to 'unsigned char' [-Wsign-conversion]
  chunk[6] = type[2];
           ~ ^~~~~~~
NetCraft/deps/lodepng/lodepng.c:2492:14: warning: implicit conversion changes signedness: 'const char' to 'unsigned char' [-Wsign-conversion]
  chunk[7] = type[3];
           ~ ^~~~~~~
NetCraft/deps/lodepng/lodepng.c:2517:5: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
    default: return 31;
    ^
NetCraft/deps/lodepng/lodepng.c:2668:8: warning: no previous prototype for function 'lodepng_get_raw_size_lct' [-Wmissing-prototypes]
size_t lodepng_get_raw_size_lct(unsigned w, unsigned h, LodePNGColorType colortype, unsigned bitdepth)
       ^
NetCraft/deps/lodepng/lodepng.c:2906:6: warning: no previous prototype for function 'lodepng_info_swap' [-Wmissing-prototypes]
void lodepng_info_swap(LodePNGInfo* a, LodePNGInfo* b)
     ^
NetCraft/deps/lodepng/lodepng.c:2922:38: warning: implicit conversion loses integer precision: 'unsigned int' to 'unsigned char' [-Wconversion]
  if(p == 0) out[index * bits / 8] = in;
                                   ~ ^~
NetCraft/deps/lodepng/lodepng.c:3035:38: warning: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Wconversion]
    if(mode->bitdepth == 8) out[i] = index;
                                   ~ ^~~~~
NetCraft/deps/lodepng/lodepng.c:3036:47: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    else addColorBits(out, i, mode->bitdepth, index);
         ~~~~~~~~~~~~                         ^~~~~
NetCraft/deps/lodepng/lodepng.c:3143:36: warning: implicit conversion loses integer precision: 'unsigned int' to 'unsigned char' [-Wconversion]
      *r = *g = *b = (value * 255) / highest;
                   ~ ~~~~~~~~~~~~~~^~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:3263:59: warning: implicit conversion loses integer precision: 'unsigned int' to 'unsigned char' [-Wconversion]
        buffer[0] = buffer[1] = buffer[2] = (value * 255) / highest;
                                          ~ ~~~~~~~~~~~~~~^~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:3435:53: warning: implicit conversion changes signedness: 'size_t' (aka 'unsigned int') to 'int' [-Wsign-conversion]
      color_tree_add(&tree, p[0], p[1], p[2], p[3], i);
      ~~~~~~~~~~~~~~                                ^
NetCraft/deps/lodepng/lodepng.c:3525:15: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
    int bpp = lodepng_get_bpp(mode);
        ~~~   ^~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:3561:10: warning: no previous prototype for function 'getValueRequiredBits' [-Wmissing-prototypes]
unsigned getValueRequiredBits(unsigned short value)
         ^
NetCraft/deps/lodepng/lodepng.c:3652:22: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
            profile->numcolors);
            ~~~~~~~~~^~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:3656:22: warning: declaration shadows a local variable [-Wshadow]
            unsigned i = profile->numcolors;
                     ^
NetCraft/deps/lodepng/lodepng.c:3578:10: note: previous declaration is here
  size_t i;
         ^
NetCraft/deps/lodepng/lodepng.c:3730:63: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
          color_tree_add(&profile->tree, r, g, b, a, profile->numcolors);
          ~~~~~~~~~~~~~~                             ~~~~~~~~~^~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:3734:22: warning: declaration shadows a local variable [-Wshadow]
            unsigned i = profile->numcolors;
                     ^
NetCraft/deps/lodepng/lodepng.c:3578:10: note: previous declaration is here
  size_t i;
         ^
NetCraft/deps/lodepng/lodepng.c:3490:18: warning: padding struct 'struct ColorProfile' with 1 byte to align 'key_r' [-Wpadded]
  unsigned short key_r; /*these values are always in 16-bit bitdepth in the profile*/
                 ^
NetCraft/deps/lodepng/lodepng.c:3496:12: warning: padding struct 'struct ColorProfile' with 2 bytes to align 'numcolors' [-Wpadded]
  unsigned numcolors;
           ^
NetCraft/deps/lodepng/lodepng.c:3502:12: warning: padding struct 'struct ColorProfile' with 3 bytes to align 'greybits' [-Wpadded]
  unsigned greybits; /*amount of bits required for greyscale (1, 2, 4, 8). Does not take 16 bit into account.*/
           ^
NetCraft/deps/lodepng/lodepng.c:3480:16: warning: padding size of 'struct ColorProfile' with 3 bytes to alignment boundary [-Wpadded]
typedef struct ColorProfile
               ^
NetCraft/deps/lodepng/lodepng.c:3903:14: warning: implicit conversion loses integer precision: 'int' to 'short' [-Wconversion]
  short pa = abs(b - c);
        ~~   ^~~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:3904:14: warning: implicit conversion loses integer precision: 'int' to 'short' [-Wconversion]
  short pb = abs(a - c);
        ~~   ^~~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:3905:14: warning: implicit conversion loses integer precision: 'int' to 'short' [-Wconversion]
  short pc = abs(a + b - c - c);
        ~~   ^~~~~~~~~~~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:4386:42: warning: implicit conversion changes signedness: 'const unsigned char' to 'char' [-Wsign-conversion]
    for(i = 0; i < length; i++) key[i] = data[i];
                                       ~ ^~~~~~~
NetCraft/deps/lodepng/lodepng.c:4395:42: warning: implicit conversion changes signedness: 'const unsigned char' to 'char' [-Wsign-conversion]
    for(i = 0; i < length; i++) str[i] = data[string2_begin + i];
                                       ~ ^~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:4431:42: warning: implicit conversion changes signedness: 'const unsigned char' to 'char' [-Wsign-conversion]
    for(i = 0; i < length; i++) key[i] = data[i];
                                       ~ ^~~~~~~
NetCraft/deps/lodepng/lodepng.c:4441:45: warning: cast from 'const unsigned char *' to 'unsigned char *' drops const qualifier [-Wcast-qual]
                            (unsigned char*)(&data[string2_begin]),
                                            ^
NetCraft/deps/lodepng/lodepng.c:4484:42: warning: implicit conversion changes signedness: 'const unsigned char' to 'char' [-Wsign-conversion]
    for(i = 0; i < length; i++) key[i] = data[i];
                                       ~ ^~~~~~~
NetCraft/deps/lodepng/lodepng.c:4502:46: warning: implicit conversion changes signedness: 'const unsigned char' to 'char' [-Wsign-conversion]
    for(i = 0; i < length; i++) langtag[i] = data[begin + i];
                                           ~ ^~~~~~~~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:4513:47: warning: implicit conversion changes signedness: 'const unsigned char' to 'char' [-Wsign-conversion]
    for(i = 0; i < length; i++) transkey[i] = data[begin + i];
                                            ~ ^~~~~~~~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:4524:47: warning: cast from 'const unsigned char *' to 'unsigned char *' drops const qualifier [-Wcast-qual]
                              (unsigned char*)(&data[begin]),
                                              ^
NetCraft/deps/lodepng/lodepng.c:4619:24: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    if((size_t)((chunk - in) + chunkLength + 12) > insize || (chunk + chunkLength + 12) < in)
                 ~~~~~~^~~~  ~
NetCraft/deps/lodepng/lodepng.c:4935:31: warning: implicit conversion loses integer precision: 'unsigned int' to 'unsigned char' [-Wconversion]
  ucvector_push_back(&header, interlace_method); /*interlace method*/
  ~~~~~~~~~~~~~~~~~~          ^~~~~~~~~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:5060:41: warning: cast from 'const char *' to 'unsigned char *' drops const qualifier [-Wcast-qual]
                        (unsigned char*)textstring, textsize, zlibsettings);
                                        ^
NetCraft/deps/lodepng/lodepng.c:5096:43: warning: cast from 'const char *' to 'unsigned char *' drops const qualifier [-Wcast-qual]
                          (unsigned char*)textstring, textsize, zlibsettings);
                                          ^
NetCraft/deps/lodepng/lodepng.c:5150:19: warning: implicit conversion loses integer precision: 'const unsigned int' to 'unsigned char' [-Wconversion]
  data[2] = time->month;
          ~ ~~~~~~^~~~~
NetCraft/deps/lodepng/lodepng.c:5151:19: warning: implicit conversion loses integer precision: 'const unsigned int' to 'unsigned char' [-Wconversion]
  data[3] = time->day;
          ~ ~~~~~~^~~
NetCraft/deps/lodepng/lodepng.c:5152:19: warning: implicit conversion loses integer precision: 'const unsigned int' to 'unsigned char' [-Wconversion]
  data[4] = time->hour;
          ~ ~~~~~~^~~~
NetCraft/deps/lodepng/lodepng.c:5153:19: warning: implicit conversion loses integer precision: 'const unsigned int' to 'unsigned char' [-Wconversion]
  data[5] = time->minute;
          ~ ~~~~~~^~~~~~
NetCraft/deps/lodepng/lodepng.c:5154:19: warning: implicit conversion loses integer precision: 'const unsigned int' to 'unsigned char' [-Wconversion]
  data[6] = time->second;
          ~ ~~~~~~^~~~~~
NetCraft/deps/lodepng/lodepng.c:5168:35: warning: implicit conversion loses integer precision: 'const unsigned int' to 'unsigned char' [-Wconversion]
  ucvector_push_back(&data, info->phys_unit);
  ~~~~~~~~~~~~~~~~~~        ~~~~~~^~~~~~~~~
NetCraft/deps/lodepng/lodepng.c:5320:98: warning: implicit conversion loses integer precision: 'unsigned int' to 'unsigned char' [-Wconversion]
          filterScanline(attempt[type].data, &in[y * linebytes], prevline, linebytes, bytewidth, type);
          ~~~~~~~~~~~~~~                                                                         ^~~~
NetCraft/deps/lodepng/lodepng.c:5336:36: warning: operand of ? changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
              sum[type] += s < 0 ? -s : s;
                        ~~         ^~
NetCraft/deps/lodepng/lodepng.c:5336:41: warning: operand of ? changes signedness: 'signed char' to 'unsigned int' [-Wsign-conversion]
              sum[type] += s < 0 ? -s : s;
                        ~~              ^
NetCraft/deps/lodepng/lodepng.c:5351:36: warning: implicit conversion loses integer precision: 'unsigned int' to 'unsigned char' [-Wconversion]
        out[y * (linebytes + 1)] = bestType; /*the first byte of a scanline will be the filter type*/
                                 ~ ^~~~~~~~
NetCraft/deps/lodepng/lodepng.c:5377:96: warning: implicit conversion loses integer precision: 'unsigned int' to 'unsigned char' [-Wconversion]
        filterScanline(attempt[type].data, &in[y * linebytes], prevline, linebytes, bytewidth, type);
        ~~~~~~~~~~~~~~                                                                         ^~~~
NetCraft/deps/lodepng/lodepng.c:5398:34: warning: implicit conversion loses integer precision: 'unsigned int' to 'unsigned char' [-Wconversion]
      out[y * (linebytes + 1)] = bestType; /*the first byte of a scanline will be the filter type*/
                               ~ ^~~~~~~~
NetCraft/deps/lodepng/lodepng.c:5411:23: warning: implicit conversion loses integer precision: 'unsigned int' to 'unsigned char' [-Wconversion]
      out[outindex] = type; /*filter type byte*/
                    ~ ^~~~
NetCraft/deps/lodepng/lodepng.c:5412:88: warning: implicit conversion loses integer precision: 'unsigned int' to 'unsigned char' [-Wconversion]
      filterScanline(&out[outindex + 1], &in[inindex], prevline, linebytes, bytewidth, type);
      ~~~~~~~~~~~~~~                                                                   ^~~~
NetCraft/deps/lodepng/lodepng.c:5448:96: warning: implicit conversion loses integer precision: 'unsigned int' to 'unsigned char' [-Wconversion]
        filterScanline(attempt[type].data, &in[y * linebytes], prevline, linebytes, bytewidth, type);
        ~~~~~~~~~~~~~~                                                                         ^~~~
NetCraft/deps/lodepng/lodepng.c:5461:34: warning: implicit conversion loses integer precision: 'unsigned int' to 'unsigned char' [-Wconversion]
      out[y * (linebytes + 1)] = bestType; /*the first byte of a scanline will be the filter type*/
                               ~ ^~~~~~~~
66 warnings generated.
[ 86%] Building C object CMakeFiles/craft.dir/deps/miniz/miniz.c.o
In file included from NetCraft/deps/miniz/miniz.c:27:
NetCraft/deps/miniz/miniz.h:169:5: warning: 'MINIZ_X86_OR_X64_CPU' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_X86_OR_X64_CPU
    ^
NetCraft/deps/miniz/miniz.h:522:5: warning: 'MINIZ_USE_UNALIGNED_LOADS_AND_STORES' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES &&MINIZ_LITTLE_ENDIAN
    ^
NetCraft/deps/miniz/miniz.h:738:41: warning: this function declaration is not a prototype [-Wstrict-prototypes]
tdefl_compressor *tdefl_compressor_alloc();
                                        ^
                                         void
NetCraft/deps/miniz/miniz.h:791:45: warning: this function declaration is not a prototype [-Wstrict-prototypes]
tinfl_decompressor *tinfl_decompressor_alloc();
                                            ^
                                             void
NetCraft/deps/miniz/miniz.h:862:5: warning: 'MINIZ_HAS_64BIT_REGISTERS' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_HAS_64BIT_REGISTERS
    ^
NetCraft/deps/miniz/miniz.h:866:5: warning: 'TINFL_USE_64BIT_BITBUF' is not defined, evaluates to 0 [-Wundef]
#if TINFL_USE_64BIT_BITBUF
    ^
NetCraft/deps/miniz/miniz.c:49:25: warning: possible misuse of comma operator here [-Wcomma]
            s1 += ptr[0], s2 += s1;
                        ^
NetCraft/deps/miniz/miniz.c:49:13: note: cast expression to void to silence warning
            s1 += ptr[0], s2 += s1;
            ^~~~~~~~~~~~
            (void)(     )
NetCraft/deps/miniz/miniz.c:50:25: warning: possible misuse of comma operator here [-Wcomma]
            s1 += ptr[1], s2 += s1;
                        ^
NetCraft/deps/miniz/miniz.c:50:13: note: cast expression to void to silence warning
            s1 += ptr[1], s2 += s1;
            ^~~~~~~~~~~~
            (void)(     )
NetCraft/deps/miniz/miniz.c:51:25: warning: possible misuse of comma operator here [-Wcomma]
            s1 += ptr[2], s2 += s1;
                        ^
NetCraft/deps/miniz/miniz.c:51:13: note: cast expression to void to silence warning
            s1 += ptr[2], s2 += s1;
            ^~~~~~~~~~~~
            (void)(     )
NetCraft/deps/miniz/miniz.c:52:25: warning: possible misuse of comma operator here [-Wcomma]
            s1 += ptr[3], s2 += s1;
                        ^
NetCraft/deps/miniz/miniz.c:52:13: note: cast expression to void to silence warning
            s1 += ptr[3], s2 += s1;
            ^~~~~~~~~~~~
            (void)(     )
NetCraft/deps/miniz/miniz.c:53:25: warning: possible misuse of comma operator here [-Wcomma]
            s1 += ptr[4], s2 += s1;
                        ^
NetCraft/deps/miniz/miniz.c:53:13: note: cast expression to void to silence warning
            s1 += ptr[4], s2 += s1;
            ^~~~~~~~~~~~
            (void)(     )
NetCraft/deps/miniz/miniz.c:54:25: warning: possible misuse of comma operator here [-Wcomma]
            s1 += ptr[5], s2 += s1;
                        ^
NetCraft/deps/miniz/miniz.c:54:13: note: cast expression to void to silence warning
            s1 += ptr[5], s2 += s1;
            ^~~~~~~~~~~~
            (void)(     )
NetCraft/deps/miniz/miniz.c:55:25: warning: possible misuse of comma operator here [-Wcomma]
            s1 += ptr[6], s2 += s1;
                        ^
NetCraft/deps/miniz/miniz.c:55:13: note: cast expression to void to silence warning
            s1 += ptr[6], s2 += s1;
            ^~~~~~~~~~~~
            (void)(     )
NetCraft/deps/miniz/miniz.c:56:25: warning: possible misuse of comma operator here [-Wcomma]
            s1 += ptr[7], s2 += s1;
                        ^
NetCraft/deps/miniz/miniz.c:56:13: note: cast expression to void to silence warning
            s1 += ptr[7], s2 += s1;
            ^~~~~~~~~~~~
            (void)(     )
NetCraft/deps/miniz/miniz.c:59:25: warning: possible misuse of comma operator here [-Wcomma]
            s1 += *ptr++, s2 += s1;
                        ^
NetCraft/deps/miniz/miniz.c:59:13: note: cast expression to void to silence warning
            s1 += *ptr++, s2 += s1;
            ^~~~~~~~~~~~
            (void)(     )
NetCraft/deps/miniz/miniz.c:60:21: warning: possible misuse of comma operator here [-Wcomma]
        s1 %= 65521U, s2 %= 65521U;
                    ^
NetCraft/deps/miniz/miniz.c:60:9: note: cast expression to void to silence warning
        s1 %= 65521U, s2 %= 65521U;
        ^~~~~~~~~~~~
        (void)(     )
In file included from NetCraft/deps/miniz/miniz.c:27:
NetCraft/deps/miniz/miniz.h:703:15: warning: padding struct 'tdefl_compressor' with 1 byte to align 'm_huff_count' [-Wpadded]
    mz_uint16 m_huff_count[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS];
              ^
NetCraft/deps/miniz/miniz.h:685:9: warning: padding size of 'tdefl_compressor' with 2 bytes to alignment boundary [-Wpadded]
typedef struct
        ^
NetCraft/deps/miniz/miniz.c:215:39: warning: implicit conversion changes signedness: 'mz_uint' (aka 'unsigned int') to 'int' [-Wsign-conversion]
    if (tdefl_init(pComp, NULL, NULL, comp_flags) != TDEFL_STATUS_OKAY)
        ~~~~~~~~~~                    ^~~~~~~~~~
NetCraft/deps/miniz/miniz.c:229:102: warning: implicit conversion changes signedness: 'mz_uint' (aka 'unsigned int') to 'int' [-Wsign-conversion]
    tdefl_init((tdefl_compressor *)pStream->state, NULL, NULL, ((tdefl_compressor *)pStream->state)->m_flags);
    ~~~~~~~~~~                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
In file included from NetCraft/deps/miniz/miniz.c:27:
NetCraft/deps/miniz/miniz.h:874:8: warning: padding size of 'struct tinfl_decompressor_tag' with 3 bytes to alignment boundary [-Wpadded]
struct tinfl_decompressor_tag
       ^
NetCraft/deps/miniz/miniz.c:847:39: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
        pSyms = tdefl_radix_sort_syms(num_used_syms, syms0, syms1);
                ~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:864:26: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
        next_code[i] = j = ((j + num_codes[i - 1]) << 1);
                     ~ ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:872:18: warning: implicit conversion changes signedness: 'mz_uint' (aka 'unsigned int') to 'int' [-Wsign-conversion]
        for (l = code_size; l > 0; l--, code >>= 1)
               ~ ^~~~~~~~~
NetCraft/deps/miniz/miniz.c:962:61: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    memcpy(code_sizes_to_pack, &d->m_huff_code_sizes[0][0], num_lit_codes);
    ~~~~~~                                                  ^~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:963:77: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    memcpy(code_sizes_to_pack + num_lit_codes, &d->m_huff_code_sizes[1][0], num_dist_codes);
    ~~~~~~                                                                  ^~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:964:46: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
    total_code_sizes_to_pack = num_lit_codes + num_dist_codes;
                             ~ ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:1010:34: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
    TDEFL_PUT_BITS(num_lit_codes - 257, 5);
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
NetCraft/deps/miniz/miniz.c:881:24: note: expanded from macro 'TDEFL_PUT_BITS'
        mz_uint bits = b;                                          \
                ~~~~   ^
NetCraft/deps/miniz/miniz.c:1011:35: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
    TDEFL_PUT_BITS(num_dist_codes - 1, 5);
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
NetCraft/deps/miniz/miniz.c:881:24: note: expanded from macro 'TDEFL_PUT_BITS'
        mz_uint bits = b;                                          \
                ~~~~   ^
NetCraft/deps/miniz/miniz.c:1017:36: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
    TDEFL_PUT_BITS(num_bit_lengths - 4, 4);
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
NetCraft/deps/miniz/miniz.c:881:24: note: expanded from macro 'TDEFL_PUT_BITS'
        mz_uint bits = b;                                          \
                ~~~~   ^
NetCraft/deps/miniz/miniz.c:1027:74: warning: implicit conversion changes signedness: 'char' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
            TDEFL_PUT_BITS(packed_code_sizes[packed_code_sizes_index++], "\02\03\07"[code - 16]);
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:882:23: note: expanded from macro 'TDEFL_PUT_BITS'
        mz_uint len = l;                                           \
                ~~~   ^
NetCraft/deps/miniz/miniz.c:1055:5: warning: 'MINIZ_USE_UNALIGNED_LOADS_AND_STORES' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES &&MINIZ_LITTLE_ENDIAN &&MINIZ_HAS_64BIT_REGISTERS
    ^
NetCraft/deps/miniz/miniz.c:1163:74: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
            mz_uint match_len = pLZ_codes[0], match_dist = (pLZ_codes[1] | (pLZ_codes[2] << 8));
                                              ~~~~~~~~~~    ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:1241:74: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    if (((use_raw_block) || ((d->m_total_lz_bytes) && ((d->m_pOutput_buf - pSaved_output_buf + 1U) >= d->m_total_lz_bytes))) &&
                                                        ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ ~
NetCraft/deps/miniz/miniz.c:1246:40: warning: possible misuse of comma operator here [-Wcomma]
        d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in;
                                       ^
NetCraft/deps/miniz/miniz.c:1246:9: note: cast expression to void to silence warning
        d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in;
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        (void)(                        )
NetCraft/deps/miniz/miniz.c:1265:40: warning: possible misuse of comma operator here [-Wcomma]
        d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in;
                                       ^
NetCraft/deps/miniz/miniz.c:1265:9: note: cast expression to void to silence warning
        d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in;
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        (void)(                        )
NetCraft/deps/miniz/miniz.c:1318:44: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
            *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf;
                               ~ ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:1325:83: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
            memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf, bytes_to_copy);
            ~~~~~~                                                                ^~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:1326:33: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
            d->m_out_buf_ofs += bytes_to_copy;
                             ~~ ^~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:1329:41: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
                d->m_output_flush_ofs = bytes_to_copy;
                                      ~ ^~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:1330:47: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
                d->m_output_flush_remaining = n;
                                            ~ ^
NetCraft/deps/miniz/miniz.c:1335:33: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
            d->m_out_buf_ofs += n;
                             ~~ ^
NetCraft/deps/miniz/miniz.c:1339:15: warning: implicit conversion changes signedness: 'mz_uint' (aka 'unsigned int') to 'int' [-Wsign-conversion]
    return d->m_output_flush_remaining;
    ~~~~~~ ~~~^~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:1342:5: warning: 'MINIZ_USE_UNALIGNED_LOADS_AND_STORES' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES
    ^
NetCraft/deps/miniz/miniz.c:1442:5: warning: 'MINIZ_USE_UNALIGNED_LOADS_AND_STORES' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES &&MINIZ_LITTLE_ENDIAN
    ^
NetCraft/deps/miniz/miniz.c:1669:98: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
            mz_uint hash = (d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK];
                    ~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:1805:40: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
        *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf;
                           ~ ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:1856:5: warning: 'MINIZ_USE_UNALIGNED_LOADS_AND_STORES' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES &&MINIZ_LITTLE_ENDIAN
    ^
NetCraft/deps/miniz/miniz.c:1872:97: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
        d->m_adler32 = (mz_uint32)mz_adler32(d->m_adler32, (const mz_uint8 *)pIn_buf, d->m_pSrc - (const mz_uint8 *)pIn_buf);
                                  ~~~~~~~~~~                                          ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:1964:35: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    size_t new_size = p->m_size + len;
                                ~ ^~~
NetCraft/deps/miniz/miniz.c:1981:53: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    memcpy((mz_uint8 *)p->m_pBuf + p->m_size, pBuf, len);
    ~~~~~~                                          ^~~
NetCraft/deps/miniz/miniz.c:2028:23: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
        comp_flags &= ~TDEFL_MAX_PROBES_MASK;
                   ~~ ^~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2058:29: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
    out_buf.m_capacity = 57 + MZ_MAX(64, (1 + bpl) * h);
                       ~ ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2068:103: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
    tdefl_init(pComp, tdefl_output_buffer_putter, &out_buf, s_tdefl_png_num_probes[MZ_MIN(10, level)] | TDEFL_WRITE_ZLIB_HEADER);
    ~~~~~~~~~~                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2072:50: warning: cast from 'const void *' to 'unsigned char *' drops const qualifier [-Wcast-qual]
        tdefl_compress_buffer(pComp, (mz_uint8 *)pImage + (flip ? (h - 1 - y) : y) * bpl, bpl, TDEFL_NO_FLUSH);
                                                 ^
NetCraft/deps/miniz/miniz.c:2072:91: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
        tdefl_compress_buffer(pComp, (mz_uint8 *)pImage + (flip ? (h - 1 - y) : y) * bpl, bpl, TDEFL_NO_FLUSH);
        ~~~~~~~~~~~~~~~~~~~~~                                                             ^~~
NetCraft/deps/miniz/miniz.c:2132:19: warning: no previous prototype for function 'tdefl_compressor_alloc' [-Wmissing-prototypes]
tdefl_compressor *tdefl_compressor_alloc()
                  ^
NetCraft/deps/miniz/miniz.h:738:19: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
tdefl_compressor *tdefl_compressor_alloc();
                  ^
                                         void
NetCraft/deps/miniz/miniz.c:2337:123: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
    size_t out_buf_size_mask = (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF) ? (size_t) - 1 : ((pOut_buf_next - pOut_buf_start) + *pOut_buf_size) - 1, dist_from_out_buf_start;
                                                                                                            ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~  ~
NetCraft/deps/miniz/miniz.c:2383:48: warning: implicit conversion changes signedness: 'int' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
            if ((counter = (r->m_raw_header[0] | (r->m_raw_header[1] << 8))) != (mz_uint)(0xFFFF ^ (r->m_raw_header[2] | (r->m_raw_header[3] << 8))))
                         ~  ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2441:67: warning: implicit conversion changes signedness: 'char' to 'unsigned int' [-Wsign-conversion]
                    TINFL_GET_BITS(11, r->m_table_sizes[counter], "\05\05\04"[counter]);
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2250:22: note: expanded from macro 'TINFL_GET_BITS'
        num_bits -= (n);                     \
                 ~~  ^
NetCraft/deps/miniz/miniz.c:2442:50: warning: implicit conversion changes signedness: 'const int' to 'unsigned int' [-Wsign-conversion]
                    r->m_table_sizes[counter] += s_min_table_sizes[counter];
                                              ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2464:30: warning: possible misuse of comma operator here [-Wcomma]
                used_syms = 0, total = 0;
                             ^
NetCraft/deps/miniz/miniz.c:2464:17: note: cast expression to void to silence warning
                used_syms = 0, total = 0;
                ^~~~~~~~~~~~~
                (void)(      )
NetCraft/deps/miniz/miniz.c:2520:25: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
                        TINFL_HUFF_DECODE(16, dist, &r->m_tables[2]);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2298:17: note: expanded from macro 'TINFL_HUFF_DECODE'
                TINFL_HUFF_BITBUF_FILL(state_index, pHuff);                                                                         \
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2264:29: note: expanded from macro 'TINFL_HUFF_BITBUF_FILL'
            code_len = temp >> 9;                                              \
                     ~ ~~~~~^~~~
NetCraft/deps/miniz/miniz.c:2520:25: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
                        TINFL_HUFF_DECODE(16, dist, &r->m_tables[2]);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2298:17: note: expanded from macro 'TINFL_HUFF_DECODE'
                TINFL_HUFF_BITBUF_FILL(state_index, pHuff);                                                                         \
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2273:40: note: expanded from macro 'TINFL_HUFF_BITBUF_FILL'
                temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; \
                                       ^~~~~ ~
NetCraft/deps/miniz/miniz.c:2520:25: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
                        TINFL_HUFF_DECODE(16, dist, &r->m_tables[2]);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2308:29: note: expanded from macro 'TINFL_HUFF_DECODE'
            code_len = temp >> 9, temp &= 511;                                                                                      \
                     ~ ~~~~~^~~~
NetCraft/deps/miniz/miniz.c:2520:25: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
                        TINFL_HUFF_DECODE(16, dist, &r->m_tables[2]);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2314:40: note: expanded from macro 'TINFL_HUFF_DECODE'
                temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)];                                                      \
                                       ^~~~~ ~
NetCraft/deps/miniz/miniz.c:2520:25: warning: implicit conversion changes signedness: 'int' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
                        TINFL_HUFF_DECODE(16, dist, &r->m_tables[2]);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2317:15: note: expanded from macro 'TINFL_HUFF_DECODE'
        sym = temp;                                                                                                                 \
            ~ ^~~~
NetCraft/deps/miniz/miniz.c:2530:37: warning: implicit conversion changes signedness: 'char' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
                        num_extra = "\02\03\07"[dist - 16];
                                  ~ ^~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2532:30: warning: implicit conversion changes signedness: 'char' to 'unsigned int' [-Wsign-conversion]
                        s += "\03\03\013"[dist - 16];
                          ~~ ^~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2551:25: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
                        TINFL_HUFF_DECODE(23, counter, &r->m_tables[0]);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2298:17: note: expanded from macro 'TINFL_HUFF_DECODE'
                TINFL_HUFF_BITBUF_FILL(state_index, pHuff);                                                                         \
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2264:29: note: expanded from macro 'TINFL_HUFF_BITBUF_FILL'
            code_len = temp >> 9;                                              \
                     ~ ~~~~~^~~~
NetCraft/deps/miniz/miniz.c:2551:25: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
                        TINFL_HUFF_DECODE(23, counter, &r->m_tables[0]);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2298:17: note: expanded from macro 'TINFL_HUFF_DECODE'
                TINFL_HUFF_BITBUF_FILL(state_index, pHuff);                                                                         \
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2273:40: note: expanded from macro 'TINFL_HUFF_BITBUF_FILL'
                temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; \
                                       ^~~~~ ~
NetCraft/deps/miniz/miniz.c:2551:25: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
                        TINFL_HUFF_DECODE(23, counter, &r->m_tables[0]);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2308:29: note: expanded from macro 'TINFL_HUFF_DECODE'
            code_len = temp >> 9, temp &= 511;                                                                                      \
                     ~ ~~~~~^~~~
NetCraft/deps/miniz/miniz.c:2551:25: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
                        TINFL_HUFF_DECODE(23, counter, &r->m_tables[0]);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2314:40: note: expanded from macro 'TINFL_HUFF_DECODE'
                temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)];                                                      \
                                       ^~~~~ ~
NetCraft/deps/miniz/miniz.c:2551:25: warning: implicit conversion changes signedness: 'int' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
                        TINFL_HUFF_DECODE(23, counter, &r->m_tables[0]);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2317:15: note: expanded from macro 'TINFL_HUFF_DECODE'
        sym = temp;                                                                                                                 \
            ~ ^~~~
NetCraft/deps/miniz/miniz.c:2564:5: warning: 'TINFL_USE_64BIT_BITBUF' is not defined, evaluates to 0 [-Wundef]
#if TINFL_USE_64BIT_BITBUF
    ^
NetCraft/deps/miniz/miniz.c:2580:45: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
                            code_len = sym2 >> 9;
                                     ~ ~~~~~^~~~
NetCraft/deps/miniz/miniz.c:2586:62: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
                                sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)];
                                                             ^~~~~ ~
NetCraft/deps/miniz/miniz.c:2589:35: warning: implicit conversion changes signedness: 'int' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
                        counter = sym2;
                                ~ ^~~~
NetCraft/deps/miniz/miniz.c:2595:6: warning: 'TINFL_USE_64BIT_BITBUF' is not defined, evaluates to 0 [-Wundef]
#if !TINFL_USE_64BIT_BITBUF
     ^
NetCraft/deps/miniz/miniz.c:2604:45: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
                            code_len = sym2 >> 9;
                                     ~ ~~~~~^~~~
NetCraft/deps/miniz/miniz.c:2610:62: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
                                sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)];
                                                             ^~~~~ ~
NetCraft/deps/miniz/miniz.c:2620:39: warning: implicit conversion changes signedness: 'int' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
                            counter = sym2;
                                    ~ ^~~~
NetCraft/deps/miniz/miniz.c:2630:29: warning: implicit conversion changes signedness: 'const int' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
                num_extra = s_length_extra[counter - 257];
                          ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2631:27: warning: implicit conversion changes signedness: 'const int' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
                counter = s_length_base[counter - 257];
                        ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2639:17: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
                TINFL_HUFF_DECODE(26, dist, &r->m_tables[1]);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2298:17: note: expanded from macro 'TINFL_HUFF_DECODE'
                TINFL_HUFF_BITBUF_FILL(state_index, pHuff);                                                                         \
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2264:29: note: expanded from macro 'TINFL_HUFF_BITBUF_FILL'
            code_len = temp >> 9;                                              \
                     ~ ~~~~~^~~~
NetCraft/deps/miniz/miniz.c:2639:17: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
                TINFL_HUFF_DECODE(26, dist, &r->m_tables[1]);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2298:17: note: expanded from macro 'TINFL_HUFF_DECODE'
                TINFL_HUFF_BITBUF_FILL(state_index, pHuff);                                                                         \
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2273:40: note: expanded from macro 'TINFL_HUFF_BITBUF_FILL'
                temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; \
                                       ^~~~~ ~
NetCraft/deps/miniz/miniz.c:2639:17: warning: implicit conversion changes signedness: 'int' to 'mz_uint' (aka 'unsigned int') [-Wsign-conversion]
                TINFL_HUFF_DECODE(26, dist, &r->m_tables[1]);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2308:29: note: expanded from macro 'TINFL_HUFF_DECODE'
            code_len = temp >> 9, temp &= 511;                                                                                      \
                     ~ ~~~~~^~~~
NetCraft/deps/miniz/miniz.c:2639:17: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
                TINFL_HUFF_DECODE(26, dist, &r->m_tables[1]);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2314:40: note: expanded from macro 'TINFL_HUFF_DECODE'
                temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)];                                                      \
                                       ^~~~~ ~
NetCraft/deps/miniz/miniz.c:2639:17: warning: implicit conversion changes signedness: 'int' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
                TINFL_HUFF_DECODE(26, dist, &r->m_tables[1]);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2317:15: note: expanded from macro 'TINFL_HUFF_DECODE'
        sym = temp;                                                                                                                 \
            ~ ^~~~
NetCraft/deps/miniz/miniz.c:2640:29: warning: implicit conversion changes signedness: 'const int' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
                num_extra = s_dist_extra[dist];
                          ~ ^~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2641:24: warning: implicit conversion changes signedness: 'const int' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
                dist = s_dist_base[dist];
                     ~ ^~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2649:56: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
                dist_from_out_buf_start = pOut_buf_cur - pOut_buf_start;
                                        ~ ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2669:5: warning: 'MINIZ_USE_UNALIGNED_LOADS_AND_STORES' is not defined, evaluates to 0 [-Wundef]
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES
    ^
NetCraft/deps/miniz/miniz.c:2756:33: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
    *pIn_buf_size = pIn_buf_cur - pIn_buf_next;
                  ~ ~~~~~~~~~~~~^~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2757:35: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
    *pOut_buf_size = pOut_buf_cur - pOut_buf_next;
                   ~ ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2768:29: warning: possible misuse of comma operator here [-Wcomma]
                s1 += ptr[0], s2 += s1;
                            ^
NetCraft/deps/miniz/miniz.c:2768:17: note: cast expression to void to silence warning
                s1 += ptr[0], s2 += s1;
                ^~~~~~~~~~~~
                (void)(     )
NetCraft/deps/miniz/miniz.c:2769:29: warning: possible misuse of comma operator here [-Wcomma]
                s1 += ptr[1], s2 += s1;
                            ^
NetCraft/deps/miniz/miniz.c:2769:17: note: cast expression to void to silence warning
                s1 += ptr[1], s2 += s1;
                ^~~~~~~~~~~~
                (void)(     )
NetCraft/deps/miniz/miniz.c:2770:29: warning: possible misuse of comma operator here [-Wcomma]
                s1 += ptr[2], s2 += s1;
                            ^
NetCraft/deps/miniz/miniz.c:2770:17: note: cast expression to void to silence warning
                s1 += ptr[2], s2 += s1;
                ^~~~~~~~~~~~
                (void)(     )
NetCraft/deps/miniz/miniz.c:2771:29: warning: possible misuse of comma operator here [-Wcomma]
                s1 += ptr[3], s2 += s1;
                            ^
NetCraft/deps/miniz/miniz.c:2771:17: note: cast expression to void to silence warning
                s1 += ptr[3], s2 += s1;
                ^~~~~~~~~~~~
                (void)(     )
NetCraft/deps/miniz/miniz.c:2772:29: warning: possible misuse of comma operator here [-Wcomma]
                s1 += ptr[4], s2 += s1;
                            ^
NetCraft/deps/miniz/miniz.c:2772:17: note: cast expression to void to silence warning
                s1 += ptr[4], s2 += s1;
                ^~~~~~~~~~~~
                (void)(     )
NetCraft/deps/miniz/miniz.c:2773:29: warning: possible misuse of comma operator here [-Wcomma]
                s1 += ptr[5], s2 += s1;
                            ^
NetCraft/deps/miniz/miniz.c:2773:17: note: cast expression to void to silence warning
                s1 += ptr[5], s2 += s1;
                ^~~~~~~~~~~~
                (void)(     )
NetCraft/deps/miniz/miniz.c:2774:29: warning: possible misuse of comma operator here [-Wcomma]
                s1 += ptr[6], s2 += s1;
                            ^
NetCraft/deps/miniz/miniz.c:2774:17: note: cast expression to void to silence warning
                s1 += ptr[6], s2 += s1;
                ^~~~~~~~~~~~
                (void)(     )
NetCraft/deps/miniz/miniz.c:2775:29: warning: possible misuse of comma operator here [-Wcomma]
                s1 += ptr[7], s2 += s1;
                            ^
NetCraft/deps/miniz/miniz.c:2775:17: note: cast expression to void to silence warning
                s1 += ptr[7], s2 += s1;
                ^~~~~~~~~~~~
                (void)(     )
NetCraft/deps/miniz/miniz.c:2778:29: warning: possible misuse of comma operator here [-Wcomma]
                s1 += *ptr++, s2 += s1;
                            ^
NetCraft/deps/miniz/miniz.c:2778:17: note: cast expression to void to silence warning
                s1 += *ptr++, s2 += s1;
                ^~~~~~~~~~~~
                (void)(     )
NetCraft/deps/miniz/miniz.c:2779:25: warning: possible misuse of comma operator here [-Wcomma]
            s1 %= 65521U, s2 %= 65521U;
                        ^
NetCraft/deps/miniz/miniz.c:2779:13: note: cast expression to void to silence warning
            s1 %= 65521U, s2 %= 65521U;
            ^~~~~~~~~~~~
            (void)(     )
NetCraft/deps/miniz/miniz.c:2802:85: warning: implicit conversion changes signedness: 'int' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
                                               (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF);
                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2834:177: warning: implicit conversion changes signedness: 'int' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
  ...tinfl_decompress(&decomp, (const mz_uint8 *)pSrc_buf, &src_buf_len, (mz_uint8 *)pOut_buf, (mz_uint8 *)pOut_buf, &out_buf_len, (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF);
     ~~~~~~~~~~~~~~~~                                                                                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2851:55: warning: implicit conversion changes signedness: 'int' to 'mz_uint32' (aka 'unsigned int') [-Wsign-conversion]
                                               (flags & ~(TINFL_FLAG_HAS_MORE_INPUT | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)));
                                                ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:2867:21: warning: no previous prototype for function 'tinfl_decompressor_alloc' [-Wmissing-prototypes]
tinfl_decompressor *tinfl_decompressor_alloc()
                    ^
NetCraft/deps/miniz/miniz.h:791:21: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
tinfl_decompressor *tinfl_decompressor_alloc();
                    ^
                                             void
NetCraft/deps/miniz/miniz.c:2982:28: warning: '_LARGEFILE64_SOURCE' is not defined, evaluates to 0 [-Wundef]
#elif defined(__GNUC__) && _LARGEFILE64_SOURCE
                           ^
NetCraft/deps/miniz/miniz.c:3136:8: warning: padding size of 'struct mz_zip_internal_state_tag' with 4 bytes to alignment boundary [-Wpadded]
struct mz_zip_internal_state_tag
       ^
NetCraft/deps/miniz/miniz.c:3442:72: warning: implicit conversion changes signedness: 'mz_int64' (aka 'long long') to 'unsigned long long' [-Wsign-conversion]
        int i, n = (int)MZ_MIN(sizeof(buf_u32), pZip->m_archive_size - cur_file_ofs);
                                                                     ~ ^~~~~~~~~~~~
NetCraft/deps/miniz/miniz.h:519:31: note: expanded from macro 'MZ_MIN'
#define MZ_MIN(a, b) (((a) < (b)) ? (a) : (b))
                              ^
NetCraft/deps/miniz/miniz.c:3442:72: warning: implicit conversion changes signedness: 'mz_int64' (aka 'long long') to 'unsigned long long' [-Wsign-conversion]
        int i, n = (int)MZ_MIN(sizeof(buf_u32), pZip->m_archive_size - cur_file_ofs);
                                                                     ~ ^~~~~~~~~~~~
NetCraft/deps/miniz/miniz.h:519:44: note: expanded from macro 'MZ_MIN'
#define MZ_MIN(a, b) (((a) < (b)) ? (a) : (b))
                                           ^
NetCraft/deps/miniz/miniz.c:3444:47: warning: implicit conversion changes signedness: 'mz_int64' (aka 'long long') to 'mz_uint64' (aka 'unsigned long long')
      [-Wsign-conversion]
        if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, n) != (mz_uint)n)
            ~~~~                              ^~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:3444:67: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
        if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, n) != (mz_uint)n)
            ~~~~                                                  ^
NetCraft/deps/miniz/miniz.c:3452:59: warning: implicit conversion changes signedness: 'long long' to 'unsigned long long' [-Wsign-conversion]
                if ((pZip->m_archive_size - (cur_file_ofs + i)) >= record_size)
                                          ~  ~~~~~~~~~~~~~^~~
NetCraft/deps/miniz/miniz.c:3464:57: warning: implicit conversion changes signedness: 'mz_int64' (aka 'long long') to 'unsigned long long' [-Wsign-conversion]
        if ((!cur_file_ofs) || ((pZip->m_archive_size - cur_file_ofs) >= (MZ_UINT16_MAX + record_size)))
                                                      ~ ^~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:3500:43: warning: implicit conversion changes signedness: 'mz_int64' (aka 'long long') to 'mz_uint64' (aka 'unsigned long long')
      [-Wsign-conversion]
    if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE)
        ~~~~                              ^~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:3508:60: warning: implicit conversion changes signedness: 'long long' to 'mz_uint64' (aka 'unsigned long long') [-Wsign-conversion]
        if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs - MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE, pZip64_locator, MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) == MZ_ZIP64_END_OF_CENTRAL_DI...
            ~~~~                              ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from NetCraft/deps/miniz/miniz.c:27:
NetCraft/deps/miniz/miniz.h:1039:9: warning: padding size of 'mz_zip_archive' with 4 bytes to alignment boundary [-Wpadded]
typedef struct
        ^
NetCraft/deps/miniz/miniz.c:3803:38: warning: cast from 'const void *' to 'void *' drops const qualifier [-Wcast-qual]
    pZip->m_pState->m_pMem = (void *)pMem;
                                     ^
NetCraft/deps/miniz/miniz.c:3825:112: warning: implicit conversion loses integer precision: 'mz_int64' (aka 'long long') to 'long' [-Wshorten-64-to-32]
    if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET))))
                                                                           ~~~~~~~~~~                          ^~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:3857:21: warning: implicit conversion changes signedness: 'long' to 'mz_uint64' (aka 'unsigned long long') [-Wsign-conversion]
        file_size = MZ_FTELL64(pFile);
                  ~ ^~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:3023:20: note: expanded from macro 'MZ_FTELL64'
#define MZ_FTELL64 ftell
                   ^
NetCraft/deps/miniz/miniz.c:3894:20: warning: implicit conversion changes signedness: 'long' to 'mz_uint64' (aka 'unsigned long long') [-Wsign-conversion]
    cur_file_ofs = MZ_FTELL64(pFile);
                 ~ ^~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:3023:20: note: expanded from macro 'MZ_FTELL64'
#define MZ_FTELL64 ftell
                   ^
NetCraft/deps/miniz/miniz.c:3901:24: warning: implicit conversion changes signedness: 'long' to 'unsigned long long' [-Wsign-conversion]
        archive_size = MZ_FTELL64(pFile) - cur_file_ofs;
                       ^~~~~~~~~~~~~~~~~ ~
NetCraft/deps/miniz/miniz.c:3023:20: note: expanded from macro 'MZ_FTELL64'
#define MZ_FTELL64 ftell
                   ^
NetCraft/deps/miniz/miniz.c:4032:32: warning: implicit conversion loses integer precision: 'unsigned int' to 'mz_uint16' (aka 'unsigned short') [-Wconversion]
    pStat->m_version_made_by = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_MADE_BY_OFS);
                             ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.h:526:66: note: expanded from macro 'MZ_READ_LE16'
#define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U))
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:4033:31: warning: implicit conversion loses integer precision: 'unsigned int' to 'mz_uint16' (aka 'unsigned short') [-Wconversion]
    pStat->m_version_needed = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_NEEDED_OFS);
                            ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.h:526:66: note: expanded from macro 'MZ_READ_LE16'
#define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U))
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:4034:25: warning: implicit conversion loses integer precision: 'unsigned int' to 'mz_uint16' (aka 'unsigned short') [-Wconversion]
    pStat->m_bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS);
                      ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.h:526:66: note: expanded from macro 'MZ_READ_LE16'
#define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U))
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:4035:23: warning: implicit conversion loses integer precision: 'unsigned int' to 'mz_uint16' (aka 'unsigned short') [-Wconversion]
    pStat->m_method = MZ_READ_LE16(p + MZ_ZIP_CDH_METHOD_OFS);
                    ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.h:526:66: note: expanded from macro 'MZ_READ_LE16'
#define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U))
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:4037:42: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
    pStat->m_time = mz_zip_dos_to_time_t(MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_TIME_OFS), MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_DATE_OFS));
                    ~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.h:526:66: note: expanded from macro 'MZ_READ_LE16'
#define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U))
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:4037:86: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
    pStat->m_time = mz_zip_dos_to_time_t(MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_TIME_OFS), MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_DATE_OFS));
                    ~~~~~~~~~~~~~~~~~~~~                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.h:526:66: note: expanded from macro 'MZ_READ_LE16'
#define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U))
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:4042:30: warning: implicit conversion loses integer precision: 'unsigned int' to 'mz_uint16' (aka 'unsigned short') [-Wconversion]
    pStat->m_internal_attr = MZ_READ_LE16(p + MZ_ZIP_CDH_INTERNAL_ATTR_OFS);
                           ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.h:526:66: note: expanded from macro 'MZ_READ_LE16'
#define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U))
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:4158:43: warning: operand of ? changes signedness: 'int' to 'mz_uint8' (aka 'unsigned char') [-Wsign-conversion]
        if ((l = MZ_TOLOWER(*pL)) != (r = MZ_TOLOWER(*pR)))
                                        ~ ^~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:3037:68: note: expanded from macro 'MZ_TOLOWER'
#define MZ_TOLOWER(c) ((((c) >= 'A') && ((c) <= 'Z')) ? ((c) - 'A' + 'a') : (c))
                                                         ~~~~~~~~~~^~~~~
NetCraft/deps/miniz/miniz.c:4158:54: warning: operand of ? changes signedness: 'const char' to 'mz_uint8' (aka 'unsigned char') [-Wsign-conversion]
        if ((l = MZ_TOLOWER(*pL)) != (r = MZ_TOLOWER(*pR)))
                                        ~            ^~~
NetCraft/deps/miniz/miniz.c:3037:78: note: expanded from macro 'MZ_TOLOWER'
#define MZ_TOLOWER(c) ((((c) >= 'A') && ((c) <= 'Z')) ? ((c) - 'A' + 'a') : (c))
                                                                             ^
NetCraft/deps/miniz/miniz.c:4259:36: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
            int ofs = filename_len - 1;
                ~~~   ~~~~~~~~~~~~~^~~
NetCraft/deps/miniz/miniz.c:4267:29: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
            filename_len -= ofs;
                         ~~ ^~~
In file included from NetCraft/deps/miniz/miniz.c:27:
NetCraft/deps/miniz/miniz.h:912:15: warning: padding struct 'mz_zip_archive_file_stat' with 4 bytes to align 'm_central_dir_ofs' [-Wpadded]
    mz_uint64 m_central_dir_ofs;
              ^
NetCraft/deps/miniz/miniz.h:935:15: warning: padding struct 'mz_zip_archive_file_stat' with 2 bytes to align 'm_external_attr' [-Wpadded]
    mz_uint32 m_external_attr;
              ^
NetCraft/deps/miniz/miniz.c:5332:112: warning: implicit conversion loses integer precision: 'mz_int64' (aka 'long long') to 'long' [-Wshorten-64-to-32]
    if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET))))
                                                                           ~~~~~~~~~~                          ^~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:5407:48: warning: implicit conversion changes signedness: 'long' to 'mz_uint64' (aka 'unsigned long long') [-Wsign-conversion]
    pZip->m_pState->m_file_archive_start_ofs = MZ_FTELL64(pZip->m_pState->m_pFile);
                                             ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:3023:20: note: expanded from macro 'MZ_FTELL64'
#define MZ_FTELL64 ftell
                   ^
NetCraft/deps/miniz/miniz.c:5515:15: warning: padding struct 'mz_zip_writer_add_state' with 4 bytes to align 'm_cur_archive_file_ofs' [-Wpadded]
    mz_uint64 m_cur_archive_file_ofs;
              ^
NetCraft/deps/miniz/miniz.c:5522:107: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
    if ((int)pState->m_pZip->m_pWrite(pState->m_pZip->m_pIO_opaque, pState->m_cur_archive_file_ofs, pBuf, len) != len)
             ~~~~~~                                                                                       ^~~
NetCraft/deps/miniz/miniz.c:5525:39: warning: implicit conversion changes signedness: 'int' to 'unsigned long long' [-Wsign-conversion]
    pState->m_cur_archive_file_ofs += len;
                                   ~~ ^~~
NetCraft/deps/miniz/miniz.c:5526:28: warning: implicit conversion changes signedness: 'int' to 'unsigned long long' [-Wsign-conversion]
    pState->m_comp_size += len;
                        ~~ ^~~
NetCraft/deps/miniz/miniz.c:5632:102: warning: implicit conversion loses integer precision: 'unsigned int' to 'mz_uint16' (aka 'unsigned short') [-Wconversion]
    if (!mz_zip_writer_create_central_dir_header(pZip, central_dir_header, filename_size, extra_size + user_extra_data_len, comment_size, uncomp_size, comp_size, uncomp_crc32, method, bit_fl...
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                          ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:5838:117: warning: implicit conversion loses integer precision: 'unsigned int' to 'mz_uint16' (aka 'unsigned short') [-Wconversion]
        if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, extra_size + user_extra_data_len, 0, 0, 0, method, bit_flags, dos_time, dos_date))
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                       ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:5865:106: warning: implicit conversion loses integer precision: 'mz_uint' (aka 'unsigned int') to 'mz_uint16' (aka 'unsigned short')
      [-Wconversion]
        if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, user_extra_data_len, 0, 0, 0, method, bit_flags, dos_time, dos_date))
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                       ^~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:5919:76: warning: implicit conversion changes signedness: 'mz_uint' (aka 'unsigned int') to 'int' [-Wsign-conversion]
        if ((tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY) ||
             ~~~~~~~~~~                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:5919:116: warning: implicit conversion changes signedness: 'mz_uint' (aka 'unsigned int') to 'int' [-Wsign-conversion]
        if ((tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY) ||
                                                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~
NetCraft/deps/miniz/miniz.c:5969:107: warning: implicit conversion loses integer precision: 'mz_uint32' (aka 'unsigned int') to 'mz_uint16' (aka 'unsigned short')
      [-Wconversion]
    if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, pExtra_data, extra_size, pComment,
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                 ^~~~~~~~~~
NetCraft/deps/miniz/miniz.c:6094:117: warning: implicit conversion loses integer precision: 'unsigned int' to 'mz_uint16' (aka 'unsigned short') [-Wconversion]
        if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, extra_size + user_extra_data_len, 0, 0, 0, method, gen_flags, dos_time, dos_date))
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                       ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:6118:106: warning: implicit conversion loses integer precision: 'mz_uint' (aka 'unsigned int') to 'mz_uint16' (aka 'unsigned short')
      [-Wconversion]
        if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, user_extra_data_len, 0, 0, 0, method, gen_flags, dos_time, dos_date))
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                       ^~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:6182:79: warning: implicit conversion changes signedness: 'mz_uint' (aka 'unsigned int') to 'int' [-Wsign-conversion]
            if (tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY)
                ~~~~~~~~~~                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:6182:119: warning: implicit conversion changes signedness: 'mz_uint' (aka 'unsigned int') to 'int' [-Wsign-conversion]
            if (tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY)
                                                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~
NetCraft/deps/miniz/miniz.c:6268:107: warning: implicit conversion loses integer precision: 'mz_uint32' (aka 'unsigned int') to 'mz_uint16' (aka 'unsigned short')
      [-Wconversion]
    if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, pExtra_data, extra_size, pComment, comment_size,
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                 ^~~~~~~~~~
NetCraft/deps/miniz/miniz.c:6300:19: warning: implicit conversion changes signedness: 'long' to 'mz_uint64' (aka 'unsigned long long') [-Wsign-conversion]
    uncomp_size = MZ_FTELL64(pSrc_file);
                ~ ^~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:3023:20: note: expanded from macro 'MZ_FTELL64'
#define MZ_FTELL64 ftell
                   ^
NetCraft/deps/miniz/miniz.c:6351:76: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
        mz_write_le16(new_ext_block + sizeof(mz_uint16), (mz_uint16)((pDst - new_ext_block) - sizeof(mz_uint16) * 2));
                                                                      ~~~~~^~~~~~~~~~~~~~~  ~
NetCraft/deps/miniz/miniz.c:6353:73: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
        if (!mz_zip_array_push_back(pZip, pNew_ext, new_ext_block, pDst - new_ext_block))
             ~~~~~~~~~~~~~~~~~~~~~~                                ~~~~~^~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:6627:52: warning: cast from 'const mz_uint8 *' (aka 'const unsigned char *') to 'const mz_uint32 *' (aka 'const unsigned int *') increases
      required alignment from 1 to 4 [-Wcast-align]
                const mz_uint32 *pSrc_descriptor = (const mz_uint32 *)((const mz_uint8 *)pBuf + (has_id ? sizeof(mz_uint32) : 0));
                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:7071:13: warning: enumeration value 'MZ_ZIP_TOTAL_ERRORS' not explicitly handled in switch [-Wswitch-enum]
    switch (mz_err)
            ^
NetCraft/deps/miniz/miniz.c:7190:16: warning: implicit conversion changes signedness: 'mz_bool' (aka 'int') to 'size_t' (aka 'unsigned int') [-Wsign-conversion]
        return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER);
        ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NetCraft/deps/miniz/miniz.c:5530:9: warning: macro is not used [-Wunused-macros]
#define MZ_ZIP64_MAX_LOCAL_EXTRA_FIELD_SIZE (sizeof(mz_uint16) * 2 + sizeof(mz_uint64) * 2)
        ^
162 warnings generated.
[ 90%] Building C object CMakeFiles/craft.dir/deps/noise/noise.c.o
NetCraft/deps/noise/noise.c:115:19: warning: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Wconversion]
        PERM[i] = i;
                ~ ^
NetCraft/deps/noise/noise.c:112:6: warning: no previous prototype for function 'seed' [-Wmissing-prototypes]
void seed(unsigned int x) {
     ^
NetCraft/deps/noise/noise.c:129:7: warning: no previous prototype for function 'noise2' [-Wmissing-prototypes]
float noise2(float x, float y) {
      ^
NetCraft/deps/noise/noise.c:171:7: warning: no previous prototype for function 'noise3' [-Wmissing-prototypes]
float noise3(float x, float y, float z) {
      ^
NetCraft/deps/noise/noise.c:238:7: warning: no previous prototype for function 'simplex2' [-Wmissing-prototypes]
float simplex2(
      ^
NetCraft/deps/noise/noise.c:256:7: warning: no previous prototype for function 'simplex3' [-Wmissing-prototypes]
float simplex3(
      ^
6 warnings generated.
[ 95%] Building C object CMakeFiles/craft.dir/deps/tinycthread/tinycthread.c.o
In file included from NetCraft/deps/tinycthread/tinycthread.c:29:
NetCraft/deps/tinycthread/tinycthread.h:25:9: warning: macro name is a reserved identifier [-Wreserved-id-macro]
#define _TINYCTHREAD_H_
        ^
NetCraft/deps/tinycthread/tinycthread.h:55:13: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #define _TTHREAD_POSIX_
            ^
NetCraft/deps/tinycthread/tinycthread.h:57:11: warning: macro name is a reserved identifier [-Wreserved-id-macro]
  #define _TTHREAD_PLATFORM_DEFINED_
          ^
NetCraft/deps/tinycthread/tinycthread.h:62:10: warning: macro name is a reserved identifier [-Wreserved-id-macro]
  #undef _FEATURES_H
         ^
NetCraft/deps/tinycthread/tinycthread.h:64:13: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #define _GNU_SOURCE
            ^
NetCraft/deps/tinycthread/tinycthread.h:67:12: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #undef _POSIX_C_SOURCE
           ^
NetCraft/deps/tinycthread/tinycthread.h:68:13: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #define _POSIX_C_SOURCE 199309L
            ^
NetCraft/deps/tinycthread/tinycthread.h:71:12: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #undef _XOPEN_SOURCE
           ^
NetCraft/deps/tinycthread/tinycthread.h:72:13: warning: macro name is a reserved identifier [-Wreserved-id-macro]
    #define _XOPEN_SOURCE 500
            ^
NetCraft/deps/tinycthread/tinycthread.h:157:11: warning: macro name is a reserved identifier [-Wreserved-id-macro]
  #define _Thread_local __thread
          ^
NetCraft/deps/tinycthread/tinycthread.h:199:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:214:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:227:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_busy if the resource
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:235:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:253:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:268:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:278:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:290:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:303:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success upon success, or @ref thrd_timeout if the time
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:302:10: warning: parameter 'xt' not found in the function declaration [-Wdocumentation]
* @param xt A point in time at which the request will time out (absolute time).
         ^~
NetCraft/deps/tinycthread/tinycthread.h:302:10: note: did you mean 'ts'?
* @param xt A point in time at which the request will time out (absolute time).
         ^~
         ts
NetCraft/deps/tinycthread/tinycthread.h:331:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_nomem if no memory could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:367:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:406:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.h:432:10: warning: empty paragraph passed to '@return' command [-Wdocumentation]
* @return @ref thrd_success on success, or @ref thrd_error if the request could
  ~~~~~~~^
NetCraft/deps/tinycthread/tinycthread.c:418:1: warning: function 'thrd_exit' could be declared with attribute 'noreturn' [-Wmissing-noreturn]
{
^
NetCraft/deps/tinycthread/tinycthread.c:49:11: warning: macro is not used [-Wunused-macros]
  #define TRUE 1
          ^
NetCraft/deps/tinycthread/tinycthread.c:52:11: warning: macro is not used [-Wunused-macros]
  #define FALSE 0
          ^
27 warnings generated.
[100%] Linking C executable craft.html
[100%] Built target craft
build $