Temporary header file '/tmp/HSK7d42Iyx/dump1.h' with the following content will be compiled to create GCC translation unit dump: // add defines #define __STDC_VERSION__ 201710L #define _GXX_NULLPTR_T #define CLUTTER_ENABLE_COMPOSITOR_API 1 #define _REGEX_NELTS(n) #define _Atomic #define PACKED #define getaddrinfo_a(a,b,c,d) // add includes #include "/usr/include/relacy/atomic.hpp" #include "/usr/include/relacy/atomic_events.hpp" #include "/usr/include/relacy/atomic_fence.hpp" #include "/usr/include/relacy/backoff.hpp" #include "/usr/include/relacy/base.hpp" #include "/usr/include/relacy/cli.hpp" #include "/usr/include/relacy/cli_interlocked.hpp" #include "/usr/include/relacy/cli_var.hpp" #include "/usr/include/relacy/cli_volatile.hpp" #include "/usr/include/relacy/context.hpp" #include "/usr/include/relacy/context_addr_hash.hpp" #include "/usr/include/relacy/context_base.hpp" #include "/usr/include/relacy/context_base_impl.hpp" #include "/usr/include/relacy/context_bound_scheduler.hpp" #include "/usr/include/relacy/defs.hpp" #include "/usr/include/relacy/dyn_thread.hpp" #include "/usr/include/relacy/dyn_thread_ctx.hpp" #include "/usr/include/relacy/foreach.hpp" #include "/usr/include/relacy/full_search_scheduler.hpp" #include "/usr/include/relacy/history.hpp" #include "/usr/include/relacy/java.hpp" #include "/usr/include/relacy/java_atomic.hpp" #include "/usr/include/relacy/java_var.hpp" #include "/usr/include/relacy/java_volatile.hpp" #include "/usr/include/relacy/memory.hpp" #include "/usr/include/relacy/memory_order.hpp" #include "/usr/include/relacy/pch.hpp" #include "/usr/include/relacy/platform.hpp" #include "/usr/include/relacy/pthread.h" #include "/usr/include/relacy/random.hpp" #include "/usr/include/relacy/random_scheduler.hpp" #include "/usr/include/relacy/relacy.hpp" #include "/usr/include/relacy/relacy_cli.hpp" #include "/usr/include/relacy/relacy_java.hpp" #include "/usr/include/relacy/relacy_std.hpp" #include "/usr/include/relacy/rmw.hpp" #include "/usr/include/relacy/scheduler.hpp" #include "/usr/include/relacy/signature.hpp" #include "/usr/include/relacy/slab_allocator.hpp" #include "/usr/include/relacy/stdlib/condition_variable.hpp" #include "/usr/include/relacy/stdlib/event.hpp" #include "/usr/include/relacy/stdlib/mutex.hpp" #include "/usr/include/relacy/stdlib/pthread.hpp" #include "/usr/include/relacy/stdlib/semaphore.hpp" #include "/usr/include/relacy/stdlib/windows.hpp" #include "/usr/include/relacy/sync_var.hpp" #include "/usr/include/relacy/test_params.hpp" #include "/usr/include/relacy/test_result.hpp" #include "/usr/include/relacy/test_suite.hpp" #include "/usr/include/relacy/thread.hpp" #include "/usr/include/relacy/thread_base.hpp" #include "/usr/include/relacy/thread_local.hpp" #include "/usr/include/relacy/thread_local_ctx.hpp" #include "/usr/include/relacy/var.hpp" #include "/usr/include/relacy/volatile.hpp" #include "/usr/include/relacy/waitset.hpp" #include "/usr/include/relacy/windows.h" // add namespaces namespace rl{typedef int tmp_add_type_1;} rl::tmp_add_type_1 tmp_add_func_1(){return 0;}; // add classes _G_fpos64_t* tmp_add_class_0; _G_fpos_t* tmp_add_class_1; _IO_cookie_io_functions_t* tmp_add_class_2; fiber_ctx_t* tmp_add_class_3; fiber_t* tmp_add_class_4; tms* tmp_add_class_5; ucontext_t* tmp_add_class_6; The GCC parameters: gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/HSK7d42Iyx/dump1.h" -I/usr/include/relacy In file included from /usr/include/c++/12/bits/shared_ptr_atomic.h:33, from /usr/include/c++/12/memory:78, from /usr/include/relacy/pch.hpp:42, from /usr/include/relacy/base.hpp:16, from /usr/include/relacy/atomic.hpp:16, from /tmp/HSK7d42Iyx/dump1.h:12: /usr/include/c++/12/bits/atomic_base.h:273:51: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 273 | __glibcxx_assert(__b != memory_order_consume); | ^ In file included from /usr/include/c++/12/cstdlib:41, from /usr/include/c++/12/stdlib.h:36, from /usr/include/relacy/pch.hpp:28: /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:274:51: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 274 | __glibcxx_assert(__b != memory_order_acquire); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:275:51: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 275 | __glibcxx_assert(__b != memory_order_acq_rel); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:285:51: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 285 | __glibcxx_assert(__b != memory_order_consume); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:286:51: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 286 | __glibcxx_assert(__b != memory_order_acquire); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:287:51: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 287 | __glibcxx_assert(__b != memory_order_acq_rel); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:460:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 460 | __glibcxx_assert(__b != memory_order_acquire); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:461:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 461 | __glibcxx_assert(__b != memory_order_acq_rel); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:462:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 462 | __glibcxx_assert(__b != memory_order_consume); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:473:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 473 | __glibcxx_assert(__b != memory_order_acquire); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:474:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 474 | __glibcxx_assert(__b != memory_order_acq_rel); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:475:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 475 | __glibcxx_assert(__b != memory_order_consume); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:485:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 485 | __glibcxx_assert(__b != memory_order_release); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:486:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 486 | __glibcxx_assert(__b != memory_order_acq_rel); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:496:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 496 | __glibcxx_assert(__b != memory_order_release); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:497:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 497 | __glibcxx_assert(__b != memory_order_acq_rel); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:792:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 792 | __glibcxx_assert(__b != memory_order_acquire); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:793:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 793 | __glibcxx_assert(__b != memory_order_acq_rel); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:794:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 794 | __glibcxx_assert(__b != memory_order_consume); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:805:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 805 | __glibcxx_assert(__b != memory_order_acquire); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:806:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 806 | __glibcxx_assert(__b != memory_order_acq_rel); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:807:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 807 | __glibcxx_assert(__b != memory_order_consume); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:817:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 817 | __glibcxx_assert(__b != memory_order_release); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:818:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 818 | __glibcxx_assert(__b != memory_order_acq_rel); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:828:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 828 | __glibcxx_assert(__b != memory_order_release); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | /usr/include/c++/12/bits/atomic_base.h:829:53: error: macro "__glibcxx_constexpr_assert" passed 2 arguments, but takes just 1 829 | __glibcxx_assert(__b != memory_order_acq_rel); | ^ /usr/include/arm-linux-gnueabihf/c++/12/bits/c++config.h:544: note: macro "__glibcxx_constexpr_assert" defined here 544 | # define __glibcxx_constexpr_assert(cond) \ | In file included from /usr/include/relacy/test_params.hpp:17, from /usr/include/relacy/thread_local_ctx.hpp:17, from /usr/include/relacy/context.hpp:17, from /usr/include/relacy/relacy.hpp:18, from /usr/include/relacy/pthread.h:17, from /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:35, from /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr.h:148, from /usr/include/c++/12/ext/atomicity.h:35, from /usr/include/c++/12/bits/ios_base.h:39, from /usr/include/c++/12/ios:42, from /usr/include/c++/12/ostream:38, from /usr/include/c++/12/iostream:39, from /usr/include/relacy/pch.hpp:36: /usr/include/relacy/test_result.hpp: In function ‘const char* rl::test_result_str(test_result_e)’: /usr/include/relacy/test_result.hpp:104:14: error: ‘RL_VERIFY’ was not declared in this scope 104 | default: RL_VERIFY(false); return "UNKNOWN ERROR"; | ^~~~~~~~~ /usr/include/relacy/test_result.hpp:104:14: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/test_params.hpp: In function ‘const char* rl::format(scheduler_type_e)’: /usr/include/relacy/test_params.hpp:45:5: error: ‘RL_VERIFY’ was not declared in this scope 45 | RL_VERIFY(false); | ^~~~~~~~~ /usr/include/relacy/test_params.hpp:45:5: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/test_params.hpp:46:16: error: ‘logic_error’ is not a member of ‘std’ 46 | throw std::logic_error("invalid scheduler type"); | ^~~~~~~~~~~ /usr/include/relacy/test_params.hpp: At global scope: /usr/include/relacy/test_params.hpp:53:5: error: ‘iteration_t’ does not name a type 53 | iteration_t iteration_count; | ^~~~~~~~~~~ /usr/include/relacy/test_params.hpp:62:5: error: ‘string’ does not name a type; did you mean ‘stdin’? 62 | string initial_state; | ^~~~~~ | stdin /usr/include/relacy/test_params.hpp:66:5: error: ‘iteration_t’ does not name a type 66 | iteration_t stop_iteration; | ^~~~~~~~~~~ /usr/include/relacy/test_params.hpp:67:5: error: ‘string’ does not name a type; did you mean ‘stdin’? 67 | string test_name; | ^~~~~~ | stdin /usr/include/relacy/test_params.hpp:68:5: error: ‘string’ does not name a type; did you mean ‘stdin’? 68 | string final_state; | ^~~~~~ | stdin /usr/include/relacy/test_params.hpp: In constructor ‘rl::test_params::test_params()’: /usr/include/relacy/test_params.hpp:72:9: error: ‘iteration_count’ was not declared in this scope 72 | iteration_count = 1000; | ^~~~~~~~~~~~~~~ /usr/include/relacy/test_params.hpp:73:41: error: ‘cout’ is not a member of ‘std’ 73 | output_stream = &std::cout; | ^~~~ /usr/include/relacy/test_params.hpp:18:1: note: ‘std::cout’ is defined in header ‘’; did you forget to ‘#include ’? 17 | #include "test_result.hpp" +++ |+#include 18 | /usr/include/relacy/test_params.hpp:74:41: error: ‘cout’ is not a member of ‘std’ 74 | progress_stream = &std::cout; | ^~~~ /usr/include/relacy/test_params.hpp:74:41: note: ‘std::cout’ is defined in header ‘’; did you forget to ‘#include ’? /usr/include/relacy/test_params.hpp:83:9: error: ‘stop_iteration’ was not declared in this scope 83 | stop_iteration = 0; | ^~~~~~~~~~~~~~ /usr/include/relacy/thread_local_ctx.hpp: At global scope: /usr/include/relacy/thread_local_ctx.hpp:36:27: error: ‘thread_id_t’ has not been declared 36 | template | ^~~~~~~~~~~ /usr/include/relacy/thread_local_ctx.hpp:40:41: error: expected ‘)’ before ‘thread_count_param’ 40 | thread_local_contxt_impl(thread_id_t thread_count_param, test_params& params) | ~ ^~~~~~~~~~~~~~~~~~~ | ) /usr/include/relacy/thread_local_ctx.hpp:62:33: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 62 | intptr_t value_ [thread_count]; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/thread_local_ctx.hpp:66:14: error: expected nested-name-specifier before ‘vector’ 66 | typename vector::type entries_; | ^~~~~~ /usr/include/relacy/thread_local_ctx.hpp:66:14: error: expected ‘;’ at end of member declaration 66 | typename vector::type entries_; | ^~~~~~ | ; /usr/include/relacy/thread_local_ctx.hpp:66:20: error: expected unqualified-id before ‘<’ token 66 | typename vector::type entries_; | ^ In file included from /usr/include/relacy/context_base.hpp:17, from /usr/include/relacy/context.hpp:18: /usr/include/relacy/history.hpp:28:5: error: ‘thread_id_t’ does not name a type; did you mean ‘pthread_t’? 28 | thread_id_t thread_index_; | ^~~~~~~~~~~ | pthread_t /usr/include/relacy/history.hpp:29:5: error: ‘debug_info’ does not name a type 29 | debug_info info_; | ^~~~~~~~~~ /usr/include/relacy/history.hpp:34:30: error: expected ‘)’ before ‘thread_index’ 34 | history_entry(thread_id_t thread_index, debug_info_param info, void* ev, event_output_f output, event_dtor_f dtor) | ~ ^~~~~~~~~~~~~ | ) /usr/include/relacy/history.hpp: In member function ‘void rl::user_event::output(std::ostream&) const’: /usr/include/relacy/history.hpp:63:11: error: no match for ‘operator<<’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream’} and ‘const char* const’) 63 | s << desc_; | ~ ^~ ~~~~~ | | | | | const char* const | std::ostream {aka std::basic_ostream} /usr/include/relacy/history.hpp: At global scope: /usr/include/relacy/history.hpp:67:8: error: ‘string’ does not name a type; did you mean ‘stdin’? 67 | inline string strip_path(char const* filename) | ^~~~~~ | stdin /usr/include/relacy/history.hpp:76:53: error: ‘debug_info_param’ has not been declared 76 | inline std::ostream& operator << (std::ostream& ss, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/history.hpp: In function ‘std::ostream& rl::operator<<(std::ostream&, int)’: /usr/include/relacy/history.hpp:87:16: error: request for member ‘func_’ in ‘info’, which is of non-class type ‘int’ 87 | ss << info.func_ << ", " << strip_path(info.file_) << "(" << info.line_ << ")"; | ^~~~~ /usr/include/relacy/history.hpp:87:49: error: request for member ‘file_’ in ‘info’, which is of non-class type ‘int’ 87 | ss << info.func_ << ", " << strip_path(info.file_) << "(" << info.line_ << ")"; | ^~~~~ /usr/include/relacy/history.hpp:87:33: error: ‘strip_path’ was not declared in this scope 87 | ss << info.func_ << ", " << strip_path(info.file_) << "(" << info.line_ << ")"; | ^~~~~~~~~~ /usr/include/relacy/history.hpp:87:71: error: request for member ‘line_’ in ‘info’, which is of non-class type ‘int’ 87 | ss << info.func_ << ", " << strip_path(info.file_) << "(" << info.line_ << ")"; | ^~~~~ /usr/include/relacy/history.hpp: At global scope: /usr/include/relacy/history.hpp:94:27: error: expected template-name before ‘<’ token 94 | class history_mgr : nocopy<> | ^ /usr/include/relacy/history.hpp:94:27: error: expected ‘{’ before ‘<’ token /usr/include/relacy/history.hpp:94:27: error: expected unqualified-id before ‘<’ token In file included from /usr/include/relacy/context_base.hpp:18: /usr/include/relacy/memory.hpp:23:26: error: expected template-name before ‘<’ token 23 | class memory_mgr : nocopy<> | ^ /usr/include/relacy/memory.hpp:23:26: error: expected ‘{’ before ‘<’ token /usr/include/relacy/memory.hpp:23:26: error: expected unqualified-id before ‘<’ token /usr/include/relacy/memory.hpp: In member function ‘void rl::memory_alloc_event::output(std::ostream&) const’: /usr/include/relacy/memory.hpp:220:49: error: ‘hex’ is not a member of ‘std’ 220 | s << "memory allocation: addr=" << std::hex << (void*)((char*)addr_ + (is_array_ ? alignment : 0)) << std::dec | ^~~ /usr/include/relacy/memory.hpp:220:92: error: ‘alignment’ was not declared in this scope 220 | s << "memory allocation: addr=" << std::hex << (void*)((char*)addr_ + (is_array_ ? alignment : 0)) << std::dec | ^~~~~~~~~ /usr/include/relacy/memory.hpp:220:116: error: ‘dec’ is not a member of ‘std’ 220 | s << "memory allocation: addr=" << std::hex << (void*)((char*)addr_ + (is_array_ ? alignment : 0)) << std::dec | ^~~ /usr/include/relacy/memory.hpp: In member function ‘void rl::memory_free_event::output(std::ostream&) const’: /usr/include/relacy/memory.hpp:233:51: error: ‘hex’ is not a member of ‘std’ 233 | s << "memory deallocation: addr=" << std::hex << (void*)((char*)addr_ + (is_array_ ? alignment : 0)) << std::dec; | ^~~ /usr/include/relacy/memory.hpp:233:94: error: ‘alignment’ was not declared in this scope 233 | s << "memory deallocation: addr=" << std::hex << (void*)((char*)addr_ + (is_array_ ? alignment : 0)) << std::dec; | ^~~~~~~~~ /usr/include/relacy/memory.hpp:233:118: error: ‘dec’ is not a member of ‘std’ 233 | s << "memory deallocation: addr=" << std::hex << (void*)((char*)addr_ + (is_array_ ? alignment : 0)) << std::dec; | ^~~ In file included from /usr/include/relacy/context_base.hpp:20: /usr/include/relacy/slab_allocator.hpp: At global scope: /usr/include/relacy/slab_allocator.hpp:24:30: error: expected template-name before ‘<’ token 24 | class slab_allocator : nocopy<> | ^ /usr/include/relacy/slab_allocator.hpp:24:30: error: expected ‘{’ before ‘<’ token In file included from /usr/include/relacy/context_base.hpp:22: /usr/include/relacy/random.hpp:31:15: error: ‘iteration_t’ has not been declared 31 | void seed(iteration_t s) | ^~~~~~~~~~~ /usr/include/relacy/random.hpp:44:5: error: ‘RL_INLINE’ does not name a type 44 | RL_INLINE | ^~~~~~~~~ /usr/include/relacy/random.hpp:44:5: note: the macro ‘RL_INLINE’ had not yet been defined In file included from /usr/include/relacy/base.hpp:17: /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | In file included from /usr/include/relacy/context_base.hpp:23: /usr/include/relacy/foreach.hpp:22:22: error: ‘thread_id_t’ has not been declared 22 | template | ^~~~~~~~~~~ /usr/include/relacy/foreach.hpp:22:37: error: ‘thread_id_t’ has not been declared 22 | template | ^~~~~~~~~~~ /usr/include/relacy/foreach.hpp:26:5: error: ‘RL_INLINE’ does not name a type 26 | RL_INLINE static void exec( | ^~~~~~~~~ /usr/include/relacy/foreach.hpp:26:5: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | /usr/include/relacy/foreach.hpp:34:5: error: ‘RL_INLINE’ does not name a type 34 | RL_INLINE static void exec( | ^~~~~~~~~ /usr/include/relacy/foreach.hpp:34:5: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | /usr/include/relacy/foreach.hpp:42:5: error: ‘RL_INLINE’ does not name a type 42 | RL_INLINE static void exec( | ^~~~~~~~~ /usr/include/relacy/foreach.hpp:42:5: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | /usr/include/relacy/foreach.hpp:51:22: error: ‘thread_id_t’ has not been declared 51 | template | ^~~~~~~~~~~ /usr/include/relacy/foreach.hpp:52:31: error: ‘i’ was not declared in this scope 52 | struct foreach_thread_impl | ^ /usr/include/relacy/foreach.hpp:52:35: error: template argument 2 is invalid 52 | struct foreach_thread_impl | ^ /usr/include/relacy/foreach.hpp:74:10: error: ‘thread_id_t’ has not been declared 74 | template | ^~~~~~~~~~~ /usr/include/relacy/foreach.hpp:75:1: error: ‘RL_INLINE’ does not name a type 75 | RL_INLINE void foreach( | ^~~~~~~~~ /usr/include/relacy/foreach.hpp:75:1: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | /usr/include/relacy/foreach.hpp:82:10: error: ‘thread_id_t’ has not been declared 82 | template | ^~~~~~~~~~~ /usr/include/relacy/foreach.hpp:83:1: error: ‘RL_INLINE’ does not name a type 83 | RL_INLINE void foreach( | ^~~~~~~~~ /usr/include/relacy/foreach.hpp:83:1: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | /usr/include/relacy/foreach.hpp:90:10: error: ‘thread_id_t’ has not been declared 90 | template | ^~~~~~~~~~~ /usr/include/relacy/foreach.hpp:91:1: error: ‘RL_INLINE’ does not name a type 91 | RL_INLINE void foreach( | ^~~~~~~~~ /usr/include/relacy/foreach.hpp:91:1: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | /usr/include/relacy/foreach.hpp:98:1: error: ‘RL_INLINE’ does not name a type 98 | RL_INLINE void assign_zero(timestamp_t& elem) | ^~~~~~~~~ /usr/include/relacy/foreach.hpp:98:1: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | /usr/include/relacy/foreach.hpp:103:1: error: ‘RL_INLINE’ does not name a type 103 | RL_INLINE void assign_zero_u(unsigned& elem) | ^~~~~~~~~ /usr/include/relacy/foreach.hpp:103:1: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | /usr/include/relacy/foreach.hpp:108:10: error: ‘timestamp_t’ has not been declared 108 | template | ^~~~~~~~~~~ /usr/include/relacy/foreach.hpp:109:1: error: ‘RL_INLINE’ does not name a type 109 | RL_INLINE void assign(timestamp_t& elem) | ^~~~~~~~~ /usr/include/relacy/foreach.hpp:109:1: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | /usr/include/relacy/foreach.hpp:114:1: error: ‘RL_INLINE’ does not name a type 114 | RL_INLINE void assign(timestamp_t& elem1, timestamp_t& elem2) | ^~~~~~~~~ /usr/include/relacy/foreach.hpp:114:1: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | /usr/include/relacy/foreach.hpp:119:1: error: ‘RL_INLINE’ does not name a type 119 | RL_INLINE void assign_max(timestamp_t& elem1, timestamp_t& elem2) | ^~~~~~~~~ /usr/include/relacy/foreach.hpp:119:1: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | /usr/include/relacy/foreach.hpp:125:1: error: ‘RL_INLINE’ does not name a type 125 | RL_INLINE void plus_one(timestamp_t& elem) | ^~~~~~~~~ /usr/include/relacy/foreach.hpp:125:1: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | In file included from /usr/include/relacy/context_base.hpp:24: /usr/include/relacy/thread_base.hpp:30:10: error: ‘thread_id_t’ has not been declared 30 | template struct atomic_data_impl; | ^~~~~~~~~~~ /usr/include/relacy/thread_base.hpp:31:10: error: ‘thread_id_t’ has not been declared 31 | template struct var_data_impl; | ^~~~~~~~~~~ /usr/include/relacy/thread_base.hpp:40:59: error: expected ‘,’ or ‘...’ before ‘data’ 40 | virtual unsigned atomic_init(atomic_data* RL_RESTRICT data) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:42:67: error: expected ‘,’ or ‘...’ before ‘data’ 42 | virtual unsigned atomic_load_relaxed(atomic_data* RL_RESTRICT data) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:43:67: error: expected ‘,’ or ‘...’ before ‘data’ 43 | virtual unsigned atomic_load_acquire(atomic_data* RL_RESTRICT data) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:44:67: error: expected ‘,’ or ‘...’ before ‘data’ 44 | virtual unsigned atomic_load_seq_cst(atomic_data* RL_RESTRICT data) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:45:71: error: expected ‘,’ or ‘...’ before ‘data’ 45 | virtual unsigned atomic_load_relaxed_rmw(atomic_data* RL_RESTRICT data) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:46:71: error: expected ‘,’ or ‘...’ before ‘data’ 46 | virtual unsigned atomic_load_acquire_rmw(atomic_data* RL_RESTRICT data) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:47:71: error: expected ‘,’ or ‘...’ before ‘data’ 47 | virtual unsigned atomic_load_seq_cst_rmw(atomic_data* RL_RESTRICT data) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:49:68: error: expected ‘,’ or ‘...’ before ‘data’ 49 | virtual unsigned atomic_store_relaxed(atomic_data* RL_RESTRICT data) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:50:68: error: expected ‘,’ or ‘...’ before ‘data’ 50 | virtual unsigned atomic_store_release(atomic_data* RL_RESTRICT data) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:51:68: error: expected ‘,’ or ‘...’ before ‘data’ 51 | virtual unsigned atomic_store_seq_cst(atomic_data* RL_RESTRICT data) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:53:66: error: expected ‘,’ or ‘...’ before ‘data’ 53 | virtual unsigned atomic_rmw_relaxed(atomic_data* RL_RESTRICT data, bool& aba) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:54:66: error: expected ‘,’ or ‘...’ before ‘data’ 54 | virtual unsigned atomic_rmw_acquire(atomic_data* RL_RESTRICT data, bool& aba) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:55:66: error: expected ‘,’ or ‘...’ before ‘data’ 55 | virtual unsigned atomic_rmw_release(atomic_data* RL_RESTRICT data, bool& aba) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:56:66: error: expected ‘,’ or ‘...’ before ‘data’ 56 | virtual unsigned atomic_rmw_acq_rel(atomic_data* RL_RESTRICT data, bool& aba) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:57:66: error: expected ‘,’ or ‘...’ before ‘data’ 57 | virtual unsigned atomic_rmw_seq_cst(atomic_data* RL_RESTRICT data, bool& aba) = 0; | ^~~~ /usr/include/relacy/thread_base.hpp:59:13: error: ‘unpark_reason’ does not name a type 59 | virtual unpark_reason atomic_wait(atomic_data* RL_RESTRICT data, bool is_timed, bool allow_spurious_wakeup, debug_info_param info) = 0; | ^~~~~~~~~~~~~ /usr/include/relacy/thread_base.hpp:60:13: error: ‘thread_id_t’ does not name a type; did you mean ‘pthread_t’? 60 | virtual thread_id_t atomic_wake(atomic_data* RL_RESTRICT data, thread_id_t count, debug_info_param info) = 0; | ^~~~~~~~~~~ | pthread_t /usr/include/relacy/thread_base.hpp:64:5: error: ‘fiber_t’ does not name a type; did you mean ‘timer_t’? 64 | fiber_t fiber_; | ^~~~~~~ | timer_t /usr/include/relacy/thread_base.hpp:65:5: error: ‘thread_id_t’ does not name a type; did you mean ‘pthread_t’? 65 | thread_id_t const index_; | ^~~~~~~~~~~ | pthread_t /usr/include/relacy/thread_base.hpp:66:5: error: ‘context’ does not name a type; did you mean ‘const’? 66 | context* ctx_; | ^~~~~~~ | const /usr/include/relacy/thread_base.hpp:67:5: error: ‘timestamp_t’ does not name a type 67 | timestamp_t* const acq_rel_order_; | ^~~~~~~~~~~ /usr/include/relacy/thread_base.hpp:68:5: error: ‘timestamp_t’ does not name a type 68 | timestamp_t last_yield_; | ^~~~~~~~~~~ /usr/include/relacy/thread_base.hpp:69:5: error: ‘timestamp_t’ does not name a type 69 | timestamp_t& own_acq_rel_order_; | ^~~~~~~~~~~ /usr/include/relacy/thread_base.hpp:70:5: error: ‘unpark_reason’ does not name a type 70 | unpark_reason unpark_reason_; | ^~~~~~~~~~~~~ /usr/include/relacy/thread_base.hpp:71:5: error: ‘thread_id_t’ does not name a type; did you mean ‘pthread_t’? 71 | thread_id_t temp_switch_from_; | ^~~~~~~~~~~ | pthread_t /usr/include/relacy/thread_base.hpp:78:33: error: expected ‘)’ before ‘index’ 78 | thread_info_base(thread_id_t index, timestamp_t* acq_rel_order) | ~ ^~~~~~ | ) In file included from /usr/include/relacy/context_base.hpp:25: /usr/include/relacy/context_addr_hash.hpp:32:27: error: ‘thread_id_t’ has not been declared 32 | template | ^~~~~~~~~~~ /usr/include/relacy/context_addr_hash.hpp:36:39: error: expected ‘)’ before ‘thread_count_param’ 36 | context_addr_hash_impl(thread_id_t thread_count_param, test_params& params) | ~ ^~~~~~~~~~~~~~~~~~~ | ) /usr/include/relacy/context_addr_hash.hpp:54:13: error: ‘map’ does not name a type 54 | typedef map::type hash_map_t; | ^~~ /usr/include/relacy/context_addr_hash.hpp:55:5: error: ‘hash_map_t’ does not name a type 55 | hash_map_t hash_map_; | ^~~~~~~~~~ /usr/include/relacy/context_base.hpp:72:5: error: ‘string’ does not name a type; did you mean ‘stdin’? 72 | string msg_; | ^~~~~~ | stdin /usr/include/relacy/context_base.hpp: In member function ‘void rl::user_msg_event::output(std::ostream&) const’: /usr/include/relacy/context_base.hpp:76:14: error: ‘msg_’ was not declared in this scope 76 | s << msg_; | ^~~~ /usr/include/relacy/context_base.hpp: At global scope: /usr/include/relacy/context_base.hpp:96:13: error: expected template-name before ‘<’ token 96 | , nocopy<> | ^ /usr/include/relacy/context_base.hpp:96:13: error: expected ‘{’ before ‘<’ token /usr/include/relacy/context_base.hpp:96:13: error: expected unqualified-id before ‘<’ token /usr/include/relacy/context_base.hpp: In function ‘rl::context& rl::ctx()’: /usr/include/relacy/context_base.hpp:259:21: error: incomplete type ‘rl::context’ used in nested name specifier 259 | return context::instance(); | ^~~~~~~~ /usr/include/relacy/context_base.hpp: In function ‘bool rl::is_ctx()’: /usr/include/relacy/context_base.hpp:264:21: error: incomplete type ‘rl::context’ used in nested name specifier 264 | return context::is_instance(); | ^~~~~~~~~~~ /usr/include/relacy/context_base.hpp: In function ‘int rl::get_errno()’: /usr/include/relacy/context_base.hpp:270:15: error: invalid use of incomplete type ‘class rl::context’ 270 | return ctx().get_errno(); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context_base.hpp: In function ‘void rl::set_errno(int)’: /usr/include/relacy/context_base.hpp:275:15: error: invalid use of incomplete type ‘class rl::context’ 275 | return ctx().set_errno(value); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context_base.hpp: At global scope: /usr/include/relacy/context_base.hpp:278:35: error: expected template-name before ‘<’ token 278 | class preemption_disabler : nocopy<> | ^ /usr/include/relacy/context_base.hpp:278:35: error: expected ‘{’ before ‘<’ token /usr/include/relacy/context_base.hpp:278:35: error: expected unqualified-id before ‘<’ token In file included from /usr/include/relacy/dyn_thread_ctx.hpp:18, from /usr/include/relacy/thread.hpp:18, from /usr/include/relacy/context.hpp:19: /usr/include/relacy/waitset.hpp:25:10: error: ‘thread_id_t’ has not been declared 25 | template | ^~~~~~~~~~~ /usr/include/relacy/waitset.hpp:34:5: error: ‘unpark_reason’ does not name a type 34 | unpark_reason park_current(context& c, | ^~~~~~~~~~~~~ /usr/include/relacy/waitset.hpp:60:12: error: ‘unpark_reason’ does not name a type 60 | static unpark_reason park_current(context& c, | ^~~~~~~~~~~~~ /usr/include/relacy/waitset.hpp:92:33: error: ‘debug_info_param’ has not been declared 92 | bool unpark_one(context& c, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/waitset.hpp:108:5: error: ‘thread_id_t’ does not name a type; did you mean ‘pthread_t’? 108 | thread_id_t unpark_all(context& c, debug_info_param info) | ^~~~~~~~~~~ | pthread_t /usr/include/relacy/waitset.hpp:122:5: error: ‘thread_id_t’ does not name a type; did you mean ‘pthread_t’? 122 | thread_id_t size() const | ^~~~~~~~~~~ | pthread_t /usr/include/relacy/waitset.hpp:138:9: error: ‘win_waitable_object’ does not name a type 138 | win_waitable_object** wo_; // 0 - wfso, !0 - wfmo | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/waitset.hpp:143:39: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 143 | thread_desc set_ [thread_count]; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/waitset.hpp:144:5: error: ‘thread_id_t’ does not name a type; did you mean ‘pthread_t’? 144 | thread_id_t size_; | ^~~~~~~~~~~ | pthread_t /usr/include/relacy/waitset.hpp:146:33: error: ‘thread_id_t’ has not been declared 146 | bool try_remove(context& c, thread_id_t const idx, debug_info_param info) | ^~~~~~~~~~~ /usr/include/relacy/waitset.hpp:146:56: error: ‘debug_info_param’ has not been declared 146 | bool try_remove(context& c, thread_id_t const idx, debug_info_param info) | ^~~~~~~~~~~~~~~~ In file included from /usr/include/relacy/dyn_thread_ctx.hpp:19: /usr/include/relacy/sync_var.hpp:24:10: error: ‘thread_id_t’ has not been declared 24 | template | ^~~~~~~~~~~ /usr/include/relacy/sync_var.hpp:25:24: error: expected template-name before ‘<’ token 25 | class sync_var : nocopy<> | ^ /usr/include/relacy/sync_var.hpp:25:24: error: expected ‘{’ before ‘<’ token In file included from /usr/include/relacy/stdlib/semaphore.hpp:20, from /usr/include/relacy/dyn_thread_ctx.hpp:20: /usr/include/relacy/signature.hpp:45:16: error: ‘debug_info_param’ has not been declared 45 | void check(debug_info_param info) const | ^~~~~~~~~~~~~~~~ /usr/include/relacy/signature.hpp:73:5: error: ‘RL_NOINLINE’ does not name a type 73 | RL_NOINLINE void fail(debug_info_param info) const | ^~~~~~~~~~~ /usr/include/relacy/signature.hpp:73:5: note: the macro ‘RL_NOINLINE’ had not yet been defined /usr/include/relacy/platform.hpp:242: note: it was later defined here 242 | # define RL_NOINLINE | /usr/include/relacy/signature.hpp: In destructor ‘rl::signature::~signature()’: /usr/include/relacy/signature.hpp:41:15: error: ‘RL_INFO’ was not declared in this scope 41 | check(RL_INFO); | ^~~~~~~ /usr/include/relacy/signature.hpp:41:15: note: the macro ‘RL_INFO’ had not yet been defined /usr/include/relacy/base.hpp:117: note: it was later defined here 117 | #define RL_INFO ::rl::debug_info(__FUNCTION__, __FILE__, __LINE__) | /usr/include/relacy/signature.hpp: In member function ‘void rl::signature::fault_event::output(std::ostream&) const’: /usr/include/relacy/signature.hpp:68:15: error: no match for ‘operator<<’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream’} and ‘const char [2]’) 68 | s << "<" << std::hex << addr_ << std::dec << ">" | ~ ^~ ~~~ | | | | | const char [2] | std::ostream {aka std::basic_ostream} /usr/include/relacy/history.hpp:76:22: note: candidate: ‘std::ostream& rl::operator<<(std::ostream&, int)’ (near match) 76 | inline std::ostream& operator << (std::ostream& ss, debug_info_param info) | ^~~~~~~~ /usr/include/relacy/history.hpp:76:22: note: conversion of argument 2 would be ill-formed: /usr/include/relacy/signature.hpp:68:30: error: ‘hex’ is not a member of ‘std’ 68 | s << "<" << std::hex << addr_ << std::dec << ">" | ^~~ /usr/include/relacy/signature.hpp:68:51: error: ‘dec’ is not a member of ‘std’ 68 | s << "<" << std::hex << addr_ << std::dec << ">" | ^~~ /usr/include/relacy/stdlib/semaphore.hpp: At global scope: /usr/include/relacy/stdlib/semaphore.hpp:36:25: error: ‘debug_info_param’ has not been declared 36 | virtual void deinit(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:42:67: error: ‘debug_info_param’ has not been declared 42 | virtual sema_wakeup_reason wait(bool try_wait, bool is_timed, debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:43:25: error: ‘debug_info_param’ has not been declared 43 | virtual bool signal(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:45:30: error: ‘debug_info_param’ has not been declared 45 | virtual bool is_signaled(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:46:33: error: ‘debug_info_param’ has not been declared 46 | virtual void memory_acquire(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:47:32: error: ‘debug_info_param’ has not been declared 47 | virtual void* prepare_wait(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:55:67: error: ‘debug_info_param’ has not been declared 55 | virtual sema_wakeup_reason wait(bool try_wait, bool is_timed, debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:56:61: error: ‘debug_info_param’ has not been declared 56 | virtual bool post(unsigned count, unsigned& prev_count, debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:57:27: error: ‘debug_info_param’ has not been declared 57 | virtual int get_value(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:58:30: error: ‘debug_info_param’ has not been declared 58 | virtual bool is_signaled(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:59:33: error: ‘debug_info_param’ has not been declared 59 | virtual void memory_acquire(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:60:32: error: ‘debug_info_param’ has not been declared 60 | virtual void* prepare_wait(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:67:10: error: ‘thread_id_t’ has not been declared 67 | template | ^~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:121:9: error: ‘thread_id_t’ does not name a type; did you mean ‘pthread_t’? 121 | thread_id_t unblocked_; | ^~~~~~~~~~~ | pthread_t /usr/include/relacy/stdlib/semaphore.hpp:151:37: error: ‘debug_info_param’ has not been declared 151 | debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:206:61: error: ‘debug_info_param’ has not been declared 206 | virtual bool post(unsigned count, unsigned& prev_count, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:235:27: error: ‘debug_info_param’ has not been declared 235 | virtual int get_value(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:254:13: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 254 | waitset ws_; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/stdlib/semaphore.hpp:254:25: error: template argument 1 is invalid 254 | waitset ws_; | ^ /usr/include/relacy/stdlib/semaphore.hpp:255:14: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 255 | sync_var sync_; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/stdlib/semaphore.hpp:255:26: error: template argument 1 is invalid 255 | sync_var sync_; | ^ /usr/include/relacy/stdlib/semaphore.hpp:257:30: error: ‘debug_info_param’ has not been declared 257 | virtual bool is_signaled(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:263:33: error: ‘debug_info_param’ has not been declared 263 | virtual void memory_acquire(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:269:32: error: ‘debug_info_param’ has not been declared 269 | virtual void* prepare_wait(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:299:82: error: ‘debug_info_param’ has not been declared 299 | void init(bool spurious_wakeups, unsigned initial_count, unsigned max_count, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:307:17: error: ‘debug_info_param’ has not been declared 307 | void deinit(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:315:67: error: ‘debug_info_param’ has not been declared 315 | virtual sema_wakeup_reason wait(bool try_wait, bool is_timed, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:321:25: error: ‘debug_info_param’ has not been declared 321 | virtual bool signal(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:327:53: error: ‘debug_info_param’ has not been declared 327 | bool post(unsigned count, unsigned& prev_count, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:333:19: error: ‘debug_info_param’ has not been declared 333 | int get_value(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:343:22: error: ‘debug_info_param’ has not been declared 343 | sema_data* check(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:350:30: error: ‘debug_info_param’ has not been declared 350 | virtual bool is_signaled(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:355:33: error: ‘debug_info_param’ has not been declared 355 | virtual void memory_acquire(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:360:32: error: ‘debug_info_param’ has not been declared 360 | virtual void* prepare_wait(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:407:5: error: ‘debug_info_param’ has not been declared 407 | debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp: In function ‘rl::sema_wakeup_reason rl::wait_for_multiple_objects(size_t&, size_t, win_waitable_object**, bool, bool, bool, int)’: /usr/include/relacy/stdlib/semaphore.hpp:410:5: error: invalid use of incomplete type ‘class rl::context’ 410 | c.sched(); | ^ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:412:5: error: ‘RL_VERIFY’ was not declared in this scope 412 | RL_VERIFY(count <= wfmo_max_objects); | ^~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:412:5: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/stdlib/semaphore.hpp:430:42: error: variable ‘rl::preemption_disabler pd’ has initializer but incomplete type 430 | preemption_disabler pd (c); | ^ /usr/include/relacy/stdlib/semaphore.hpp:453:17: error: ‘unpark_reason’ was not declared in this scope 453 | unpark_reason reason = c.wfmo_park(ws, wo, (unsigned)count, !!wait_all, is_timed, info); | ^~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:454:27: error: ‘unpark_reason_spurious’ was not declared in this scope; did you mean ‘sema_wakeup_reason_spurious’? 454 | RL_VERIFY(unpark_reason_spurious != reason); | ^~~~~~~~~~~~~~~~~~~~~~ | sema_wakeup_reason_spurious /usr/include/relacy/stdlib/semaphore.hpp:454:53: error: ‘reason’ was not declared in this scope 454 | RL_VERIFY(unpark_reason_spurious != reason); | ^~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:455:21: error: ‘unpark_reason_timeout’ was not declared in this scope; did you mean ‘sema_wakeup_reason_timeout’? 455 | if (unpark_reason_timeout == reason) | ^~~~~~~~~~~~~~~~~~~~~ | sema_wakeup_reason_timeout /usr/include/relacy/stdlib/semaphore.hpp:462:26: error: ‘unpark_reason_normal’ was not declared in this scope 462 | else if (unpark_reason_normal == reason) | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:465:50: error: variable ‘rl::preemption_disabler pd’ has initializer but incomplete type 465 | preemption_disabler pd (c); | ^ /usr/include/relacy/stdlib/semaphore.hpp:474:21: error: invalid use of incomplete type ‘class rl::context’ 474 | c.switch_back(info); | ^ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:494:42: error: variable ‘rl::preemption_disabler pd’ has initializer but incomplete type 494 | preemption_disabler pd (c); | ^ /usr/include/relacy/stdlib/semaphore.hpp:515:17: error: ‘unpark_reason’ was not declared in this scope 515 | unpark_reason reason = c.wfmo_park(ws, wo, (unsigned)count, !!wait_all, is_timed, info); | ^~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:516:27: error: ‘unpark_reason_spurious’ was not declared in this scope; did you mean ‘sema_wakeup_reason_spurious’? 516 | RL_VERIFY(unpark_reason_spurious != reason); | ^~~~~~~~~~~~~~~~~~~~~~ | sema_wakeup_reason_spurious /usr/include/relacy/stdlib/semaphore.hpp:516:53: error: ‘reason’ was not declared in this scope 516 | RL_VERIFY(unpark_reason_spurious != reason); | ^~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:517:21: error: ‘unpark_reason_timeout’ was not declared in this scope; did you mean ‘sema_wakeup_reason_timeout’? 517 | if (unpark_reason_timeout == reason) | ^~~~~~~~~~~~~~~~~~~~~ | sema_wakeup_reason_timeout /usr/include/relacy/stdlib/semaphore.hpp:524:26: error: ‘unpark_reason_normal’ was not declared in this scope 524 | else if (unpark_reason_normal == reason) | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:534:50: error: variable ‘rl::preemption_disabler pd’ has initializer but incomplete type 534 | preemption_disabler pd (c); | ^ /usr/include/relacy/stdlib/semaphore.hpp:539:21: error: invalid use of incomplete type ‘class rl::context’ 539 | c.switch_back(info); | ^ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:549:5: error: invalid use of incomplete type ‘class rl::context’ 549 | RL_HIST(wfmo_event) {(unsigned)count, wait_all, try_wait, is_timed, result, signaled} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:549:5: error: ‘debug_info’ is not a member of ‘rl’ 549 | RL_HIST(wfmo_event) {(unsigned)count, wait_all, try_wait, is_timed, result, signaled} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:549:91: error: invalid use of incomplete type ‘class rl::context’ 549 | RL_HIST(wfmo_event) {(unsigned)count, wait_all, try_wait, is_timed, result, signaled} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:549:91: error: ‘rl_info_c’ was not declared in this scope 549 | RL_HIST(wfmo_event) {(unsigned)count, wait_all, try_wait, is_timed, result, signaled} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/dyn_thread_ctx.hpp: At global scope: /usr/include/relacy/dyn_thread_ctx.hpp:27:10: error: ‘thread_id_t’ has not been declared 27 | template | ^~~~~~~~~~~ /usr/include/relacy/dyn_thread_ctx.hpp:65:13: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 65 | waitset ws_; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/dyn_thread_ctx.hpp:65:25: error: template argument 1 is invalid 65 | waitset ws_; | ^ /usr/include/relacy/dyn_thread_ctx.hpp:66:14: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 66 | sync_var sync_; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/dyn_thread_ctx.hpp:66:26: error: template argument 1 is invalid 66 | sync_var sync_; | ^ /usr/include/relacy/dyn_thread_ctx.hpp:68:25: error: ‘debug_info_param’ has not been declared 68 | virtual void deinit(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/dyn_thread_ctx.hpp:73:67: error: ‘debug_info_param’ has not been declared 73 | virtual sema_wakeup_reason wait(bool try_wait, bool is_timed, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/dyn_thread_ctx.hpp:99:25: error: ‘debug_info_param’ has not been declared 99 | virtual bool signal(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/dyn_thread_ctx.hpp:105:30: error: ‘debug_info_param’ has not been declared 105 | virtual bool is_signaled(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/dyn_thread_ctx.hpp:111:33: error: ‘debug_info_param’ has not been declared 111 | virtual void memory_acquire(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/dyn_thread_ctx.hpp:117:32: error: ‘debug_info_param’ has not been declared 117 | virtual void* prepare_wait(debug_info_param info) | ^~~~~~~~~~~~~~~~ In file included from /usr/include/relacy/thread.hpp:20: /usr/include/relacy/test_suite.hpp:26:5: error: ‘thread_id_t’ has not been declared 26 | thread_id_t static_thread_count_param, | ^~~~~~~~~~~ /usr/include/relacy/test_suite.hpp:28:27: error: expected template-name before ‘<’ token 28 | struct test_suite : nocopy<> | ^ /usr/include/relacy/test_suite.hpp:28:27: error: expected ‘{’ before ‘<’ token In file included from /usr/include/relacy/thread.hpp:21: /usr/include/relacy/memory_order.hpp: In function ‘const char* rl::format(memory_order)’: /usr/include/relacy/memory_order.hpp:47:5: error: ‘RL_VERIFY’ was not declared in this scope 47 | RL_VERIFY(!"invalid value of memory order"); | ^~~~~~~~~ /usr/include/relacy/memory_order.hpp:47:5: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/memory_order.hpp:48:16: error: ‘logic_error’ is not a member of ‘std’ 48 | throw std::logic_error("invalid value of memory order"); | ^~~~~~~~~~~ /usr/include/relacy/thread.hpp: At global scope: /usr/include/relacy/thread.hpp:32:10: error: ‘thread_id_t’ has not been declared 32 | template struct atomic_data_impl; | ^~~~~~~~~~~ /usr/include/relacy/thread.hpp:33:10: error: ‘thread_id_t’ has not been declared 33 | template struct var_data_impl; | ^~~~~~~~~~~ /usr/include/relacy/thread.hpp:36:10: error: ‘thread_id_t’ has not been declared 36 | template | ^~~~~~~~~~~ /usr/include/relacy/thread.hpp:39:28: error: expected ‘)’ before ‘index’ 39 | thread_info(thread_id_t index = 0) | ~ ^~~~~~ | ) /usr/include/relacy/thread.hpp:59:24: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 59 | thread_sync_object sync_object_; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/thread.hpp:59:36: error: template argument 1 is invalid 59 | thread_sync_object sync_object_; | ^ /usr/include/relacy/thread.hpp:61:5: error: ‘timestamp_t’ does not name a type 61 | timestamp_t acq_rel_order_ [thread_count]; | ^~~~~~~~~~~ /usr/include/relacy/thread.hpp:62:5: error: ‘timestamp_t’ does not name a type 62 | timestamp_t acquire_fence_order_ [thread_count]; | ^~~~~~~~~~~ /usr/include/relacy/thread.hpp:63:5: error: ‘timestamp_t’ does not name a type 63 | timestamp_t release_fence_order_ [thread_count]; | ^~~~~~~~~~~ /usr/include/relacy/thread.hpp:105:38: error: ‘timestamp_t’ has not been declared 105 | void atomic_thread_fence_seq_cst(timestamp_t* seq_cst_fence_order) | ^~~~~~~~~~~ /usr/include/relacy/thread.hpp:132:67: error: expected ‘,’ or ‘...’ before ‘data’ 132 | virtual unsigned atomic_load_relaxed(atomic_data* RL_RESTRICT data) | ^~~~ /usr/include/relacy/thread.hpp:137:67: error: expected ‘,’ or ‘...’ before ‘data’ 137 | virtual unsigned atomic_load_acquire(atomic_data* RL_RESTRICT data) | ^~~~ /usr/include/relacy/thread.hpp:142:67: error: expected ‘,’ or ‘...’ before ‘data’ 142 | virtual unsigned atomic_load_seq_cst(atomic_data* RL_RESTRICT data) | ^~~~ /usr/include/relacy/thread.hpp:147:71: error: expected ‘,’ or ‘...’ before ‘data’ 147 | virtual unsigned atomic_load_relaxed_rmw(atomic_data* RL_RESTRICT data) | ^~~~ /usr/include/relacy/thread.hpp:152:71: error: expected ‘,’ or ‘...’ before ‘data’ 152 | virtual unsigned atomic_load_acquire_rmw(atomic_data* RL_RESTRICT data) | ^~~~ /usr/include/relacy/thread.hpp:157:71: error: expected ‘,’ or ‘...’ before ‘data’ 157 | virtual unsigned atomic_load_seq_cst_rmw(atomic_data* RL_RESTRICT data) | ^~~~ /usr/include/relacy/thread.hpp:162:68: error: expected ‘,’ or ‘...’ before ‘data’ 162 | virtual unsigned atomic_store_relaxed(atomic_data* RL_RESTRICT data) | ^~~~ /usr/include/relacy/thread.hpp:167:68: error: expected ‘,’ or ‘...’ before ‘data’ 167 | virtual unsigned atomic_store_release(atomic_data* RL_RESTRICT data) | ^~~~ /usr/include/relacy/thread.hpp:172:68: error: expected ‘,’ or ‘...’ before ‘data’ 172 | virtual unsigned atomic_store_seq_cst(atomic_data* RL_RESTRICT data) | ^~~~ /usr/include/relacy/thread.hpp:177:66: error: expected ‘,’ or ‘...’ before ‘data’ 177 | virtual unsigned atomic_rmw_relaxed(atomic_data* RL_RESTRICT data, bool& aba) | ^~~~ /usr/include/relacy/thread.hpp:182:66: error: expected ‘,’ or ‘...’ before ‘data’ 182 | virtual unsigned atomic_rmw_acquire(atomic_data* RL_RESTRICT data, bool& aba) | ^~~~ /usr/include/relacy/thread.hpp:187:66: error: expected ‘,’ or ‘...’ before ‘data’ 187 | virtual unsigned atomic_rmw_release(atomic_data* RL_RESTRICT data, bool& aba) | ^~~~ /usr/include/relacy/thread.hpp:192:66: error: expected ‘,’ or ‘...’ before ‘data’ 192 | virtual unsigned atomic_rmw_acq_rel(atomic_data* RL_RESTRICT data, bool& aba) | ^~~~ /usr/include/relacy/thread.hpp:197:66: error: expected ‘,’ or ‘...’ before ‘data’ 197 | virtual unsigned atomic_rmw_seq_cst(atomic_data* RL_RESTRICT data, bool& aba) | ^~~~ /usr/include/relacy/thread.hpp:203:46: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 203 | unsigned get_load_index(atomic_data_impl& var) | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/thread.hpp:203:58: error: template argument 1 is invalid 203 | unsigned get_load_index(atomic_data_impl& var) | ^ /usr/include/relacy/thread.hpp:263:51: error: expected ‘,’ or ‘...’ before ‘data’ 263 | unsigned atomic_load(atomic_data* RL_RESTRICT data) | ^~~~ /usr/include/relacy/thread.hpp:297:59: error: expected ‘,’ or ‘...’ before ‘data’ 297 | virtual unsigned atomic_init(atomic_data* RL_RESTRICT data) | ^~~~ /usr/include/relacy/thread.hpp:318:52: error: expected ‘,’ or ‘...’ before ‘data’ 318 | unsigned atomic_store(atomic_data* RL_RESTRICT data) | ^~~~ /usr/include/relacy/thread.hpp:375:50: error: expected ‘,’ or ‘...’ before ‘data’ 375 | unsigned atomic_rmw(atomic_data* RL_RESTRICT data, bool& aba) | ^~~~ /usr/include/relacy/thread.hpp:391:13: error: ‘unpark_reason’ does not name a type 391 | virtual unpark_reason atomic_wait(atomic_data* RL_RESTRICT data, bool is_timed, bool allow_spurious_wakeup, debug_info_param info) | ^~~~~~~~~~~~~ /usr/include/relacy/thread.hpp:402:13: error: ‘thread_id_t’ does not name a type; did you mean ‘thread_info’? 402 | virtual thread_id_t atomic_wake(atomic_data* RL_RESTRICT data, thread_id_t count, debug_info_param info) | ^~~~~~~~~~~ | thread_info In file included from /usr/include/relacy/random_scheduler.hpp:17, from /usr/include/relacy/context.hpp:28: /usr/include/relacy/scheduler.hpp:42:5: error: ‘thread_id_t’ does not name a type; did you mean ‘thread_info’? 42 | thread_id_t index_; | ^~~~~~~~~~~ | thread_info /usr/include/relacy/scheduler.hpp:56:57: error: ‘thread_id_t’ has not been declared 56 | template | ^~~~~~~~~~~ /usr/include/relacy/scheduler.hpp:57:25: error: expected template-name before ‘<’ token 57 | class scheduler : nocopy<> | ^ /usr/include/relacy/scheduler.hpp:57:25: error: expected ‘{’ before ‘<’ token /usr/include/relacy/random_scheduler.hpp:25:10: error: ‘thread_id_t’ has not been declared 25 | template | ^~~~~~~~~~~ /usr/include/relacy/random_scheduler.hpp:26:60: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 26 | class random_scheduler : public scheduler, scheduler_thread_info, thread_count> | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/random_scheduler.hpp:26:98: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 26 | class random_scheduler : public scheduler, scheduler_thread_info, thread_count> | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/random_scheduler.hpp:26:110: error: template argument 3 is invalid 26 | class random_scheduler : public scheduler, scheduler_thread_info, thread_count> | ^ /usr/include/relacy/random_scheduler.hpp:29:40: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 29 | typedef scheduler, scheduler_thread_info, thread_count> base_t; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/random_scheduler.hpp:29:78: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 29 | typedef scheduler, scheduler_thread_info, thread_count> base_t; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/random_scheduler.hpp:29:90: error: template argument 3 is invalid 29 | typedef scheduler, scheduler_thread_info, thread_count> base_t; | ^ /usr/include/relacy/random_scheduler.hpp:30:22: error: ‘base_t’ is not a class, namespace, or enumeration 30 | typedef typename base_t::thread_info_t thread_info_t; | ^~~~~~ /usr/include/relacy/random_scheduler.hpp:31:22: error: ‘base_t’ is not a class, namespace, or enumeration 31 | typedef typename base_t::shared_context_t shared_context_t; | ^~~~~~ /usr/include/relacy/random_scheduler.hpp:37:66: error: ‘thread_id_t’ has not been declared 37 | random_scheduler(test_params& params, shared_context_t& ctx, thread_id_t dynamic_thread_count) | ^~~~~~~~~~~ /usr/include/relacy/random_scheduler.hpp:42:5: error: ‘thread_id_t’ does not name a type; did you mean ‘thread_info_t’? 42 | thread_id_t iteration_begin_impl() | ^~~~~~~~~~~ | thread_info_t /usr/include/relacy/random_scheduler.hpp:54:5: error: ‘thread_id_t’ does not name a type; did you mean ‘thread_info_t’? 54 | thread_id_t schedule_impl(unpark_reason& reason, unsigned /*yield*/) | ^~~~~~~~~~~ | thread_info_t /usr/include/relacy/random_scheduler.hpp:99:40: error: ‘sched_type’ has not been declared 99 | unsigned rand_impl(unsigned limit, sched_type t) | ^~~~~~~~~~ /usr/include/relacy/random_scheduler.hpp:115:5: error: ‘iteration_t’ does not name a type 115 | iteration_t iteration_count_impl() | ^~~~~~~~~~~ /usr/include/relacy/random_scheduler.hpp:128:26: error: ‘thread_id_t’ has not been declared 128 | void on_thread_block(thread_id_t /*th*/, bool /*yield*/) | ^~~~~~~~~~~ In file included from /usr/include/relacy/context.hpp:29: /usr/include/relacy/full_search_scheduler.hpp:25:10: error: ‘thread_id_t’ has not been declared 25 | template | ^~~~~~~~~~~ /usr/include/relacy/full_search_scheduler.hpp:28:53: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 28 | unsigned yield_sched_count_ [thread_count]; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/full_search_scheduler.hpp:29:50: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 29 | unsigned yield_priority_ [thread_count]; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/full_search_scheduler.hpp:46:57: error: ‘thread_id_t’ has not been declared 46 | template | ^~~~~~~~~~~ /usr/include/relacy/full_search_scheduler.hpp:48:53: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 48 | : public scheduler | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/full_search_scheduler.hpp:48:65: error: template argument 3 is invalid 48 | : public scheduler | ^ /usr/include/relacy/full_search_scheduler.hpp:51:52: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 51 | typedef scheduler base_t; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/full_search_scheduler.hpp:51:64: error: template argument 3 is invalid 51 | typedef scheduler base_t; | ^ /usr/include/relacy/full_search_scheduler.hpp:52:22: error: ‘base_t’ is not a class, namespace, or enumeration 52 | typedef typename base_t::thread_info_t thread_info_t; | ^~~~~~ /usr/include/relacy/full_search_scheduler.hpp:53:22: error: ‘base_t’ is not a class, namespace, or enumeration 53 | typedef typename base_t::shared_context_t shared_context_t; | ^~~~~~ /usr/include/relacy/full_search_scheduler.hpp:59:71: error: ‘thread_id_t’ has not been declared 59 | tree_search_scheduler(test_params& params, shared_context_t& ctx, thread_id_t dynamic_thread_count) | ^~~~~~~~~~~ /usr/include/relacy/full_search_scheduler.hpp:68:5: error: ‘thread_id_t’ does not name a type; did you mean ‘thread_info_t’? 68 | thread_id_t iteration_begin_impl() | ^~~~~~~~~~~ | thread_info_t /usr/include/relacy/full_search_scheduler.hpp:122:5: error: ‘thread_id_t’ does not name a type; did you mean ‘thread_info_t’? 122 | thread_id_t schedule_impl(unpark_reason& reason, unsigned yield) | ^~~~~~~~~~~ | thread_info_t /usr/include/relacy/full_search_scheduler.hpp:255:40: error: ‘sched_type’ has not been declared 255 | unsigned rand_impl(unsigned limit, sched_type t) | ^~~~~~~~~~ /usr/include/relacy/full_search_scheduler.hpp:283:5: error: ‘iteration_t’ does not name a type 283 | iteration_t iteration_count_impl() | ^~~~~~~~~~~ /usr/include/relacy/full_search_scheduler.hpp:328:26: error: ‘thread_id_t’ has not been declared 328 | void on_thread_block(thread_id_t th, bool yield) | ^~~~~~~~~~~ /usr/include/relacy/full_search_scheduler.hpp:355:9: error: ‘sched_type’ does not name a type 355 | sched_type type_; | ^~~~~~~~~~ /usr/include/relacy/full_search_scheduler.hpp:359:22: error: expected nested-name-specifier before ‘vector’ 359 | typedef typename vector::type stree_t; | ^~~~~~ /usr/include/relacy/full_search_scheduler.hpp:359:22: error: expected ‘;’ at end of member declaration 359 | typedef typename vector::type stree_t; | ^~~~~~ | ; /usr/include/relacy/full_search_scheduler.hpp:359:28: error: expected unqualified-id before ‘<’ token 359 | typedef typename vector::type stree_t; | ^ /usr/include/relacy/full_search_scheduler.hpp:360:5: error: ‘stree_t’ does not name a type 360 | stree_t stree_; | ^~~~~~~ /usr/include/relacy/full_search_scheduler.hpp:378:10: error: ‘thread_id_t’ has not been declared 378 | template | ^~~~~~~~~~~ /usr/include/relacy/full_search_scheduler.hpp:380:58: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 380 | : public tree_search_scheduler | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/full_search_scheduler.hpp:381:45: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 381 | , tree_search_scheduler_thread_info, thread_count> | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/full_search_scheduler.hpp:381:57: error: template argument 1 is invalid 381 | , tree_search_scheduler_thread_info, thread_count> | ^ /usr/include/relacy/full_search_scheduler.hpp:381:60: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 381 | , tree_search_scheduler_thread_info, thread_count> | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/full_search_scheduler.hpp:381:72: error: template argument 2 is invalid 381 | , tree_search_scheduler_thread_info, thread_count> | ^ /usr/include/relacy/full_search_scheduler.hpp:381:72: error: template argument 3 is invalid /usr/include/relacy/full_search_scheduler.hpp:384:57: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 384 | typedef tree_search_scheduler | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/full_search_scheduler.hpp:385:45: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 385 | , tree_search_scheduler_thread_info, thread_count> base_t; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/full_search_scheduler.hpp:385:57: error: template argument 1 is invalid 385 | , tree_search_scheduler_thread_info, thread_count> base_t; | ^ /usr/include/relacy/full_search_scheduler.hpp:385:60: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 385 | , tree_search_scheduler_thread_info, thread_count> base_t; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/full_search_scheduler.hpp:385:72: error: template argument 2 is invalid 385 | , tree_search_scheduler_thread_info, thread_count> base_t; | ^ /usr/include/relacy/full_search_scheduler.hpp:385:72: error: template argument 3 is invalid /usr/include/relacy/full_search_scheduler.hpp:386:22: error: ‘base_t’ is not a class, namespace, or enumeration 386 | typedef typename base_t::thread_info_t thread_info_t; | ^~~~~~ /usr/include/relacy/full_search_scheduler.hpp:387:22: error: ‘base_t’ is not a class, namespace, or enumeration 387 | typedef typename base_t::shared_context_t shared_context_t; | ^~~~~~ /usr/include/relacy/full_search_scheduler.hpp:389:71: error: ‘thread_id_t’ has not been declared 389 | full_search_scheduler(test_params& params, shared_context_t& ctx, thread_id_t dynamic_thread_count) | ^~~~~~~~~~~ In file included from /usr/include/relacy/context.hpp:30: /usr/include/relacy/context_bound_scheduler.hpp:25:10: error: ‘thread_id_t’ has not been declared 25 | template | ^~~~~~~~~~~ /usr/include/relacy/context_bound_scheduler.hpp:26:80: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 26 | struct context_bound_scheduler_thread_info : tree_search_scheduler_thread_info | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context_bound_scheduler.hpp:26:92: error: template argument 1 is invalid 26 | struct context_bound_scheduler_thread_info : tree_search_scheduler_thread_info | ^ /usr/include/relacy/context_bound_scheduler.hpp:42:10: error: ‘thread_id_t’ has not been declared 42 | template | ^~~~~~~~~~~ /usr/include/relacy/context_bound_scheduler.hpp:44:60: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 44 | : public tree_search_scheduler | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context_bound_scheduler.hpp:45:47: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 45 | , context_bound_scheduler_thread_info, thread_count> | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context_bound_scheduler.hpp:45:59: error: template argument 1 is invalid 45 | , context_bound_scheduler_thread_info, thread_count> | ^ /usr/include/relacy/context_bound_scheduler.hpp:45:62: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 45 | , context_bound_scheduler_thread_info, thread_count> | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context_bound_scheduler.hpp:45:74: error: template argument 2 is invalid 45 | , context_bound_scheduler_thread_info, thread_count> | ^ /usr/include/relacy/context_bound_scheduler.hpp:45:74: error: template argument 3 is invalid /usr/include/relacy/context_bound_scheduler.hpp:48:59: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 48 | typedef tree_search_scheduler | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context_bound_scheduler.hpp:49:47: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 49 | , context_bound_scheduler_thread_info, thread_count> base_t; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context_bound_scheduler.hpp:49:59: error: template argument 1 is invalid 49 | , context_bound_scheduler_thread_info, thread_count> base_t; | ^ /usr/include/relacy/context_bound_scheduler.hpp:49:62: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 49 | , context_bound_scheduler_thread_info, thread_count> base_t; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context_bound_scheduler.hpp:49:74: error: template argument 2 is invalid 49 | , context_bound_scheduler_thread_info, thread_count> base_t; | ^ /usr/include/relacy/context_bound_scheduler.hpp:49:74: error: template argument 3 is invalid /usr/include/relacy/context_bound_scheduler.hpp:50:22: error: ‘base_t’ is not a class, namespace, or enumeration 50 | typedef typename base_t::thread_info_t thread_info_t; | ^~~~~~ /usr/include/relacy/context_bound_scheduler.hpp:51:22: error: ‘base_t’ is not a class, namespace, or enumeration 51 | typedef typename base_t::shared_context_t shared_context_t; | ^~~~~~ /usr/include/relacy/context_bound_scheduler.hpp:53:73: error: ‘thread_id_t’ has not been declared 53 | context_bound_scheduler(test_params& params, shared_context_t& ctx, thread_id_t dynamic_thread_count) | ^~~~~~~~~~~ /usr/include/relacy/context_bound_scheduler.hpp:58:5: error: ‘thread_id_t’ does not name a type; did you mean ‘thread_info_t’? 58 | thread_id_t iteration_begin_impl() | ^~~~~~~~~~~ | thread_info_t /usr/include/relacy/context.hpp:37:10: error: ‘thread_id_t’ has not been declared 37 | template class generic_mutex_data_impl; | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:38:10: error: ‘thread_id_t’ has not been declared 38 | template class condvar_data_impl; | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:39:10: error: ‘thread_id_t’ has not been declared 39 | template class sema_data_impl; | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:40:10: error: ‘thread_id_t’ has not been declared 40 | template class event_data_impl; | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:56:5: error: ‘thread_id_t’ does not name a type; did you mean ‘thread_info’? 56 | thread_id_t thread_; | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp: In member function ‘void rl::unpark_event::output(std::ostream&) const’: /usr/include/relacy/context.hpp:60:38: error: ‘thread_’ was not declared in this scope; did you mean ‘pthread_t’? 60 | s << "unblocking thread " << thread_; | ^~~~~~~ | pthread_t /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:104:123: error: template argument 1 is invalid 104 | : thread_local_contxt_impl, test_t::params::thread_count> | ^ /usr/include/relacy/context.hpp:109:41: error: template argument 1 is invalid 109 | test_t::params::thread_count> | ^ /usr/include/relacy/context.hpp:113:11: error: ‘base_t’ is not a class, namespace, or enumeration 113 | using base_t::params_; | ^~~~~~ /usr/include/relacy/context.hpp:114:11: error: ‘base_t’ is not a class, namespace, or enumeration 114 | using base_t::history_; | ^~~~~~ /usr/include/relacy/context.hpp:115:11: error: ‘base_t’ is not a class, namespace, or enumeration 115 | using base_t::threadx_; | ^~~~~~ /usr/include/relacy/context.hpp:116:11: error: ‘base_t’ is not a class, namespace, or enumeration 116 | using base_t::disable_preemption_; | ^~~~~~ /usr/include/relacy/context.hpp:117:11: error: ‘base_t’ is not a class, namespace, or enumeration 117 | using base_t::disable_alloc_; | ^~~~~~ /usr/include/relacy/context.hpp:118:11: error: ‘base_t’ is not a class, namespace, or enumeration 118 | using base_t::invariant_executing; | ^~~~~~ /usr/include/relacy/context.hpp:120:12: error: ‘thread_id_t’ does not name a type; did you mean ‘thread_info’? 120 | static thread_id_t const main_thread_id = -1; | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:121:12: error: ‘thread_id_t’ does not name a type; did you mean ‘thread_info’? 121 | static thread_id_t const static_thread_count = test_t::params::static_thread_count; | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:122:12: error: ‘thread_id_t’ does not name a type; did you mean ‘thread_info’? 122 | static thread_id_t const dynamic_thread_count = test_t::params::dynamic_thread_count; | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:123:12: error: ‘thread_id_t’ does not name a type; did you mean ‘thread_info’? 123 | static thread_id_t const thread_count = test_t::params::thread_count; | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:125:5: error: ‘iteration_t’ does not name a type 125 | iteration_t current_iter_; | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:127:5: error: ‘string’ does not name a type; did you mean ‘stdin’? 127 | string test_result_str_; | ^~~~~~ | stdin /usr/include/relacy/context.hpp:128:5: error: ‘fiber_t’ does not name a type; did you mean ‘timer_t’? 128 | fiber_t main_fiber_; | ^~~~~~~ | timer_t /usr/include/relacy/context.hpp:130:37: error: field ‘memory_’ has incomplete type ‘rl::memory_mgr’ 130 | memory_mgr memory_; | ^~~~~~~ /usr/include/relacy/memory.hpp:23:7: note: forward declaration of ‘class rl::memory_mgr’ 23 | class memory_mgr : nocopy<> | ^~~~~~~~~~ /usr/include/relacy/context.hpp:131:5: error: ‘iteration_t’ does not name a type 131 | iteration_t start_iteration_; | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:139:5: error: ‘timestamp_t’ does not name a type 139 | timestamp_t seq_cst_fence_order_ [thread_count]; | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:141:5: error: ‘aligned’ does not name a type; did you mean ‘signed’? 141 | aligned > threads_ [thread_count]; | ^~~~~~~ | signed /usr/include/relacy/context.hpp:143:17: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 143 | thread_info& threadi() | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:143:29: error: template argument 1 is invalid 143 | thread_info& threadi() | ^ /usr/include/relacy/context.hpp:148:37: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 148 | slab_allocator >* atomic_alloc_; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:148:49: error: template argument 1 is invalid 148 | slab_allocator >* atomic_alloc_; | ^ /usr/include/relacy/context.hpp:148:51: error: template argument 1 is invalid 148 | slab_allocator >* atomic_alloc_; | ^ /usr/include/relacy/context.hpp:149:34: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 149 | slab_allocator >* var_alloc_; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:149:46: error: template argument 1 is invalid 149 | slab_allocator >* var_alloc_; | ^ /usr/include/relacy/context.hpp:149:48: error: template argument 1 is invalid 149 | slab_allocator >* var_alloc_; | ^ /usr/include/relacy/context.hpp:150:44: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 150 | slab_allocator >* mutex_alloc_; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:150:56: error: template argument 1 is invalid 150 | slab_allocator >* mutex_alloc_; | ^ /usr/include/relacy/context.hpp:150:58: error: template argument 1 is invalid 150 | slab_allocator >* mutex_alloc_; | ^ /usr/include/relacy/context.hpp:151:38: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 151 | slab_allocator >* condvar_alloc_; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:151:50: error: template argument 1 is invalid 151 | slab_allocator >* condvar_alloc_; | ^ /usr/include/relacy/context.hpp:151:52: error: template argument 1 is invalid 151 | slab_allocator >* condvar_alloc_; | ^ /usr/include/relacy/context.hpp:152:35: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 152 | slab_allocator >* sema_alloc_; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:152:47: error: template argument 1 is invalid 152 | slab_allocator >* sema_alloc_; | ^ /usr/include/relacy/context.hpp:152:49: error: template argument 1 is invalid 152 | slab_allocator >* sema_alloc_; | ^ /usr/include/relacy/context.hpp:153:36: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 153 | slab_allocator >* event_alloc_; | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:153:48: error: template argument 1 is invalid 153 | slab_allocator >* event_alloc_; | ^ /usr/include/relacy/context.hpp:153:50: error: template argument 1 is invalid 153 | slab_allocator >* event_alloc_; | ^ /usr/include/relacy/context.hpp:177:13: error: ‘unpark_reason’ does not name a type 177 | virtual unpark_reason wfmo_park(void** ws, | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:277:53: error: ‘debug_info_param’ has not been declared 277 | virtual void* alloc(size_t size, bool is_array, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:301:47: error: ‘debug_info_param’ has not been declared 301 | virtual void free(void* p, bool is_array, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:316:5: error: ‘debug_info’ does not name a type 316 | debug_info last_info_; | ^~~~~~~~~~ /usr/include/relacy/context.hpp:341:33: error: ‘debug_info_param’ has not been declared 341 | virtual void set_debug_info(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:367:13: error: ‘unpark_reason’ does not name a type 367 | virtual unpark_reason park_current_thread(bool is_timed, | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:392:32: error: ‘thread_id_t’ has not been declared 392 | virtual void unpark_thread(thread_id_t th, bool do_switch, debug_info_param info) | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:392:64: error: ‘debug_info_param’ has not been declared 392 | virtual void unpark_thread(thread_id_t th, bool do_switch, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:405:30: error: ‘debug_info_param’ has not been declared 405 | virtual void switch_back(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:419:65: error: ‘debug_info_param’ has not been declared 419 | void ensure(bool cond, char const* desc, test_result_e res, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:425:65: error: ‘debug_info_param’ has not been declared 425 | virtual void fail_test(char const* desc, test_result_e res, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:445:45: error: ‘debug_info_param’ has not been declared 445 | virtual void rl_until(char const* desc, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:550:40: error: ‘debug_info_param’ has not been declared 550 | virtual void yield(unsigned count, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:652:5: error: ‘RL_INLINE’ does not name a type 652 | RL_INLINE static void reset_thread(thread_info& ti) | ^~~~~~~~~ /usr/include/relacy/context.hpp:652:5: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | /usr/include/relacy/context.hpp:666:20: error: ‘iteration_t’ has not been declared 666 | void iteration(iteration_t iter) | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:699:26: error: ‘thread_id_t’ has not been declared 699 | void switch_to_fiber(thread_id_t th) | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:713:26: error: ‘iteration_t’ has not been declared 713 | void output_progress(iteration_t iter) | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:726:43: error: ‘sched_type’ has not been declared 726 | virtual unsigned rand(unsigned limit, sched_type t) | ^~~~~~~~~~ /usr/include/relacy/context.hpp:796:13: error: ‘thread_id_t’ does not name a type; did you mean ‘thread_info’? 796 | virtual thread_id_t get_thread_count() const | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp: In member function ‘int& rl::context_impl::threadi()’: /usr/include/relacy/context.hpp:145:41: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 145 | return *static_cast*>(threadx_); | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:145:53: error: template argument 1 is invalid 145 | return *static_cast*>(threadx_); | ^ /usr/include/relacy/context.hpp:145:54: error: expected ‘>’ before ‘*’ token 145 | return *static_cast*>(threadx_); | ^ /usr/include/relacy/context.hpp:145:54: error: expected ‘(’ before ‘*’ token /usr/include/relacy/context.hpp:145:55: error: expected primary-expression before ‘>’ token 145 | return *static_cast*>(threadx_); | ^ /usr/include/relacy/context.hpp:145:57: error: ‘threadx_’ was not declared in this scope; did you mean ‘threadi’? 145 | return *static_cast*>(threadx_); | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:145:66: error: expected ‘)’ before ‘;’ token 145 | return *static_cast*>(threadx_); | ^ /usr/include/relacy/context.hpp: In member function ‘virtual rl::atomic_data* rl::context_impl::atomic_ctor(void*)’: /usr/include/relacy/context.hpp:157:36: error: request for member ‘alloc’ in ‘((rl::context_impl*)this)->rl::context_impl::atomic_alloc_->’, which is of non-class type ‘int’ 157 | return new (atomic_alloc_->alloc(ctx)) atomic_data_impl (); | ^~~~~ /usr/include/relacy/context.hpp:157:65: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 157 | return new (atomic_alloc_->alloc(ctx)) atomic_data_impl (); | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:157:77: error: template argument 1 is invalid 157 | return new (atomic_alloc_->alloc(ctx)) atomic_data_impl (); | ^ /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::atomic_dtor(rl::atomic_data*)’: /usr/include/relacy/context.hpp:162:38: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 162 | static_cast*>(data)->~atomic_data_impl(); | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:162:50: error: template argument 1 is invalid 162 | static_cast*>(data)->~atomic_data_impl(); | ^ /usr/include/relacy/context.hpp:162:51: error: expected ‘>’ before ‘*’ token 162 | static_cast*>(data)->~atomic_data_impl(); | ^ /usr/include/relacy/context.hpp:162:51: error: expected ‘(’ before ‘*’ token /usr/include/relacy/context.hpp:162:52: error: expected primary-expression before ‘>’ token 162 | static_cast*>(data)->~atomic_data_impl(); | ^ /usr/include/relacy/context.hpp:162:94: error: expected ‘)’ before ‘;’ token 162 | static_cast*>(data)->~atomic_data_impl(); | ^ /usr/include/relacy/context.hpp:163:24: error: request for member ‘free’ in ‘((rl::context_impl*)this)->rl::context_impl::atomic_alloc_->’, which is of non-class type ‘int’ 163 | atomic_alloc_->free(static_cast*>(data)); | ^~~~ /usr/include/relacy/context.hpp:163:71: error: expected ‘>’ before ‘*’ token 163 | atomic_alloc_->free(static_cast*>(data)); | ^ /usr/include/relacy/context.hpp:163:71: error: expected ‘(’ before ‘*’ token /usr/include/relacy/context.hpp:163:72: error: expected primary-expression before ‘>’ token 163 | atomic_alloc_->free(static_cast*>(data)); | ^ /usr/include/relacy/context.hpp: In member function ‘virtual rl::var_data* rl::context_impl::var_ctor()’: /usr/include/relacy/context.hpp:168:33: error: request for member ‘alloc’ in ‘((rl::context_impl*)this)->rl::context_impl::var_alloc_->’, which is of non-class type ‘int’ 168 | return new (var_alloc_->alloc()) var_data_impl (); | ^~~~~ /usr/include/relacy/context.hpp:168:56: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 168 | return new (var_alloc_->alloc()) var_data_impl (); | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:168:68: error: template argument 1 is invalid 168 | return new (var_alloc_->alloc()) var_data_impl (); | ^ /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::var_dtor(rl::var_data*)’: /usr/include/relacy/context.hpp:173:35: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 173 | static_cast*>(data)->~var_data_impl(); | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:173:47: error: template argument 1 is invalid 173 | static_cast*>(data)->~var_data_impl(); | ^ /usr/include/relacy/context.hpp:173:48: error: expected ‘>’ before ‘*’ token 173 | static_cast*>(data)->~var_data_impl(); | ^ /usr/include/relacy/context.hpp:173:48: error: expected ‘(’ before ‘*’ token /usr/include/relacy/context.hpp:173:49: error: expected primary-expression before ‘>’ token 173 | static_cast*>(data)->~var_data_impl(); | ^ /usr/include/relacy/context.hpp:173:88: error: expected ‘)’ before ‘;’ token 173 | static_cast*>(data)->~var_data_impl(); | ^ /usr/include/relacy/context.hpp:174:21: error: request for member ‘free’ in ‘((rl::context_impl*)this)->rl::context_impl::var_alloc_->’, which is of non-class type ‘int’ 174 | var_alloc_->free(static_cast*>(data)); | ^~~~ /usr/include/relacy/context.hpp:174:65: error: expected ‘>’ before ‘*’ token 174 | var_alloc_->free(static_cast*>(data)); | ^ /usr/include/relacy/context.hpp:174:65: error: expected ‘(’ before ‘*’ token /usr/include/relacy/context.hpp:174:66: error: expected primary-expression before ‘>’ token 174 | var_alloc_->free(static_cast*>(data)); | ^ /usr/include/relacy/context.hpp: In constructor ‘rl::context_impl::context_impl(rl::test_params&, shared_context_t&)’: /usr/include/relacy/context.hpp:191:11: error: ‘typedef int rl::context_impl::base_t’ is not a non-static data member of ‘rl::context_impl’ 191 | : base_t(thread_count, params) | ^~~~~~ /usr/include/relacy/context.hpp:191:18: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 191 | : base_t(thread_count, params) | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:192:11: error: class ‘rl::context_impl’ does not have any field named ‘current_iter_’ 192 | , current_iter_(0) | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:193:11: error: class ‘rl::context_impl’ does not have any field named ‘start_iteration_’ 193 | , start_iteration_(1) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:194:32: error: ‘dynamic_thread_count’ was not declared in this scope 194 | , sched_(params, sctx, dynamic_thread_count) | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:197:24: error: ‘rl::context’ is not a base of ‘rl::context_impl’ 197 | this->context::seq_cst_fence_order_ = this->seq_cst_fence_order_; | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:203:9: error: ‘threadx_’ was not declared in this scope; did you mean ‘threadi’? 203 | threadx_ = 0; | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:205:9: error: ‘invariant_executing’ was not declared in this scope 205 | invariant_executing = false; | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:207:27: error: ‘main_fiber_’ was not declared in this scope 207 | create_main_fiber(main_fiber_); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:212:24: error: ‘logic_error’ is not a member of ‘std’ 212 | throw std::logic_error("no threads created"); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:215:75: error: template argument 1 is invalid 215 | atomic_alloc_ = new slab_allocator >(); | ^ /usr/include/relacy/context.hpp:216:69: error: template argument 1 is invalid 216 | var_alloc_ = new slab_allocator >(); | ^ /usr/include/relacy/context.hpp:217:81: error: template argument 1 is invalid 217 | mutex_alloc_ = new slab_allocator >(); | ^ /usr/include/relacy/context.hpp:218:77: error: template argument 1 is invalid 218 | condvar_alloc_ = new slab_allocator >(); | ^ /usr/include/relacy/context.hpp:219:71: error: template argument 1 is invalid 219 | sema_alloc_ = new slab_allocator >(); | ^ /usr/include/relacy/context.hpp:220:73: error: template argument 1 is invalid 220 | event_alloc_ = new slab_allocator >(); | ^ /usr/include/relacy/context.hpp:222:14: error: ‘thread_id_t’ was not declared in this scope; did you mean ‘thread_info’? 222 | for (thread_id_t i = 0; i != thread_count; ++i) | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:222:33: error: ‘i’ was not declared in this scope 222 | for (thread_id_t i = 0; i != thread_count; ++i) | ^ /usr/include/relacy/context.hpp:224:19: error: ‘threads_’ was not declared in this scope; did you mean ‘threadi’? 224 | new (&threads_[i]) thread_info (i); | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:228:14: error: ‘thread_id_t’ was not declared in this scope; did you mean ‘thread_info’? 228 | for (thread_id_t i = 0; i != thread_count; ++i) | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:228:33: error: ‘i’ was not declared in this scope 228 | for (thread_id_t i = 0; i != thread_count; ++i) | ^ /usr/include/relacy/context.hpp:231:26: error: ‘threads_’ was not declared in this scope; did you mean ‘threadi’? 231 | create_fiber(threads_[i].fiber_, &context_impl::fiber_proc, (void*)(intptr_t)i); | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:234:9: error: ‘disable_alloc_’ was not declared in this scope 234 | disable_alloc_ = 0; | ^~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In destructor ‘rl::context_impl::~context_impl()’: /usr/include/relacy/context.hpp:239:9: error: ‘disable_alloc_’ was not declared in this scope 239 | disable_alloc_ += 1; | ^~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:241:14: error: ‘thread_id_t’ was not declared in this scope; did you mean ‘thread_info’? 241 | for (thread_id_t i = 0; i != thread_count; ++i) | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:241:33: error: ‘i’ was not declared in this scope 241 | for (thread_id_t i = 0; i != thread_count; ++i) | ^ /usr/include/relacy/context.hpp:241:38: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 241 | for (thread_id_t i = 0; i != thread_count; ++i) | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:243:26: error: ‘threads_’ was not declared in this scope; did you mean ‘threadi’? 243 | delete_fiber(threads_[i].fiber_); | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:246:27: error: ‘main_fiber_’ was not declared in this scope 246 | delete_main_fiber(main_fiber_); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘virtual void* rl::context_impl::alloc(size_t, bool, int)’: /usr/include/relacy/context.hpp:279:9: error: ‘disable_alloc_’ was not declared in this scope 279 | disable_alloc_ += 1; | ^~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:286:9: error: ‘debug_info’ is not a member of ‘rl’ 286 | RL_HIST_CTX(memory_alloc_event) {p, size, is_array} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:286:61: error: ‘rl_info_c’ was not declared in this scope 286 | RL_HIST_CTX(memory_alloc_event) {p, size, is_array} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::free(void*, bool, int)’: /usr/include/relacy/context.hpp:303:9: error: ‘debug_info’ is not a member of ‘rl’ 303 | RL_HIST_CTX(memory_free_event) {p, is_array} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:303:54: error: ‘rl_info_c’ was not declared in this scope 303 | RL_HIST_CTX(memory_free_event) {p, is_array} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:305:79: error: ‘sched_type_mem_realloc’ was not declared in this scope 305 | bool const defer = (0 == sched_.rand(this->is_random_sched() ? 4 : 2, sched_type_mem_realloc)); | ^~~~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:309:9: error: ‘disable_alloc_’ was not declared in this scope 309 | disable_alloc_ += 1; | ^~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘virtual void* rl::context_impl::alloc(size_t)’: /usr/include/relacy/context.hpp:320:13: error: ‘disable_alloc_’ was not declared in this scope 320 | if (disable_alloc_) | ^~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:324:9: error: ‘disable_alloc_’ was not declared in this scope 324 | disable_alloc_ += 1; | ^~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::set_debug_info(int)’: /usr/include/relacy/context.hpp:343:9: error: ‘last_info_’ was not declared in this scope 343 | last_info_ = info; | ^~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::free(void*)’: /usr/include/relacy/context.hpp:348:13: error: ‘disable_alloc_’ was not declared in this scope 348 | if (disable_alloc_) | ^~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:354:9: error: ‘disable_alloc_’ was not declared in this scope 354 | disable_alloc_ += 1; | ^~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:355:9: error: ‘debug_info’ was not declared in this scope; did you mean ‘set_debug_info’? 355 | debug_info const& info = last_info_; | ^~~~~~~~~~ | set_debug_info /usr/include/relacy/context.hpp:356:9: error: ‘debug_info’ is not a member of ‘rl’ 356 | RL_HIST_CTX(memory_free_event) {p, false} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:356:51: error: ‘rl_info_c’ was not declared in this scope 356 | RL_HIST_CTX(memory_free_event) {p, false} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:358:79: error: ‘sched_type_mem_realloc’ was not declared in this scope 358 | bool const defer = (0 == sched_.rand(this->is_random_sched() ? 4 : 2, sched_type_mem_realloc)); | ^~~~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:363:95: error: ‘info’ was not declared in this scope 363 | fail_test("incorrect address passed to free() function", test_result_double_free, info); | ^~~~ /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::unpark_thread(int, bool, int)’: /usr/include/relacy/context.hpp:395:9: error: ‘debug_info’ is not a member of ‘rl’ 395 | RL_HIST_CTX(unpark_event) {th} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:395:40: error: ‘rl_info_c’ was not declared in this scope 395 | RL_HIST_CTX(unpark_event) {th} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:399:13: error: ‘threads_’ was not declared in this scope; did you mean ‘threadi’? 399 | threads_[th].unpark_reason_ = unpark_reason_normal; | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:399:43: error: ‘unpark_reason_normal’ was not declared in this scope 399 | threads_[th].unpark_reason_ = unpark_reason_normal; | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:400:46: error: ‘threadx_’ was not declared in this scope; did you mean ‘threadi’? 400 | threads_[th].temp_switch_from_ = threadx_->index_; | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::switch_back(int)’: /usr/include/relacy/context.hpp:409:19: error: ‘threadx_’ was not declared in this scope; did you mean ‘threadi’? 409 | RL_VERIFY(threadx_->saved_disable_preemption_ != -1); | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:411:9: error: ‘thread_id_t’ was not declared in this scope; did you mean ‘thread_info’? 411 | thread_id_t const tid = threadx_->temp_switch_from_; | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:413:25: error: ‘tid’ was not declared in this scope 413 | switch_to_fiber(tid); | ^~~ /usr/include/relacy/context.hpp:415:9: error: ‘disable_preemption_’ was not declared in this scope 415 | disable_preemption_ = threadx_->saved_disable_preemption_; | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::fail_test(const char*, rl::test_result_e, int)’: /usr/include/relacy/context.hpp:433:54: error: ‘invariant_executing’ was not declared in this scope 433 | if (test_result_user_assert_failed == res && invariant_executing) | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:436:13: error: ‘test_result_str_’ was not declared in this scope; did you mean ‘test_result_str’? 436 | test_result_str_ = test_result_str(test_result_); | ^~~~~~~~~~~~~~~~ | test_result_str /usr/include/relacy/context.hpp:438:13: error: ‘test_result_str_’ was not declared in this scope; did you mean ‘test_result_str’? 438 | test_result_str_ = string(test_result_str(test_result_)) + " (" + desc + ")"; | ^~~~~~~~~~~~~~~~ | test_result_str /usr/include/relacy/context.hpp:440:9: error: ‘debug_info’ is not a member of ‘rl’ 440 | RL_HIST_CTX(user_event) {test_result_str_.c_str()} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:440:34: error: ‘test_result_str_’ was not declared in this scope; did you mean ‘test_result_str’? 440 | RL_HIST_CTX(user_event) {test_result_str_.c_str()} RL_HIST_END(); | ^~~~~~~~~~~~~~~~ | test_result_str /usr/include/relacy/context.hpp:440:60: error: ‘rl_info_c’ was not declared in this scope 440 | RL_HIST_CTX(user_event) {test_result_str_.c_str()} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::rl_until(const char*, int)’: /usr/include/relacy/context.hpp:447:9: error: ‘debug_info’ is not a member of ‘rl’ 447 | RL_HIST_CTX(user_event) {desc} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:447:40: error: ‘rl_info_c’ was not declared in this scope 447 | RL_HIST_CTX(user_event) {desc} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::fiber_proc_impl(int)’: /usr/include/relacy/context.hpp:456:36: error: ‘threads_’ was not declared in this scope; did you mean ‘threadi’? 456 | thread_info_base* param = &threads_[thread_index]; | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:457:9: error: ‘debug_info’ was not declared in this scope; did you mean ‘set_debug_info’? 457 | debug_info info = $; | ^~~~~~~~~~ | set_debug_info /usr/include/relacy/context.hpp:464:17: error: ‘debug_info’ is not a member of ‘rl’ 464 | RL_HIST_CTX(user_event) {"[CTOR BEGIN]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:464:58: error: ‘rl_info_c’ was not declared in this scope 464 | RL_HIST_CTX(user_event) {"[CTOR BEGIN]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:466:17: error: ‘debug_info’ is not a member of ‘rl’ 466 | RL_HIST_CTX(user_event) {"[CTOR END]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:466:56: error: ‘rl_info_c’ was not declared in this scope 466 | RL_HIST_CTX(user_event) {"[CTOR END]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:467:17: error: ‘debug_info’ is not a member of ‘rl’ 467 | RL_HIST_CTX(user_event) {"[BEFORE BEGIN]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:467:60: error: ‘rl_info_c’ was not declared in this scope 467 | RL_HIST_CTX(user_event) {"[BEFORE BEGIN]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:469:17: error: ‘debug_info’ is not a member of ‘rl’ 469 | RL_HIST_CTX(user_event) {"[BEFORE END]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:469:58: error: ‘rl_info_c’ was not declared in this scope 469 | RL_HIST_CTX(user_event) {"[BEFORE END]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:471:17: error: ‘invariant_executing’ was not declared in this scope 471 | invariant_executing = true; | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:480:24: error: ‘class rl::thread_info_base’ has no member named ‘index_’ 480 | if (param->index_ < static_thread_count) | ^~~~~~ /usr/include/relacy/context.hpp:480:33: error: ‘static_thread_count’ was not declared in this scope 480 | if (param->index_ < static_thread_count) | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:482:51: error: ‘class rl::thread_info_base’ has no member named ‘index_’ 482 | current_test_suite->thread(param->index_); | ^~~~~~ /usr/include/relacy/context.hpp:491:13: error: ‘debug_info’ is not a member of ‘rl’ 491 | RL_HIST_CTX(user_event) {"[THREAD FINISHED]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:491:59: error: ‘rl_info_c’ was not declared in this scope 491 | RL_HIST_CTX(user_event) {"[THREAD FINISHED]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:492:23: error: ‘disable_preemption_’ was not declared in this scope 492 | RL_VERIFY(disable_preemption_ == 0); | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:493:23: error: ‘threadx_’ was not declared in this scope; did you mean ‘threadi’? 493 | RL_VERIFY(threadx_->temp_switch_from_ == -1); | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:507:17: error: ‘invariant_executing’ was not declared in this scope 507 | invariant_executing = true; | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:511:17: error: ‘debug_info’ is not a member of ‘rl’ 511 | RL_HIST_CTX(user_event) {"[AFTER BEGIN]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:511:59: error: ‘rl_info_c’ was not declared in this scope 511 | RL_HIST_CTX(user_event) {"[AFTER BEGIN]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:513:17: error: ‘debug_info’ is not a member of ‘rl’ 513 | RL_HIST_CTX(user_event) {"[AFTER END]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:513:57: error: ‘rl_info_c’ was not declared in this scope 513 | RL_HIST_CTX(user_event) {"[AFTER END]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:514:17: error: ‘debug_info’ is not a member of ‘rl’ 514 | RL_HIST_CTX(user_event) {"[DTOR BEGIN]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:514:58: error: ‘rl_info_c’ was not declared in this scope 514 | RL_HIST_CTX(user_event) {"[DTOR BEGIN]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:516:17: error: ‘debug_info’ is not a member of ‘rl’ 516 | RL_HIST_CTX(user_event) {"[DTOR END]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:516:56: error: ‘rl_info_c’ was not declared in this scope 516 | RL_HIST_CTX(user_event) {"[DTOR END]"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:519:98: error: ‘$’ was not declared in this scope 519 | ensure(memory_.iteration_end(), "memory leak detected", test_result_memory_leak, $); | ^ /usr/include/relacy/context.hpp:519:98: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/relacy/context.hpp:520:39: error: request for member ‘iteration_end’ in ‘((rl::context_impl*)this)->rl::context_impl::atomic_alloc_->’, which is of non-class type ‘int’ 520 | ensure(atomic_alloc_->iteration_end(), "atomic leak", test_result_resource_leak, $); | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:521:36: error: request for member ‘iteration_end’ in ‘((rl::context_impl*)this)->rl::context_impl::var_alloc_->’, which is of non-class type ‘int’ 521 | ensure(var_alloc_->iteration_end(), "var leak", test_result_resource_leak, $); | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:522:38: error: request for member ‘iteration_end’ in ‘((rl::context_impl*)this)->rl::context_impl::mutex_alloc_->’, which is of non-class type ‘int’ 522 | ensure(mutex_alloc_->iteration_end(), "mutex leak", test_result_resource_leak, $); | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:523:40: error: request for member ‘iteration_end’ in ‘((rl::context_impl*)this)->rl::context_impl::condvar_alloc_->’, which is of non-class type ‘int’ 523 | ensure(condvar_alloc_->iteration_end(), "condition variable leak", test_result_resource_leak, $); | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:524:37: error: request for member ‘iteration_end’ in ‘((rl::context_impl*)this)->rl::context_impl::sema_alloc_->’, which is of non-class type ‘int’ 524 | ensure(sema_alloc_->iteration_end(), "semaphore leak", test_result_resource_leak, $); | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:525:38: error: request for member ‘iteration_end’ in ‘((rl::context_impl*)this)->rl::context_impl::event_alloc_->’, which is of non-class type ‘int’ 525 | ensure(event_alloc_->iteration_end(), "event leak", test_result_resource_leak, $); | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:531:70: error: ‘info’ was not declared in this scope 531 | fail_test("deadlock detected", test_result_deadlock, info); | ^~~~ /usr/include/relacy/context.hpp: In member function ‘virtual rl::win_waitable_object* rl::context_impl::create_thread(void* (*)(void*), void*)’: /usr/include/relacy/context.hpp:543:9: error: ‘thread_id_t’ was not declared in this scope; did you mean ‘thread_info’? 543 | thread_id_t id = sched_.create_thread(); | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:544:9: error: ‘threads_’ was not declared in this scope; did you mean ‘threadi’? 544 | threads_[id].dynamic_thread_func_ = fn; | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:544:18: error: ‘id’ was not declared in this scope; did you mean ‘void’? 544 | threads_[id].dynamic_thread_func_ = fn; | ^~ | void /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::yield(unsigned int, int)’: /usr/include/relacy/context.hpp:553:9: error: ‘debug_info’ is not a member of ‘rl’ 553 | RL_HIST_CTX(yield_event) {count} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:553:42: error: ‘rl_info_c’ was not declared in this scope 553 | RL_HIST_CTX(yield_event) {count} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:554:30: error: ‘params_’ was not declared in this scope 554 | if (sched_count_++ > params_.execution_depth_limit) | ^~~~~~~ /usr/include/relacy/context.hpp:555:57: error: ‘RL_INFO’ was not declared in this scope 555 | fail_test("livelock", test_result_livelock, RL_INFO); | ^~~~~~~ /usr/include/relacy/context.hpp:555:57: note: the macro ‘RL_INFO’ had not yet been defined /usr/include/relacy/base.hpp:117: note: it was later defined here 117 | #define RL_INFO ::rl::debug_info(__FUNCTION__, __FILE__, __LINE__) | /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::sched()’: /usr/include/relacy/context.hpp:561:30: error: ‘params_’ was not declared in this scope 561 | if (sched_count_++ > params_.execution_depth_limit) | ^~~~~~~ /usr/include/relacy/context.hpp:562:57: error: ‘RL_INFO’ was not declared in this scope 562 | fail_test("livelock", test_result_livelock, RL_INFO); | ^~~~~~~ /usr/include/relacy/context.hpp:562:57: note: the macro ‘RL_INFO’ had not yet been defined /usr/include/relacy/base.hpp:117: note: it was later defined here 117 | #define RL_INFO ::rl::debug_info(__FUNCTION__, __FILE__, __LINE__) | /usr/include/relacy/context.hpp:563:13: error: ‘disable_preemption_’ was not declared in this scope 563 | if (disable_preemption_) | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘void rl::context_impl::schedule(unsigned int)’: /usr/include/relacy/context.hpp:570:19: error: ‘threadx_’ was not declared in this scope; did you mean ‘threadi’? 570 | RL_VERIFY(threadx_->temp_switch_from_ == -1); | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:571:19: error: ‘disable_preemption_’ was not declared in this scope 571 | RL_VERIFY(disable_preemption_ == 0); | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:574:40: error: ‘unpark_reason_normal’ was not declared in this scope 574 | threadx_->unpark_reason_ = unpark_reason_normal; | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:579:9: error: ‘invariant_executing’ was not declared in this scope 579 | invariant_executing = true; | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:587:9: error: ‘unpark_reason’ was not declared in this scope 587 | unpark_reason reason = unpark_reason_normal; | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:588:9: error: ‘thread_id_t’ was not declared in this scope; did you mean ‘thread_info’? 588 | thread_id_t const th = sched_.schedule(reason, yield); | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:589:9: error: ‘threads_’ was not declared in this scope; did you mean ‘threadi’? 589 | threads_[th].unpark_reason_ = reason; | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:589:18: error: ‘th’ was not declared in this scope; did you mean ‘tm’? 589 | threads_[th].unpark_reason_ = reason; | ^~ | tm /usr/include/relacy/context.hpp:589:39: error: ‘reason’ was not declared in this scope 589 | threads_[th].unpark_reason_ = reason; | ^~~~~~ /usr/include/relacy/context.hpp: In member function ‘rl::test_result_e rl::context_impl::simulate(std::ostream&, std::istream&, bool)’: /usr/include/relacy/context.hpp:599:20: error: ‘start_iteration_’ was not declared in this scope 599 | sss >> start_iteration_; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:605:52: error: ‘params_’ was not declared in this scope 605 | if (test_result_success != res && false == params_.collect_history) | ^~~~~~~ /usr/include/relacy/context.hpp: In member function ‘rl::test_result_e rl::context_impl::simulate2(bool)’: /usr/include/relacy/context.hpp:616:9: error: ‘debug_info’ was not declared in this scope; did you mean ‘set_debug_info’? 616 | debug_info info = $; | ^~~~~~~~~~ | set_debug_info /usr/include/relacy/context.hpp:618:9: error: ‘current_iter_’ was not declared in this scope 618 | current_iter_ = start_iteration_; | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:618:25: error: ‘start_iteration_’ was not declared in this scope 618 | current_iter_ = start_iteration_; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:627:17: error: ‘params_’ was not declared in this scope 627 | params_.test_result = test_result_; | ^~~~~~~ /usr/include/relacy/context.hpp:641:13: error: ‘debug_info’ is not a member of ‘rl’ 641 | RL_HIST_CTX(user_event) {"ITERATION END"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:641:55: error: ‘rl_info_c’ was not declared in this scope 641 | RL_HIST_CTX(user_event) {"ITERATION END"} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:647:9: error: ‘params_’ was not declared in this scope 647 | params_.test_result = test_result_success; | ^~~~~~~ /usr/include/relacy/context.hpp: In member function ‘void rl::context_impl::iteration(int)’: /usr/include/relacy/context.hpp:669:9: error: ‘disable_preemption_’ was not declared in this scope 669 | disable_preemption_ = 0; | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:672:9: error: ‘foreach’ was not declared in this scope 672 | foreach( | ^~~~~~~ /usr/include/relacy/context.hpp:672:17: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 672 | foreach( | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:673:13: error: ‘threads_’ was not declared in this scope; did you mean ‘threadi’? 673 | threads_, | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:677:13: error: ‘seq_cst_fence_order_’ was not declared in this scope 677 | seq_cst_fence_order_, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:678:14: error: ‘assign_zero’ was not declared in this scope 678 | &assign_zero); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:680:32: error: qualified-id in declaration before ‘(’ token 680 | base_t::iteration_begin(); | ^ /usr/include/relacy/context.hpp:682:14: error: ‘thread_id_t’ was not declared in this scope; did you mean ‘thread_info’? 682 | for (thread_id_t i = 0; i != thread_count; ++i) | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:682:33: error: ‘i’ was not declared in this scope 682 | for (thread_id_t i = 0; i != thread_count; ++i) | ^ /usr/include/relacy/context.hpp:687:9: error: ‘disable_alloc_’ was not declared in this scope 687 | disable_alloc_ += 1; | ^~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:688:9: error: ‘thread_id_t’ was not declared in this scope; did you mean ‘thread_info’? 688 | thread_id_t const th = sched_.iteration_begin(iter); | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:690:25: error: ‘th’ was not declared in this scope; did you mean ‘tm’? 690 | switch_to_fiber(th); | ^~ | tm /usr/include/relacy/context.hpp:692:25: error: ‘progress_probe_period’ was not declared in this scope 692 | if (0 == iter % progress_probe_period) | ^~~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘void rl::context_impl::switch_to_fiber(int)’: /usr/include/relacy/context.hpp:701:9: error: ‘fiber_t’ was not declared in this scope; did you mean ‘timer_t’? 701 | fiber_t& prev = threadx_ ? threadx_->fiber_ : main_fiber_; | ^~~~~~~ | timer_t /usr/include/relacy/context.hpp:701:18: error: ‘prev’ was not declared in this scope 701 | fiber_t& prev = threadx_ ? threadx_->fiber_ : main_fiber_; | ^~~~ /usr/include/relacy/context.hpp:701:25: error: ‘threadx_’ was not declared in this scope; did you mean ‘threadi’? 701 | fiber_t& prev = threadx_ ? threadx_->fiber_ : main_fiber_; | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:701:55: error: ‘main_fiber_’ was not declared in this scope 701 | fiber_t& prev = threadx_ ? threadx_->fiber_ : main_fiber_; | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:702:21: error: ‘threads_’ was not declared in this scope; did you mean ‘threadi’? 702 | threadx_ = &threads_[th]; | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:703:11: error: ‘::switch_to_fiber’ has not been declared 703 | ::switch_to_fiber(threadx_->fiber_, prev); | ^~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘void rl::context_impl::switch_to_main_fiber()’: /usr/include/relacy/context.hpp:708:9: error: ‘fiber_t’ was not declared in this scope; did you mean ‘timer_t’? 708 | fiber_t& prev = threadx_->fiber_; | ^~~~~~~ | timer_t /usr/include/relacy/context.hpp:708:18: error: ‘prev’ was not declared in this scope 708 | fiber_t& prev = threadx_->fiber_; | ^~~~ /usr/include/relacy/context.hpp:708:25: error: ‘threadx_’ was not declared in this scope; did you mean ‘threadi’? 708 | fiber_t& prev = threadx_->fiber_; | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:710:11: error: ‘::switch_to_fiber’ has not been declared 710 | ::switch_to_fiber(main_fiber_, prev); | ^~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:710:27: error: ‘main_fiber_’ was not declared in this scope 710 | ::switch_to_fiber(main_fiber_, prev); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘void rl::context_impl::output_progress(int)’: /usr/include/relacy/context.hpp:715:9: error: ‘iteration_t’ was not declared in this scope; did you mean ‘iteration’? 715 | iteration_t const total = sched_.iteration_count(); | ^~~~~~~~~~~ | iteration /usr/include/relacy/context.hpp:717:26: error: ‘progress_probe_period’ was not declared in this scope 717 | if (0 == iter % (progress_probe_period * 16)) | ^~~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:719:13: error: ‘disable_alloc_’ was not declared in this scope 719 | disable_alloc_ += 1; | ^~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:720:14: error: ‘params_’ was not declared in this scope 720 | *params_.progress_stream << iter * 100 / total << "% (" | ^~~~~~~ /usr/include/relacy/context.hpp:720:54: error: ‘total’ was not declared in this scope 720 | *params_.progress_stream << iter * 100 / total << "% (" | ^~~~~ /usr/include/relacy/context.hpp:721:56: error: ‘endl’ is not a member of ‘std’ 721 | << iter << "/" << total << ")" << std::endl; | ^~~~ /usr/include/relacy/context.hpp:31:1: note: ‘std::endl’ is defined in header ‘’; did you forget to ‘#include ’? 30 | #include "context_bound_scheduler.hpp" +++ |+#include 31 | /usr/include/relacy/context.hpp: In member function ‘void rl::context_impl::output_history()’: /usr/include/relacy/context.hpp:733:22: error: ‘params_’ was not declared in this scope 733 | if (false == params_.output_history) | ^~~~~~~ /usr/include/relacy/context.hpp:735:39: error: ‘test_result_str_’ was not declared in this scope; did you mean ‘test_result_str’? 735 | *params_.output_stream << test_result_str_ << std::endl; | ^~~~~~~~~~~~~~~~ | test_result_str /usr/include/relacy/context.hpp:735:64: error: ‘endl’ is not a member of ‘std’ 735 | *params_.output_stream << test_result_str_ << std::endl; | ^~~~ /usr/include/relacy/context.hpp:735:64: note: ‘std::endl’ is defined in header ‘’; did you forget to ‘#include ’? /usr/include/relacy/context.hpp:736:87: error: ‘endl’ is not a member of ‘std’ 736 | *params_.output_stream << "iteration: " << params_.stop_iteration << std::endl; | ^~~~ /usr/include/relacy/context.hpp:736:87: note: ‘std::endl’ is defined in header ‘’; did you forget to ‘#include ’? /usr/include/relacy/context.hpp:737:44: error: ‘endl’ is not a member of ‘std’ 737 | *params_.output_stream << std::endl; | ^~~~ /usr/include/relacy/context.hpp:737:44: note: ‘std::endl’ is defined in header ‘’; did you forget to ‘#include ’? /usr/include/relacy/context.hpp:739:9: error: ‘history_’ was not declared in this scope; did you mean ‘history_mgr’? 739 | history_.print_exec_history(params_.output_history); | ^~~~~~~~ | history_mgr /usr/include/relacy/context.hpp:739:37: error: ‘params_’ was not declared in this scope 739 | history_.print_exec_history(params_.output_history); | ^~~~~~~ /usr/include/relacy/context.hpp:750:31: error: request for member ‘iteration_end’ in ‘((rl::context_impl*)this)->rl::context_impl::atomic_alloc_->’, which is of non-class type ‘int’ 750 | && atomic_alloc_->iteration_end() == false) | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:752:65: error: ‘endl’ is not a member of ‘std’ 752 | *params_.output_stream << "leaked atomics:" << std::endl; | ^~~~ /usr/include/relacy/context.hpp:752:65: note: ‘std::endl’ is defined in header ‘’; did you forget to ‘#include ’? /usr/include/relacy/context.hpp:753:28: error: request for member ‘output_allocs’ in ‘((rl::context_impl*)this)->rl::context_impl::atomic_alloc_->’, which is of non-class type ‘int’ 753 | atomic_alloc_->output_allocs(*params_.output_stream); | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘void rl::context_impl::rl_global_fence()’: /usr/include/relacy/context.hpp:759:9: error: ‘timestamp_t’ was not declared in this scope 759 | timestamp_t max_acq_rel = 0; | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:760:14: error: ‘thread_id_t’ was not declared in this scope; did you mean ‘thread_info’? 760 | for (thread_id_t i = 0; i != thread_count; ++i) | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:760:33: error: ‘i’ was not declared in this scope 760 | for (thread_id_t i = 0; i != thread_count; ++i) | ^ /usr/include/relacy/context.hpp:760:38: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 760 | for (thread_id_t i = 0; i != thread_count; ++i) | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:762:17: error: ‘threads_’ was not declared in this scope; did you mean ‘threadi’? 762 | if (threads_[i].acq_rel_order_[i] > max_acq_rel) | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:762:49: error: ‘max_acq_rel’ was not declared in this scope; did you mean ‘mo_acq_rel’? 762 | if (threads_[i].acq_rel_order_[i] > max_acq_rel) | ^~~~~~~~~~~ | mo_acq_rel /usr/include/relacy/context.hpp:766:14: error: ‘thread_id_t’ was not declared in this scope; did you mean ‘thread_info’? 766 | for (thread_id_t i = 0; i != thread_count; ++i) | ^~~~~~~~~~~ | thread_info /usr/include/relacy/context.hpp:766:33: error: ‘i’ was not declared in this scope 766 | for (thread_id_t i = 0; i != thread_count; ++i) | ^ /usr/include/relacy/context.hpp:766:38: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 766 | for (thread_id_t i = 0; i != thread_count; ++i) | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:768:30: error: expected ‘;’ before ‘j’ 768 | for (thread_id_t j = 0; j != thread_count; ++j) | ^ /usr/include/relacy/context.hpp:768:37: error: ‘j’ was not declared in this scope 768 | for (thread_id_t j = 0; j != thread_count; ++j) | ^ /usr/include/relacy/context.hpp:770:17: error: ‘threads_’ was not declared in this scope; did you mean ‘threadi’? 770 | threads_[i].acq_rel_order_[j] = max_acq_rel; | ^~~~~~~~ | threadi /usr/include/relacy/context.hpp:770:49: error: ‘max_acq_rel’ was not declared in this scope; did you mean ‘mo_acq_rel’? 770 | threads_[i].acq_rel_order_[j] = max_acq_rel; | ^~~~~~~~~~~ | mo_acq_rel /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::atomic_thread_fence_seq_cst()’: /usr/include/relacy/context.hpp:793:47: error: ‘seq_cst_fence_order_’ was not declared in this scope 793 | threadi().atomic_thread_fence_seq_cst(seq_cst_fence_order_); | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In member function ‘virtual rl::generic_mutex_data* rl::context_impl::mutex_ctor(bool, bool, bool, bool)’: /usr/include/relacy/context.hpp:803:35: error: request for member ‘alloc’ in ‘((rl::context_impl*)this)->rl::context_impl::mutex_alloc_->’, which is of non-class type ‘int’ 803 | return new (mutex_alloc_->alloc()) generic_mutex_data_impl(is_rw, is_exclusive_recursive, is_shared_recursive, failing_try_lock); | ^~~~~ /usr/include/relacy/context.hpp:803:68: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 803 | return new (mutex_alloc_->alloc()) generic_mutex_data_impl(is_rw, is_exclusive_recursive, is_shared_recursive, failing_try_lock); | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:803:80: error: template argument 1 is invalid 803 | return new (mutex_alloc_->alloc()) generic_mutex_data_impl(is_rw, is_exclusive_recursive, is_shared_recursive, failing_try_lock); | ^ /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::mutex_dtor(rl::generic_mutex_data*)’: /usr/include/relacy/context.hpp:808:33: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 808 | generic_mutex_data_impl* mm = static_cast*>(m); | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:808:45: error: template argument 1 is invalid 808 | generic_mutex_data_impl* mm = static_cast*>(m); | ^ /usr/include/relacy/context.hpp:808:102: error: expected ‘>’ before ‘*’ token 808 | generic_mutex_data_impl* mm = static_cast*>(m); | ^ /usr/include/relacy/context.hpp:808:102: error: expected ‘(’ before ‘*’ token /usr/include/relacy/context.hpp:808:103: error: expected primary-expression before ‘>’ token 808 | generic_mutex_data_impl* mm = static_cast*>(m); | ^ /usr/include/relacy/context.hpp:808:107: error: expected ‘)’ before ‘;’ token 808 | generic_mutex_data_impl* mm = static_cast*>(m); | ^ /usr/include/relacy/context.hpp:810:23: error: request for member ‘free’ in ‘((rl::context_impl*)this)->rl::context_impl::mutex_alloc_->’, which is of non-class type ‘int’ 810 | mutex_alloc_->free(mm); | ^~~~ /usr/include/relacy/context.hpp: In member function ‘virtual rl::condvar_data* rl::context_impl::condvar_ctor(bool)’: /usr/include/relacy/context.hpp:815:37: error: request for member ‘alloc’ in ‘((rl::context_impl*)this)->rl::context_impl::condvar_alloc_->’, which is of non-class type ‘int’ 815 | return new (condvar_alloc_->alloc()) condvar_data_impl(allow_spurious_wakeups); | ^~~~~ /usr/include/relacy/context.hpp:815:64: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 815 | return new (condvar_alloc_->alloc()) condvar_data_impl(allow_spurious_wakeups); | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:815:76: error: template argument 1 is invalid 815 | return new (condvar_alloc_->alloc()) condvar_data_impl(allow_spurious_wakeups); | ^ /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::condvar_dtor(rl::condvar_data*)’: /usr/include/relacy/context.hpp:820:27: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 820 | condvar_data_impl* mm = static_cast*>(cv); | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:820:39: error: template argument 1 is invalid 820 | condvar_data_impl* mm = static_cast*>(cv); | ^ /usr/include/relacy/context.hpp:820:90: error: expected ‘>’ before ‘*’ token 820 | condvar_data_impl* mm = static_cast*>(cv); | ^ /usr/include/relacy/context.hpp:820:90: error: expected ‘(’ before ‘*’ token /usr/include/relacy/context.hpp:820:91: error: expected primary-expression before ‘>’ token 820 | condvar_data_impl* mm = static_cast*>(cv); | ^ /usr/include/relacy/context.hpp:820:96: error: expected ‘)’ before ‘;’ token 820 | condvar_data_impl* mm = static_cast*>(cv); | ^ /usr/include/relacy/context.hpp:822:25: error: request for member ‘free’ in ‘((rl::context_impl*)this)->rl::context_impl::condvar_alloc_->’, which is of non-class type ‘int’ 822 | condvar_alloc_->free(mm); | ^~~~ /usr/include/relacy/context.hpp: In member function ‘virtual rl::sema_data* rl::context_impl::sema_ctor(bool, unsigned int, unsigned int)’: /usr/include/relacy/context.hpp:827:34: error: request for member ‘alloc’ in ‘((rl::context_impl*)this)->rl::context_impl::sema_alloc_->’, which is of non-class type ‘int’ 827 | return new (sema_alloc_->alloc()) sema_data_impl(spurious_wakeups, initial_count, max_count); | ^~~~~ /usr/include/relacy/context.hpp:827:58: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 827 | return new (sema_alloc_->alloc()) sema_data_impl(spurious_wakeups, initial_count, max_count); | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:827:70: error: template argument 1 is invalid 827 | return new (sema_alloc_->alloc()) sema_data_impl(spurious_wakeups, initial_count, max_count); | ^ /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::sema_dtor(rl::sema_data*)’: /usr/include/relacy/context.hpp:832:24: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 832 | sema_data_impl* mm = static_cast*>(cv); | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:832:36: error: template argument 1 is invalid 832 | sema_data_impl* mm = static_cast*>(cv); | ^ /usr/include/relacy/context.hpp:832:84: error: expected ‘>’ before ‘*’ token 832 | sema_data_impl* mm = static_cast*>(cv); | ^ /usr/include/relacy/context.hpp:832:84: error: expected ‘(’ before ‘*’ token /usr/include/relacy/context.hpp:832:85: error: expected primary-expression before ‘>’ token 832 | sema_data_impl* mm = static_cast*>(cv); | ^ /usr/include/relacy/context.hpp:832:90: error: expected ‘)’ before ‘;’ token 832 | sema_data_impl* mm = static_cast*>(cv); | ^ /usr/include/relacy/context.hpp:834:22: error: request for member ‘free’ in ‘((rl::context_impl*)this)->rl::context_impl::sema_alloc_->’, which is of non-class type ‘int’ 834 | sema_alloc_->free(mm); | ^~~~ /usr/include/relacy/context.hpp: In member function ‘virtual rl::event_data* rl::context_impl::event_ctor(bool, bool)’: /usr/include/relacy/context.hpp:839:35: error: request for member ‘alloc’ in ‘((rl::context_impl*)this)->rl::context_impl::event_alloc_->’, which is of non-class type ‘int’ 839 | return new (event_alloc_->alloc()) event_data_impl(manual_reset, initial_state); | ^~~~~ /usr/include/relacy/context.hpp:839:60: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 839 | return new (event_alloc_->alloc()) event_data_impl(manual_reset, initial_state); | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:839:72: error: template argument 1 is invalid 839 | return new (event_alloc_->alloc()) event_data_impl(manual_reset, initial_state); | ^ /usr/include/relacy/context.hpp: In member function ‘virtual void rl::context_impl::event_dtor(rl::event_data*)’: /usr/include/relacy/context.hpp:844:25: error: ‘thread_count’ was not declared in this scope; did you mean ‘sched_count’? 844 | event_data_impl* mm = static_cast*>(cv); | ^~~~~~~~~~~~ | sched_count /usr/include/relacy/context.hpp:844:37: error: template argument 1 is invalid 844 | event_data_impl* mm = static_cast*>(cv); | ^ /usr/include/relacy/context.hpp:844:86: error: expected ‘>’ before ‘*’ token 844 | event_data_impl* mm = static_cast*>(cv); | ^ /usr/include/relacy/context.hpp:844:86: error: expected ‘(’ before ‘*’ token /usr/include/relacy/context.hpp:844:87: error: expected primary-expression before ‘>’ token 844 | event_data_impl* mm = static_cast*>(cv); | ^ /usr/include/relacy/context.hpp:844:92: error: expected ‘)’ before ‘;’ token 844 | event_data_impl* mm = static_cast*>(cv); | ^ /usr/include/relacy/context.hpp:846:23: error: request for member ‘free’ in ‘((rl::context_impl*)this)->rl::context_impl::event_alloc_->’, which is of non-class type ‘int’ 846 | event_alloc_->free(mm); | ^~~~ /usr/include/relacy/context.hpp: In function ‘rl::test_result_e rl::run_test(test_params&, std::ostream&, bool)’: /usr/include/relacy/context.hpp:903:9: error: ‘istringstream’ was not declared in this scope; did you mean ‘std::istringstream’? 903 | istringstream iss (params.initial_state); | ^~~~~~~~~~~~~ | std::istringstream In file included from /usr/include/c++/12/ios:38: /usr/include/c++/12/iosfwd:150:41: note: ‘std::istringstream’ declared here 150 | typedef basic_istringstream istringstream; | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:904:53: error: ‘iss’ was not declared in this scope; did you mean ‘oss’? 904 | res = context_t(params, sctx).simulate(oss, iss, second); | ^~~ | oss /usr/include/relacy/context.hpp: In function ‘bool rl::simulate(test_params&)’: /usr/include/relacy/context.hpp:949:12: error: ‘struct rl::test_params’ has no member named ‘test_name’; did you mean ‘test_params’? 949 | params.test_name = test_name; | ^~~~~~~~~ | test_params /usr/include/relacy/context.hpp:950:37: error: ‘struct rl::test_params’ has no member named ‘test_name’; did you mean ‘test_params’? 950 | *params.output_stream << params.test_name << std::endl; | ^~~~~~~~~ | test_params /usr/include/relacy/context.hpp:950:55: error: ‘endl’ is not a member of ‘std’ 950 | *params.output_stream << params.test_name << std::endl; | ^~~~ /usr/include/relacy/context.hpp:950:55: note: ‘std::endl’ is defined in header ‘’; did you forget to ‘#include ’? /usr/include/relacy/context.hpp:956:5: error: ‘ostringstream’ was not declared in this scope; did you mean ‘std::ostringstream’? 956 | ostringstream oss; | ^~~~~~~~~~~~~ | std::ostringstream /usr/include/c++/12/iosfwd:153:41: note: ‘std::ostringstream’ declared here 153 | typedef basic_ostringstream ostringstream; | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:960:89: error: ‘oss’ was not declared in this scope 960 | res = run_test >(params, oss, false); | ^~~ /usr/include/relacy/context.hpp:962:94: error: ‘oss’ was not declared in this scope 962 | res = run_test >(params, oss, false); | ^~~ /usr/include/relacy/context.hpp:964:96: error: ‘oss’ was not declared in this scope 964 | res = run_test >(params, oss, false); | ^~~ /usr/include/relacy/context.hpp:974:31: error: no match for ‘operator<<’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream’} and ‘const char [13]’) 974 | *params.output_stream << "iterations: " << params.stop_iteration << std::endl; | ~~~~~~~~~~~~~~~~~~~~~ ^~ ~~~~~~~~~~~~~~ | | | | | const char [13] | std::ostream {aka std::basic_ostream} /usr/include/relacy/history.hpp:76:22: note: candidate: ‘std::ostream& rl::operator<<(std::ostream&, int)’ (near match) 76 | inline std::ostream& operator << (std::ostream& ss, debug_info_param info) | ^~~~~~~~ /usr/include/relacy/history.hpp:76:22: note: conversion of argument 2 would be ill-formed: /usr/include/relacy/context.hpp:974:59: error: ‘struct rl::test_params’ has no member named ‘stop_iteration’ 974 | *params.output_stream << "iterations: " << params.stop_iteration << std::endl; | ^~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:974:82: error: ‘endl’ is not a member of ‘std’ 974 | *params.output_stream << "iterations: " << params.stop_iteration << std::endl; | ^~~~ /usr/include/relacy/context.hpp:974:82: note: ‘std::endl’ is defined in header ‘’; did you forget to ‘#include ’? /usr/include/relacy/context.hpp:975:31: error: no match for ‘operator<<’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream’} and ‘const char [13]’) 975 | *params.output_stream << "total time: " << t << std::endl; | ~~~~~~~~~~~~~~~~~~~~~ ^~ ~~~~~~~~~~~~~~ | | | | | const char [13] | std::ostream {aka std::basic_ostream} /usr/include/relacy/history.hpp:76:22: note: candidate: ‘std::ostream& rl::operator<<(std::ostream&, int)’ (near match) 76 | inline std::ostream& operator << (std::ostream& ss, debug_info_param info) | ^~~~~~~~ /usr/include/relacy/history.hpp:76:22: note: conversion of argument 2 would be ill-formed: /usr/include/relacy/context.hpp:975:62: error: ‘endl’ is not a member of ‘std’ 975 | *params.output_stream << "total time: " << t << std::endl; | ^~~~ /usr/include/relacy/context.hpp:975:62: note: ‘std::endl’ is defined in header ‘’; did you forget to ‘#include ’? /usr/include/relacy/context.hpp:976:31: error: no match for ‘operator<<’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream’} and ‘const char [13]’) 976 | *params.output_stream << "throughput: " << (uint64_t)params.stop_iteration * 1000 / t << std::endl; | ~~~~~~~~~~~~~~~~~~~~~ ^~ ~~~~~~~~~~~~~~ | | | | | const char [13] | std::ostream {aka std::basic_ostream} /usr/include/relacy/history.hpp:76:22: note: candidate: ‘std::ostream& rl::operator<<(std::ostream&, int)’ (near match) 76 | inline std::ostream& operator << (std::ostream& ss, debug_info_param info) | ^~~~~~~~ /usr/include/relacy/history.hpp:76:22: note: conversion of argument 2 would be ill-formed: /usr/include/relacy/context.hpp:976:69: error: ‘struct rl::test_params’ has no member named ‘stop_iteration’ 976 | *params.output_stream << "throughput: " << (uint64_t)params.stop_iteration * 1000 / t << std::endl; | ^~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:976:103: error: ‘endl’ is not a member of ‘std’ 976 | *params.output_stream << "throughput: " << (uint64_t)params.stop_iteration * 1000 / t << std::endl; | ^~~~ /usr/include/relacy/context.hpp:976:103: note: ‘std::endl’ is defined in header ‘’; did you forget to ‘#include ’? /usr/include/relacy/context.hpp:977:39: error: ‘endl’ is not a member of ‘std’ 977 | *params.output_stream << std::endl; | ^~~~ /usr/include/relacy/context.hpp:977:39: note: ‘std::endl’ is defined in header ‘’; did you forget to ‘#include ’? /usr/include/relacy/context.hpp:981:22: error: expected ‘;’ before ‘oss2’ 981 | ostringstream oss2; | ^~~~~ | ; /usr/include/relacy/context.hpp:982:16: error: ‘struct rl::test_params’ has no member named ‘initial_state’ 982 | params.initial_state = oss.str(); | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:982:32: error: ‘oss’ was not declared in this scope 982 | params.initial_state = oss.str(); | ^~~ /usr/include/relacy/context.hpp:985:16: error: ‘struct rl::test_params’ has no member named ‘final_state’ 985 | params.final_state = oss.str(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:986:9: error: ‘iteration_t’ was not declared in this scope 986 | iteration_t const stop_iter = params.stop_iteration; | ^~~~~~~~~~~ /usr/include/relacy/context.hpp:989:94: error: ‘oss2’ was not declared in this scope 989 | res2 = run_test >(params, oss2, true); | ^~~~ /usr/include/relacy/context.hpp:991:99: error: ‘oss2’ was not declared in this scope 991 | res2 = run_test >(params, oss2, true); | ^~~~ /usr/include/relacy/context.hpp:993:101: error: ‘oss2’ was not declared in this scope 993 | res2 = run_test >(params, oss2, true); | ^~~~ /usr/include/relacy/context.hpp:1003:26: error: ‘struct rl::test_params’ has no member named ‘stop_iteration’ 1003 | RL_VERIFY(params.stop_iteration == stop_iter); | ^~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:1003:44: error: ‘stop_iter’ was not declared in this scope 1003 | RL_VERIFY(params.stop_iteration == stop_iter); | ^~~~~~~~~ /usr/include/relacy/context.hpp: In function ‘void rl::dtor_arr_impl(void*)’: /usr/include/relacy/context.hpp:1051:35: error: ‘alignment’ was not declared in this scope 1051 | type* p = (type*)((char*)pp + alignment); | ^~~~~~~~~ /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:1061:34: error: ‘rl::debug_info_param’ has not been declared 1061 | type* new_arr_impl(size_t count, rl::debug_info_param info) | ^~ /usr/include/relacy/context.hpp: In function ‘type* rl::new_arr_impl(size_t, int)’: /usr/include/relacy/context.hpp:1063:15: error: ‘alignment’ was not declared in this scope 1063 | RL_VERIFY(alignment >= sizeof(size_t)); | ^~~~~~~~~ /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:1098:31: error: ‘debug_info_param’ has not been declared 1098 | void delete_arr_impl(type* p, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In function ‘void rl::delete_arr_impl(type*, int)’: /usr/include/relacy/context.hpp:1103:30: error: ‘alignment’ was not declared in this scope 1103 | char* begin = (char*)p - alignment; | ^~~~~~~~~ /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:1114:27: error: ‘debug_info_param’ has not been declared 1114 | void delete_impl(type* p, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In function ‘unsigned int rl::rand(unsigned int)’: /usr/include/relacy/context.hpp:1128:15: error: invalid use of incomplete type ‘class rl::context’ 1128 | return ctx().rand(limit, sched_type_user); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp:1128:30: error: ‘sched_type_user’ was not declared in this scope 1128 | return ctx().rand(limit, sched_type_user); | ^~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In function ‘unsigned int rl::thread_index()’: /usr/include/relacy/context.hpp:1133:15: error: invalid use of incomplete type ‘class rl::context’ 1133 | return ctx().threadx_->index_; | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:1139:5: error: ‘debug_info’ does not name a type 1139 | debug_info info; | ^~~~~~~~~~ /usr/include/relacy/context.hpp:1140:31: error: expected ‘)’ before ‘info’ 1140 | new_proxy(debug_info_param info) | ~ ^~~~~ | ) /usr/include/relacy/context.hpp: In member function ‘T* rl::new_proxy::operator%(T*)’: /usr/include/relacy/context.hpp:1153:13: error: ‘debug_info’ is not a member of ‘rl’ 1153 | RL_HIST(memory_alloc_event) {p, sz, false} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/context.hpp:1153:56: error: ‘rl_info_c’ was not declared in this scope 1153 | RL_HIST(memory_alloc_event) {p, sz, false} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:1162:34: error: expected ‘)’ before ‘info’ 1162 | delete_proxy(debug_info_param info) | ~ ^~~~~ | ) /usr/include/relacy/context.hpp:1170:35: error: ‘debug_info_param’ has not been declared 1170 | inline void* rl_malloc(size_t sz, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In function ‘void* rl::rl_malloc(size_t, int)’: /usr/include/relacy/context.hpp:1172:15: error: invalid use of incomplete type ‘class rl::context’ 1172 | return ctx().alloc(sz, false, info); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:1175:47: error: ‘debug_info_param’ has not been declared 1175 | inline void* rl_calloc(size_t sz, size_t cnt, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In function ‘void* rl::rl_calloc(size_t, size_t, int)’: /usr/include/relacy/context.hpp:1177:18: error: invalid use of incomplete type ‘class rl::context’ 1177 | void* p = ctx().alloc(sz * cnt, false, info); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:1182:42: error: ‘debug_info_param’ has not been declared 1182 | inline void* realloc(void* p, size_t sz, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In function ‘void* rl::realloc(void*, size_t, int)’: /usr/include/relacy/context.hpp:1186:12: error: invalid use of incomplete type ‘class rl::context’ 1186 | ctx().free(p, false, info); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp:1191:23: error: invalid use of incomplete type ‘class rl::context’ 1191 | void* pp = ctx().alloc(sz, false, info); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp:1193:12: error: invalid use of incomplete type ‘class rl::context’ 1193 | ctx().free(p, false, info); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:1198:30: error: ‘debug_info_param’ has not been declared 1198 | inline void rl_free(void* p, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In function ‘void rl::rl_free(void*, int)’: /usr/include/relacy/context.hpp:1200:8: error: invalid use of incomplete type ‘class rl::context’ 1200 | ctx().free(p, false, info); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp: In function ‘size_t rl::hash_ptr(const void*, size_t)’: /usr/include/relacy/context.hpp:1205:15: error: invalid use of incomplete type ‘class rl::context’ 1205 | return ctx().get_addr_hash(p) % size; | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:1208:13: error: variable or field ‘systemwide_fence’ declared void 1208 | inline void systemwide_fence(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:1208:30: error: ‘debug_info_param’ was not declared in this scope 1208 | inline void systemwide_fence(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp:1219:41: error: ‘rl::debug_info_param’ has not been declared 1219 | inline void* operator new (size_t size, rl::debug_info_param info) | ^~ /usr/include/relacy/context.hpp: In function ‘void* operator new(size_t, int)’: /usr/include/relacy/context.hpp:1221:19: error: invalid use of incomplete type ‘class rl::context’ 1221 | return rl::ctx().alloc(size, false, info); | ~~~~~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:1224:44: error: ‘rl::debug_info_param’ has not been declared 1224 | inline void* operator new [] (size_t size, rl::debug_info_param info) | ^~ /usr/include/relacy/context.hpp: In function ‘void* operator new [](size_t, int)’: /usr/include/relacy/context.hpp:1226:19: error: invalid use of incomplete type ‘class rl::context’ 1226 | return rl::ctx().alloc(size, false, info); | ~~~~~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:1229:39: error: ‘rl::debug_info_param’ has not been declared 1229 | inline void operator delete (void* p, rl::debug_info_param info) | ^~ /usr/include/relacy/context.hpp: In function ‘void operator delete(void*, int)’: /usr/include/relacy/context.hpp:1231:12: error: invalid use of incomplete type ‘class rl::context’ 1231 | rl::ctx().free(p, false, info); | ~~~~~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:1234:42: error: ‘rl::debug_info_param’ has not been declared 1234 | inline void operator delete [] (void* p, rl::debug_info_param info) | ^~ /usr/include/relacy/context.hpp: In function ‘void operator delete [](void*, int)’: /usr/include/relacy/context.hpp:1236:12: error: invalid use of incomplete type ‘class rl::context’ 1236 | rl::ctx().free(p, false, info); | ~~~~~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp: At global scope: /usr/include/relacy/context.hpp:1256:41: error: expected initializer before ‘RL_THROW_SPEC’ 1256 | inline void* operator new (size_t size) RL_THROW_SPEC(std::bad_alloc) | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp:1264:44: error: expected initializer before ‘RL_THROW_SPEC’ 1264 | inline void* operator new [] (size_t size) RL_THROW_SPEC(std::bad_alloc) | ^~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In function ‘void operator delete(void*)’: /usr/include/relacy/context.hpp:1275:16: error: invalid use of incomplete type ‘class rl::context’ 1275 | rl::ctx().free(p); | ~~~~~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context.hpp: In function ‘void operator delete [](void*)’: /usr/include/relacy/context.hpp:1283:16: error: invalid use of incomplete type ‘class rl::context’ 1283 | rl::ctx().free(p); | ~~~~~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ In file included from /usr/include/relacy/relacy.hpp:19: /usr/include/relacy/context_base_impl.hpp: At global scope: /usr/include/relacy/context_base_impl.hpp:35:41: error: invalid use of incomplete type ‘class rl::context’ 35 | inline void context::disable_preemption() | ^ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context_base_impl.hpp:40:40: error: invalid use of incomplete type ‘class rl::context’ 40 | inline void context::enable_preemption() | ^ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context_base_impl.hpp:45:31: error: invalid use of incomplete type ‘class rl::context’ 45 | inline int context::get_errno() | ^ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context_base_impl.hpp:51:41: error: invalid use of incomplete type ‘class rl::context’ 51 | inline void context::set_errno(int value) | ^ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context_base_impl.hpp:58:24: error: invalid use of incomplete type ‘class rl::context’ 58 | void context::exec_log(debug_info_param info, event_t const& ev) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/context_base_impl.hpp:58:24: error: ‘debug_info_param’ was not declared in this scope 58 | void context::exec_log(debug_info_param info, event_t const& ev) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/context_base_impl.hpp:58:55: error: expected primary-expression before ‘const’ 58 | void context::exec_log(debug_info_param info, event_t const& ev) | ^~~~~ In file included from /usr/include/relacy/relacy.hpp:20: /usr/include/relacy/backoff.hpp:24:35: error: ‘debug_info_param’ has not been declared 24 | inline void yield(unsigned count, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/backoff.hpp: In function ‘void rl::yield(unsigned int, int)’: /usr/include/relacy/backoff.hpp:26:8: error: invalid use of incomplete type ‘class rl::context’ 26 | ctx().yield(count, info); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/backoff.hpp: At global scope: /usr/include/relacy/backoff.hpp:39:16: error: ‘debug_info_param’ has not been declared 39 | void yield(debug_info_param info) | ^~~~~~~~~~~~~~~~ In file included from /usr/include/relacy/relacy.hpp:21: /usr/include/relacy/atomic_fence.hpp:40:1: error: ‘RL_INLINE’ does not name a type 40 | RL_INLINE | ^~~~~~~~~ /usr/include/relacy/atomic_fence.hpp:40:1: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | /usr/include/relacy/atomic_fence.hpp:72:1: error: ‘RL_INLINE’ does not name a type 72 | RL_INLINE | ^~~~~~~~~ /usr/include/relacy/atomic_fence.hpp:72:1: note: the macro ‘RL_INLINE’ had not yet been defined /usr/include/relacy/platform.hpp:241: note: it was later defined here 241 | # define RL_INLINE inline | In file included from /usr/include/relacy/atomic_events.hpp:18, from /usr/include/relacy/var.hpp:19, from /usr/include/relacy/relacy.hpp:23: /usr/include/relacy/rmw.hpp: In function ‘const char* rl::format(rmw_type_e)’: /usr/include/relacy/rmw.hpp:47:5: error: ‘RL_VERIFY’ was not declared in this scope 47 | RL_VERIFY(!"invalid rmw type"); | ^~~~~~~~~ /usr/include/relacy/rmw.hpp:47:5: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/rmw.hpp:48:16: error: ‘logic_error’ is not a member of ‘std’ 48 | throw std::logic_error("invalid rmw type"); | ^~~~~~~~~~~ /usr/include/relacy/atomic_events.hpp: At global scope: /usr/include/relacy/atomic_events.hpp:49:5: error: ‘debug_info’ does not name a type 49 | debug_info var_info_; | ^~~~~~~~~~ /usr/include/relacy/atomic_events.hpp: In member function ‘void rl::atomic_cas_event::output(std::ostream&) const’: /usr/include/relacy/atomic_events.hpp:61:11: error: no match for ‘operator<<’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream’} and ‘const char [2]’) 61 | s << "<" << std::hex << var_addr_ << std::dec << ">" | ~ ^~ ~~~ | | | | | const char [2] | std::ostream {aka std::basic_ostream} /usr/include/relacy/history.hpp:76:22: note: candidate: ‘std::ostream& rl::operator<<(std::ostream&, int)’ (near match) 76 | inline std::ostream& operator << (std::ostream& ss, debug_info_param info) | ^~~~~~~~ /usr/include/relacy/history.hpp:76:22: note: conversion of argument 2 would be ill-formed: /usr/include/relacy/atomic_events.hpp:61:26: error: ‘hex’ is not a member of ‘std’ 61 | s << "<" << std::hex << var_addr_ << std::dec << ">" | ^~~ /usr/include/relacy/atomic_events.hpp:61:51: error: ‘dec’ is not a member of ‘std’ 61 | s << "<" << std::hex << var_addr_ << std::dec << ">" | ^~~ /usr/include/relacy/atomic_events.hpp: In member function ‘void rl::atomic_load_event::output(std::ostream&) const’: /usr/include/relacy/atomic_events.hpp:88:11: error: no match for ‘operator<<’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream’} and ‘const char [2]’) 88 | s << "<" << std::hex << var_addr_ << std::dec << ">" | ~ ^~ ~~~ | | | | | const char [2] | std::ostream {aka std::basic_ostream} /usr/include/relacy/history.hpp:76:22: note: candidate: ‘std::ostream& rl::operator<<(std::ostream&, int)’ (near match) 76 | inline std::ostream& operator << (std::ostream& ss, debug_info_param info) | ^~~~~~~~ /usr/include/relacy/history.hpp:76:22: note: conversion of argument 2 would be ill-formed: /usr/include/relacy/atomic_events.hpp:88:26: error: ‘hex’ is not a member of ‘std’ 88 | s << "<" << std::hex << var_addr_ << std::dec << ">" | ^~~ /usr/include/relacy/atomic_events.hpp:88:51: error: ‘dec’ is not a member of ‘std’ 88 | s << "<" << std::hex << var_addr_ << std::dec << ">" | ^~~ /usr/include/relacy/atomic_events.hpp: In member function ‘void rl::atomic_store_event::output(std::ostream&) const’: /usr/include/relacy/atomic_events.hpp:110:11: error: no match for ‘operator<<’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream’} and ‘const char [2]’) 110 | s << "<" << std::hex << var_addr_ << std::dec << ">" | ~ ^~ ~~~ | | | | | const char [2] | std::ostream {aka std::basic_ostream} /usr/include/relacy/history.hpp:76:22: note: candidate: ‘std::ostream& rl::operator<<(std::ostream&, int)’ (near match) 76 | inline std::ostream& operator << (std::ostream& ss, debug_info_param info) | ^~~~~~~~ /usr/include/relacy/history.hpp:76:22: note: conversion of argument 2 would be ill-formed: /usr/include/relacy/atomic_events.hpp:110:26: error: ‘hex’ is not a member of ‘std’ 110 | s << "<" << std::hex << var_addr_ << std::dec << ">" | ^~~ /usr/include/relacy/atomic_events.hpp:110:51: error: ‘dec’ is not a member of ‘std’ 110 | s << "<" << std::hex << var_addr_ << std::dec << ">" | ^~~ /usr/include/relacy/atomic_events.hpp: At global scope: /usr/include/relacy/atomic_events.hpp:125:5: error: ‘debug_info’ does not name a type 125 | debug_info var_info_; | ^~~~~~~~~~ /usr/include/relacy/atomic_events.hpp: In member function ‘void rl::atomic_rmw_event::output(std::ostream&) const’: /usr/include/relacy/atomic_events.hpp:135:11: error: no match for ‘operator<<’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream’} and ‘const char [2]’) 135 | s << "<" << std::hex << var_addr_ << std::dec << ">" | ~ ^~ ~~~ | | | | | const char [2] | std::ostream {aka std::basic_ostream} /usr/include/relacy/history.hpp:76:22: note: candidate: ‘std::ostream& rl::operator<<(std::ostream&, int)’ (near match) 76 | inline std::ostream& operator << (std::ostream& ss, debug_info_param info) | ^~~~~~~~ /usr/include/relacy/history.hpp:76:22: note: conversion of argument 2 would be ill-formed: /usr/include/relacy/atomic_events.hpp:135:26: error: ‘hex’ is not a member of ‘std’ 135 | s << "<" << std::hex << var_addr_ << std::dec << ">" | ^~~ /usr/include/relacy/atomic_events.hpp:135:51: error: ‘dec’ is not a member of ‘std’ 135 | s << "<" << std::hex << var_addr_ << std::dec << ">" | ^~~ /usr/include/relacy/var.hpp: At global scope: /usr/include/relacy/var.hpp:34:38: error: ‘debug_info_param’ has not been declared 34 | var_proxy_const(var const& v, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/var.hpp:57:5: error: ‘debug_info’ does not name a type 57 | debug_info info_; | ^~~~~~~~~~ /usr/include/relacy/var.hpp: In constructor ‘rl::var_proxy_const::var_proxy_const(const rl::var&, int)’: /usr/include/relacy/var.hpp:36:11: error: class ‘rl::var_proxy_const’ does not have any field named ‘info_’ 36 | , info_(info) | ^~~~~ /usr/include/relacy/var.hpp: In member function ‘T rl::var_proxy_const::load() const’: /usr/include/relacy/var.hpp:42:26: error: ‘info_’ was not declared in this scope 42 | return var_.load(info_); | ^~~~~ /usr/include/relacy/var.hpp: At global scope: /usr/include/relacy/var.hpp:72:26: error: ‘debug_info_param’ has not been declared 72 | var_proxy(var& v, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/var.hpp:186:5: error: ‘debug_info’ does not name a type 186 | debug_info var_info_; | ^~~~~~~~~~ /usr/include/relacy/var.hpp: In member function ‘void rl::var_event::output(std::ostream&) const’: /usr/include/relacy/var.hpp:205:11: error: no match for ‘operator<<’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream’} and ‘const char [2]’) 205 | s << "<" << std::hex << var_addr_ << std::dec << "> " | ~ ^~ ~~~ | | | | | const char [2] | std::ostream {aka std::basic_ostream} /usr/include/relacy/history.hpp:76:22: note: candidate: ‘std::ostream& rl::operator<<(std::ostream&, int)’ (near match) 76 | inline std::ostream& operator << (std::ostream& ss, debug_info_param info) | ^~~~~~~~ /usr/include/relacy/history.hpp:76:22: note: conversion of argument 2 would be ill-formed: /usr/include/relacy/var.hpp:205:26: error: ‘hex’ is not a member of ‘std’ 205 | s << "<" << std::hex << var_addr_ << std::dec << "> " | ^~~ /usr/include/relacy/var.hpp:205:51: error: ‘dec’ is not a member of ‘std’ 205 | s << "<" << std::hex << var_addr_ << std::dec << "> " | ^~~ /usr/include/relacy/var.hpp: At global scope: /usr/include/relacy/var.hpp:240:37: error: ‘debug_info_param’ has not been declared 240 | var_proxy_const operator () (debug_info_param info) const | ^~~~~~~~~~~~~~~~ /usr/include/relacy/var.hpp:245:31: error: ‘debug_info_param’ has not been declared 245 | var_proxy operator () (debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/var.hpp:269:12: error: ‘debug_info_param’ has not been declared 269 | T load(debug_info_param info) const | ^~~~~~~~~~~~~~~~ /usr/include/relacy/var.hpp:300:21: error: ‘debug_info_param’ has not been declared 300 | void store(T v, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/var.hpp: In copy constructor ‘rl::var::var(const rl::var&)’: /usr/include/relacy/var.hpp:231:21: error: ‘$’ was not declared in this scope 231 | init(r.load($)); | ^ /usr/include/relacy/var.hpp:231:21: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/relacy/var.hpp: In destructor ‘rl::var::~var()’: /usr/include/relacy/var.hpp:236:21: error: ‘$’ was not declared in this scope 236 | sign_.check($); | ^ /usr/include/relacy/var.hpp:236:21: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/relacy/var.hpp: In member function ‘T rl::var::load(int) const’: /usr/include/relacy/var.hpp:276:13: error: ‘debug_info’ is not a member of ‘rl’ 276 | RL_HIST(var_event) {RL_INFO, this, T(), true} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/var.hpp:276:36: error: ‘RL_INFO’ was not declared in this scope 276 | RL_HIST(var_event) {RL_INFO, this, T(), true} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/var.hpp:276:36: note: the macro ‘RL_INFO’ had not yet been defined /usr/include/relacy/base.hpp:117: note: it was later defined here 117 | #define RL_INFO ::rl::debug_info(__FUNCTION__, __FILE__, __LINE__) | /usr/include/relacy/var.hpp:276:62: error: ‘rl_info_c’ was not declared in this scope 276 | RL_HIST(var_event) {RL_INFO, this, T(), true} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/var.hpp:284:17: error: ‘debug_info’ is not a member of ‘rl’ 284 | RL_HIST(var_event) {RL_INFO, this, T(), true} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/var.hpp:284:40: error: ‘RL_INFO’ was not declared in this scope 284 | RL_HIST(var_event) {RL_INFO, this, T(), true} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/var.hpp:284:40: note: the macro ‘RL_INFO’ had not yet been defined /usr/include/relacy/base.hpp:117: note: it was later defined here 117 | #define RL_INFO ::rl::debug_info(__FUNCTION__, __FILE__, __LINE__) | /usr/include/relacy/var.hpp:284:66: error: ‘rl_info_c’ was not declared in this scope 284 | RL_HIST(var_event) {RL_INFO, this, T(), true} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/var.hpp:290:13: error: ‘debug_info’ is not a member of ‘rl’ 290 | RL_HIST(var_event) {RL_INFO, this, v, true} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/var.hpp:290:36: error: ‘RL_INFO’ was not declared in this scope 290 | RL_HIST(var_event) {RL_INFO, this, v, true} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/var.hpp:290:36: note: the macro ‘RL_INFO’ had not yet been defined /usr/include/relacy/base.hpp:117: note: it was later defined here 117 | #define RL_INFO ::rl::debug_info(__FUNCTION__, __FILE__, __LINE__) | /usr/include/relacy/var.hpp:290:60: error: ‘rl_info_c’ was not declared in this scope 290 | RL_HIST(var_event) {RL_INFO, this, v, true} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/var.hpp: In member function ‘void rl::var::store(T, int)’: /usr/include/relacy/var.hpp:310:17: error: ‘debug_info’ is not a member of ‘rl’ 310 | RL_HIST(var_event) {RL_INFO, this, T(), false} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/var.hpp:310:40: error: ‘RL_INFO’ was not declared in this scope 310 | RL_HIST(var_event) {RL_INFO, this, T(), false} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/var.hpp:310:40: note: the macro ‘RL_INFO’ had not yet been defined /usr/include/relacy/base.hpp:117: note: it was later defined here 117 | #define RL_INFO ::rl::debug_info(__FUNCTION__, __FILE__, __LINE__) | /usr/include/relacy/var.hpp:310:67: error: ‘rl_info_c’ was not declared in this scope 310 | RL_HIST(var_event) {RL_INFO, this, T(), false} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/var.hpp:322:9: error: ‘debug_info’ is not a member of ‘rl’ 322 | RL_HIST(var_event) {RL_INFO, this, v, false} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/var.hpp:322:32: error: ‘RL_INFO’ was not declared in this scope 322 | RL_HIST(var_event) {RL_INFO, this, v, false} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/var.hpp:322:32: note: the macro ‘RL_INFO’ had not yet been defined /usr/include/relacy/base.hpp:117: note: it was later defined here 117 | #define RL_INFO ::rl::debug_info(__FUNCTION__, __FILE__, __LINE__) | /usr/include/relacy/var.hpp:322:57: error: ‘rl_info_c’ was not declared in this scope 322 | RL_HIST(var_event) {RL_INFO, this, v, false} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/var.hpp: At global scope: /usr/include/relacy/var.hpp:331:10: error: ‘thread_id_t’ has not been declared 331 | template | ^~~~~~~~~~~ In file included from /usr/include/relacy/relacy.hpp:24: /usr/include/relacy/thread_local.hpp:25:36: error: expected template-name before ‘<’ token 25 | class generic_thread_local : nocopy<> | ^ /usr/include/relacy/thread_local.hpp:25:36: error: expected ‘{’ before ‘<’ token /usr/include/relacy/thread_local.hpp:25:36: error: expected unqualified-id before ‘<’ token /usr/include/relacy/thread_local.hpp:78:50: error: ‘debug_info_param’ has not been declared 78 | thread_local_proxy(thread_local_var& var, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/thread_local.hpp:101:5: error: ‘debug_info’ does not name a type 101 | debug_info info_; | ^~~~~~~~~~ /usr/include/relacy/thread_local.hpp: In constructor ‘rl::thread_local_proxy::thread_local_proxy(rl::thread_local_var&, int)’: /usr/include/relacy/thread_local.hpp:80:11: error: class ‘rl::thread_local_proxy’ does not have any field named ‘info_’ 80 | , info_(info) | ^~~~~ /usr/include/relacy/thread_local.hpp: In member function ‘rl::thread_local_proxy::operator T() const’: /usr/include/relacy/thread_local.hpp:85:25: error: ‘info_’ was not declared in this scope 85 | return var_.get(info_); | ^~~~~ /usr/include/relacy/thread_local.hpp: In member function ‘T rl::thread_local_proxy::operator->() const’: /usr/include/relacy/thread_local.hpp:90:25: error: ‘info_’ was not declared in this scope 90 | return var_.get(info_); | ^~~~~ /usr/include/relacy/thread_local.hpp: In member function ‘rl::thread_local_proxy rl::thread_local_proxy::operator=(T)’: /usr/include/relacy/thread_local.hpp:95:25: error: ‘info_’ was not declared in this scope 95 | var_.set(value, info_); | ^~~~~ /usr/include/relacy/thread_local.hpp: At global scope: /usr/include/relacy/thread_local.hpp:107:26: error: invalid use of incomplete type ‘class rl::generic_thread_local’ 107 | class thread_local_var : generic_thread_local | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/thread_local.hpp:25:7: note: forward declaration of ‘class rl::generic_thread_local’ 25 | class generic_thread_local : nocopy<> | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/thread_local.hpp:123:40: error: ‘debug_info_param’ has not been declared 123 | thread_local_proxy operator () (debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/thread_local.hpp:128:23: error: ‘debug_info_param’ has not been declared 128 | void set(T value, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/thread_local.hpp:138:11: error: ‘debug_info_param’ has not been declared 138 | T get(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/thread_local.hpp: In destructor ‘rl::thread_local_var::~thread_local_var()’: /usr/include/relacy/thread_local.hpp:119:35: error: incomplete type ‘rl::generic_thread_local’ used in nested name specifier 119 | generic_thread_local::deinit($); | ^~~~~~ /usr/include/relacy/thread_local.hpp:119:42: error: ‘$’ was not declared in this scope 119 | generic_thread_local::deinit($); | ^ /usr/include/relacy/thread_local.hpp:119:42: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/relacy/thread_local.hpp: In member function ‘void rl::thread_local_var::set(T, int)’: /usr/include/relacy/thread_local.hpp:133:35: error: incomplete type ‘rl::generic_thread_local’ used in nested name specifier 133 | generic_thread_local::init(0, info); | ^~~~ /usr/include/relacy/thread_local.hpp:135:31: error: incomplete type ‘rl::generic_thread_local’ used in nested name specifier 135 | generic_thread_local::set((intptr_t)value, info); | ^~~ /usr/include/relacy/thread_local.hpp: In member function ‘T rl::thread_local_var::get(int)’: /usr/include/relacy/thread_local.hpp:143:35: error: incomplete type ‘rl::generic_thread_local’ used in nested name specifier 143 | generic_thread_local::init(0, info); | ^~~~ /usr/include/relacy/thread_local.hpp:145:41: error: incomplete type ‘rl::generic_thread_local’ used in nested name specifier 145 | return (T)generic_thread_local::get(info); | ^~~ /usr/include/relacy/thread_local.hpp: At global scope: /usr/include/relacy/thread_local.hpp:153:34: error: ‘debug_info_param’ was not declared in this scope 153 | inline unsigned long rl_TlsAlloc(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/thread_local.hpp:166:44: error: ‘debug_info_param’ has not been declared 166 | inline void rl_TlsFree(unsigned long slot, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/thread_local.hpp:177:49: error: ‘debug_info_param’ has not been declared 177 | inline void* rl_TlsGetValue(unsigned long slot, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/thread_local.hpp:182:60: error: ‘debug_info_param’ has not been declared 182 | inline int rl_TlsSetValue(unsigned long slot, void* value, debug_info_param info) | ^~~~~~~~~~~~~~~~ In file included from /usr/include/relacy/relacy.hpp:26: /usr/include/relacy/dyn_thread.hpp:25:26: error: expected template-name before ‘<’ token 25 | class dyn_thread : nocopy<> | ^ /usr/include/relacy/dyn_thread.hpp:25:26: error: expected ‘{’ before ‘<’ token /usr/include/relacy/dyn_thread.hpp:25:26: error: expected unqualified-id before ‘<’ token In file included from /usr/include/relacy/relacy.hpp:28: /usr/include/relacy/stdlib/mutex.hpp:31:35: error: expected template-name before ‘<’ token 31 | struct generic_mutex_data : nocopy<> | ^ /usr/include/relacy/stdlib/mutex.hpp:31:35: error: expected ‘{’ before ‘<’ token /usr/include/relacy/stdlib/mutex.hpp:31:35: error: expected unqualified-id before ‘<’ token /usr/include/relacy/stdlib/mutex.hpp:47:10: error: ‘thread_id_t’ has not been declared 47 | template | ^~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:513:105: error: ‘debug_info_param’ has not been declared 513 | void init(bool is_rw, bool is_exclusive_recursive, bool is_shared_recursive, bool failing_try_lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:521:17: error: ‘debug_info_param’ has not been declared 521 | void deinit(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:529:15: error: ‘debug_info_param’ has not been declared 529 | void lock(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:534:31: error: ‘debug_info_param’ has not been declared 534 | bool lock_exclusive_timed(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:539:17: error: ‘debug_info_param’ has not been declared 539 | void unlock(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:544:25: error: ‘debug_info_param’ has not been declared 544 | void lock_exclusive(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:549:29: error: ‘debug_info_param’ has not been declared 549 | bool try_lock_exclusive(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:554:27: error: ‘debug_info_param’ has not been declared 554 | void unlock_exclusive(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:559:22: error: ‘debug_info_param’ has not been declared 559 | void lock_shared(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:564:26: error: ‘debug_info_param’ has not been declared 564 | bool try_lock_shared(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:569:24: error: ‘debug_info_param’ has not been declared 569 | void unlock_shared(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:574:37: error: ‘debug_info_param’ has not been declared 574 | void unlock_exclusive_or_shared(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:583:31: error: ‘debug_info_param’ has not been declared 583 | generic_mutex_data* check(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:590:67: error: ‘debug_info_param’ has not been declared 590 | virtual sema_wakeup_reason wait(bool try_wait, bool is_timed, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:609:25: error: ‘debug_info_param’ has not been declared 609 | virtual bool signal(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:615:30: error: ‘debug_info_param’ has not been declared 615 | virtual bool is_signaled(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:620:33: error: ‘debug_info_param’ has not been declared 620 | virtual void memory_acquire(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:625:32: error: ‘debug_info_param’ has not been declared 625 | virtual void* prepare_wait(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:635:53: error: expected template-name before ‘<’ token 635 | class std_generic_mutex : generic_mutex, nocopy<> | ^ /usr/include/relacy/stdlib/mutex.hpp:635:53: error: expected ‘{’ before ‘<’ token In file included from /usr/include/relacy/relacy.hpp:29: /usr/include/relacy/stdlib/condition_variable.hpp:27:23: error: ‘debug_info_param’ has not been declared 27 | virtual void lock(debug_info_param info) const = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:28:25: error: ‘debug_info_param’ has not been declared 28 | virtual void unlock(debug_info_param info) const = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:44:23: error: ‘debug_info_param’ has not been declared 44 | virtual void lock(debug_info_param info) const | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:49:25: error: ‘debug_info_param’ has not been declared 49 | virtual void unlock(debug_info_param info) const | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:86:29: error: ‘debug_info_param’ has not been declared 86 | virtual void notify_one(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:87:29: error: ‘debug_info_param’ has not been declared 87 | virtual void notify_all(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:88:79: error: ‘debug_info_param’ has not been declared 88 | virtual sema_wakeup_reason wait(mutex_wrapper const& lock, bool is_timed, debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:89:91: error: ‘debug_info_param’ has not been declared 89 | virtual bool wait(mutex_wrapper const& lock, pred_wrapper const& pred, bool is_timed, debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:93:10: error: ‘thread_id_t’ has not been declared 93 | template | ^~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:244:44: error: ‘debug_info_param’ has not been declared 244 | void init(bool allow_spurious_wakeups, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:252:17: error: ‘debug_info_param’ has not been declared 252 | void deinit(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:260:21: error: ‘debug_info_param’ has not been declared 260 | void notify_one(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:266:21: error: ‘debug_info_param’ has not been declared 266 | void notify_all(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:273:58: error: ‘debug_info_param’ has not been declared 273 | sema_wakeup_reason wait(lock_t& lock, bool is_timed, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:281:83: error: ‘debug_info_param’ has not been declared 281 | bool wait(mutex_wrapper const& lock, pred_wrapper const& pred, bool is_timed, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:291:16: error: ‘debug_info_param’ has not been declared 291 | void check(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:314:21: error: ‘debug_info_param’ has not been declared 314 | void notify_one(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:319:21: error: ‘debug_info_param’ has not been declared 319 | void notify_all(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:325:29: error: ‘debug_info_param’ has not been declared 325 | void wait(lock_t& lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:331:42: error: ‘debug_info_param’ has not been declared 331 | void wait(lock_t& lock, pred_t pred, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:337:54: error: ‘debug_info_param’ has not been declared 337 | bool wait_until(lock_t& lock, abs_time_t const&, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:343:67: error: ‘debug_info_param’ has not been declared 343 | bool wait_until(lock_t& lock, abs_time_t const&, pred_t pred, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:349:52: error: ‘debug_info_param’ has not been declared 349 | bool wait_for(lock_t& lock, rel_time_t const&, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:356:65: error: ‘debug_info_param’ has not been declared 356 | bool wait_for(lock_t& lock, rel_time_t const&, pred_t pred, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp: In constructor ‘rl::condition_variable_std::condition_variable_std()’: /usr/include/relacy/stdlib/condition_variable.hpp:306:36: error: ‘$’ was not declared in this scope 306 | condvar::init(true, $); | ^ /usr/include/relacy/stdlib/condition_variable.hpp:306:36: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/relacy/stdlib/condition_variable.hpp: In destructor ‘rl::condition_variable_std::~condition_variable_std()’: /usr/include/relacy/stdlib/condition_variable.hpp:311:32: error: ‘$’ was not declared in this scope 311 | condvar::deinit($); | ^ /usr/include/relacy/stdlib/condition_variable.hpp:311:32: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | In file included from /usr/include/relacy/relacy.hpp:31: /usr/include/relacy/stdlib/event.hpp: At global scope: /usr/include/relacy/stdlib/event.hpp:29:22: error: ‘debug_info_param’ has not been declared 29 | virtual void set(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:30:24: error: ‘debug_info_param’ has not been declared 30 | virtual void reset(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:31:24: error: ‘debug_info_param’ has not been declared 31 | virtual void pulse(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:32:67: error: ‘debug_info_param’ has not been declared 32 | virtual sema_wakeup_reason wait(bool try_wait, bool is_timed, debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:33:30: error: ‘debug_info_param’ has not been declared 33 | virtual bool is_signaled(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:34:33: error: ‘debug_info_param’ has not been declared 34 | virtual void memory_acquire(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:35:32: error: ‘debug_info_param’ has not been declared 35 | virtual void* prepare_wait(debug_info_param info) = 0; | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:42:10: error: ‘thread_id_t’ has not been declared 42 | template | ^~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:310:54: error: ‘debug_info_param’ has not been declared 310 | void init(bool manual_reset, bool initial_state, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:318:17: error: ‘debug_info_param’ has not been declared 318 | void deinit(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:326:14: error: ‘debug_info_param’ has not been declared 326 | void set(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:332:16: error: ‘debug_info_param’ has not been declared 332 | void reset(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:338:16: error: ‘debug_info_param’ has not been declared 338 | void pulse(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:344:67: error: ‘debug_info_param’ has not been declared 344 | virtual sema_wakeup_reason wait(bool try_wait, bool is_timed, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:350:25: error: ‘debug_info_param’ has not been declared 350 | virtual bool signal(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:360:23: error: ‘debug_info_param’ has not been declared 360 | event_data* check(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:367:30: error: ‘debug_info_param’ has not been declared 367 | virtual bool is_signaled(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:372:33: error: ‘debug_info_param’ has not been declared 372 | virtual void memory_acquire(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp:377:32: error: ‘debug_info_param’ has not been declared 377 | virtual void* prepare_wait(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/event.hpp: In member function ‘void rl::generic_event::init(bool, bool, int)’: /usr/include/relacy/stdlib/event.hpp:313:9: error: invalid use of incomplete type ‘class rl::context’ 313 | RL_ASSERT_IMPL(0 == impl_, test_result_double_initialization_of_event, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/event.hpp:315:17: error: invalid use of incomplete type ‘class rl::context’ 315 | impl_ = c.event_ctor(manual_reset, initial_state); | ^ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/event.hpp: In member function ‘virtual void rl::generic_event::deinit(int)’: /usr/include/relacy/stdlib/event.hpp:322:9: error: invalid use of incomplete type ‘class rl::context’ 322 | c.event_dtor(impl_); | ^ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/event.hpp: In member function ‘rl::event_data* rl::generic_event::check(int)’: /usr/include/relacy/stdlib/event.hpp:362:9: error: invalid use of incomplete type ‘class rl::context’ 362 | RL_ASSERT_IMPL(impl_, test_result_usage_of_non_initialized_event, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ In file included from /usr/include/relacy/relacy.hpp:33: /usr/include/relacy/stdlib/windows.hpp: At global scope: /usr/include/relacy/stdlib/windows.hpp:35:30: error: ‘debug_info_param’ was not declared in this scope 35 | inline int rl_SwitchToThread(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:41:50: error: ‘debug_info_param’ has not been declared 41 | inline void rl_Sleep(unsigned long milliseconds, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:48:100: error: ‘debug_info_param’ has not been declared 48 | inline unsigned long rl_WaitForSingleObjectEx(rl_HANDLE obj, unsigned long timeout, int alertable, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp: In function ‘long unsigned int rl::rl_WaitForSingleObjectEx(rl_HANDLE, long unsigned int, int, int)’: /usr/include/relacy/stdlib/windows.hpp:52:5: error: ‘RL_VERIFY’ was not declared in this scope 52 | RL_VERIFY(false == alertable && "Alertable wait is not supported in WaitForSingleObject() yet"); | ^~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:52:5: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/stdlib/windows.hpp: At global scope: /usr/include/relacy/stdlib/windows.hpp:67:83: error: ‘debug_info_param’ has not been declared 67 | inline unsigned long rl_WaitForSingleObject(rl_HANDLE obj, unsigned long timeout, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:72:143: error: ‘debug_info_param’ has not been declared 72 | inline unsigned long rl_WaitForMultipleObjectsEx(unsigned long count, rl_HANDLE* objects, int wait_all, unsigned long timeout, int alertable, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp: In function ‘long unsigned int rl::rl_WaitForMultipleObjectsEx(long unsigned int, win_object**, int, long unsigned int, int, int)’: /usr/include/relacy/stdlib/windows.hpp:76:5: error: ‘RL_VERIFY’ was not declared in this scope 76 | RL_VERIFY(false == alertable && "Alertable wait is not supported in WaitForMultipleObjects() yet"); | ^~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:76:5: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/stdlib/windows.hpp: At global scope: /usr/include/relacy/stdlib/windows.hpp:91:126: error: ‘debug_info_param’ has not been declared 91 | inline unsigned long rl_WaitForMultipleObjects(unsigned long count, rl_HANDLE* objects, int wait_all, unsigned long timeout, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:100:45: error: ‘debug_info_param’ has not been declared 100 | debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp: In function ‘long unsigned int rl::rl_SignalObjectAndWait(rl_HANDLE, rl_HANDLE, long unsigned int, int, int)’: /usr/include/relacy/stdlib/windows.hpp:105:29: error: variable ‘rl::preemption_disabler pd’ has initializer but incomplete type 105 | preemption_disabler pd (ctx()); | ^~~ /usr/include/relacy/stdlib/windows.hpp: At global scope: /usr/include/relacy/stdlib/windows.hpp:113:115: error: ‘debug_info_param’ has not been declared 113 | inline rl_HANDLE rl_CreateSemaphore(void* /*security*/, long initial_count, long max_count, void const* /*name*/, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp: In function ‘rl::win_object* rl::rl_CreateSemaphore(void*, long int, long int, const void*, int)’: /usr/include/relacy/stdlib/windows.hpp:115:20: error: invalid use of incomplete type ‘class rl::context’ 115 | void* mem = ctx().alloc(sizeof(semaphore), false, info); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/windows.hpp: At global scope: /usr/include/relacy/stdlib/windows.hpp:121:40: error: ‘debug_info_param’ has not been declared 121 | inline int rl_CloseHandle(rl_HANDLE h, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp: In function ‘int rl::rl_CloseHandle(rl_HANDLE, int)’: /usr/include/relacy/stdlib/windows.hpp:125:9: error: invalid use of incomplete type ‘class rl::context’ 125 | (ctx().free)(h, false, info); //!!! rename free because of the define | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/windows.hpp: At global scope: /usr/include/relacy/stdlib/windows.hpp:129:78: error: ‘debug_info_param’ has not been declared 129 | inline int rl_ReleaseSemaphore(rl_HANDLE sema, long count, long* prev_count, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:141:112: error: ‘debug_info_param’ has not been declared 141 | inline rl_HANDLE rl_CreateEvent(void* /*security*/, int manual_reset, int initial_state, void const* /*name*/, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp: In function ‘rl::win_object* rl::rl_CreateEvent(void*, int, int, const void*, int)’: /usr/include/relacy/stdlib/windows.hpp:143:20: error: invalid use of incomplete type ‘class rl::context’ 143 | void* mem = ctx().alloc(sizeof(generic_event), false, info); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/windows.hpp: At global scope: /usr/include/relacy/stdlib/windows.hpp:149:38: error: ‘debug_info_param’ has not been declared 149 | inline int rl_SetEvent(rl_HANDLE ev, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:155:40: error: ‘debug_info_param’ has not been declared 155 | inline int rl_ResetEvent(rl_HANDLE ev, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:161:40: error: ‘debug_info_param’ has not been declared 161 | inline int rl_PulseEvent(rl_HANDLE ev, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:172:66: error: ‘debug_info_param’ has not been declared 172 | inline void rl_InitializeCriticalSection(rl_CRITICAL_SECTION* m, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:177:103: error: ‘debug_info_param’ has not been declared 177 | inline int rl_InitializeCriticalSectionAndSpinCount(rl_CRITICAL_SECTION* m, unsigned long spin_count, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:184:114: error: ‘debug_info_param’ has not been declared 184 | inline int rl_InitializeCriticalSectionEx(rl_CRITICAL_SECTION* m, unsigned long spin_count, unsigned long flags, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:192:62: error: ‘debug_info_param’ has not been declared 192 | inline void rl_DeleteCriticalSection(rl_CRITICAL_SECTION* m, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:197:61: error: ‘debug_info_param’ has not been declared 197 | inline void rl_EnterCriticalSection(rl_CRITICAL_SECTION* m, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:202:63: error: ‘debug_info_param’ has not been declared 202 | inline int rl_TryEnterCriticalSection(rl_CRITICAL_SECTION* m, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:207:61: error: ‘debug_info_param’ has not been declared 207 | inline void rl_LeaveCriticalSection(rl_CRITICAL_SECTION* m, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:215:52: error: ‘debug_info_param’ has not been declared 215 | inline void rl_InitializeSRWLock(rl_SRWLOCK* lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:220:58: error: ‘debug_info_param’ has not been declared 220 | inline void rl_AcquireSRWLockExclusive(rl_SRWLOCK* lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:225:55: error: ‘debug_info_param’ has not been declared 225 | inline void rl_AcquireSRWLockShared(rl_SRWLOCK* lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:230:58: error: ‘debug_info_param’ has not been declared 230 | inline void rl_ReleaseSRWLockExclusive(rl_SRWLOCK* lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:235:55: error: ‘debug_info_param’ has not been declared 235 | inline void rl_ReleaseSRWLockShared(rl_SRWLOCK* lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:241:48: error: ‘debug_info_param’ has not been declared 241 | inline void rl_DeleteSRWLock(rl_SRWLOCK* lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:251:94: error: ‘debug_info_param’ has not been declared 251 | inline rl_HANDLE rl_CreateMutex(void* /*security*/, int initial_owner, void const* /*name*/, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp: In function ‘rl::win_object* rl::rl_CreateMutex(void*, int, const void*, int)’: /usr/include/relacy/stdlib/windows.hpp:253:20: error: invalid use of incomplete type ‘class rl::context’ 253 | void* mem = ctx().alloc(sizeof(rl_win_mutex), false, info); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/windows.hpp: At global scope: /usr/include/relacy/stdlib/windows.hpp:261:43: error: ‘debug_info_param’ has not been declared 261 | inline int rl_ReleaseMutex(rl_HANDLE mtx, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:274:71: error: ‘debug_info_param’ has not been declared 274 | inline void rl_InitializeConditionVariable(rl_CONDITION_VARIABLE* cv, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:279:110: error: ‘debug_info_param’ has not been declared 279 | inline int rl_SleepConditionVariableCS(rl_CONDITION_VARIABLE* cv, rl_CRITICAL_SECTION* cs, unsigned long ms, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:285:125: error: ‘debug_info_param’ has not been declared 285 | inline int rl_SleepConditionVariableSRW(rl_CONDITION_VARIABLE* cv, rl_SRWLOCK* lock, unsigned long ms, unsigned long flags, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:293:68: error: ‘debug_info_param’ has not been declared 293 | inline void rl_WakeAllConditionVariable(rl_CONDITION_VARIABLE* cv, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:298:65: error: ‘debug_info_param’ has not been declared 298 | inline void rl_WakeConditionVariable(rl_CONDITION_VARIABLE* cv, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:303:67: error: ‘debug_info_param’ has not been declared 303 | inline void rl_DeleteConditionVariable(rl_CONDITION_VARIABLE* cv, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:313:34: error: expected ‘)’ before ‘*’ token 313 | typedef unsigned long (RL_STDCALL *rl_WIN_START_ROUTINE)(void* param); | ~ ^~ | ) /usr/include/relacy/stdlib/windows.hpp:314:29: error: expected ‘)’ before ‘*’ token 314 | typedef unsigned (RL_STDCALL *rl_MSVCR_THREAD_ROUTINE)(void* param); | ~ ^~ | ) /usr/include/relacy/stdlib/windows.hpp: In static member function ‘static void* rl::win32_thread_helper::thread(void*)’: /usr/include/relacy/stdlib/windows.hpp:326:27: error: ‘$’ was not declared in this scope 326 | delete_impl(self, $); | ^ /usr/include/relacy/stdlib/windows.hpp:326:27: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/relacy/stdlib/windows.hpp: At global scope: /usr/include/relacy/stdlib/windows.hpp:331:71: error: ‘rl_WIN_START_ROUTINE’ has not been declared 331 | inline rl_HANDLE rl_CreateThread(void* security, unsigned stack_size, rl_WIN_START_ROUTINE fn, void* param, unsigned long creation_flags, unsigned long* thread_id, debug_info_param info) | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:331:165: error: ‘debug_info_param’ has not been declared 331 | inline rl_HANDLE rl_CreateThread(void* security, unsigned stack_size, rl_WIN_START_ROUTINE fn, void* param, unsigned long creation_flags, unsigned long* thread_id, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp: In function ‘rl::win_object* rl::rl_CreateThread(void*, unsigned int, int, void*, long unsigned int, long unsigned int*, int)’: /usr/include/relacy/stdlib/windows.hpp:339:12: error: invalid use of incomplete type ‘class rl::context’ 339 | ctx().alloc(sizeof(win32_thread_helper), false, info); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/windows.hpp:339:48: error: ‘rl_WIN_START_ROUTINE’ was not declared in this scope 339 | ctx().alloc(sizeof(win32_thread_helper), false, info); | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:339:68: error: template argument 1 is invalid 339 | ctx().alloc(sizeof(win32_thread_helper), false, info); | ^ /usr/include/relacy/stdlib/windows.hpp:342:10: error: request for member ‘fn’ in ‘* arg’, which is of non-class type ‘int’ 342 | arg->fn = fn; | ^~ /usr/include/relacy/stdlib/windows.hpp:343:10: error: request for member ‘param’ in ‘* arg’, which is of non-class type ‘int’ 343 | arg->param = param; | ^~~~~ /usr/include/relacy/stdlib/windows.hpp:344:38: error: invalid use of incomplete type ‘class rl::context’ 344 | win_waitable_object* handle = ctx().create_thread(&win32_thread_helper::thread, arg); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/windows.hpp: At global scope: /usr/include/relacy/stdlib/windows.hpp:349:72: error: ‘rl_MSVCR_THREAD_ROUTINE’ has not been declared 349 | inline uintptr_t rl_beginthreadex(void *security, unsigned stack_size, rl_MSVCR_THREAD_ROUTINE start_address, void *arglist, unsigned initflag, unsigned* thrdaddr, debug_info_param info) | ^~~~~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:349:165: error: ‘debug_info_param’ has not been declared 349 | inline uintptr_t rl_beginthreadex(void *security, unsigned stack_size, rl_MSVCR_THREAD_ROUTINE start_address, void *arglist, unsigned initflag, unsigned* thrdaddr, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp: In function ‘uintptr_t rl::rl_beginthreadex(void*, unsigned int, int, void*, unsigned int, unsigned int*, int)’: /usr/include/relacy/stdlib/windows.hpp:356:20: error: invalid use of incomplete type ‘class rl::context’ 356 | void* mem = ctx().alloc(sizeof(win32_thread_helper), false, info); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/windows.hpp:356:56: error: ‘rl_MSVCR_THREAD_ROUTINE’ was not declared in this scope 356 | void* mem = ctx().alloc(sizeof(win32_thread_helper), false, info); | ^~~~~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:356:79: error: template argument 1 is invalid 356 | void* mem = ctx().alloc(sizeof(win32_thread_helper), false, info); | ^ /usr/include/relacy/stdlib/windows.hpp:359:10: error: request for member ‘fn’ in ‘* arg’, which is of non-class type ‘int’ 359 | arg->fn = start_address; | ^~ /usr/include/relacy/stdlib/windows.hpp:360:10: error: request for member ‘param’ in ‘* arg’, which is of non-class type ‘int’ 360 | arg->param = arglist; | ^~~~~ /usr/include/relacy/stdlib/windows.hpp:361:38: error: invalid use of incomplete type ‘class rl::context’ 361 | win_waitable_object* handle = ctx().create_thread(&win32_thread_helper::thread, arg); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/windows.hpp: At global scope: /usr/include/relacy/stdlib/windows.hpp:365:90: error: ‘debug_info_param’ has not been declared 365 | inline unsigned long rl_SetThreadAffinityMask(rl_HANDLE th, unsigned long affinity_mask, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:373:43: error: ‘debug_info_param’ has not been declared 373 | inline int rl_SuspendThread(rl_HANDLE th, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:380:42: error: ‘debug_info_param’ has not been declared 380 | inline int rl_ResumeThread(rl_HANDLE th, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:397:13: error: variable or field ‘rl_FlushProcessWriteBuffers’ declared void 397 | inline void rl_FlushProcessWriteBuffers(debug_info_param info) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/windows.hpp:397:41: error: ‘debug_info_param’ was not declared in this scope 397 | inline void rl_FlushProcessWriteBuffers(debug_info_param info) | ^~~~~~~~~~~~~~~~ In file included from /usr/include/relacy/relacy.hpp:34: /usr/include/relacy/stdlib/pthread.hpp:36:13: error: variable or field ‘rl_sched_yield’ declared void 36 | inline void rl_sched_yield(debug_info_param info) | ^~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:36:28: error: ‘debug_info_param’ was not declared in this scope 36 | inline void rl_sched_yield(debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:45:107: error: ‘debug_info_param’ has not been declared 45 | inline int rl_pthread_create(rl_pthread_t* th, rl_pthread_attr_t* attr, void* (*func) (void*), void* arg, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp: In function ‘int rl::rl_pthread_create(win_waitable_object**, void**, void* (*)(void*), void*, int)’: /usr/include/relacy/stdlib/pthread.hpp:49:5: error: ‘RL_VERIFY’ was not declared in this scope 49 | RL_VERIFY(th && func); | ^~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:49:5: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/stdlib/pthread.hpp:50:16: error: invalid use of incomplete type ‘class rl::context’ 50 | th[0] = ctx().create_thread(func, arg); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/pthread.hpp: At global scope: /usr/include/relacy/stdlib/pthread.hpp:54:57: error: ‘debug_info_param’ has not been declared 54 | inline int rl_pthread_join(rl_pthread_t th, void** res, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp: In function ‘int rl::rl_pthread_join(rl_pthread_t, void**, int)’: /usr/include/relacy/stdlib/pthread.hpp:56:5: error: ‘RL_VERIFY’ was not declared in this scope 56 | RL_VERIFY(th && res); | ^~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:56:5: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/stdlib/pthread.hpp: At global scope: /usr/include/relacy/stdlib/pthread.hpp:68:85: error: ‘debug_info_param’ has not been declared 68 | inline int rl_sem_init(rl_sem_t* sema, int /*pshared*/, unsigned int initial_count, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp: In function ‘int rl::rl_sem_init(rl_sem_t*, int, unsigned int, int)’: /usr/include/relacy/stdlib/pthread.hpp:70:5: error: ‘RL_VERIFY’ was not declared in this scope 70 | RL_VERIFY(initial_count >= 0); | ^~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:70:5: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/stdlib/pthread.hpp: At global scope: /usr/include/relacy/stdlib/pthread.hpp:75:43: error: ‘debug_info_param’ has not been declared 75 | inline int rl_sem_destroy(rl_sem_t* sema, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:81:40: error: ‘debug_info_param’ has not been declared 81 | inline int rl_sem_wait(rl_sem_t* sema, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp: In function ‘int rl::rl_sem_wait(rl_sem_t*, int)’: /usr/include/relacy/stdlib/pthread.hpp:91:5: error: ‘RL_VERIFY’ was not declared in this scope 91 | RL_VERIFY(false); | ^~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:91:5: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/stdlib/pthread.hpp: At global scope: /usr/include/relacy/stdlib/pthread.hpp:95:43: error: ‘debug_info_param’ has not been declared 95 | inline int rl_sem_trywait(rl_sem_t* sema, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp: In function ‘int rl::rl_sem_trywait(rl_sem_t*, int)’: /usr/include/relacy/stdlib/pthread.hpp:110:5: error: ‘RL_VERIFY’ was not declared in this scope 110 | RL_VERIFY(false); | ^~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:110:5: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/stdlib/pthread.hpp: At global scope: /usr/include/relacy/stdlib/pthread.hpp:114:40: error: ‘debug_info_param’ has not been declared 114 | inline int rl_sem_post(rl_sem_t* sema, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp: In function ‘int rl::rl_sem_post(rl_sem_t*, int)’: /usr/include/relacy/stdlib/pthread.hpp:118:5: error: ‘RL_VERIFY’ was not declared in this scope 118 | RL_VERIFY(result); | ^~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:118:5: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/stdlib/pthread.hpp: At global scope: /usr/include/relacy/stdlib/pthread.hpp:123:56: error: ‘debug_info_param’ has not been declared 123 | inline int rl_sem_getvalue(rl_sem_t* sema, int* value, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp: In function ‘int rl::rl_sem_getvalue(rl_sem_t*, int*, int)’: /usr/include/relacy/stdlib/pthread.hpp:125:5: error: ‘RL_VERIFY’ was not declared in this scope 125 | RL_VERIFY(value); | ^~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:125:5: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/stdlib/pthread.hpp: At global scope: /usr/include/relacy/stdlib/pthread.hpp:150:68: error: ‘debug_info_param’ has not been declared 150 | inline int rl_pthread_mutexattr_init(rl_pthread_mutexattr_t* attr, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:159:71: error: ‘debug_info_param’ has not been declared 159 | inline int rl_pthread_mutexattr_destroy(rl_pthread_mutexattr_t* attr, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:167:81: error: ‘debug_info_param’ has not been declared 167 | inline int rl_pthread_mutexattr_settype(rl_pthread_mutexattr_t* attr, int type, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:177:93: error: ‘debug_info_param’ has not been declared 177 | inline int rl_pthread_mutex_init(rl_pthread_mutex_t* m, rl_pthread_mutexattr_t const* attr, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:184:60: error: ‘debug_info_param’ has not been declared 184 | inline int rl_pthread_mutex_destroy(rl_pthread_mutex_t* m, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:190:57: error: ‘debug_info_param’ has not been declared 190 | inline int rl_pthread_mutex_lock(rl_pthread_mutex_t* m, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:196:87: error: ‘debug_info_param’ has not been declared 196 | inline int rl_pthread_mutex_timedlock(rl_pthread_mutex_t* m, const void* abs_timeout, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:203:61: error: ‘debug_info_param’ has not been declared 203 | inline int rl_pthread_mutex_try_lock(rl_pthread_mutex_t* m, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:208:59: error: ‘debug_info_param’ has not been declared 208 | inline int rl_pthread_mutex_unlock(rl_pthread_mutex_t* m, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:219:84: error: ‘debug_info_param’ has not been declared 219 | inline int rl_pthread_rwlock_init(rl_pthread_rwlock_t* lock, void const* /*attr*/, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:225:65: error: ‘debug_info_param’ has not been declared 225 | inline int rl_pthread_rwlock_destroy(rl_pthread_rwlock_t* lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:231:64: error: ‘debug_info_param’ has not been declared 231 | inline int rl_pthread_rwlock_rdlock(rl_pthread_rwlock_t* lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:237:67: error: ‘debug_info_param’ has not been declared 237 | inline int rl_pthread_rwlock_tryrdlock(rl_pthread_rwlock_t* lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:243:64: error: ‘debug_info_param’ has not been declared 243 | inline int rl_pthread_rwlock_wrlock(rl_pthread_rwlock_t* lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:249:67: error: ‘debug_info_param’ has not been declared 249 | inline int rl_pthread_rwlock_trywrlock(rl_pthread_rwlock_t* lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:255:64: error: ‘debug_info_param’ has not been declared 255 | inline int rl_pthread_rwlock_unlock(rl_pthread_rwlock_t* lock, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:268:93: error: ‘debug_info_param’ has not been declared 268 | inline int rl_pthread_cond_init(rl_pthread_cond_t* cv, rl_pthread_condattr_t* /*condattr*/, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:274:59: error: ‘debug_info_param’ has not been declared 274 | inline int rl_pthread_cond_destroy(rl_pthread_cond_t* cv, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:280:61: error: ‘debug_info_param’ has not been declared 280 | inline int rl_pthread_cond_broadcast(rl_pthread_cond_t* cv, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:286:58: error: ‘debug_info_param’ has not been declared 286 | inline int rl_pthread_cond_signal(rl_pthread_cond_t* cv, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:292:110: error: ‘debug_info_param’ has not been declared 292 | inline int rl_pthread_cond_timedwait(rl_pthread_cond_t* cv, rl_pthread_mutex_t* m, void const* /*timespec*/, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:305:79: error: ‘debug_info_param’ has not been declared 305 | inline int rl_pthread_cond_wait(rl_pthread_cond_t* cv, rl_pthread_mutex_t* m, debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:332:21: error: ‘debug_info_param’ has not been declared 332 | debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp: In function ‘int rl::rl_int_futex_impl(context&, atomic*, int, int, const timespec*, atomic*, int, int)’: /usr/include/relacy/stdlib/pthread.hpp:338:9: error: invalid use of incomplete type ‘class rl::context’ 338 | c.sched(); | ^ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:339:9: error: invalid use of incomplete type ‘class rl::context’ 339 | c.atomic_thread_fence_seq_cst(); | ^ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:342:38: error: variable ‘rl::preemption_disabler pd’ has initializer but incomplete type 342 | preemption_disabler pd (c); | ^ /usr/include/relacy/stdlib/pthread.hpp:343:23: error: invalid use of incomplete type ‘class rl::atomic’ 343 | v0 = uaddr->load(mo_acquire, info); | ^~ /usr/include/relacy/atomic_events.hpp:24:28: note: declaration of ‘class rl::atomic’ 24 | template class atomic; | ^~~~~~ /usr/include/relacy/stdlib/pthread.hpp:347:9: error: ‘unpark_reason’ was not declared in this scope 347 | unpark_reason reason = uaddr->wait(c, timeout != 0, true, info); | ^~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:348:13: error: ‘reason’ was not declared in this scope 348 | if (reason == unpark_reason_normal) | ^~~~~~ /usr/include/relacy/stdlib/pthread.hpp:348:23: error: ‘unpark_reason_normal’ was not declared in this scope 348 | if (reason == unpark_reason_normal) | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:350:28: error: ‘unpark_reason_timeout’ was not declared in this scope; did you mean ‘sema_wakeup_reason_timeout’? 350 | else if (reason == unpark_reason_timeout) | ^~~~~~~~~~~~~~~~~~~~~ | sema_wakeup_reason_timeout /usr/include/relacy/stdlib/pthread.hpp:352:28: error: ‘unpark_reason_spurious’ was not declared in this scope; did you mean ‘sema_wakeup_reason_spurious’? 352 | else if (reason == unpark_reason_spurious) | ^~~~~~~~~~~~~~~~~~~~~~ | sema_wakeup_reason_spurious /usr/include/relacy/stdlib/pthread.hpp:354:9: error: ‘RL_VERIFY’ was not declared in this scope 354 | RL_VERIFY(false); | ^~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:354:9: note: the macro ‘RL_VERIFY’ had not yet been defined /usr/include/relacy/base.hpp:141: note: it was later defined here 141 | # define RL_VERIFY(x) (void)0 | /usr/include/relacy/stdlib/pthread.hpp:362:9: error: invalid use of incomplete type ‘class rl::context’ 362 | c.sched(); | ^ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:363:9: error: invalid use of incomplete type ‘class rl::context’ 363 | c.atomic_thread_fence_seq_cst(); | ^ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:364:21: error: invalid use of incomplete type ‘class rl::atomic’ 364 | return uaddr->wake(c, val, info); | ^~ /usr/include/relacy/atomic_events.hpp:24:28: note: declaration of ‘class rl::atomic’ 24 | template class atomic; | ^~~~~~ /usr/include/relacy/stdlib/pthread.hpp: In member function ‘void rl::futex_event::output(std::ostream&) const’: /usr/include/relacy/stdlib/pthread.hpp:382:30: error: ‘hex’ is not a member of ‘std’ 382 | s << "<" << std::hex << addr_ << std::dec << "> futex(" | ^~~ /usr/include/relacy/stdlib/pthread.hpp:382:51: error: ‘dec’ is not a member of ‘std’ 382 | s << "<" << std::hex << addr_ << std::dec << "> futex(" | ^~~ /usr/include/relacy/stdlib/pthread.hpp: At global scope: /usr/include/relacy/stdlib/pthread.hpp:398:21: error: ‘debug_info_param’ has not been declared 398 | debug_info_param info) | ^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/pthread.hpp: In function ‘int rl::rl_futex(atomic*, int, int, const timespec*, atomic*, int, int)’: /usr/include/relacy/stdlib/pthread.hpp:402:5: error: invalid use of incomplete type ‘class rl::context’ 402 | RL_HIST(futex_event) {uaddr, op, val, timeout != 0, res} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:402:5: error: ‘debug_info’ is not a member of ‘rl’ 402 | RL_HIST(futex_event) {uaddr, op, val, timeout != 0, res} RL_HIST_END(); | ^~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:402:62: error: invalid use of incomplete type ‘class rl::context’ 402 | RL_HIST(futex_event) {uaddr, op, val, timeout != 0, res} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/pthread.hpp:402:62: error: ‘rl_info_c’ was not declared in this scope 402 | RL_HIST(futex_event) {uaddr, op, val, timeout != 0, res} RL_HIST_END(); | ^~~~~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_create(rl::win_waitable_object**, void* (*)(void*), void*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:663:10: error: ‘$’ was not declared in this scope 663 | return __gthrw_(pthread_create) (__threadid, NULL, __func, __args); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:663:10: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_join(__gthread_t, void**)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:669:10: error: ‘$’ was not declared in this scope 669 | return __gthrw_(pthread_join) (__threadid, __value_ptr); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:669:10: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_detach(__gthread_t)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:675:10: error: ‘pthread_detach’ was not declared in this scope; did you mean ‘pthread_t’? 675 | return __gthrw_(pthread_detach) (__threadid); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_equal(__gthread_t, __gthread_t)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:681:10: error: ‘pthread_equal’ was not declared in this scope; did you mean ‘thread_local’? 681 | return __gthrw_(pthread_equal) (__t1, __t2); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘rl::win_waitable_object* __gthread_self()’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:687:10: error: ‘pthread_self’ was not declared in this scope; did you mean ‘pthread_yield’? 687 | return __gthrw_(pthread_self) (); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_yield()’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:693:10: error: ‘rl_sched_yield’ is not a member of ‘rl’ 693 | return __gthrw_(sched_yield) (); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:693:10: error: ‘$’ was not declared in this scope 693 | return __gthrw_(sched_yield) (); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:693:10: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_once(__gthread_once_t*, void (*)())’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:700:12: error: ‘pthread_once’ was not declared in this scope; did you mean ‘pthread_once_t’? 700 | return __gthrw_(pthread_once) (__once, __func); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_key_create(__gthread_key_t*, void (*)(void*))’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:708:10: error: ‘pthread_key_create’ was not declared in this scope; did you mean ‘pthread_create’? 708 | return __gthrw_(pthread_key_create) (__key, __dtor); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_key_delete(__gthread_key_t)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:714:10: error: ‘pthread_key_delete’ was not declared in this scope; did you mean ‘pthread_key_t’? 714 | return __gthrw_(pthread_key_delete) (__key); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘void* __gthread_getspecific(__gthread_key_t)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:720:10: error: ‘pthread_getspecific’ was not declared in this scope 720 | return __gthrw_(pthread_getspecific) (__key); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_setspecific(__gthread_key_t, const void*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:726:10: error: ‘pthread_setspecific’ was not declared in this scope 726 | return __gthrw_(pthread_setspecific) (__key, __ptr); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘void __gthread_mutex_init_function(__gthread_mutex_t*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:733:5: error: ‘$’ was not declared in this scope 733 | __gthrw_(pthread_mutex_init) (__mutex, NULL); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:733:5: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_mutex_destroy(__gthread_mutex_t*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:740:12: error: ‘$’ was not declared in this scope 740 | return __gthrw_(pthread_mutex_destroy) (__mutex); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:740:12: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_mutex_lock(__gthread_mutex_t*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:749:12: error: ‘$’ was not declared in this scope 749 | return __gthrw_(pthread_mutex_lock) (__mutex); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:749:12: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_mutex_trylock(__gthread_mutex_t*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:758:12: error: ‘pthread_mutex_trylock’ was not declared in this scope; did you mean ‘pthread_mutex_try_lock’? 758 | return __gthrw_(pthread_mutex_trylock) (__mutex); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_mutex_timedlock(__gthread_mutex_t*, const __gthread_time_t*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:769:12: error: ‘$’ was not declared in this scope 769 | return __gthrw_(pthread_mutex_timedlock) (__mutex, __abs_timeout); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:769:12: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_mutex_unlock(__gthread_mutex_t*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:779:12: error: ‘$’ was not declared in this scope 779 | return __gthrw_(pthread_mutex_unlock) (__mutex); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:779:12: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_recursive_mutex_init_function(__gthread_recursive_mutex_t*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:794:13: error: ‘$’ was not declared in this scope 794 | __r = __gthrw_(pthread_mutexattr_init) (&__attr); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:794:13: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_cond_broadcast(__gthread_cond_t*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:853:10: error: ‘$’ was not declared in this scope 853 | return __gthrw_(pthread_cond_broadcast) (__cond); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:853:10: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_cond_signal(__gthread_cond_t*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:859:10: error: ‘$’ was not declared in this scope 859 | return __gthrw_(pthread_cond_signal) (__cond); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:859:10: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_cond_wait(__gthread_cond_t*, __gthread_mutex_t*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:865:10: error: ‘$’ was not declared in this scope 865 | return __gthrw_(pthread_cond_wait) (__cond, __mutex); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:865:10: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_cond_timedwait(__gthread_cond_t*, __gthread_mutex_t*, const __gthread_time_t*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:872:10: error: ‘$’ was not declared in this scope 872 | return __gthrw_(pthread_cond_timedwait) (__cond, __mutex, __abs_timeout); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:872:10: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h: In function ‘int __gthread_cond_destroy(__gthread_cond_t*)’: /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:885:10: error: ‘$’ was not declared in this scope 885 | return __gthrw_(pthread_cond_destroy) (__cond); | ^~~~~~~~ /usr/include/arm-linux-gnueabihf/c++/12/bits/gthr-default.h:885:10: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/new_allocator.h: In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*)’: /usr/include/c++/12/bits/new_allocator.h:133:38: error: expected operator before ‘rl’ 133 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp), | ^~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/new_allocator.h:133:38: error: expected ‘)’ before ‘rl’ /usr/include/c++/12/bits/new_allocator.h:133:38: error: expected ‘;’ before ‘rl’ /usr/include/c++/12/bits/new_allocator.h:133:38: error: ‘$’ was not declared in this scope 133 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp), | ^~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/new_allocator.h:133:38: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | In file included from /usr/include/arm-linux-gnueabihf/c++/12/bits/c++allocator.h:33, from /usr/include/c++/12/bits/allocator.h:46, from /usr/include/c++/12/string:41, from /usr/include/c++/12/bits/locale_classes.h:40, from /usr/include/c++/12/bits/ios_base.h:41: /usr/include/c++/12/bits/new_allocator.h:134:65: error: expected type-specifier before ‘)’ token 134 | __al)); | ^ /usr/include/c++/12/bits/new_allocator.h:137:34: error: expected operator before ‘rl’ 137 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp))); | ^~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/new_allocator.h:137:34: error: expected ‘)’ before ‘rl’ /usr/include/c++/12/bits/new_allocator.h:137:34: error: expected ‘;’ before ‘rl’ /usr/include/c++/12/bits/new_allocator.h:137:34: error: ‘$’ was not declared in this scope 137 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp))); | ^~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/new_allocator.h:137:34: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/new_allocator.h:137:74: error: expected type-specifier before ‘)’ token 137 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp))); | ^ /usr/include/c++/12/bits/new_allocator.h: In member function ‘void std::__new_allocator<_Tp>::deallocate(_Tp*, size_type)’: /usr/include/c++/12/bits/new_allocator.h:153:13: error: expected operator before ‘rl’ 153 | _GLIBCXX_OPERATOR_DELETE(_GLIBCXX_SIZED_DEALLOC(__p, __n), | ^~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/new_allocator.h:158:9: error: expected operator before ‘rl’ 158 | _GLIBCXX_OPERATOR_DELETE(_GLIBCXX_SIZED_DEALLOC(__p, __n)); | ^~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/new_allocator.h: In member function ‘void std::__new_allocator<_Tp>::construct(_Up*, _Args&& ...)’: /usr/include/c++/12/bits/new_allocator.h:175:13: error: ‘$’ was not declared in this scope 175 | { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } | ^~~ /usr/include/c++/12/bits/new_allocator.h:175:13: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/stl_iterator_base_funcs.h: At global scope: /usr/include/c++/12/bits/stl_iterator_base_funcs.h:127:73: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 127 | __distance(_OutputIterator, _OutputIterator, output_iterator_tag) = delete; | ^~~~~~ /usr/include/c++/12/bits/stl_iterator_base_funcs.h:201:67: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 201 | __advance(_OutputIterator&, _Distance, output_iterator_tag) = delete; | ^~~~~~ /usr/include/c++/12/bits/stl_pair.h:170:50: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 170 | __pair_base& operator=(const __pair_base&) = delete; | ^~~~~~ /usr/include/c++/12/bits/stl_pair.h:470:48: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 470 | __zero_as_null_pointer_constant(_Tp) = delete; | ^~~~~~ /usr/include/c++/12/bits/stl_pair.h:715:46: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 715 | swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; | ^~~~~~ /usr/include/c++/12/bits/refwrap.h:315:35: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 315 | static void _S_fun(_Tp&&) = delete; | ^~~~~~ In file included from /usr/include/c++/12/string:51: /usr/include/c++/12/bits/refwrap.h:315:19: error: initializer specified for static member function ‘static void std::reference_wrapper<_Tp>::_S_fun(_Tp&&)’ 315 | static void _S_fun(_Tp&&) = delete; | ^~~~~~ /usr/include/c++/12/bits/refwrap.h:384:29: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 384 | void ref(const _Tp&&) = delete; | ^~~~~~ /usr/include/c++/12/bits/refwrap.h:387:30: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 387 | void cref(const _Tp&&) = delete; | ^~~~~~ /usr/include/c++/12/bits/stl_construct.h: In function ‘void std::_Construct(_Tp*, _Args&& ...)’: /usr/include/c++/12/bits/stl_construct.h:119:9: error: ‘$’ was not declared in this scope 119 | ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); | ^~~ /usr/include/c++/12/bits/stl_construct.h:119:9: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/stl_construct.h: In function ‘void std::_Construct_novalue(_T1*)’: /usr/include/c++/12/bits/stl_construct.h:135:9: error: ‘$’ was not declared in this scope 135 | { ::new((void*)__p) _T1; } | ^~~ /usr/include/c++/12/bits/stl_construct.h:135:9: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/alloc_traits.h: In static member function ‘static constexpr std::_Require >::__construct_helper<_Tp, _Args>::type>, std::is_constructible<_Tp, _Args ...> > > std::allocator_traits< >::_S_construct(_Alloc&, _Tp*, _Args&& ...)’: /usr/include/c++/12/bits/alloc_traits.h:261:13: error: ‘$’ was not declared in this scope 261 | ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); | ^~~ /usr/include/c++/12/bits/alloc_traits.h:261:13: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/alloc_traits.h: At global scope: /usr/include/c++/12/bits/alloc_traits.h:614:69: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 614 | allocate(allocator_type&, size_type, const void* = nullptr) = delete; | ^~~~~~ In file included from /usr/include/c++/12/ext/alloc_traits.h:34, from /usr/include/c++/12/bits/basic_string.h:39, from /usr/include/c++/12/string:53: /usr/include/c++/12/bits/alloc_traits.h:614:7: error: initializer specified for static member function ‘static void* std::allocator_traits >::allocate(allocator_type&, size_type, const void*)’ 614 | allocate(allocator_type&, size_type, const void* = nullptr) = delete; | ^~~~~~~~ /usr/include/c++/12/bits/alloc_traits.h:618:55: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 618 | deallocate(allocator_type&, void*, size_type) = delete; | ^~~~~~ /usr/include/c++/12/bits/alloc_traits.h:618:7: error: initializer specified for static member function ‘static void std::allocator_traits >::deallocate(allocator_type&, void*, size_type)’ 618 | deallocate(allocator_type&, void*, size_type) = delete; | ^~~~~~~~~~ /usr/include/c++/12/bits/alloc_traits.h:652:41: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 652 | max_size(const allocator_type&) = delete; | ^~~~~~ /usr/include/c++/12/bits/alloc_traits.h:652:7: error: initializer specified for static member function ‘static std::allocator_traits >::size_type std::allocator_traits >::max_size(const allocator_type&)’ 652 | max_size(const allocator_type&) = delete; | ^~~~~~~~ /usr/include/c++/12/bits/locale_classes.h:440:27: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 440 | facet(const facet&) = delete; | ^~~~~~ /usr/include/c++/12/bits/locale_classes.h:443:31: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 443 | operator=(const facet&) = delete; | ^~~~~~ /usr/include/c++/12/bits/locale_classes.h: In member function ‘void std::locale::facet::_M_remove_reference() const’: /usr/include/c++/12/bits/locale_classes.h:460:15: error: expected unqualified-id before ‘delete’ 460 | { delete this; } | ^~~~~~ /usr/include/c++/12/bits/locale_classes.h: In member function ‘void std::locale::_Impl::_M_remove_reference()’: /usr/include/c++/12/bits/locale_classes.h:570:15: error: expected unqualified-id before ‘delete’ 570 | { delete this; } | ^~~~~~ /usr/include/c++/12/bits/locale_classes.tcc: In constructor ‘std::locale::locale(const std::locale&, _Facet*)’: /usr/include/c++/12/bits/locale_classes.tcc:47:17: error: ‘$’ was not declared in this scope 47 | _M_impl = new _Impl(*__other._M_impl, 1); | ^~~ /usr/include/c++/12/bits/locale_classes.tcc:47:17: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/locale_classes.tcc:56:7: error: expected unqualified-id before ‘delete’ 56 | delete [] _M_impl->_M_names[0]; | ^~~~~~ /usr/include/c++/12/bits/locale_classes.tcc: In member function ‘std::locale std::locale::combine(const std::locale&) const’: /usr/include/c++/12/bits/locale_classes.tcc:65:22: error: ‘$’ was not declared in this scope 65 | _Impl* __tmp = new _Impl(*_M_impl, 1); | ^~~ /usr/include/c++/12/bits/locale_classes.tcc:65:22: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/locale_classes.tcc: In member function ‘virtual std::__cxx11::collate<_CharT>::string_type std::__cxx11::collate<_CharT>::do_transform(const _CharT*, const _CharT*) const’: /usr/include/c++/12/bits/locale_classes.tcc:212:21: error: ‘$’ was not declared in this scope 212 | _CharT* __c = new _CharT[__len]; | ^~~ /usr/include/c++/12/bits/locale_classes.tcc:212:21: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/locale_classes.tcc:228:19: error: expected unqualified-id before ‘delete’ 228 | delete [] __c, __c = 0; | ^~~~~~ /usr/include/c++/12/bits/locale_classes.tcc:244:11: error: expected unqualified-id before ‘delete’ 244 | delete [] __c; | ^~~~~~ /usr/include/c++/12/bits/locale_classes.tcc:248:7: error: expected unqualified-id before ‘delete’ 248 | delete [] __c; | ^~~~~~ /usr/include/c++/12/system_error: At global scope: /usr/include/c++/12/system_error:104:45: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 104 | error_category(const error_category&) = delete; | ^~~~~~ /usr/include/c++/12/system_error:105:56: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 105 | error_category& operator=(const error_category&) = delete; | ^~~~~~ /usr/include/c++/12/bits/ios_base.h:900:33: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 900 | ios_base(const ios_base&) = delete; | ^~~~~~ /usr/include/c++/12/bits/ios_base.h:903:34: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 903 | operator=(const ios_base&) = delete; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.h: In destructor ‘std::__numpunct_cache<_CharT>::~__numpunct_cache()’: /usr/include/c++/12/bits/locale_facets.h:1655:11: error: expected unqualified-id before ‘delete’ 1655 | delete [] _M_grouping; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.h:1656:11: error: redeclaration of ‘rl::delete_proxy $’ 1656 | delete [] _M_truename; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.h:1655:11: note: ‘rl::delete_proxy $’ previously declared here 1655 | delete [] _M_grouping; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.h:1656:11: error: expected unqualified-id before ‘delete’ 1656 | delete [] _M_truename; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.h:1657:11: error: redeclaration of ‘rl::delete_proxy $’ 1657 | delete [] _M_falsename; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.h:1655:11: note: ‘rl::delete_proxy $’ previously declared here 1655 | delete [] _M_grouping; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.h:1657:11: error: expected unqualified-id before ‘delete’ 1657 | delete [] _M_falsename; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.tcc: In member function ‘const std::__numpunct_cache<_CharT>* std::__use_cache >::operator()(const std::locale&) const’: /usr/include/c++/12/bits/locale_facets.tcc:62:25: error: ‘$’ was not declared in this scope 62 | __tmp = new __numpunct_cache<_CharT>; | ^~~ /usr/include/c++/12/bits/locale_facets.tcc:62:25: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/locale_facets.tcc:67:17: error: expected unqualified-id before ‘delete’ 67 | delete __tmp; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.tcc: In member function ‘void std::__numpunct_cache<_CharT>::_M_cache(const std::locale&)’: /usr/include/c++/12/bits/locale_facets.tcc:89:24: error: ‘$’ was not declared in this scope 89 | __grouping = new char[_M_grouping_size]; | ^~~ /usr/include/c++/12/bits/locale_facets.tcc:89:24: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/locale_facets.tcc:124:11: error: expected unqualified-id before ‘delete’ 124 | delete [] __grouping; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.tcc:125:11: error: redeclaration of ‘rl::delete_proxy $’ 125 | delete [] __truename; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.tcc:124:11: note: ‘rl::delete_proxy $’ previously declared here 124 | delete [] __grouping; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.tcc:125:11: error: expected unqualified-id before ‘delete’ 125 | delete [] __truename; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.tcc:126:11: error: redeclaration of ‘rl::delete_proxy $’ 126 | delete [] __falsename; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.tcc:124:11: note: ‘rl::delete_proxy $’ previously declared here 124 | delete [] __grouping; | ^~~~~~ /usr/include/c++/12/bits/locale_facets.tcc:126:11: error: expected unqualified-id before ‘delete’ 126 | delete [] __falsename; | ^~~~~~ /usr/include/c++/12/bits/basic_ios.h: At global scope: /usr/include/c++/12/bits/basic_ios.h:475:37: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 475 | basic_ios(const basic_ios&) = delete; | ^~~~~~ /usr/include/c++/12/bits/basic_ios.h:476:48: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 476 | basic_ios& operator=(const basic_ios&) = delete; | ^~~~~~ /usr/include/c++/12/bits/basic_ios.tcc: In member function ‘std::basic_ios<_CharT, _Traits>& std::basic_ios<_CharT, _Traits>::copyfmt(const std::basic_ios<_CharT, _Traits>&)’: /usr/include/c++/12/bits/basic_ios.tcc:74:46: error: ‘$’ was not declared in this scope 74 | _M_local_word : new _Words[__rhs._M_word_size]; | ^~~ /usr/include/c++/12/bits/basic_ios.tcc:74:46: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/basic_ios.tcc:83:15: error: expected unqualified-id before ‘delete’ 83 | delete [] _M_word; | ^~~~~~ /usr/include/c++/12/ostream: At global scope: /usr/include/c++/12/ostream:391:45: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 391 | basic_ostream(const basic_ostream&) = delete; | ^~~~~~ /usr/include/c++/12/ostream:399:56: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 399 | basic_ostream& operator=(const basic_ostream&) = delete; | ^~~~~~ /usr/include/c++/12/bits/ostream.tcc: In destructor ‘std::operator<<(basic_ostream<_CharT, _Traits>&, const char*)::__ptr_guard::~__ptr_guard()’: /usr/include/c++/12/bits/ostream.tcc:317:34: error: expected unqualified-id before ‘delete’ 317 | ~__ptr_guard() { delete[] __p; } | ^~~~~~ /usr/include/c++/12/bits/ostream.tcc: In function ‘std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, const char*)’: /usr/include/c++/12/bits/ostream.tcc:319:23: error: ‘$’ was not declared in this scope 319 | } __pg (new _CharT[__clen]); | ^~~ /usr/include/c++/12/bits/ostream.tcc:319:23: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/istream: At global scope: /usr/include/c++/12/istream:611:45: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 611 | basic_istream(const basic_istream&) = delete; | ^~~~~~ /usr/include/c++/12/istream:622:56: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 622 | basic_istream& operator=(const basic_istream&) = delete; | ^~~~~~ /usr/include/c++/12/istream:929:47: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 929 | basic_iostream(const basic_iostream&) = delete; | ^~~~~~ /usr/include/c++/12/istream:937:58: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 937 | basic_iostream& operator=(const basic_iostream&) = delete; | ^~~~~~ /usr/include/c++/12/sstream:146:49: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 146 | basic_stringbuf(const basic_stringbuf&) = delete; | ^~~~~~ /usr/include/c++/12/sstream:203:43: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 203 | operator=(const basic_stringbuf&) = delete; | ^~~~~~ /usr/include/c++/12/sstream:620:57: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 620 | basic_istringstream(const basic_istringstream&) = delete; | ^~~~~~ /usr/include/c++/12/sstream:662:47: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 662 | operator=(const basic_istringstream&) = delete; | ^~~~~~ /usr/include/c++/12/sstream:841:57: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 841 | basic_ostringstream(const basic_ostringstream&) = delete; | ^~~~~~ /usr/include/c++/12/sstream:883:47: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 883 | operator=(const basic_ostringstream&) = delete; | ^~~~~~ /usr/include/c++/12/sstream:1058:55: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 1058 | basic_stringstream(const basic_stringstream&) = delete; | ^~~~~~ /usr/include/c++/12/sstream:1102:46: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 1102 | operator=(const basic_stringstream&) = delete; | ^~~~~~ /usr/include/c++/12/bits/stl_tempbuf.h: In function ‘void std::__detail::__return_temporary_buffer(_Tp*, std::size_t)’: /usr/include/c++/12/bits/stl_tempbuf.h:74:20: error: expected operator before ‘rl’ 74 | ::operator delete(__p, __len * sizeof(_Tp)); | ^~~~~~ /usr/include/c++/12/bits/stl_tempbuf.h: In function ‘std::pair<_Tp*, int> std::get_temporary_buffer(ptrdiff_t)’: /usr/include/c++/12/bits/stl_tempbuf.h:110:53: error: expected operator before ‘rl’ 110 | _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), | ^~~ In file included from /usr/include/c++/12/bits/stl_algo.h:61, from /usr/include/c++/12/algorithm:61, from /usr/include/relacy/pch.hpp:38: /usr/include/c++/12/bits/stl_tempbuf.h:110:52: error: expected ‘)’ before ‘rl’ 110 | _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), | ^ | ) /usr/include/c++/12/bits/stl_tempbuf.h: In function ‘void std::return_temporary_buffer(_Tp*)’: /usr/include/c++/12/bits/stl_tempbuf.h:129:18: error: expected operator before ‘rl’ 129 | { ::operator delete(__p); } | ^~~~~~ /usr/include/c++/12/utility: At global scope: /usr/include/c++/12/utility:108:34: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 108 | void as_const(const _Tp&&) = delete; | ^~~~~~ /usr/include/c++/12/bits/uses_allocator.h:124:35: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 124 | __use_alloc(const _Alloc&&) = delete; | ^~~~~~ /usr/include/c++/12/bits/uses_allocator.h: In function ‘void std::__uses_allocator_construct_impl(__uses_alloc0, _Tp*, _Args&& ...)’: /usr/include/c++/12/bits/uses_allocator.h:168:9: error: ‘$’ was not declared in this scope 168 | { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)...); } | ^~~ /usr/include/c++/12/bits/uses_allocator.h:168:9: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/uses_allocator.h: In function ‘void std::__uses_allocator_construct_impl(__uses_alloc1<_Alloc>, _Tp*, _Args&& ...)’: /usr/include/c++/12/bits/uses_allocator.h:174:9: error: ‘$’ was not declared in this scope 174 | ::new ((void*)__ptr) _Tp(allocator_arg, *__a._M_a, | ^~~ /usr/include/c++/12/bits/uses_allocator.h:174:9: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/uses_allocator.h: In function ‘void std::__uses_allocator_construct_impl(__uses_alloc2<_Alloc>, _Tp*, _Args&& ...)’: /usr/include/c++/12/bits/uses_allocator.h:181:9: error: ‘$’ was not declared in this scope 181 | { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)..., *__a._M_a); } | ^~~ /usr/include/c++/12/bits/uses_allocator.h:181:9: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/tuple: At global scope: /usr/include/c++/12/tuple:299:52: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 299 | _Tuple_impl& operator=(const _Tuple_impl&) = delete; | ^~~~~~ /usr/include/c++/12/tuple:448:52: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 448 | _Tuple_impl& operator=(const _Tuple_impl&) = delete; | ^~~~~~ /usr/include/c++/12/tuple:1375:45: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 1375 | __get_helper(const tuple<_Types...>&) = delete; | ^~~~~~ /usr/include/c++/12/tuple:1411:39: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 1411 | get(const tuple<_Elements...>&) = delete; | ^~~~~~ /usr/include/c++/12/tuple:1766:56: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 1766 | swap(tuple<_Elements...>&, tuple<_Elements...>&) = delete; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h: In member function ‘void std::default_delete<_Tp>::operator()(_Tp*) const’: /usr/include/c++/12/bits/unique_ptr.h:95:9: error: expected unqualified-id before ‘delete’ 95 | delete __ptr; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h: In member function ‘typename std::enable_if::value>::type std::default_delete<_Tp []>::operator()(_Up*) const’: /usr/include/c++/12/bits/unique_ptr.h:132:11: error: expected unqualified-id before ‘delete’ 132 | delete [] __ptr; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h: At global scope: /usr/include/c++/12/bits/unique_ptr.h:243:55: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 243 | __uniq_ptr_data& operator=(__uniq_ptr_data&&) = delete; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h:250:44: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 250 | __uniq_ptr_data(__uniq_ptr_data&&) = delete; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h:258:44: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 258 | __uniq_ptr_data(__uniq_ptr_data&&) = delete; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h:259:55: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 259 | __uniq_ptr_data& operator=(__uniq_ptr_data&&) = delete; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h:347:50: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 347 | _DelUnref&&>) = delete; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h:514:39: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 514 | unique_ptr(const unique_ptr&) = delete; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h:515:50: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 515 | unique_ptr& operator=(const unique_ptr&) = delete; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h:640:50: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 640 | _DelUnref&&>) = delete; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h:791:39: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 791 | unique_ptr(const unique_ptr&) = delete; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h:792:50: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 792 | unique_ptr& operator=(const unique_ptr&) = delete; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h:816:35: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 816 | unique_ptr<_Tp, _Dp>&) = delete; | ^~~~~~ /usr/include/c++/12/bits/unique_ptr.h: In function ‘std::__detail::__unique_ptr_t<_Tp> std::make_unique(_Args&& ...)’: /usr/include/c++/12/bits/unique_ptr.h:1065:30: error: ‘$’ was not declared in this scope 1065 | { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); } | ^~~ /usr/include/c++/12/bits/unique_ptr.h:1065:30: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/unique_ptr.h: In function ‘std::__detail::__unique_ptr_array_t<_Tp> std::make_unique(size_t)’: /usr/include/c++/12/bits/unique_ptr.h:1080:30: error: ‘$’ was not declared in this scope 1080 | { return unique_ptr<_Tp>(new remove_extent_t<_Tp>[__num]()); } | ^~~ /usr/include/c++/12/bits/unique_ptr.h:1080:30: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/unique_ptr.h: At global scope: /usr/include/c++/12/bits/unique_ptr.h:1089:31: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 1089 | make_unique(_Args&&...) = delete; | ^~~~~~ /usr/include/c++/12/ext/concurrence.h:119:34: error: ‘PTHREAD_MUTEX_INITIALIZER’ was not declared in this scope; did you mean ‘PTHREAD_MUTEX_NORMAL’? 119 | __gthread_mutex_t _M_mutex = __GTHREAD_MUTEX_INIT; | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/ext/concurrence.h:252:32: error: ‘PTHREAD_COND_INITIALIZER’ was not declared in this scope 252 | __gthread_cond_t _M_cond = __GTHREAD_COND_INIT; | ^~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr_base.h:234:51: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 234 | _Sp_counted_base(_Sp_counted_base const&) = delete; | ^~~~~~ /usr/include/c++/12/bits/shared_ptr_base.h:235:62: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 235 | _Sp_counted_base& operator=(_Sp_counted_base const&) = delete; | ^~~~~~ /usr/include/c++/12/bits/shared_ptr_base.h: In member function ‘virtual void std::_Sp_counted_base<_Lp>::_M_destroy()’: /usr/include/c++/12/bits/shared_ptr_base.h:144:9: error: expected unqualified-id before ‘delete’ 144 | { delete this; } | ^~~~~~ /usr/include/c++/12/bits/shared_ptr_base.h: At global scope: /usr/include/c++/12/bits/shared_ptr_base.h:438:49: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 438 | _Sp_counted_ptr(const _Sp_counted_ptr&) = delete; | ^~~~~~ /usr/include/c++/12/bits/shared_ptr_base.h:439:60: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 439 | _Sp_counted_ptr& operator=(const _Sp_counted_ptr&) = delete; | ^~~~~~ /usr/include/c++/12/bits/shared_ptr_base.h: In member function ‘virtual void std::_Sp_counted_ptr<_Ptr, _Lp>::_M_dispose()’: /usr/include/c++/12/bits/shared_ptr_base.h:428:9: error: expected unqualified-id before ‘delete’ 428 | { delete _M_ptr; } | ^~~~~~ /usr/include/c++/12/bits/shared_ptr_base.h: In member function ‘virtual void std::_Sp_counted_ptr<_Ptr, _Lp>::_M_destroy()’: /usr/include/c++/12/bits/shared_ptr_base.h:432:9: error: expected unqualified-id before ‘delete’ 432 | { delete this; } | ^~~~~~ /usr/include/c++/12/bits/shared_ptr_base.h: In member function ‘void std::__sp_array_delete::operator()(_Yp*) const’: /usr/include/c++/12/bits/shared_ptr_base.h:889:41: error: expected unqualified-id before ‘delete’ 889 | void operator()(_Yp* __p) const { delete[] __p; } | ^~~~~~ /usr/include/c++/12/bits/shared_ptr_base.h: In constructor ‘std::__shared_count<_Lp>::__shared_count(_Ptr)’: /usr/include/c++/12/bits/shared_ptr_base.h:917:23: error: ‘$’ was not declared in this scope 917 | _M_pi = new _Sp_counted_ptr<_Ptr, _Lp>(__p); | ^~~ /usr/include/c++/12/bits/shared_ptr_base.h:917:23: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/shared_ptr_base.h:921:15: error: expected unqualified-id before ‘delete’ 921 | delete __p; | ^~~~~~ /usr/include/c++/12/bits/shared_ptr_base.h: In constructor ‘std::__shared_count<_Lp>::__shared_count(_Ptr, _Deleter, _Alloc)’: /usr/include/c++/12/bits/shared_ptr_base.h:952:17: error: ‘$’ was not declared in this scope 952 | ::new (__mem) _Sp_cd_type(__p, std::move(__d), std::move(__a)); | ^~~ /usr/include/c++/12/bits/shared_ptr_base.h:952:17: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/shared_ptr_base.h: In constructor ‘std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...)’: /usr/include/c++/12/bits/shared_ptr_base.h:971:25: error: ‘$’ was not declared in this scope 971 | auto __pi = ::new (__mem) | ^~~ /usr/include/c++/12/bits/shared_ptr_base.h:971:25: note: the macro ‘$’ had not yet been defined /usr/include/relacy/base.hpp:118: note: it was later defined here 118 | #define $ RL_INFO | /usr/include/c++/12/bits/atomic_base.h: At global scope: /usr/include/c++/12/bits/atomic_base.h:81:7: error: redefinition of ‘$’ 81 | memory_order_consume, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:80:7: note: ‘$’ previously defined here 80 | memory_order_relaxed, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:82:7: error: redefinition of ‘$’ 82 | memory_order_acquire, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:80:7: note: ‘$’ previously defined here 80 | memory_order_relaxed, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:83:7: error: redefinition of ‘$’ 83 | memory_order_release, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:80:7: note: ‘$’ previously defined here 80 | memory_order_relaxed, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:84:7: error: redefinition of ‘$’ 84 | memory_order_acq_rel, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:80:7: note: ‘$’ previously defined here 80 | memory_order_relaxed, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:85:7: error: redefinition of ‘$’ 85 | memory_order_seq_cst | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:80:7: note: ‘$’ previously defined here 80 | memory_order_relaxed, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:200:39: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 200 | atomic_flag(const atomic_flag&) = delete; | ^~~~~~ /usr/include/c++/12/bits/atomic_base.h:201:50: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 201 | atomic_flag& operator=(const atomic_flag&) = delete; | ^~~~~~ /usr/include/c++/12/bits/atomic_base.h:202:59: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 202 | atomic_flag& operator=(const atomic_flag&) volatile = delete; | ^~~~~~ /usr/include/c++/12/bits/atomic_base.h:210:37: error: ‘$’ is not a type 210 | test_and_set(memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:216:37: error: ‘$’ is not a type 216 | test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:269:30: error: ‘$’ is not a type 269 | clear(memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:281:30: error: ‘$’ is not a type 281 | clear(memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:210:37: error: default argument missing for parameter 2 of ‘bool std::atomic_flag::test_and_set(std::memory_order, int)’ 210 | test_and_set(memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:210:31: note: ...following parameter 1 which has a default argument 210 | test_and_set(memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:216:37: error: default argument missing for parameter 2 of ‘bool std::atomic_flag::test_and_set(std::memory_order, int) volatile’ 216 | test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:216:31: note: ...following parameter 1 which has a default argument 216 | test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:269:30: error: default argument missing for parameter 2 of ‘void std::atomic_flag::clear(std::memory_order, int)’ 269 | clear(memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:269:24: note: ...following parameter 1 which has a default argument 269 | clear(memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:281:30: error: default argument missing for parameter 2 of ‘void std::atomic_flag::clear(std::memory_order, int) volatile’ 281 | clear(memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:281:24: note: ...following parameter 1 which has a default argument 281 | clear(memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h: In member function ‘void std::atomic_flag::clear(std::memory_order, int)’: /usr/include/c++/12/bits/atomic_base.h:273:7: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 273 | __glibcxx_assert(__b != memory_order_consume); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:274:7: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 274 | __glibcxx_assert(__b != memory_order_acquire); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:275:7: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 275 | __glibcxx_assert(__b != memory_order_acq_rel); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h: In member function ‘void std::atomic_flag::clear(std::memory_order, int) volatile’: /usr/include/c++/12/bits/atomic_base.h:285:7: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 285 | __glibcxx_assert(__b != memory_order_consume); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:286:7: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 286 | __glibcxx_assert(__b != memory_order_acquire); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:287:7: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 287 | __glibcxx_assert(__b != memory_order_acq_rel); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h: At global scope: /usr/include/c++/12/bits/atomic_base.h:340:45: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 340 | __atomic_base(const __atomic_base&) = delete; | ^~~~~~ /usr/include/c++/12/bits/atomic_base.h:341:56: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 341 | __atomic_base& operator=(const __atomic_base&) = delete; | ^~~~~~ /usr/include/c++/12/bits/atomic_base.h:342:65: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 342 | __atomic_base& operator=(const __atomic_base&) volatile = delete; | ^~~~~~ /usr/include/c++/12/bits/atomic_base.h:456:48: error: ‘$’ is not a type 456 | store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:469:32: error: ‘$’ is not a type 469 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:481:31: error: ‘$’ is not a type 481 | load(memory_order __m = memory_order_seq_cst) const noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:492:31: error: ‘$’ is not a type 492 | load(memory_order __m = memory_order_seq_cst) const volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:504:35: error: ‘$’ is not a type 504 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:512:35: error: ‘$’ is not a type 512 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:540:48: error: ‘$’ is not a type 540 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:548:39: error: ‘$’ is not a type 548 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:577:50: error: ‘$’ is not a type 577 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:585:37: error: ‘$’ is not a type 585 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:617:36: error: ‘$’ is not a type 617 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:622:36: error: ‘$’ is not a type 622 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:627:36: error: ‘$’ is not a type 627 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:632:36: error: ‘$’ is not a type 632 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:637:36: error: ‘$’ is not a type 637 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:642:36: error: ‘$’ is not a type 642 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:647:35: error: ‘$’ is not a type 647 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:652:35: error: ‘$’ is not a type 652 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:657:36: error: ‘$’ is not a type 657 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:662:36: error: ‘$’ is not a type 662 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:456:48: error: default argument missing for parameter 3 of ‘void std::__atomic_base<_IntTp>::store(__int_type, std::memory_order, int)’ 456 | store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:456:42: note: ...following parameter 2 which has a default argument 456 | store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:469:32: error: default argument missing for parameter 3 of ‘void std::__atomic_base<_IntTp>::store(__int_type, std::memory_order, int) volatile’ 469 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:469:26: note: ...following parameter 2 which has a default argument 469 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:481:31: error: default argument missing for parameter 2 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::load(std::memory_order, int) const’ 481 | load(memory_order __m = memory_order_seq_cst) const noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:481:25: note: ...following parameter 1 which has a default argument 481 | load(memory_order __m = memory_order_seq_cst) const noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:492:31: error: default argument missing for parameter 2 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::load(std::memory_order, int) const volatile’ 492 | load(memory_order __m = memory_order_seq_cst) const volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:492:25: note: ...following parameter 1 which has a default argument 492 | load(memory_order __m = memory_order_seq_cst) const volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:504:35: error: default argument missing for parameter 3 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::exchange(__int_type, std::memory_order, int)’ 504 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:504:29: note: ...following parameter 2 which has a default argument 504 | memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:512:35: error: default argument missing for parameter 3 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::exchange(__int_type, std::memory_order, int) volatile’ 512 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:512:29: note: ...following parameter 2 which has a default argument 512 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:540:48: error: default argument missing for parameter 4 of ‘bool std::__atomic_base<_IntTp>::compare_exchange_weak(__int_type&, __int_type, std::memory_order, int)’ 540 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:540:42: note: ...following parameter 3 which has a default argument 540 | memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:548:39: error: default argument missing for parameter 4 of ‘bool std::__atomic_base<_IntTp>::compare_exchange_weak(__int_type&, __int_type, std::memory_order, int) volatile’ 548 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:548:33: note: ...following parameter 3 which has a default argument 548 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:577:50: error: default argument missing for parameter 4 of ‘bool std::__atomic_base<_IntTp>::compare_exchange_strong(__int_type&, __int_type, std::memory_order, int)’ 577 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:577:44: note: ...following parameter 3 which has a default argument 577 | memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:585:37: error: default argument missing for parameter 4 of ‘bool std::__atomic_base<_IntTp>::compare_exchange_strong(__int_type&, __int_type, std::memory_order, int) volatile’ 585 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:585:31: note: ...following parameter 3 which has a default argument 585 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:617:36: error: default argument missing for parameter 3 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::fetch_add(__int_type, std::memory_order, int)’ 617 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:617:30: note: ...following parameter 2 which has a default argument 617 | memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:622:36: error: default argument missing for parameter 3 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::fetch_add(__int_type, std::memory_order, int) volatile’ 622 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:622:30: note: ...following parameter 2 which has a default argument 622 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:627:36: error: default argument missing for parameter 3 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::fetch_sub(__int_type, std::memory_order, int)’ 627 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:627:30: note: ...following parameter 2 which has a default argument 627 | memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:632:36: error: default argument missing for parameter 3 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::fetch_sub(__int_type, std::memory_order, int) volatile’ 632 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:632:30: note: ...following parameter 2 which has a default argument 632 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:637:36: error: default argument missing for parameter 3 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::fetch_and(__int_type, std::memory_order, int)’ 637 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:637:30: note: ...following parameter 2 which has a default argument 637 | memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:642:36: error: default argument missing for parameter 3 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::fetch_and(__int_type, std::memory_order, int) volatile’ 642 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:642:30: note: ...following parameter 2 which has a default argument 642 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:647:35: error: default argument missing for parameter 3 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::fetch_or(__int_type, std::memory_order, int)’ 647 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:647:29: note: ...following parameter 2 which has a default argument 647 | memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:652:35: error: default argument missing for parameter 3 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::fetch_or(__int_type, std::memory_order, int) volatile’ 652 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:652:29: note: ...following parameter 2 which has a default argument 652 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:657:36: error: default argument missing for parameter 3 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::fetch_xor(__int_type, std::memory_order, int)’ 657 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:657:30: note: ...following parameter 2 which has a default argument 657 | memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:662:36: error: default argument missing for parameter 3 of ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::fetch_xor(__int_type, std::memory_order, int) volatile’ 662 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:662:30: note: ...following parameter 2 which has a default argument 662 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h: In member function ‘void std::__atomic_base<_IntTp>::store(__int_type, std::memory_order, int)’: /usr/include/c++/12/bits/atomic_base.h:460:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 460 | __glibcxx_assert(__b != memory_order_acquire); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:461:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 461 | __glibcxx_assert(__b != memory_order_acq_rel); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:462:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 462 | __glibcxx_assert(__b != memory_order_consume); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h: In member function ‘void std::__atomic_base<_IntTp>::store(__int_type, std::memory_order, int) volatile’: /usr/include/c++/12/bits/atomic_base.h:473:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 473 | __glibcxx_assert(__b != memory_order_acquire); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:474:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 474 | __glibcxx_assert(__b != memory_order_acq_rel); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:475:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 475 | __glibcxx_assert(__b != memory_order_consume); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h: In member function ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::load(std::memory_order, int) const’: /usr/include/c++/12/bits/atomic_base.h:485:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 485 | __glibcxx_assert(__b != memory_order_release); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:486:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 486 | __glibcxx_assert(__b != memory_order_acq_rel); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h: In member function ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::load(std::memory_order, int) const volatile’: /usr/include/c++/12/bits/atomic_base.h:496:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 496 | __glibcxx_assert(__b != memory_order_release); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:497:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 497 | __glibcxx_assert(__b != memory_order_acq_rel); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h: At global scope: /usr/include/c++/12/bits/atomic_base.h:686:45: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 686 | __atomic_base(const __atomic_base&) = delete; | ^~~~~~ /usr/include/c++/12/bits/atomic_base.h:687:56: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 687 | __atomic_base& operator=(const __atomic_base&) = delete; | ^~~~~~ /usr/include/c++/12/bits/atomic_base.h:688:65: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 688 | __atomic_base& operator=(const __atomic_base&) volatile = delete; | ^~~~~~ /usr/include/c++/12/bits/atomic_base.h:787:32: error: ‘$’ is not a type 787 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:801:32: error: ‘$’ is not a type 801 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:813:31: error: ‘$’ is not a type 813 | load(memory_order __m = memory_order_seq_cst) const noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:824:31: error: ‘$’ is not a type 824 | load(memory_order __m = memory_order_seq_cst) const volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:836:35: error: ‘$’ is not a type 836 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:844:35: error: ‘$’ is not a type 844 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:920:36: error: ‘$’ is not a type 920 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:925:36: error: ‘$’ is not a type 925 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:930:36: error: ‘$’ is not a type 930 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:935:36: error: ‘$’ is not a type 935 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:787:32: error: default argument missing for parameter 3 of ‘void std::__atomic_base<_PTp*>::store(__pointer_type, std::memory_order, int)’ 787 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:787:26: note: ...following parameter 2 which has a default argument 787 | memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:801:32: error: default argument missing for parameter 3 of ‘void std::__atomic_base<_PTp*>::store(__pointer_type, std::memory_order, int) volatile’ 801 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:801:26: note: ...following parameter 2 which has a default argument 801 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:813:31: error: default argument missing for parameter 2 of ‘_PTp* std::__atomic_base<_PTp*>::load(std::memory_order, int) const’ 813 | load(memory_order __m = memory_order_seq_cst) const noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:813:25: note: ...following parameter 1 which has a default argument 813 | load(memory_order __m = memory_order_seq_cst) const noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:824:31: error: default argument missing for parameter 2 of ‘_PTp* std::__atomic_base<_PTp*>::load(std::memory_order, int) const volatile’ 824 | load(memory_order __m = memory_order_seq_cst) const volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:824:25: note: ...following parameter 1 which has a default argument 824 | load(memory_order __m = memory_order_seq_cst) const volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:836:35: error: default argument missing for parameter 3 of ‘_PTp* std::__atomic_base<_PTp*>::exchange(__pointer_type, std::memory_order, int)’ 836 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:836:29: note: ...following parameter 2 which has a default argument 836 | memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:844:35: error: default argument missing for parameter 3 of ‘_PTp* std::__atomic_base<_PTp*>::exchange(__pointer_type, std::memory_order, int) volatile’ 844 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:844:29: note: ...following parameter 2 which has a default argument 844 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:920:36: error: default argument missing for parameter 3 of ‘_PTp* std::__atomic_base<_PTp*>::fetch_add(std::ptrdiff_t, std::memory_order, int)’ 920 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:920:30: note: ...following parameter 2 which has a default argument 920 | memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:925:36: error: default argument missing for parameter 3 of ‘_PTp* std::__atomic_base<_PTp*>::fetch_add(std::ptrdiff_t, std::memory_order, int) volatile’ 925 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:925:30: note: ...following parameter 2 which has a default argument 925 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:930:36: error: default argument missing for parameter 3 of ‘_PTp* std::__atomic_base<_PTp*>::fetch_sub(std::ptrdiff_t, std::memory_order, int)’ 930 | memory_order __m = memory_order_seq_cst) noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:930:30: note: ...following parameter 2 which has a default argument 930 | memory_order __m = memory_order_seq_cst) noexcept | ^ /usr/include/c++/12/bits/atomic_base.h:935:36: error: default argument missing for parameter 3 of ‘_PTp* std::__atomic_base<_PTp*>::fetch_sub(std::ptrdiff_t, std::memory_order, int) volatile’ 935 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:935:30: note: ...following parameter 2 which has a default argument 935 | memory_order __m = memory_order_seq_cst) volatile noexcept | ^ /usr/include/c++/12/bits/atomic_base.h: In member function ‘void std::__atomic_base<_PTp*>::store(__pointer_type, std::memory_order, int)’: /usr/include/c++/12/bits/atomic_base.h:792:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 792 | __glibcxx_assert(__b != memory_order_acquire); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:793:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 793 | __glibcxx_assert(__b != memory_order_acq_rel); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:794:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 794 | __glibcxx_assert(__b != memory_order_consume); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h: In member function ‘void std::__atomic_base<_PTp*>::store(__pointer_type, std::memory_order, int) volatile’: /usr/include/c++/12/bits/atomic_base.h:805:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 805 | __glibcxx_assert(__b != memory_order_acquire); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:806:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 806 | __glibcxx_assert(__b != memory_order_acq_rel); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:807:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 807 | __glibcxx_assert(__b != memory_order_consume); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h: In member function ‘_PTp* std::__atomic_base<_PTp*>::load(std::memory_order, int) const’: /usr/include/c++/12/bits/atomic_base.h:817:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 817 | __glibcxx_assert(__b != memory_order_release); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:818:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 818 | __glibcxx_assert(__b != memory_order_acq_rel); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h: In member function ‘_PTp* std::__atomic_base<_PTp*>::load(std::memory_order, int) const volatile’: /usr/include/c++/12/bits/atomic_base.h:828:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 828 | __glibcxx_assert(__b != memory_order_release); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:829:9: error: ‘__glibcxx_constexpr_assert’ was not declared in this scope 829 | __glibcxx_assert(__b != memory_order_acq_rel); | ^~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/shared_ptr_atomic.h: At global scope: /usr/include/c++/12/bits/shared_ptr_atomic.h:49:37: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 49 | _Sp_locker(const _Sp_locker&) = delete; | ^~~~~~ /usr/include/c++/12/bits/shared_ptr_atomic.h:50:48: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 50 | _Sp_locker& operator=(const _Sp_locker&) = delete; | ^~~~~~ /usr/include/c++/12/backward/auto_ptr.h: In destructor ‘std::auto_ptr< >::~auto_ptr()’: /usr/include/c++/12/backward/auto_ptr.h:172:21: error: expected unqualified-id before ‘delete’ 172 | ~auto_ptr() { delete _M_ptr; } | ^~~~~~ /usr/include/c++/12/backward/auto_ptr.h: In member function ‘void std::auto_ptr< >::reset(element_type*)’: /usr/include/c++/12/backward/auto_ptr.h:246:13: error: expected unqualified-id before ‘delete’ 246 | delete _M_ptr; | ^~~~~~ /usr/include/c++/12/backward/auto_ptr.h: In member function ‘std::auto_ptr< >& std::auto_ptr< >::operator=(std::auto_ptr_ref<_Tp>)’: /usr/include/c++/12/backward/auto_ptr.h:274:13: error: expected unqualified-id before ‘delete’ 274 | delete _M_ptr; | ^~~~~~ /usr/include/c++/12/bits/stl_vector.h: At global scope: /usr/include/c++/12/bits/stl_vector.h:1849:50: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 1849 | _Storage& operator=(const _Storage&) = delete; | ^~~~~~ /usr/include/c++/12/bits/stl_bvector.h:1508:21: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 1508 | void data() = delete; | ^~~~~~ /usr/include/c++/12/bits/node_handle.h:182:46: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 182 | _Optional_alloc(_Optional_alloc&&) = delete; | ^~~~~~ /usr/include/c++/12/bits/node_handle.h:183:57: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 183 | _Optional_alloc& operator=(_Optional_alloc&&) = delete; | ^~~~~~ /usr/include/c++/12/bits/stl_tree.h:458:61: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘::’ token 458 | _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete; | ^~~~~~ /usr/include/relacy/atomic.hpp: In destructor ‘rl::generic_atomic::~generic_atomic()’: /usr/include/relacy/base.hpp:117:23: error: cannot convert ‘rl::debug_info’ to ‘int’ 117 | #define RL_INFO ::rl::debug_info(__FUNCTION__, __FILE__, __LINE__) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | rl::debug_info /usr/include/relacy/base.hpp:118:11: note: in expansion of macro ‘RL_INFO’ 118 | #define $ RL_INFO | ^~~~~~~ /usr/include/relacy/atomic.hpp:215:21: note: in expansion of macro ‘$’ 215 | sign_.check($); | ^ /usr/include/relacy/signature.hpp:45:33: note: initializing argument 1 of ‘void rl::signature::check(int) const [with unsigned int magic = 987654321]’ 45 | void check(debug_info_param info) const | ~~~~~~~~~~~~~~~~~^~~~ /usr/include/relacy/atomic.hpp: In member function ‘T rl::generic_atomic::debug_value() const’: /usr/include/relacy/base.hpp:117:23: error: cannot convert ‘rl::debug_info’ to ‘int’ 117 | #define RL_INFO ::rl::debug_info(__FUNCTION__, __FILE__, __LINE__) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | rl::debug_info /usr/include/relacy/base.hpp:118:11: note: in expansion of macro ‘RL_INFO’ 118 | #define $ RL_INFO | ^~~~~~~ /usr/include/relacy/atomic.hpp:221:21: note: in expansion of macro ‘$’ 221 | sign_.check($); | ^ /usr/include/relacy/signature.hpp:45:33: note: initializing argument 1 of ‘void rl::signature::check(int) const [with unsigned int magic = 987654321]’ 45 | void check(debug_info_param info) const | ~~~~~~~~~~~~~~~~~^~~~ /usr/include/relacy/atomic.hpp: In member function ‘rl::unpark_reason rl::generic_atomic::wait(rl::context&, bool, bool, rl::debug_info_param)’: /usr/include/relacy/atomic.hpp:419:21: error: cannot convert ‘const rl::debug_info’ to ‘int’ 419 | sign_.check(info); | ^~~~ | | | const rl::debug_info /usr/include/relacy/signature.hpp:45:33: note: initializing argument 1 of ‘void rl::signature::check(int) const [with unsigned int magic = 987654321]’ 45 | void check(debug_info_param info) const | ~~~~~~~~~~~~~~~~~^~~~ /usr/include/relacy/atomic.hpp: In member function ‘rl::thread_id_t rl::generic_atomic::wake(rl::context&, rl::thread_id_t, rl::debug_info_param)’: /usr/include/relacy/atomic.hpp:425:21: error: cannot convert ‘const rl::debug_info’ to ‘int’ 425 | sign_.check(info); | ^~~~ | | | const rl::debug_info /usr/include/relacy/signature.hpp:45:33: note: initializing argument 1 of ‘void rl::signature::check(int) const [with unsigned int magic = 987654321]’ 45 | void check(debug_info_param info) const | ~~~~~~~~~~~~~~~~~^~~~ /usr/include/relacy/atomic.hpp: In member function ‘T rl::generic_atomic::load_impl(rl::debug_info_param) const’: /usr/include/relacy/atomic.hpp:443:21: error: cannot convert ‘const rl::debug_info’ to ‘int’ 443 | sign_.check(info); | ^~~~ | | | const rl::debug_info /usr/include/relacy/signature.hpp:45:33: note: initializing argument 1 of ‘void rl::signature::check(int) const [with unsigned int magic = 987654321]’ 45 | void check(debug_info_param info) const | ~~~~~~~~~~~~~~~~~^~~~ /usr/include/relacy/atomic.hpp: In member function ‘void rl::generic_atomic::store_impl(T, rl::debug_info_param)’: /usr/include/relacy/atomic.hpp:476:21: error: cannot convert ‘const rl::debug_info’ to ‘int’ 476 | sign_.check(info); | ^~~~ | | | const rl::debug_info /usr/include/relacy/signature.hpp:45:33: note: initializing argument 1 of ‘void rl::signature::check(int) const [with unsigned int magic = 987654321]’ 45 | void check(debug_info_param info) const | ~~~~~~~~~~~~~~~~~^~~~ /usr/include/relacy/atomic.hpp: In member function ‘bool rl::generic_atomic::compare_swap_impl(T&, T, rl::debug_info_param)’: /usr/include/relacy/atomic.hpp:494:21: error: cannot convert ‘const rl::debug_info’ to ‘int’ 494 | sign_.check(info); | ^~~~ | | | const rl::debug_info /usr/include/relacy/signature.hpp:45:33: note: initializing argument 1 of ‘void rl::signature::check(int) const [with unsigned int magic = 987654321]’ 45 | void check(debug_info_param info) const | ~~~~~~~~~~~~~~~~~^~~~ /usr/include/relacy/atomic.hpp: In member function ‘T rl::generic_atomic::rmw_impl(rl::rmw_type_t, Y, rl::debug_info_param)’: /usr/include/relacy/atomic.hpp:554:21: error: cannot convert ‘const rl::debug_info’ to ‘int’ 554 | sign_.check(info); | ^~~~ | | | const rl::debug_info /usr/include/relacy/signature.hpp:45:33: note: initializing argument 1 of ‘void rl::signature::check(int) const [with unsigned int magic = 987654321]’ 45 | void check(debug_info_param info) const | ~~~~~~~~~~~~~~~~~^~~~ In file included from /tmp/HSK7d42Iyx/dump1.h:17: /usr/include/relacy/cli.hpp: In static member function ‘static void rl::Thread::MemoryBarrier(rl::debug_info_param)’: /usr/include/relacy/cli.hpp:29:9: error: ‘atomic_thread_fence’ was not declared in this scope; did you mean ‘std::atomic_thread_fence’? 29 | atomic_thread_fence(mo_seq_cst, info); | ^~~~~~~~~~~~~~~~~~~ | std::atomic_thread_fence /usr/include/c++/12/bits/atomic_base.h:132:3: note: ‘std::atomic_thread_fence’ declared here 132 | atomic_thread_fence(memory_order __m) noexcept | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/cli.hpp: In static member function ‘static void rl::Thread::SpinWait(int, rl::debug_info_param)’: /usr/include/relacy/cli.hpp:46:12: error: invalid use of incomplete type ‘class rl::context’ 46 | ctx().yield(iterations, info); | ~~~^~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ In file included from /tmp/HSK7d42Iyx/dump1.h:46: /usr/include/relacy/relacy_std.hpp: At global scope: /usr/include/relacy/relacy_std.hpp:22:15: error: ‘enum rl::memory_order’ conflicts with a previous declaration 22 | using rl::memory_order; | ^~~~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:78:16: note: previous declaration ‘enum std::memory_order’ 78 | typedef enum memory_order | ^~~~~~~~~~~~ /usr/include/relacy/relacy_std.hpp:23:15: error: ‘rl::memory_order rl::mo_relaxed’ conflicts with a previous declaration 23 | using rl::mo_relaxed; | ^~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:80:7: note: previous declaration ‘std::memory_order std::mo_relaxed’ 80 | memory_order_relaxed, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/relacy_std.hpp:24:15: error: ‘rl::memory_order rl::mo_consume’ conflicts with a previous declaration 24 | using rl::mo_consume; | ^~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:81:7: note: previous declaration ‘std::memory_order std::mo_consume’ 81 | memory_order_consume, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/relacy_std.hpp:25:15: error: ‘rl::memory_order rl::mo_acquire’ conflicts with a previous declaration 25 | using rl::mo_acquire; | ^~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:82:7: note: previous declaration ‘std::memory_order std::mo_acquire’ 82 | memory_order_acquire, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/relacy_std.hpp:26:15: error: ‘rl::memory_order rl::mo_release’ conflicts with a previous declaration 26 | using rl::mo_release; | ^~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:83:7: note: previous declaration ‘std::memory_order std::mo_release’ 83 | memory_order_release, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/relacy_std.hpp:27:15: error: ‘rl::memory_order rl::mo_acq_rel’ conflicts with a previous declaration 27 | using rl::mo_acq_rel; | ^~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:84:7: note: previous declaration ‘std::memory_order std::mo_acq_rel’ 84 | memory_order_acq_rel, | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/relacy_std.hpp:28:15: error: ‘rl::memory_order rl::mo_seq_cst’ conflicts with a previous declaration 28 | using rl::mo_seq_cst; | ^~~~~~~~~~ /usr/include/c++/12/bits/atomic_base.h:85:7: note: previous declaration ‘std::memory_order std::mo_seq_cst’ 85 | memory_order_seq_cst | ^~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/relacy_std.hpp:30:15: error: ‘template class rl::atomic’ conflicts with a previous declaration 30 | using rl::atomic; | ^~~~~~ /usr/include/c++/12/bits/atomic_base.h:162:12: note: previous declaration ‘template struct std::atomic’ 162 | struct atomic; | ^~~~~~ /usr/include/relacy/relacy_std.hpp:31:15: error: ‘atomic_thread_fence’ has not been declared in ‘rl’ 31 | using rl::atomic_thread_fence; | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/relacy_std.hpp:32:15: error: ‘atomic_signal_fence’ has not been declared in ‘rl’ 32 | using rl::atomic_signal_fence; | ^~~~~~~~~~~~~~~~~~~ /usr/include/relacy/context.hpp: In instantiation of ‘void rl::delete_impl(type*, int) [with type = thread_local_var]’: /usr/include/relacy/thread_local.hpp:169:16: required from here /usr/include/relacy/context.hpp:1117:11: error: invalid use of incomplete type ‘class rl::context’ 1117 | ctx().free(p, false, info); | ~~~~~~^~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/thread_local.hpp: In instantiation of ‘T rl::thread_local_var::get(int) [with T = void*]’: /usr/include/relacy/thread_local.hpp:179:49: required from here /usr/include/relacy/thread_local.hpp:140:31: error: invalid use of incomplete type ‘class rl::context’ 140 | if (ctx_seq_ != ctx().get_ctx_seq()) | ~~~~~~^~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/thread_local.hpp:142:30: error: invalid use of incomplete type ‘class rl::context’ 142 | ctx_seq_ = ctx().get_ctx_seq(); | ~~~~~~^~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/thread_local.hpp: In instantiation of ‘void rl::thread_local_var::set(T, int) [with T = void*]’: /usr/include/relacy/thread_local.hpp:184:42: required from here /usr/include/relacy/thread_local.hpp:130:31: error: invalid use of incomplete type ‘class rl::context’ 130 | if (ctx_seq_ != ctx().get_ctx_seq()) | ~~~~~~^~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/thread_local.hpp:132:30: error: invalid use of incomplete type ‘class rl::context’ 132 | ctx_seq_ = ctx().get_ctx_seq(); | ~~~~~~^~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/signature.hpp: In instantiation of ‘void rl::signature::check(int) const [with unsigned int magic = 865136298]’: /usr/include/relacy/stdlib/event.hpp:314:20: required from here /usr/include/relacy/signature.hpp:56:17: error: ‘fail’ was not declared in this scope 56 | fail(info); | ~~~~^~~~~~ /usr/include/relacy/stdlib/semaphore.hpp: In instantiation of ‘void rl::semaphore::init(bool, unsigned int, unsigned int, int) [with tag_t = rl::sem_tag_win]’: /usr/include/relacy/stdlib/windows.hpp:117:15: required from here /usr/include/relacy/stdlib/semaphore.hpp:302:9: error: invalid use of incomplete type ‘class rl::context’ 302 | RL_ASSERT_IMPL(0 == impl_, test_result_double_initialization_of_semaphore, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:304:19: error: invalid use of incomplete type ‘class rl::context’ 304 | impl_ = c.sema_ctor(spurious_wakeups, initial_count, max_count); | ~~^~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::init(bool, bool, bool, bool, int) [with type = rl::mutex_tag_win_cs]’: /usr/include/relacy/stdlib/windows.hpp:174:12: required from here /usr/include/relacy/stdlib/mutex.hpp:516:9: error: invalid use of incomplete type ‘class rl::context’ 516 | RL_ASSERT_IMPL(0 == impl_, test_result_double_initialization_of_mutex, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:518:19: error: invalid use of incomplete type ‘class rl::context’ 518 | impl_ = c.mutex_ctor(is_rw, is_exclusive_recursive, is_shared_recursive, failing_try_lock); | ~~^~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::deinit(int) [with type = rl::mutex_tag_win_cs]’: /usr/include/relacy/stdlib/windows.hpp:194:14: required from here /usr/include/relacy/stdlib/mutex.hpp:525:11: error: invalid use of incomplete type ‘class rl::context’ 525 | c.mutex_dtor(impl_); | ~~^~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::lock_exclusive(int) [with type = rl::mutex_tag_win_cs]’: /usr/include/relacy/stdlib/windows.hpp:199:22: required from here /usr/include/relacy/stdlib/mutex.hpp:546:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 546 | check(info)->lock_exclusive(false, info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘bool rl::generic_mutex::try_lock_exclusive(int) [with type = rl::mutex_tag_win_cs]’: /usr/include/relacy/stdlib/windows.hpp:204:33: required from here /usr/include/relacy/stdlib/mutex.hpp:551:29: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 551 | return check(info)->try_lock_exclusive(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::unlock_exclusive(int) [with type = rl::mutex_tag_win_cs]’: /usr/include/relacy/stdlib/windows.hpp:209:24: required from here /usr/include/relacy/stdlib/mutex.hpp:556:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 556 | check(info)->unlock_exclusive(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::init(bool, bool, bool, bool, int) [with type = rl::mutex_tag_win_srwl]’: /usr/include/relacy/stdlib/windows.hpp:217:15: required from here /usr/include/relacy/stdlib/mutex.hpp:516:9: error: invalid use of incomplete type ‘class rl::context’ 516 | RL_ASSERT_IMPL(0 == impl_, test_result_double_initialization_of_mutex, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:518:19: error: invalid use of incomplete type ‘class rl::context’ 518 | impl_ = c.mutex_ctor(is_rw, is_exclusive_recursive, is_shared_recursive, failing_try_lock); | ~~^~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::lock_exclusive(int) [with type = rl::mutex_tag_win_srwl]’: /usr/include/relacy/stdlib/windows.hpp:222:25: required from here /usr/include/relacy/stdlib/mutex.hpp:546:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 546 | check(info)->lock_exclusive(false, info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::lock_shared(int) [with type = rl::mutex_tag_win_srwl]’: /usr/include/relacy/stdlib/windows.hpp:227:22: required from here /usr/include/relacy/stdlib/mutex.hpp:561:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 561 | check(info)->lock_shared(info); | ~~~~~~~~~~~~~^~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::unlock_exclusive(int) [with type = rl::mutex_tag_win_srwl]’: /usr/include/relacy/stdlib/windows.hpp:232:27: required from here /usr/include/relacy/stdlib/mutex.hpp:556:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 556 | check(info)->unlock_exclusive(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::unlock_shared(int) [with type = rl::mutex_tag_win_srwl]’: /usr/include/relacy/stdlib/windows.hpp:237:24: required from here /usr/include/relacy/stdlib/mutex.hpp:571:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 571 | check(info)->unlock_shared(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::deinit(int) [with type = rl::mutex_tag_win_srwl]’: /usr/include/relacy/stdlib/windows.hpp:243:17: required from here /usr/include/relacy/stdlib/mutex.hpp:525:11: error: invalid use of incomplete type ‘class rl::context’ 525 | c.mutex_dtor(impl_); | ~~^~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::init(bool, bool, bool, bool, int) [with type = rl::mutex_tag_win_mutex]’: /usr/include/relacy/stdlib/windows.hpp:255:14: required from here /usr/include/relacy/stdlib/mutex.hpp:516:9: error: invalid use of incomplete type ‘class rl::context’ 516 | RL_ASSERT_IMPL(0 == impl_, test_result_double_initialization_of_mutex, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:518:19: error: invalid use of incomplete type ‘class rl::context’ 518 | impl_ = c.mutex_ctor(is_rw, is_exclusive_recursive, is_shared_recursive, failing_try_lock); | ~~^~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::lock_exclusive(int) [with type = rl::mutex_tag_win_mutex]’: /usr/include/relacy/stdlib/windows.hpp:257:28: required from here /usr/include/relacy/stdlib/mutex.hpp:546:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 546 | check(info)->lock_exclusive(false, info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::unlock_exclusive(int) [with type = rl::mutex_tag_win_mutex]’: /usr/include/relacy/stdlib/windows.hpp:263:54: required from here /usr/include/relacy/stdlib/mutex.hpp:556:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 556 | check(info)->unlock_exclusive(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp: In instantiation of ‘void rl::condvar::init(bool, int) [with tag_t = rl::condvar_tag_win]’: /usr/include/relacy/stdlib/windows.hpp:276:13: required from here /usr/include/relacy/stdlib/condition_variable.hpp:247:9: error: invalid use of incomplete type ‘class rl::context’ 247 | RL_ASSERT_IMPL(0 == impl_, test_result_double_initialization_of_condvar, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:249:19: error: invalid use of incomplete type ‘class rl::context’ 249 | impl_ = c.condvar_ctor(allow_spurious_wakeups); | ~~^~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp: In instantiation of ‘void rl::condvar::deinit(int) [with tag_t = rl::condvar_tag_win]’: /usr/include/relacy/stdlib/windows.hpp:305:15: required from here /usr/include/relacy/stdlib/condition_variable.hpp:256:11: error: invalid use of incomplete type ‘class rl::context’ 256 | c.condvar_dtor(impl_); | ~~^~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp: In instantiation of ‘void rl::semaphore::init(bool, unsigned int, unsigned int, int) [with tag_t = rl::sem_tag_pthread]’: /usr/include/relacy/stdlib/pthread.hpp:71:15: required from here /usr/include/relacy/stdlib/semaphore.hpp:302:9: error: invalid use of incomplete type ‘class rl::context’ 302 | RL_ASSERT_IMPL(0 == impl_, test_result_double_initialization_of_semaphore, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp:304:19: error: invalid use of incomplete type ‘class rl::context’ 304 | impl_ = c.sema_ctor(spurious_wakeups, initial_count, max_count); | ~~^~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp: In instantiation of ‘void rl::semaphore::deinit(int) [with tag_t = rl::sem_tag_pthread]’: /usr/include/relacy/stdlib/pthread.hpp:77:17: required from here /usr/include/relacy/stdlib/semaphore.hpp:311:11: error: invalid use of incomplete type ‘class rl::context’ 311 | c.sema_dtor(impl_); | ~~^~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::init(bool, bool, bool, bool, int) [with type = rl::mutex_tag_pthread_mtx]’: /usr/include/relacy/stdlib/pthread.hpp:180:12: required from here /usr/include/relacy/stdlib/mutex.hpp:516:9: error: invalid use of incomplete type ‘class rl::context’ 516 | RL_ASSERT_IMPL(0 == impl_, test_result_double_initialization_of_mutex, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:518:19: error: invalid use of incomplete type ‘class rl::context’ 518 | impl_ = c.mutex_ctor(is_rw, is_exclusive_recursive, is_shared_recursive, failing_try_lock); | ~~^~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::deinit(int) [with type = rl::mutex_tag_pthread_mtx]’: /usr/include/relacy/stdlib/pthread.hpp:186:14: required from here /usr/include/relacy/stdlib/mutex.hpp:525:11: error: invalid use of incomplete type ‘class rl::context’ 525 | c.mutex_dtor(impl_); | ~~^~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::lock_exclusive(int) [with type = rl::mutex_tag_pthread_mtx]’: /usr/include/relacy/stdlib/pthread.hpp:192:22: required from here /usr/include/relacy/stdlib/mutex.hpp:546:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 546 | check(info)->lock_exclusive(false, info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘bool rl::generic_mutex::lock_exclusive_timed(int) [with type = rl::mutex_tag_pthread_mtx]’: /usr/include/relacy/stdlib/pthread.hpp:199:38: required from here /usr/include/relacy/stdlib/mutex.hpp:536:29: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 536 | return check(info)->lock_exclusive(true, info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘bool rl::generic_mutex::try_lock_exclusive(int) [with type = rl::mutex_tag_pthread_mtx]’: /usr/include/relacy/stdlib/pthread.hpp:205:33: required from here /usr/include/relacy/stdlib/mutex.hpp:551:29: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 551 | return check(info)->try_lock_exclusive(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::unlock_exclusive(int) [with type = rl::mutex_tag_pthread_mtx]’: /usr/include/relacy/stdlib/pthread.hpp:210:24: required from here /usr/include/relacy/stdlib/mutex.hpp:556:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 556 | check(info)->unlock_exclusive(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::init(bool, bool, bool, bool, int) [with type = rl::mutex_tag_pthread_rwlock]’: /usr/include/relacy/stdlib/pthread.hpp:221:15: required from here /usr/include/relacy/stdlib/mutex.hpp:516:9: error: invalid use of incomplete type ‘class rl::context’ 516 | RL_ASSERT_IMPL(0 == impl_, test_result_double_initialization_of_mutex, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:518:19: error: invalid use of incomplete type ‘class rl::context’ 518 | impl_ = c.mutex_ctor(is_rw, is_exclusive_recursive, is_shared_recursive, failing_try_lock); | ~~^~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::deinit(int) [with type = rl::mutex_tag_pthread_rwlock]’: /usr/include/relacy/stdlib/pthread.hpp:227:17: required from here /usr/include/relacy/stdlib/mutex.hpp:525:11: error: invalid use of incomplete type ‘class rl::context’ 525 | c.mutex_dtor(impl_); | ~~^~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::lock_shared(int) [with type = rl::mutex_tag_pthread_rwlock]’: /usr/include/relacy/stdlib/pthread.hpp:233:22: required from here /usr/include/relacy/stdlib/mutex.hpp:561:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 561 | check(info)->lock_shared(info); | ~~~~~~~~~~~~~^~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘bool rl::generic_mutex::try_lock_shared(int) [with type = rl::mutex_tag_pthread_rwlock]’: /usr/include/relacy/stdlib/pthread.hpp:239:37: required from here /usr/include/relacy/stdlib/mutex.hpp:566:29: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 566 | return check(info)->try_lock_shared(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::lock_exclusive(int) [with type = rl::mutex_tag_pthread_rwlock]’: /usr/include/relacy/stdlib/pthread.hpp:245:25: required from here /usr/include/relacy/stdlib/mutex.hpp:546:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 546 | check(info)->lock_exclusive(false, info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘bool rl::generic_mutex::try_lock_exclusive(int) [with type = rl::mutex_tag_pthread_rwlock]’: /usr/include/relacy/stdlib/pthread.hpp:251:40: required from here /usr/include/relacy/stdlib/mutex.hpp:551:29: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 551 | return check(info)->try_lock_exclusive(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::unlock_exclusive_or_shared(int) [with type = rl::mutex_tag_pthread_rwlock]’: /usr/include/relacy/stdlib/pthread.hpp:257:37: required from here /usr/include/relacy/stdlib/mutex.hpp:576:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 576 | check(info)->unlock_exclusive_or_shared(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp: In instantiation of ‘void rl::condvar::init(bool, int) [with tag_t = rl::condvar_tag_pthread]’: /usr/include/relacy/stdlib/pthread.hpp:270:13: required from here /usr/include/relacy/stdlib/condition_variable.hpp:247:9: error: invalid use of incomplete type ‘class rl::context’ 247 | RL_ASSERT_IMPL(0 == impl_, test_result_double_initialization_of_condvar, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp:249:19: error: invalid use of incomplete type ‘class rl::context’ 249 | impl_ = c.condvar_ctor(allow_spurious_wakeups); | ~~^~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp: In instantiation of ‘void rl::condvar::deinit(int) [with tag_t = rl::condvar_tag_pthread]’: /usr/include/relacy/stdlib/pthread.hpp:276:15: required from here /usr/include/relacy/stdlib/condition_variable.hpp:256:11: error: invalid use of incomplete type ‘class rl::context’ 256 | c.condvar_dtor(impl_); | ~~^~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/thread_local.hpp: In instantiation of ‘rl::thread_local_var::~thread_local_var() [with T = void*]’: /usr/include/relacy/context.hpp:1116:13: required from ‘void rl::delete_impl(type*, int) [with type = thread_local_var]’ /usr/include/relacy/thread_local.hpp:169:16: required from here /usr/include/relacy/thread_local.hpp:117:43: error: invalid use of incomplete type ‘class rl::context’ 117 | if (is_ctx() && ctx_seq_ == ctx().get_ctx_seq()) | ~~~~~~^~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp: In instantiation of ‘rl::sema_data* rl::semaphore::check(int) [with tag_t = rl::sem_tag_win]’: /usr/include/relacy/stdlib/semaphore.hpp:329:9: required from ‘bool rl::semaphore::post(unsigned int, unsigned int&, int) [with tag_t = rl::sem_tag_win]’ /usr/include/relacy/stdlib/windows.hpp:132:67: required from here /usr/include/relacy/stdlib/semaphore.hpp:345:9: error: invalid use of incomplete type ‘class rl::context’ 345 | RL_ASSERT_IMPL(impl_, test_result_usage_of_non_initialized_semaphore, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘rl::generic_mutex_data* rl::generic_mutex::check(int) [with type = rl::mutex_tag_win_cs]’: /usr/include/relacy/stdlib/mutex.hpp:524:9: required from ‘void rl::generic_mutex::deinit(int) [with type = rl::mutex_tag_win_cs]’ /usr/include/relacy/stdlib/windows.hpp:194:14: required from here /usr/include/relacy/stdlib/mutex.hpp:585:9: error: invalid use of incomplete type ‘class rl::context’ 585 | RL_ASSERT_IMPL(impl_, test_result_usage_of_non_initialized_mutex, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘rl::generic_mutex_data* rl::generic_mutex::check(int) [with type = rl::mutex_tag_win_srwl]’: /usr/include/relacy/stdlib/mutex.hpp:546:9: required from ‘void rl::generic_mutex::lock_exclusive(int) [with type = rl::mutex_tag_win_srwl]’ /usr/include/relacy/stdlib/windows.hpp:222:25: required from here /usr/include/relacy/stdlib/mutex.hpp:585:9: error: invalid use of incomplete type ‘class rl::context’ 585 | RL_ASSERT_IMPL(impl_, test_result_usage_of_non_initialized_mutex, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘rl::generic_mutex_data* rl::generic_mutex::check(int) [with type = rl::mutex_tag_win_mutex]’: /usr/include/relacy/stdlib/mutex.hpp:546:9: required from ‘void rl::generic_mutex::lock_exclusive(int) [with type = rl::mutex_tag_win_mutex]’ /usr/include/relacy/stdlib/windows.hpp:257:28: required from here /usr/include/relacy/stdlib/mutex.hpp:585:9: error: invalid use of incomplete type ‘class rl::context’ 585 | RL_ASSERT_IMPL(impl_, test_result_usage_of_non_initialized_mutex, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp: In instantiation of ‘void rl::condvar::check(int) [with tag_t = rl::condvar_tag_win]’: /usr/include/relacy/stdlib/condition_variable.hpp:275:9: required from ‘rl::sema_wakeup_reason rl::condvar::wait(lock_t&, bool, int) [with lock_t = rl::generic_mutex; tag_t = rl::condvar_tag_win]’ /usr/include/relacy/stdlib/windows.hpp:281:13: required from here /usr/include/relacy/stdlib/condition_variable.hpp:293:9: error: invalid use of incomplete type ‘class rl::context’ 293 | RL_ASSERT_IMPL(impl_, test_result_usage_of_non_initialized_condvar, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp: In instantiation of ‘rl::sema_data* rl::semaphore::check(int) [with tag_t = rl::sem_tag_pthread]’: /usr/include/relacy/stdlib/semaphore.hpp:310:9: required from ‘void rl::semaphore::deinit(int) [with tag_t = rl::sem_tag_pthread]’ /usr/include/relacy/stdlib/pthread.hpp:77:17: required from here /usr/include/relacy/stdlib/semaphore.hpp:345:9: error: invalid use of incomplete type ‘class rl::context’ 345 | RL_ASSERT_IMPL(impl_, test_result_usage_of_non_initialized_semaphore, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘rl::generic_mutex_data* rl::generic_mutex::check(int) [with type = rl::mutex_tag_pthread_mtx]’: /usr/include/relacy/stdlib/mutex.hpp:524:9: required from ‘void rl::generic_mutex::deinit(int) [with type = rl::mutex_tag_pthread_mtx]’ /usr/include/relacy/stdlib/pthread.hpp:186:14: required from here /usr/include/relacy/stdlib/mutex.hpp:585:9: error: invalid use of incomplete type ‘class rl::context’ 585 | RL_ASSERT_IMPL(impl_, test_result_usage_of_non_initialized_mutex, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘rl::generic_mutex_data* rl::generic_mutex::check(int) [with type = rl::mutex_tag_pthread_rwlock]’: /usr/include/relacy/stdlib/mutex.hpp:524:9: required from ‘void rl::generic_mutex::deinit(int) [with type = rl::mutex_tag_pthread_rwlock]’ /usr/include/relacy/stdlib/pthread.hpp:227:17: required from here /usr/include/relacy/stdlib/mutex.hpp:585:9: error: invalid use of incomplete type ‘class rl::context’ 585 | RL_ASSERT_IMPL(impl_, test_result_usage_of_non_initialized_mutex, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/condition_variable.hpp: In instantiation of ‘void rl::condvar::check(int) [with tag_t = rl::condvar_tag_pthread]’: /usr/include/relacy/stdlib/condition_variable.hpp:255:9: required from ‘void rl::condvar::deinit(int) [with tag_t = rl::condvar_tag_pthread]’ /usr/include/relacy/stdlib/pthread.hpp:276:15: required from here /usr/include/relacy/stdlib/condition_variable.hpp:293:9: error: invalid use of incomplete type ‘class rl::context’ 293 | RL_ASSERT_IMPL(impl_, test_result_usage_of_non_initialized_condvar, "", info); | ^~~~~~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘rl::sema_wakeup_reason rl::generic_mutex::wait(bool, bool, int) [with type = rl::mutex_tag_pthread_mtx]’: /usr/include/relacy/stdlib/mutex.hpp:590:32: required from here /usr/include/relacy/stdlib/mutex.hpp:594:30: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 594 | if (check(info)->try_lock_exclusive(info)) | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:601:30: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 601 | if (check(info)->lock_exclusive(is_timed, info)) | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘bool rl::generic_mutex::signal(int) [with type = rl::mutex_tag_pthread_mtx]’: /usr/include/relacy/stdlib/mutex.hpp:609:18: required from here /usr/include/relacy/stdlib/mutex.hpp:611:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 611 | check(info)->unlock_exclusive(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘bool rl::generic_mutex::is_signaled(int) [with type = rl::mutex_tag_pthread_mtx]’: /usr/include/relacy/stdlib/mutex.hpp:615:18: required from here /usr/include/relacy/stdlib/mutex.hpp:617:29: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 617 | return check(info)->is_signaled(info); | ~~~~~~~~~~~~~^~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::memory_acquire(int) [with type = rl::mutex_tag_pthread_mtx]’: /usr/include/relacy/stdlib/mutex.hpp:620:18: required from here /usr/include/relacy/stdlib/mutex.hpp:622:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 622 | check(info)->memory_acquire(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void* rl::generic_mutex::prepare_wait(int) [with type = rl::mutex_tag_pthread_mtx]’: /usr/include/relacy/stdlib/mutex.hpp:625:19: required from here /usr/include/relacy/stdlib/mutex.hpp:627:29: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 627 | return check(info)->prepare_wait(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::deinit(int) [with type = rl::mutex_tag_win_mutex]’: /usr/include/relacy/stdlib/mutex.hpp:521:10: required from here /usr/include/relacy/stdlib/mutex.hpp:525:11: error: invalid use of incomplete type ‘class rl::context’ 525 | c.mutex_dtor(impl_); | ~~^~~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘rl::sema_wakeup_reason rl::generic_mutex::wait(bool, bool, int) [with type = rl::mutex_tag_win_mutex]’: /usr/include/relacy/stdlib/mutex.hpp:590:32: required from here /usr/include/relacy/stdlib/mutex.hpp:594:30: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 594 | if (check(info)->try_lock_exclusive(info)) | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:601:30: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 601 | if (check(info)->lock_exclusive(is_timed, info)) | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘bool rl::generic_mutex::signal(int) [with type = rl::mutex_tag_win_mutex]’: /usr/include/relacy/stdlib/mutex.hpp:609:18: required from here /usr/include/relacy/stdlib/mutex.hpp:611:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 611 | check(info)->unlock_exclusive(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘bool rl::generic_mutex::is_signaled(int) [with type = rl::mutex_tag_win_mutex]’: /usr/include/relacy/stdlib/mutex.hpp:615:18: required from here /usr/include/relacy/stdlib/mutex.hpp:617:29: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 617 | return check(info)->is_signaled(info); | ~~~~~~~~~~~~~^~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void rl::generic_mutex::memory_acquire(int) [with type = rl::mutex_tag_win_mutex]’: /usr/include/relacy/stdlib/mutex.hpp:620:18: required from here /usr/include/relacy/stdlib/mutex.hpp:622:22: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 622 | check(info)->memory_acquire(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp: In instantiation of ‘void* rl::generic_mutex::prepare_wait(int) [with type = rl::mutex_tag_win_mutex]’: /usr/include/relacy/stdlib/mutex.hpp:625:19: required from here /usr/include/relacy/stdlib/mutex.hpp:627:29: error: invalid use of incomplete type ‘struct rl::generic_mutex_data’ 627 | return check(info)->prepare_wait(info); | ~~~~~~~~~~~~~^~~~~~~~~~~~ /usr/include/relacy/stdlib/mutex.hpp:31:8: note: forward declaration of ‘struct rl::generic_mutex_data’ 31 | struct generic_mutex_data : nocopy<> | ^~~~~~~~~~~~~~~~~~ /usr/include/relacy/stdlib/semaphore.hpp: In instantiation of ‘void rl::semaphore::deinit(int) [with tag_t = rl::sem_tag_win]’: /usr/include/relacy/stdlib/semaphore.hpp:307:10: required from here /usr/include/relacy/stdlib/semaphore.hpp:311:11: error: invalid use of incomplete type ‘class rl::context’ 311 | c.sema_dtor(impl_); | ~~^~~~~~~~~ /usr/include/relacy/context_base.hpp:93:7: note: forward declaration of ‘class rl::context’ 93 | class context | ^~~~~~~