Temporary header file '/tmp/wsK4_UXtlb/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/luabind/adopt_policy.hpp"
  #include "/usr/include/luabind/back_reference.hpp"
  #include "/usr/include/luabind/back_reference_fwd.hpp"
  #include "/usr/include/luabind/build_information.hpp"
  #include "/usr/include/luabind/class.hpp"
  #include "/usr/include/luabind/class_info.hpp"
  #include "/usr/include/luabind/config.hpp"
  #include "/usr/include/luabind/container_policy.hpp"
  #include "/usr/include/luabind/copy_policy.hpp"
  #include "/usr/include/luabind/dependency_policy.hpp"
  #include "/usr/include/luabind/detail/call.hpp"
  #include "/usr/include/luabind/detail/call_function.hpp"
  #include "/usr/include/luabind/detail/call_member.hpp"
  #include "/usr/include/luabind/detail/call_operator_iterate.hpp"
  #include "/usr/include/luabind/detail/class_registry.hpp"
  #include "/usr/include/luabind/detail/class_rep.hpp"
  #include "/usr/include/luabind/detail/constructor.hpp"
  #include "/usr/include/luabind/detail/convert_to_lua.hpp"
  #include "/usr/include/luabind/detail/debug.hpp"
  #include "/usr/include/luabind/detail/decorate_type.hpp"
  #include "/usr/include/luabind/detail/deduce_signature.hpp"
  #include "/usr/include/luabind/detail/enum_maker.hpp"
  #include "/usr/include/luabind/detail/format_signature.hpp"
  #include "/usr/include/luabind/detail/garbage_collector.hpp"
  #include "/usr/include/luabind/detail/has_get_pointer.hpp"
  #include "/usr/include/luabind/detail/inheritance.hpp"
  #include "/usr/include/luabind/detail/instance_holder.hpp"
  #include "/usr/include/luabind/detail/link_compatibility.hpp"
  #include "/usr/include/luabind/detail/make_instance.hpp"
  #include "/usr/include/luabind/detail/most_derived.hpp"
  #include "/usr/include/luabind/detail/object.hpp"
  #include "/usr/include/luabind/detail/object_call.hpp"
  #include "/usr/include/luabind/detail/object_rep.hpp"
  #include "/usr/include/luabind/detail/operator_id.hpp"
  #include "/usr/include/luabind/detail/other.hpp"
  #include "/usr/include/luabind/detail/pcall.hpp"
  #include "/usr/include/luabind/detail/pointee_sizeof.hpp"
  #include "/usr/include/luabind/detail/policy.hpp"
  #include "/usr/include/luabind/detail/primitives.hpp"
  #include "/usr/include/luabind/detail/property.hpp"
  #include "/usr/include/luabind/detail/signature_match.hpp"
  #include "/usr/include/luabind/detail/stack_utils.hpp"
  #include "/usr/include/luabind/detail/typetraits.hpp"
  #include "/usr/include/luabind/detail/yes_no.hpp"
  #include "/usr/include/luabind/discard_result_policy.hpp"
  #include "/usr/include/luabind/error.hpp"
  #include "/usr/include/luabind/error_callback_fun.hpp"
  #include "/usr/include/luabind/exception_handler.hpp"
  #include "/usr/include/luabind/from_stack.hpp"
  #include "/usr/include/luabind/function.hpp"
  #include "/usr/include/luabind/function_converter.hpp"
  #include "/usr/include/luabind/function_introspection.hpp"
  #include "/usr/include/luabind/get_main_thread.hpp"
  #include "/usr/include/luabind/get_pointer.hpp"
  #include "/usr/include/luabind/handle.hpp"
  #include "/usr/include/luabind/intrusive_ptr_converter.hpp"
  #include "/usr/include/luabind/iterator_policy.hpp"
  #include "/usr/include/luabind/lua_include.hpp"
  #include "/usr/include/luabind/lua_state_fwd.hpp"
  #include "/usr/include/luabind/luabind.hpp"
  #include "/usr/include/luabind/make_function.hpp"
  #include "/usr/include/luabind/nil.hpp"
  #include "/usr/include/luabind/no_dependency.hpp"
  #include "/usr/include/luabind/object.hpp"
  #include "/usr/include/luabind/object_fwd.hpp"
  #include "/usr/include/luabind/open.hpp"
  #include "/usr/include/luabind/operator.hpp"
  #include "/usr/include/luabind/out_value_policy.hpp"
  #include "/usr/include/luabind/prefix.hpp"
  #include "/usr/include/luabind/raw_policy.hpp"
  #include "/usr/include/luabind/return_reference_to_policy.hpp"
  #include "/usr/include/luabind/scope.hpp"
  #include "/usr/include/luabind/set_package_preload.hpp"
  #include "/usr/include/luabind/shared_ptr_converter.hpp"
  #include "/usr/include/luabind/stack.hpp"
  #include "/usr/include/luabind/std_shared_ptr_converter.hpp"
  #include "/usr/include/luabind/tag_function.hpp"
  #include "/usr/include/luabind/typeid.hpp"
  #include "/usr/include/luabind/value_wrapper.hpp"
  #include "/usr/include/luabind/version.hpp"
  #include "/usr/include/luabind/weak_ref.hpp"
  #include "/usr/include/luabind/wrapper_base.hpp"
  #include "/usr/include/luabind/yield_policy.hpp"

  // add namespaces
  namespace boost{typedef int tmp_add_type_1;}
  boost::tmp_add_type_1 tmp_add_func_1(){return 0;};
  namespace boost{namespace core{typedef int tmp_add_type_2;}}
  boost::core::tmp_add_type_2 tmp_add_func_2(){return 0;};
  namespace boost{namespace detail{typedef int tmp_add_type_3;}}
  boost::detail::tmp_add_type_3 tmp_add_func_3(){return 0;};
  namespace boost{namespace iterators{typedef int tmp_add_type_4;}}
  boost::iterators::tmp_add_type_4 tmp_add_func_4(){return 0;};
  namespace boost{namespace iterators{namespace detail{typedef int tmp_add_type_5;}}}
  boost::iterators::detail::tmp_add_type_5 tmp_add_func_5(){return 0;};
  namespace boost{namespace movelib{typedef int tmp_add_type_6;}}
  boost::movelib::tmp_add_type_6 tmp_add_func_6(){return 0;};
  namespace boost{namespace mpl{typedef int tmp_add_type_7;}}
  boost::mpl::tmp_add_type_7 tmp_add_func_7(){return 0;};
  namespace boost{namespace mpl{namespace aux{typedef int tmp_add_type_8;}}}
  boost::mpl::aux::tmp_add_type_8 tmp_add_func_8(){return 0;};
  namespace boost{namespace mpl{namespace placeholders{typedef int tmp_add_type_9;}}}
  boost::mpl::placeholders::tmp_add_type_9 tmp_add_func_9(){return 0;};
  namespace boost{namespace placeholders{typedef int tmp_add_type_10;}}
  boost::placeholders::tmp_add_type_10 tmp_add_func_10(){return 0;};
  namespace boost{namespace tuples{typedef int tmp_add_type_11;}}
  boost::tuples::tmp_add_type_11 tmp_add_func_11(){return 0;};
  namespace boost{namespace tuples{namespace detail{typedef int tmp_add_type_12;}}}
  boost::tuples::detail::tmp_add_type_12 tmp_add_func_12(){return 0;};
  namespace luabind{typedef int tmp_add_type_13;}
  luabind::tmp_add_type_13 tmp_add_func_13(){return 0;};
  namespace luabind{namespace adl{typedef int tmp_add_type_14;}}
  luabind::adl::tmp_add_type_14 tmp_add_func_14(){return 0;};
  namespace luabind{namespace detail{typedef int tmp_add_type_15;}}
  luabind::detail::tmp_add_type_15 tmp_add_func_15(){return 0;};
  namespace luabind{namespace operators{typedef int tmp_add_type_16;}}
  luabind::operators::tmp_add_type_16 tmp_add_func_16(){return 0;};
  namespace boost{namespace _bi{typedef int tmp_add_type_17;}}
  boost::_bi::tmp_add_type_17 tmp_add_func_17(){return 0;};
  namespace boost{namespace _mfi{typedef int tmp_add_type_18;}}
  boost::_mfi::tmp_add_type_18 tmp_add_func_18(){return 0;};
  namespace boost{namespace detail{namespace aligned_storage{typedef int tmp_add_type_19;}}}
  boost::detail::aligned_storage::tmp_add_type_19 tmp_add_func_19(){return 0;};
  namespace boost{namespace detail{namespace indirect_traits{typedef int tmp_add_type_20;}}}
  boost::detail::indirect_traits::tmp_add_type_20 tmp_add_func_20(){return 0;};
  namespace boost{namespace exception_detail{typedef int tmp_add_type_21;}}
  boost::exception_detail::tmp_add_type_21 tmp_add_func_21(){return 0;};
  namespace boost{namespace function_types{typedef int tmp_add_type_22;}}
  boost::function_types::tmp_add_type_22 tmp_add_func_22(){return 0;};
  namespace boost{namespace function_types{namespace detail{typedef int tmp_add_type_23;}}}
  boost::function_types::detail::tmp_add_type_23 tmp_add_func_23(){return 0;};
  namespace boost{namespace move_detail{typedef int tmp_add_type_24;}}
  boost::move_detail::tmp_add_type_24 tmp_add_func_24(){return 0;};
  namespace boost{namespace operators_impl{typedef int tmp_add_type_25;}}
  boost::operators_impl::tmp_add_type_25 tmp_add_func_25(){return 0;};
  namespace boost{namespace operators_impl{namespace operators_detail{typedef int tmp_add_type_26;}}}
  boost::operators_impl::operators_detail::tmp_add_type_26 tmp_add_func_26(){return 0;};
  namespace boost{namespace optional_config{typedef int tmp_add_type_27;}}
  boost::optional_config::tmp_add_type_27 tmp_add_func_27(){return 0;};
  namespace boost{namespace optional_detail{typedef int tmp_add_type_28;}}
  boost::optional_detail::tmp_add_type_28 tmp_add_func_28(){return 0;};
  namespace boost{namespace optional_ns{typedef int tmp_add_type_29;}}
  boost::optional_ns::tmp_add_type_29 tmp_add_func_29(){return 0;};
  namespace boost{namespace tt_align_ns{typedef int tmp_add_type_30;}}
  boost::tt_align_ns::tmp_add_type_30 tmp_add_func_30(){return 0;};
  namespace boost{namespace type_traits{typedef int tmp_add_type_31;}}
  boost::type_traits::tmp_add_type_31 tmp_add_func_31(){return 0;};
  namespace boost{namespace type_traits_detail{typedef int tmp_add_type_32;}}
  boost::type_traits_detail::tmp_add_type_32 tmp_add_func_32(){return 0;};
  namespace boost_optional_detail{typedef int tmp_add_type_33;}
  boost_optional_detail::tmp_add_type_33 tmp_add_func_33(){return 0;};
  namespace boost_swap_impl{typedef int tmp_add_type_34;}
  boost_swap_impl::tmp_add_type_34 tmp_add_func_34(){return 0;};
  namespace luabind{namespace __anon3b1baddf6711{typedef int tmp_add_type_35;}}
  luabind::__anon3b1baddf6711::tmp_add_type_35 tmp_add_func_35(){return 0;};
  namespace luabind{namespace adl{namespace is_object_interface_aux{typedef int tmp_add_type_36;}}}
  luabind::adl::is_object_interface_aux::tmp_add_type_36 tmp_add_func_36(){return 0;};
  namespace luabind{namespace detail{namespace has_get_pointer_{typedef int tmp_add_type_37;}}}
  luabind::detail::has_get_pointer_::tmp_add_type_37 tmp_add_func_37(){return 0;};
  namespace mpl_{typedef int tmp_add_type_38;}
  mpl_::tmp_add_type_38 tmp_add_func_38(){return 0;};
  namespace mpl_{namespace aux{typedef int tmp_add_type_39;}}
  mpl_::aux::tmp_add_type_39 tmp_add_func_39(){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;
  luaL_Buffer* tmp_add_class_3;
  luaL_Reg* tmp_add_class_4;
  luaL_Stream* tmp_add_class_5;
  lua_Debug* tmp_add_class_6;

The GCC parameters:
  gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/wsK4_UXtlb/dump1.h"  -I/usr/include/lua5.2

In file included from /tmp/wsK4_UXtlb/dump1.h:43:
/usr/include/luabind/detail/object_call.hpp:24:3: error: #error Do not include object_call.hpp directly!
   24 | # error Do not include object_call.hpp directly!
      |   ^~~~~
In file included from /usr/include/boost/bind.hpp:30,
                 from /usr/include/luabind/class.hpp:94,
                 from /tmp/wsK4_UXtlb/dump1.h:16:
/usr/include/boost/bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.’
   36 | BOOST_PRAGMA_MESSAGE(
      | ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/preprocessor/repeat.hpp:15,
                 from /usr/include/boost/mpl/aux_/preprocessor/params.hpp:46,
                 from /usr/include/boost/mpl/aux_/na_spec.hpp:26,
                 from /usr/include/boost/mpl/and.hpp:24,
                 from /usr/include/luabind/detail/policy.hpp:32,
                 from /usr/include/luabind/adopt_policy.hpp:29,
                 from /tmp/wsK4_UXtlb/dump1.h:12:
/usr/include/luabind/detail/call_operator_iterate.hpp:29:21: error: non-type template parameters of class type only available with ‘-std=c++20’ or ‘-std=gnu++20’
   29 | template<class Self BOOST_PP_ENUM_TRAILING_PARAMS(N, class A)>
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/luabind/detail/call_operator_iterate.hpp:29:21: error: expected ‘>’ before ‘(’ token
   29 | template<class Self BOOST_PP_ENUM_TRAILING_PARAMS(N, class A)>
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /tmp/wsK4_UXtlb/dump1.h:25:
/usr/include/luabind/detail/call_operator_iterate.hpp:31:7: error: ‘detail’ has not been declared
   31 |     : detail::operator_<
      |       ^~~~~~
/usr/include/luabind/detail/call_operator_iterate.hpp:31:15: error: expected ‘{’ before ‘operator_’
   31 |     : detail::operator_<
      |               ^~~~~~~~~
/usr/include/luabind/detail/object_call.hpp:33:10: error: ‘BOOST_PP_REPEAT_1_BOOST_PP_ITERATION_0’ has not been declared
   33 | template<BOOST_PP_ENUM_PARAMS(N, class A)>
      |          ^~~~~~~~~~~~~~~~~~~~
/usr/include/luabind/detail/object_call.hpp:33:10: error: expected ‘)’ before ‘,’ token
   33 | template<BOOST_PP_ENUM_PARAMS(N, class A)>
      |          ^~~~~~~~~~~~~~~~~~~~
/usr/include/luabind/detail/object_call.hpp:33:40: error: non-type template parameters of class type only available with ‘-std=c++20’ or ‘-std=gnu++20’
   33 | template<BOOST_PP_ENUM_PARAMS(N, class A)>
      |                                        ^
/usr/include/luabind/detail/object_call.hpp:33:10: error: expected ‘>’ before ‘)’ token
   33 | template<BOOST_PP_ENUM_PARAMS(N, class A)>
      |          ^~~~~~~~~~~~~~~~~~~~
/usr/include/luabind/detail/object_call.hpp:33:10: error: expected unqualified-id before ‘)’ token

