➤ uname -a Linux Tux 6.17.0-6-generic #6-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 7 13:34:17 UTC 2025 x86_64 GNU/Linux ➤ g++ --version g++ (Ubuntu 15.2.0-4ubuntu4) 15.2.0 Copyright (C) 2025 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ➤ cmake . -- The C compiler identification is GNU 15.2.0 -- The CXX compiler identification is GNU 15.2.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/g++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done (0.5s) -- Generating done (0.0s) -- Build files have been written to: /Repos/CWTS/src ➤ make -k [ 1%] Building CXX object CMakeFiles/CWTS.dir/array_bounds_1.cpp.o 👎 [ 2%] Building CXX object CMakeFiles/CWTS.dir/array_bounds_2.cpp.o 👎 [ 4%] Building CXX object CMakeFiles/CWTS.dir/array_bounds_3.cpp.o 👎 [ 5%] Building CXX object CMakeFiles/CWTS.dir/array_bounds_4.cpp.o 👎 [ 6%] Building CXX object CMakeFiles/CWTS.dir/array_bounds_5.cpp.o 👎 [ 8%] Building CXX object CMakeFiles/CWTS.dir/array_bounds_6.cpp.o 👎 [ 9%] Building CXX object CMakeFiles/CWTS.dir/array_braces_missing.cpp.o 👎 [ 11%] Building CXX object CMakeFiles/CWTS.dir/assignment_in_condition_1.cpp.o /Repos/CWTS/src/assignment_in_condition_1.cpp: In function ‘bool test_suite::assignment_in_condition_1(int)’: /Repos/CWTS/src/assignment_in_condition_1.cpp:7:27: warning: suggest parentheses around assignment used as truth value -Wparentheses] 7 | if (alpha = 5) // <- 'alpha = 5' will evaluate to value 5, which is always true | ~~~~~~^~~ [ 12%] Building CXX object CMakeFiles/CWTS.dir/assignment_in_condition_2.cpp.o /Repos/CWTS/src/assignment_in_condition_2.cpp: In function ‘bool test_suite::assignment_in_condition_2(int)’: /Repos/CWTS/src/assignment_in_condition_2.cpp:7:27: warning: suggest parentheses around assignment used as truth value -Wparentheses] 7 | if (alpha =! 5) // <- Ups, I meant '!=' | ~~~~~~^~~~ [ 13%] Building CXX object CMakeFiles/CWTS.dir/bool_cast.cpp.o 👎 [ 15%] Building CXX object CMakeFiles/CWTS.dir/bool_compare.cpp.o /Repos/CWTS/src/bool_compare.cpp: In function ‘bool test_suite::bool_compare(int)’: /Repos/CWTS/src/bool_compare.cpp:7:37: warning: comparison of constant ‘2’ with boolean expression is always false [-Wbool-compare] 7 | return (number > 0) == 2; // <- comparison is always false | ~~~~~~~~~~~~~^~~~ [ 16%] Building CXX object CMakeFiles/CWTS.dir/branches_identical_1.cpp.o 👎 [ 18%] Building CXX object CMakeFiles/CWTS.dir/branches_identical_2.cpp.o 👎 [ 19%] Building CXX object CMakeFiles/CWTS.dir/branches_identical_3.cpp.o 👎 [ 20%] Building CXX object CMakeFiles/CWTS.dir/cast_unnecessary.cpp.o 👎 [ 22%] Building CXX object CMakeFiles/CWTS.dir/code_unreachable_1.cpp.o 👎 [ 23%] Building CXX object CMakeFiles/CWTS.dir/code_unreachable_2.cpp.o 👎 [ 25%] Building CXX object CMakeFiles/CWTS.dir/code_unreachable_3.cpp.o 👎 [ 26%] Building CXX object CMakeFiles/CWTS.dir/comment.cpp.o /Repos/CWTS/src/comment.cpp:1:4: warning: ‘/*’ within comment [-Wcomment] 1 | /* /* <- comment in comment */ [ 27%] Building CXX object CMakeFiles/CWTS.dir/constant_expression.cpp.o /Repos/CWTS/src/constant_expression.cpp: In function ‘void test_suite::constant_expression()’: /Repos/CWTS/src/constant_expression.cpp:9:55: warning: comparison of unsigned expression in ‘>= 0’ is always true [-Wtype-limits] 9 | for (unsigned int i = start_number; i >= 0; i++) // <- condition is always true (endless loop) | ~~^~~~ [ 29%] Building CXX object CMakeFiles/CWTS.dir/constant_overflow.cpp.o /Repos/CWTS/src/constant_overflow.cpp:3:34: error: narrowing conversion of ‘65535’ from ‘int’ to ‘char’ [-Wnarrowing] 3 | char letters[] = { 1, 2, 0xFFFF }; // <- 0xffff is too big for 'char' | ^~~~~~ make[2]: *** [CMakeFiles/CWTS.dir/build.make:359: CMakeFiles/CWTS.dir/constant_overflow.cpp.o] Error 1 [ 30%] Building CXX object CMakeFiles/CWTS.dir/division_by_zero_1.cpp.o /Repos/CWTS/src/division_by_zero_1.cpp: In function ‘int test_suite::division_by_zero_1(int)’: /Repos/CWTS/src/division_by_zero_1.cpp:7:30: warning: division by zero [-Wdiv-by-zero] 7 | return alpha / 0; // <- division by zero | ~~~~~~^~~ [ 31%] Building CXX object CMakeFiles/CWTS.dir/division_by_zero_2.cpp.o 👎 [ 33%] Building CXX object CMakeFiles/CWTS.dir/enum_unhandled.cpp.o /Repos/CWTS/src/enum_unhandled.cpp: In function ‘int test_suite::enum_unhandled(Color)’: /Repos/CWTS/src/enum_unhandled.cpp:9:24: warning: enumeration value ‘blue’ not handled in switch [-Wswitch] 9 | switch (color) | ^ [ 34%] Building CXX object CMakeFiles/CWTS.dir/enum_value.cpp.o 👎 [ 36%] Building CXX object CMakeFiles/CWTS.dir/extra_tokens.cpp.o /Repos/CWTS/src/extra_tokens.cpp:2:8: warning: extra tokens at end of ‘#endif’ directive [-Wendif-labels] 2 | #endif BAD // <- #endif has no parameters | ^~~ [ 37%] Building CXX object CMakeFiles/CWTS.dir/file_empty.cpp.o 👎 [ 38%] Building CXX object CMakeFiles/CWTS.dir/format_string_1.cpp.o /Repos/CWTS/src/format_string_1.cpp: In function ‘void test_suite::format_string_1()’: /Repos/CWTS/src/format_string_1.cpp:9:26: warning: format ‘%s’ expects argument of type ‘char*’, but argument 2 has type ‘int’ [-Wformat=] 9 | printf("%s", 0); // <- null pointer access | ~^ ~ | | | | | int | char* | %d /Repos/CWTS/src/format_string_1.cpp:9:25: warning: ‘%s’ directive argument is null [-Wformat-overflow=] 9 | printf("%s", 0); // <- null pointer access | ^~ [ 40%] Building CXX object CMakeFiles/CWTS.dir/format_string_2.cpp.o /Repos/CWTS/src/format_string_2.cpp: In function ‘void test_suite::format_string_2()’: /Repos/CWTS/src/format_string_2.cpp:9:24: warning: zero-length gnu_printf format string [-Wformat-zero-length] 9 | printf(""); // <- empty format string | ^~ [ 41%] Building CXX object CMakeFiles/CWTS.dir/format_string_3.cpp.o /Repos/CWTS/src/format_string_3.cpp: In function ‘void test_suite::format_string_3(const char*)’: /Repos/CWTS/src/format_string_3.cpp:9:23: warning: format not a string literal and no format arguments [-Wformat-security] 9 | printf(str); // <- is handled as format string | ~~~~~~^~~~~ [ 43%] Building CXX object CMakeFiles/CWTS.dir/function_parameter_unused.cpp.o /Repos/CWTS/src/function_parameter_unused.cpp: In function ‘int test_suite::parameter_unused(int, int)’: /Repos/CWTS/src/function_parameter_unused.cpp:5:45: warning: unused parameter ‘beta’ [-Wunused-parameter] 5 | int parameter_unused(int alpha, int beta) // <- function parameter is unused | ~~~~^~~~ [ 44%] Building CXX object CMakeFiles/CWTS.dir/function_without_prototype.cpp.o 👎 [ 45%] Building CXX object CMakeFiles/CWTS.dir/function_without_return_value.cpp.o /Repos/CWTS/src/function_without_return_value.cpp: In function ‘int test_suite::function_without_return_value()’: /Repos/CWTS/src/function_without_return_value.cpp:7:17: error: return-statement with no value, in function returning ‘int’ [-fpermissive] 7 | return; // <- return value is missing | ^~~~~~ make[2]: *** [CMakeFiles/CWTS.dir/build.make:527: CMakeFiles/CWTS.dir/function_without_return_value.cpp.o] Error 1 [ 47%] Building CXX object CMakeFiles/CWTS.dir/identifier_undefined.cpp.o /Repos/CWTS/src/identifier_undefined.cpp:1:5: warning: ‘IDENTIFIER_UNDEFINED’ is not defined, evaluates to ‘0’ [-Wundef] 1 | #if IDENTIFIER_UNDEFINED // <- identifier is undefined | ^~~~~~~~~~~~~~~~~~~~ [ 48%] Building CXX object CMakeFiles/CWTS.dir/implicit_conversion_1.cpp.o 👎 [ 50%] Building CXX object CMakeFiles/CWTS.dir/implicit_conversion_2.cpp.o 👎 [ 51%] Building CXX object CMakeFiles/CWTS.dir/implicit_conversion_3.cpp.o 👎 [ 52%] Building CXX object CMakeFiles/CWTS.dir/implicit_conversion_4.cpp.o 👎 [ 54%] Building CXX object CMakeFiles/CWTS.dir/label_unused.cpp.o /Repos/CWTS/src/label_unused.cpp: In function ‘int test_suite::label_unused(int)’: /Repos/CWTS/src/label_unused.cpp:7:9: warning: label ‘label_is_unused’ defined but not used [-Wunused-label] 7 | label_is_unused: // <- label is unused | ^~~~~~~~~~~~~~~ [ 55%] Building CXX object CMakeFiles/CWTS.dir/logical_not.cpp.o /Repos/CWTS/src/logical_not.cpp: In function ‘int test_suite::logical_not(int)’: /Repos/CWTS/src/logical_not.cpp:7:30: warning: ‘<<’ in boolean context, did you mean ‘<’? [-Wint-in-bool-context] 7 | alpha &= !(1 << 7); // <- Ups, I meant '~' instead of '!' | ~~~^~~~~ [ 56%] Building CXX object CMakeFiles/CWTS.dir/main.cpp.o [ 58%] Building CXX object CMakeFiles/CWTS.dir/member_init_reorder.cpp.o /Repos/CWTS/src/member_init_reorder.cpp: In constructor ‘test_suite::Alpha::Alpha()’: /Repos/CWTS/src/member_init_reorder.cpp:6:21: warning: ‘test_suite::Alpha::gamma’ will be initialized after [-Wreorder] 6 | int gamma; | ^~~~~ /Repos/CWTS/src/member_init_reorder.cpp:5:21: warning: ‘int test_suite::Alpha::beta’ [-Wreorder] 5 | int beta; | ^~~~ /Repos/CWTS/src/member_init_reorder.cpp:7:17: warning: when initialized here [-Wreorder] 7 | Alpha(): gamma(0), beta(1) { } // <- member reordered | ^~~~~ [ 59%] Building CXX object CMakeFiles/CWTS.dir/null_pointer_access_1.cpp.o 👎 [ 61%] Building CXX object CMakeFiles/CWTS.dir/null_pointer_access_2.cpp.o 👎 [ 62%] Building CXX object CMakeFiles/CWTS.dir/parentheses.cpp.o /Repos/CWTS/src/parentheses.cpp: In function ‘int test_suite::parentheses(int)’: /Repos/CWTS/src/parentheses.cpp:7:20: warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wdangling-else] 7 | if (value > 0) // <- explicit parentheses recommended | ^ [ 63%] Building CXX object CMakeFiles/CWTS.dir/pointer_compare.cpp.o /Repos/CWTS/src/pointer_compare.cpp: In function ‘bool test_suite::pointer_compare(const char*)’: /Repos/CWTS/src/pointer_compare.cpp:7:29: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] 7 | return (ptr == '\0'); // <- different datatypes (typical typo, "*ptr" was meant) | ~~~~^~~~~~~ make[2]: *** [CMakeFiles/CWTS.dir/build.make:709: CMakeFiles/CWTS.dir/pointer_compare.cpp.o] Error 1 [ 65%] Building CXX object CMakeFiles/CWTS.dir/recursive_include.cpp.o In file included from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1, from /Repos/CWTS/src/recursive_include.cpp:1: /Repos/CWTS/src/recursive_include.cpp:1:58: error: ‘#include’ nested depth 200 exceeds maximum of 200 (use ‘-fmax-include-depth=DEPTH’ to increase the maximum) 1 | #include "recursive_include.cpp" // <- recursive #include | ^ make[2]: *** [CMakeFiles/CWTS.dir/build.make:723: CMakeFiles/CWTS.dir/recursive_include.cpp.o] Error 1 [ 66%] Building CXX object CMakeFiles/CWTS.dir/shift_count_negative.cpp.o /Repos/CWTS/src/shift_count_negative.cpp: In function ‘int test_suite::shift_count_negative(int)’: /Repos/CWTS/src/shift_count_negative.cpp:7:30: warning: left shift count is negative [-Wshift-count-negative] 7 | return value << -1; // <- shift count is negative | ~~~~~~^~~~~ [ 68%] Building CXX object CMakeFiles/CWTS.dir/shift_count_overflow.cpp.o /Repos/CWTS/src/shift_count_overflow.cpp: In function ‘int test_suite::shift_count_overflow(int)’: /Repos/CWTS/src/shift_count_overflow.cpp:7:30: warning: left shift count >= width of type [-Wshift-count-overflow] 7 | return value << 66; // <- shift count is too high | ~~~~~~^~~~~ [ 69%] Building CXX object CMakeFiles/CWTS.dir/shift_overflow.cpp.o /Repos/CWTS/src/shift_overflow.cpp: In function ‘int test_suite::shift_overflow()’: /Repos/CWTS/src/shift_overflow.cpp:9:32: warning: result of ‘(2147483647 << 10)’ requires 42 bits to represent, but ‘in’ only has 32 bits [-Wshift-overflow=] 9 | return INT_MAX << 10; // <- shift overflow | ^ [ 70%] Building CXX object CMakeFiles/CWTS.dir/shift_value_negative.cpp.o /Repos/CWTS/src/shift_value_negative.cpp: In function ‘int test_suite::shift_value_negative()’: /Repos/CWTS/src/shift_value_negative.cpp:7:27: warning: left shift of negative value [-Wshift-negative-value] 7 | return -1 << 2; // <- value to shift is negative | ~~~^~~~ [ 72%] Building CXX object CMakeFiles/CWTS.dir/stack_address_returned.cpp.o /Repos/CWTS/src/stack_address_returned.cpp: In function ‘int* test_suite::stack_address_returned()’: /Repos/CWTS/src/stack_address_returned.cpp:9:24: warning: address of local variable ‘array’ returned [-Wreturn-local-addr] 9 | return array; // <- returns stack address | ^~~~~ /Repos/CWTS/src/stack_address_returned.cpp:7:21: note: declared here 7 | int array[10] = {}; | ^~~~~ [ 73%] Building CXX object CMakeFiles/CWTS.dir/static_const_unused.cpp.o 👎 [ 75%] Building CXX object CMakeFiles/CWTS.dir/static_function_unused.cpp.o /Repos/CWTS/src/static_function_unused.cpp:3:21: warning: ‘void test_suite::static_function_unused()’ defined but not used [-Wunused-function] 3 | static void static_function_unused(void) // <- static function is unused | ^~~~~~~~~~~~~~~~~~~~~~ [ 76%] Building CXX object CMakeFiles/CWTS.dir/switch_body_empty.cpp.o 👎 [ 77%] Building CXX object CMakeFiles/CWTS.dir/switch_code_unreachable.cpp.o /Repos/CWTS/src/switch_code_unreachable.cpp: In function ‘int test_suite::switch_code_unreachable(int)’: /Repos/CWTS/src/switch_code_unreachable.cpp:11:23: warning: this statement may fall through [-Wimplicit-fallthrough=] 11 | value *= 2; // <- the switch code is unreachable | ~~~~~~^~~~ /Repos/CWTS/src/switch_code_unreachable.cpp:12:17: note: here 12 | default: value /= 2; break; | ^~~~~~~ [ 79%] Building CXX object CMakeFiles/CWTS.dir/switch_default_missing.cpp.o 👎 [ 80%] Building CXX object CMakeFiles/CWTS.dir/value_unused_1.cpp.o /Repos/CWTS/src/value_unused_1.cpp: In function ‘int test_suite::value_unused_1(int, int)’: /Repos/CWTS/src/value_unused_1.cpp:7:23: warning: statement has no effect [-Wunused-value] 7 | alpha * beta; // <- the result is unused | ~~~~~~^~~~~~ [ 81%] Building CXX object CMakeFiles/CWTS.dir/value_unused_2.cpp.o /Repos/CWTS/src/value_unused_2.cpp: In function ‘int test_suite::value_unused_2(int, int)’: /Repos/CWTS/src/value_unused_2.cpp:7:24: warning: left operand of comma operator has no effect [-Wunused-value] 7 | return alpha, beta; // <- only one is used | ^~~~~ [ 83%] Building CXX object CMakeFiles/CWTS.dir/variable_assignment.cpp.o /Repos/CWTS/src/variable_assignment.cpp: In function ‘void test_suite::variable_assignment()’: /Repos/CWTS/src/variable_assignment.cpp:9:27: warning: suggest parentheses around assignment used as truth value [-Wparentheses] 9 | if (alpha = beta) // <- Ups, I meant "alpha == beta" | ~~~~~~^~~~~~ [ 84%] Building CXX object CMakeFiles/CWTS.dir/variable_compare_1.cpp.o 👎 [ 86%] Building CXX object CMakeFiles/CWTS.dir/variable_compare_2.cpp.o 👎 [ 87%] Building CXX object CMakeFiles/CWTS.dir/variable_compare_3.cpp.o /Repos/CWTS/src/variable_compare_3.cpp: In function ‘bool test_suite::variable_compare_3(int, unsigned int)’: /Repos/CWTS/src/variable_compare_3.cpp:7:30: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare] 7 | return alpha == beta; // <- different datatypes | ~~~~~~^~~~~~~ [ 88%] Building CXX object CMakeFiles/CWTS.dir/variable_compare_4.cpp.o /Repos/CWTS/src/variable_compare_4.cpp: In function ‘bool test_suite::variable_compare_4(long int, long unsigned int)’: /Repos/CWTS/src/variable_compare_4.cpp:7:30: warning: comparison of integer expressions of different signedness: ‘long int’ and ‘long unsigned int’ [-Wsign-compare] 7 | return alpha == beta; // <- different datatypes | ~~~~~~^~~~~~~ [ 90%] Building CXX object CMakeFiles/CWTS.dir/variable_init_self.cpp.o /Repos/CWTS/src/variable_init_self.cpp: In function ‘int test_suite::variable_init_self()’: /Repos/CWTS/src/variable_init_self.cpp:7:21: warning: ‘alpha’ is used uninitialized [-Wuninitialized] 7 | int alpha = alpha; // <- variable initialized by itself | ^~~~~ /Repos/CWTS/src/variable_init_self.cpp:7:21: note: ‘alpha’ was declared here 7 | int alpha = alpha; // <- variable initialized by itself | ^~~~~ [ 91%] Building CXX object CMakeFiles/CWTS.dir/variable_shadowed_1.cpp.o 👎 [ 93%] Building CXX object CMakeFiles/CWTS.dir/variable_shadowed_2.cpp.o 👎 [ 94%] Building CXX object CMakeFiles/CWTS.dir/variable_size_array.cpp.o /Repos/CWTS/src/variable_size_array.cpp: In function ‘void test_suite::variable_size_array(int)’: /Repos/CWTS/src/variable_size_array.cpp:7:23: warning: ISO C++ forbids variable length array ‘abc’ [-Wvla] 7 | float abc[size]; // <- array size is not constant | ^~~ /Repos/CWTS/src/variable_size_array.cpp:7:23: warning: variable ‘abc’ set but not used [-Wunused-but-set-variable] [ 95%] Building CXX object CMakeFiles/CWTS.dir/variable_unsequenced.cpp.o /Repos/CWTS/src/variable_unsequenced.cpp: In function ‘void test_suite::variable_unsequenced(int)’: /Repos/CWTS/src/variable_unsequenced.cpp:9:40: warning: operation on ‘value’ may be undefined [-Wsequence-point] 9 | printf("%d,%d", value, ++value); // <- variable unsequenced | ^~~~~~~ /Repos/CWTS/src/variable_unsequenced.cpp:9:40: warning: operation on ‘value’ may be undefined [-Wsequence-point] [ 97%] Building CXX object CMakeFiles/CWTS.dir/variable_unused.cpp.o /Repos/CWTS/src/variable_unused.cpp: In function ‘void test_suite::variable_unused()’: /Repos/CWTS/src/variable_unused.cpp:7:21: warning: unused variable ‘value’ [-Wunused-variable] 7 | int value = 0; // <- variable is unused | ^~~~~ [ 98%] Building CXX object CMakeFiles/CWTS.dir/variable_used_uninitialized.cpp.o /Repos/CWTS/src/variable_used_uninitialized.cpp: In function ‘void test_suite::variable_used_uninitialized()’: /Repos/CWTS/src/variable_used_uninitialized.cpp:10:29: warning: ‘beta’ is used uninitialized [-Wuninitialized] 10 | beta++; // <- variable used uninitialized | ~~~~^~ /Repos/CWTS/src/variable_used_uninitialized.cpp:7:32: note: ‘beta’ was declared here 7 | int alpha = 0, beta; | ^~~~ make[2]: Target 'CMakeFiles/CWTS.dir/build' not remade because of errors. make[1]: *** [CMakeFiles/Makefile2:87: CMakeFiles/CWTS.dir/all] Error 2 make[1]: Target 'all' not remade because of errors. make: *** [Makefile:136: all] Error 2 make: Target 'default_target' not remade because of errors.