X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=main.c;h=223d090df6fd840d870324a5d5d8a19c82f468ca;hb=921bbd7a8a84a5f12f59eaba2977017cd37f6ce0;hp=be3d60c3ecd2fa20beeefa475ff96125094bffca;hpb=8a5dd1455a19a3082d058c23077b1524bff7cabb;p=xonotic%2Fgmqcc.git diff --git a/main.c b/main.c index be3d60c..223d090 100644 --- a/main.c +++ b/main.c @@ -23,8 +23,6 @@ #include "gmqcc.h" #include "lexer.h" -#include - uint32_t opts_flags[1 + (COUNT_FLAGS / 32)]; uint32_t opts_warn [1 + (COUNT_WARNINGS / 32)]; @@ -36,7 +34,6 @@ bool opts_memchk = false; bool opts_dump = false; bool opts_werror = false; bool opts_forcecrc = false; -bool opts_benchmark = false; uint16_t opts_forced_crc; @@ -72,15 +69,13 @@ static int usage() { " -std=gmqcc this compiler (default)\n"); printf(" -W enable a warning\n" " -Wno- disable a warning\n" - " -Wall enable all warnings\n"); + " -Wall enable all warnings\n" " -Werror treat warnings as errors\n"); printf(" -force-crc=num force a specific checksum into the header\n"); printf("\n"); printf("flags:\n" - " -fdarkplaces-string-table-bug\n" - " patch the string table to work with some bugged darkplaces versions\n" - " -fomit-nullbytes\n" - " omits certain null-bytes for a smaller output - requires a patched engine\n" + " -fadjust-vector-fields\n" + " when assigning a vector field, its _y and _z fields also get assigned\n" ); return -1; } @@ -209,10 +204,6 @@ static bool options_parse(int argc, char **argv) { opts_memchk = true; continue; } - if (!strcmp(argv[0]+1, "benchmark")) { - opts_benchmark = true; - continue; - } switch (argv[0][1]) { /* -h, show usage but exit with 0 */ @@ -400,8 +391,6 @@ int main(int argc, char **argv) { int retval = 0; bool opts_output_free = false; - struct timespec ta, tb, tc; - app_name = argv[0]; /* default options / warn flags */ @@ -418,6 +407,7 @@ int main(int argc, char **argv) { options_set(opts_warn, WARN_FRAME_MACROS, true); options_set(opts_warn, WARN_UNUSED_VARIABLE, true); options_set(opts_warn, WARN_EFFECTLESS_STATEMENT, true); + options_set(opts_warn, WARN_END_SYS_FIELDS, true); if (!options_parse(argc, argv)) { return usage(); @@ -455,8 +445,6 @@ int main(int argc, char **argv) { if (items_elements) { printf("Mode: manual\n"); printf("There are %lu items to compile:\n", (unsigned long)items_elements); - if (opts_benchmark) - clock_gettime(CLOCK_MONOTONIC, &ta); for (itr = 0; itr < items_elements; ++itr) { printf(" item: %s (%s)\n", items_data[itr].filename, @@ -471,11 +459,7 @@ int main(int argc, char **argv) { } } - if (opts_benchmark) - clock_gettime(CLOCK_MONOTONIC, &tb); parser_finish(opts_output); - if (opts_benchmark) - clock_gettime(CLOCK_MONOTONIC, &tc); } else { FILE *src; @@ -502,8 +486,6 @@ int main(int argc, char **argv) { opts_output_free = true; } - if (opts_benchmark) - clock_gettime(CLOCK_MONOTONIC, &ta); while (progs_nextline(&line, &linelen, src)) { if (!line[0] || (line[0] == '/' && line[1] == '/')) continue; @@ -514,32 +496,12 @@ int main(int argc, char **argv) { } } - if (opts_benchmark) - clock_gettime(CLOCK_MONOTONIC, &tb); parser_finish(opts_output); - if (opts_benchmark) - clock_gettime(CLOCK_MONOTONIC, &tc); srcdone: fclose(src); mem_d(line); } - if (opts_benchmark) - { - printf("started parsing at: %lu:%09lu\n", (unsigned long)ta.tv_sec, (unsigned long)ta.tv_nsec); - printf("started codegen at: %lu:%09lu\n", (unsigned long)tb.tv_sec, (unsigned long)tb.tv_nsec); - printf(" finished at: %lu:%09lu\n", (unsigned long)tc.tv_sec, (unsigned long)tc.tv_nsec); - { - size_t sec = tb.tv_sec - ta.tv_sec; - size_t nsec = (tb.tv_nsec + sec * 1000000000L) - ta.tv_nsec; - printf("Parsing took %lu\n", (unsigned long)nsec); - } - { - size_t sec = tc.tv_sec - tb.tv_sec; - size_t nsec = (tc.tv_nsec + sec * 1000000000L) - tb.tv_nsec; - printf("Codegen took %lu\n", (unsigned long)nsec); - } - } /* stuff */