Temporary header file '/tmp/f74OwtFYU8/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/modsecurity/actions/action.h" #include "/usr/include/modsecurity/anchored_set_variable.h" #include "/usr/include/modsecurity/anchored_set_variable_translation_proxy.h" #include "/usr/include/modsecurity/anchored_variable.h" #include "/usr/include/modsecurity/audit_log.h" #include "/usr/include/modsecurity/collection/collection.h" #include "/usr/include/modsecurity/collection/collections.h" #include "/usr/include/modsecurity/debug_log.h" #include "/usr/include/modsecurity/intervention.h" #include "/usr/include/modsecurity/modsecurity.h" #include "/usr/include/modsecurity/reading_logs_via_rule_message.h" #include "/usr/include/modsecurity/rule.h" #include "/usr/include/modsecurity/rule_marker.h" #include "/usr/include/modsecurity/rule_message.h" #include "/usr/include/modsecurity/rule_unconditional.h" #include "/usr/include/modsecurity/rule_with_actions.h" #include "/usr/include/modsecurity/rule_with_operator.h" #include "/usr/include/modsecurity/rules.h" #include "/usr/include/modsecurity/rules_exceptions.h" #include "/usr/include/modsecurity/rules_set.h" #include "/usr/include/modsecurity/rules_set_phases.h" #include "/usr/include/modsecurity/rules_set_properties.h" #include "/usr/include/modsecurity/transaction.h" #include "/usr/include/modsecurity/variable_origin.h" #include "/usr/include/modsecurity/variable_value.h" // add namespaces namespace modsecurity{typedef int tmp_add_type_1;} modsecurity::tmp_add_type_1 tmp_add_func_1(){return 0;}; namespace modsecurity{namespace actions{typedef int tmp_add_type_2;}} modsecurity::actions::tmp_add_type_2 tmp_add_func_2(){return 0;}; namespace modsecurity{namespace actions{namespace disruptive{typedef int tmp_add_type_3;}}} modsecurity::actions::disruptive::tmp_add_type_3 tmp_add_func_3(){return 0;}; namespace modsecurity{namespace actions{namespace transformations{typedef int tmp_add_type_4;}}} modsecurity::actions::transformations::tmp_add_type_4 tmp_add_func_4(){return 0;}; namespace modsecurity{namespace collection{typedef int tmp_add_type_5;}} modsecurity::collection::tmp_add_type_5 tmp_add_func_5(){return 0;}; namespace modsecurity{namespace intervention{typedef int tmp_add_type_6;}} modsecurity::intervention::tmp_add_type_6 tmp_add_func_6(){return 0;}; namespace modsecurity{namespace operators{typedef int tmp_add_type_7;}} modsecurity::operators::tmp_add_type_7 tmp_add_func_7(){return 0;}; namespace modsecurity{namespace Parser{typedef int tmp_add_type_8;}} modsecurity::Parser::tmp_add_type_8 tmp_add_func_8(){return 0;}; namespace modsecurity{namespace RequestBodyProcessor{typedef int tmp_add_type_9;}} modsecurity::RequestBodyProcessor::tmp_add_type_9 tmp_add_func_9(){return 0;}; namespace modsecurity{namespace Utils{typedef int tmp_add_type_10;}} modsecurity::Utils::tmp_add_type_10 tmp_add_func_10(){return 0;}; namespace modsecurity{namespace variables{typedef int tmp_add_type_11;}} modsecurity::variables::tmp_add_type_11 tmp_add_func_11(){return 0;}; namespace modsecurity{namespace audit_log{typedef int tmp_add_type_12;}} modsecurity::audit_log::tmp_add_type_12 tmp_add_func_12(){return 0;}; namespace modsecurity{namespace audit_log{namespace writer{typedef int tmp_add_type_13;}}} modsecurity::audit_log::writer::tmp_add_type_13 tmp_add_func_13(){return 0;}; namespace modsecurity{namespace debug_log{typedef int tmp_add_type_14;}} modsecurity::debug_log::tmp_add_type_14 tmp_add_func_14(){return 0;}; // add classes ReadingLogsViaRuleMessage* tmp_add_class_0; _G_fpos64_t* tmp_add_class_1; _G_fpos_t* tmp_add_class_2; _IO_cookie_io_functions_t* tmp_add_class_3; data_ms* tmp_add_class_4; The GCC parameters: gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/f74OwtFYU8/dump1.h" In file included from /tmp/f74OwtFYU8/dump1.h:22: /usr/include/modsecurity/reading_logs_via_rule_message.h: In member function ‘int ReadingLogsViaRuleMessage::process()’: /usr/include/modsecurity/reading_logs_via_rule_message.h:143:43: error: invalid use of incomplete type ‘class modsecurity::RulesSet’ 143 | rules = new modsecurity::RulesSet(); | ^ In file included from /usr/include/modsecurity/rule.h:28, from /usr/include/modsecurity/actions/action.h:25, from /tmp/f74OwtFYU8/dump1.h:12: /usr/include/modsecurity/transaction.h:105:7: note: forward declaration of ‘class modsecurity::RulesSet’ 105 | class RulesSet; | ^~~~~~~~ /usr/include/modsecurity/reading_logs_via_rule_message.h:144:18: error: invalid use of incomplete type ‘class modsecurity::RulesSet’ 144 | if (rules->loadFromUri(m_rules.c_str()) < 0) { | ^~ /usr/include/modsecurity/transaction.h:105:7: note: forward declaration of ‘class modsecurity::RulesSet’ 105 | class RulesSet; | ^~~~~~~~ /usr/include/modsecurity/reading_logs_via_rule_message.h:146:31: error: invalid use of incomplete type ‘class modsecurity::RulesSet’ 146 | std::cout << rules->m_parserError.str() << std::endl; | ^~ /usr/include/modsecurity/transaction.h:105:7: note: forward declaration of ‘class modsecurity::RulesSet’ 105 | class RulesSet; | ^~~~~~~~