Temporary header file '/tmp/2sv4p4pzuZ/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
#ifdef __cplusplus
// C17 compat layer
#define _Alignof(type) alignof(type)
#endif
#define getaddrinfo_a(a,b,c,d)

  // add includes
  #include "/usr/include/LibIME/libime/core/datrie.h"
  #include "/usr/include/LibIME/libime/core/decoder.h"
  #include "/usr/include/LibIME/libime/core/dictionary.h"
  #include "/usr/include/LibIME/libime/core/historybigram.h"
  #include "/usr/include/LibIME/libime/core/inputbuffer.h"
  #include "/usr/include/LibIME/libime/core/languagemodel.h"
  #include "/usr/include/LibIME/libime/core/lattice.h"
  #include "/usr/include/LibIME/libime/core/libimecore_export.h"
  #include "/usr/include/LibIME/libime/core/lrucache.h"
  #include "/usr/include/LibIME/libime/core/prediction.h"
  #include "/usr/include/LibIME/libime/core/segmentgraph.h"
  #include "/usr/include/LibIME/libime/core/triedictionary.h"
  #include "/usr/include/LibIME/libime/core/userlanguagemodel.h"
  #include "/usr/include/LibIME/libime/core/utils.h"

  // add namespaces
  namespace boost{typedef int tmp_add_type_1;}
  boost::tmp_add_type_1 tmp_add_func_1(){return 0;};
  namespace boost{namespace adaptors{typedef int tmp_add_type_2;}}
  boost::adaptors::tmp_add_type_2 tmp_add_func_2(){return 0;};
  namespace boost{namespace concepts{typedef int tmp_add_type_3;}}
  boost::concepts::tmp_add_type_3 tmp_add_func_3(){return 0;};
  namespace boost{namespace concepts{namespace detail{typedef int tmp_add_type_4;}}}
  boost::concepts::detail::tmp_add_type_4 tmp_add_func_4(){return 0;};
  namespace boost{namespace detail{typedef int tmp_add_type_5;}}
  boost::detail::tmp_add_type_5 tmp_add_func_5(){return 0;};
  namespace boost{namespace details{typedef int tmp_add_type_6;}}
  boost::details::tmp_add_type_6 tmp_add_func_6(){return 0;};
  namespace boost{namespace integer{typedef int tmp_add_type_7;}}
  boost::integer::tmp_add_type_7 tmp_add_func_7(){return 0;};
  namespace boost{namespace iterators{typedef int tmp_add_type_8;}}
  boost::iterators::tmp_add_type_8 tmp_add_func_8(){return 0;};
  namespace boost{namespace iterators{namespace detail{typedef int tmp_add_type_9;}}}
  boost::iterators::detail::tmp_add_type_9 tmp_add_func_9(){return 0;};
  namespace boost{namespace movelib{typedef int tmp_add_type_10;}}
  boost::movelib::tmp_add_type_10 tmp_add_func_10(){return 0;};
  namespace boost{namespace movelib{namespace detail{typedef int tmp_add_type_11;}}}
  boost::movelib::detail::tmp_add_type_11 tmp_add_func_11(){return 0;};
  namespace boost{namespace mpl{typedef int tmp_add_type_12;}}
  boost::mpl::tmp_add_type_12 tmp_add_func_12(){return 0;};
  namespace boost{namespace mpl{namespace aux{typedef int tmp_add_type_13;}}}
  boost::mpl::aux::tmp_add_type_13 tmp_add_func_13(){return 0;};
  namespace boost{namespace mpl{namespace placeholders{typedef int tmp_add_type_14;}}}
  boost::mpl::placeholders::tmp_add_type_14 tmp_add_func_14(){return 0;};
  namespace boost{namespace numeric{typedef int tmp_add_type_15;}}
  boost::numeric::tmp_add_type_15 tmp_add_func_15(){return 0;};
  namespace boost{namespace numeric{namespace boundsdetail{typedef int tmp_add_type_16;}}}
  boost::numeric::boundsdetail::tmp_add_type_16 tmp_add_func_16(){return 0;};
  namespace boost{namespace numeric{namespace convdetail{typedef int tmp_add_type_17;}}}
  boost::numeric::convdetail::tmp_add_type_17 tmp_add_func_17(){return 0;};
  namespace boost{namespace range{typedef int tmp_add_type_18;}}
  boost::range::tmp_add_type_18 tmp_add_func_18(){return 0;};
  namespace boost{namespace tuples{typedef int tmp_add_type_19;}}
  boost::tuples::tmp_add_type_19 tmp_add_func_19(){return 0;};
  namespace boost{namespace tuples{namespace detail{typedef int tmp_add_type_20;}}}
  boost::tuples::detail::tmp_add_type_20 tmp_add_func_20(){return 0;};
  namespace boost{namespace unordered{typedef int tmp_add_type_21;}}
  boost::unordered::tmp_add_type_21 tmp_add_func_21(){return 0;};
  namespace boost{namespace unordered{namespace detail{typedef int tmp_add_type_22;}}}
  boost::unordered::detail::tmp_add_type_22 tmp_add_func_22(){return 0;};
  namespace boost{namespace unordered{namespace detail{namespace func{typedef int tmp_add_type_23;}}}}
  boost::unordered::detail::func::tmp_add_type_23 tmp_add_func_23(){return 0;};
  namespace fcitx{typedef int tmp_add_type_24;}
  fcitx::tmp_add_type_24 tmp_add_func_24(){return 0;};
  namespace fcitx{namespace fs{typedef int tmp_add_type_25;}}
  fcitx::fs::tmp_add_type_25 tmp_add_func_25(){return 0;};
  namespace fcitx{namespace stringutils{typedef int tmp_add_type_26;}}
  fcitx::stringutils::tmp_add_type_26 tmp_add_func_26(){return 0;};
  namespace fcitx{namespace stringutils{namespace details{typedef int tmp_add_type_27;}}}
  fcitx::stringutils::details::tmp_add_type_27 tmp_add_func_27(){return 0;};
  namespace libime{typedef int tmp_add_type_28;}
  libime::tmp_add_type_28 tmp_add_func_28(){return 0;};
  namespace boost{namespace adaptors{namespace __anon7b5cc6f47711{typedef int tmp_add_type_29;}}}
  boost::adaptors::__anon7b5cc6f47711::tmp_add_type_29 tmp_add_func_29(){return 0;};
  namespace boost{namespace binary_op_detail{typedef int tmp_add_type_30;}}
  boost::binary_op_detail::tmp_add_type_30 tmp_add_func_30(){return 0;};
  namespace boost{namespace detail{namespace aligned_storage{typedef int tmp_add_type_31;}}}
  boost::detail::aligned_storage::tmp_add_type_31 tmp_add_func_31(){return 0;};
  namespace boost{namespace detail{namespace indirect_traits{typedef int tmp_add_type_32;}}}
  boost::detail::indirect_traits::tmp_add_type_32 tmp_add_func_32(){return 0;};
  namespace boost{namespace detail{namespace is_incrementable_{typedef int tmp_add_type_33;}}}
  boost::detail::is_incrementable_::tmp_add_type_33 tmp_add_func_33(){return 0;};
  namespace boost{namespace detail{namespace static_log2_impl{typedef int tmp_add_type_34;}}}
  boost::detail::static_log2_impl::tmp_add_type_34 tmp_add_func_34(){return 0;};
  namespace boost{namespace exception_detail{typedef int tmp_add_type_35;}}
  boost::exception_detail::tmp_add_type_35 tmp_add_func_35(){return 0;};
  namespace boost{namespace hash_detail{typedef int tmp_add_type_36;}}
  boost::hash_detail::tmp_add_type_36 tmp_add_func_36(){return 0;};
  namespace boost{namespace iterator_range_detail{typedef int tmp_add_type_37;}}
  boost::iterator_range_detail::tmp_add_type_37 tmp_add_func_37(){return 0;};
  namespace boost{namespace iterators{namespace advance_adl_barrier{typedef int tmp_add_type_38;}}}
  boost::iterators::advance_adl_barrier::tmp_add_type_38 tmp_add_func_38(){return 0;};
  namespace boost{namespace iterators{namespace distance_adl_barrier{typedef int tmp_add_type_39;}}}
  boost::iterators::distance_adl_barrier::tmp_add_type_39 tmp_add_func_39(){return 0;};
  namespace boost{namespace move_detail{typedef int tmp_add_type_40;}}
  boost::move_detail::tmp_add_type_40 tmp_add_func_40(){return 0;};
  namespace boost{namespace next_prior_detail{typedef int tmp_add_type_41;}}
  boost::next_prior_detail::tmp_add_type_41 tmp_add_func_41(){return 0;};
  namespace boost{namespace noncopyable_{typedef int tmp_add_type_42;}}
  boost::noncopyable_::tmp_add_type_42 tmp_add_func_42(){return 0;};
  namespace boost{namespace optional_config{typedef int tmp_add_type_43;}}
  boost::optional_config::tmp_add_type_43 tmp_add_func_43(){return 0;};
  namespace boost{namespace optional_detail{typedef int tmp_add_type_44;}}
  boost::optional_detail::tmp_add_type_44 tmp_add_func_44(){return 0;};
  namespace boost{namespace optional_ns{typedef int tmp_add_type_45;}}
  boost::optional_ns::tmp_add_type_45 tmp_add_func_45(){return 0;};
  namespace boost{namespace ptr_container{typedef int tmp_add_type_46;}}
  boost::ptr_container::tmp_add_type_46 tmp_add_func_46(){return 0;};
  namespace boost{namespace ptr_container_detail{typedef int tmp_add_type_47;}}
  boost::ptr_container_detail::tmp_add_type_47 tmp_add_func_47(){return 0;};
  namespace boost{namespace ptr_container_detail{namespace move_ptrs{typedef int tmp_add_type_48;}}}
  boost::ptr_container_detail::move_ptrs::tmp_add_type_48 tmp_add_func_48(){return 0;};
  namespace boost{namespace ptr_container_detail{namespace move_ptrs{namespace ptr_container_detail{typedef int tmp_add_type_49;}}}}
  boost::ptr_container_detail::move_ptrs::ptr_container_detail::tmp_add_type_49 tmp_add_func_49(){return 0;};
  namespace boost{namespace range_adl_barrier{typedef int tmp_add_type_50;}}
  boost::range_adl_barrier::tmp_add_type_50 tmp_add_func_50(){return 0;};
  namespace boost{namespace range_detail{typedef int tmp_add_type_51;}}
  boost::range_detail::tmp_add_type_51 tmp_add_func_51(){return 0;};
  namespace boost{namespace range_distance_adl_barrier{typedef int tmp_add_type_52;}}
  boost::range_distance_adl_barrier::tmp_add_type_52 tmp_add_func_52(){return 0;};
  namespace boost{namespace tt_align_ns{typedef int tmp_add_type_53;}}
  boost::tt_align_ns::tmp_add_type_53 tmp_add_func_53(){return 0;};
  namespace boost{namespace type_traits{typedef int tmp_add_type_54;}}
  boost::type_traits::tmp_add_type_54 tmp_add_func_54(){return 0;};
  namespace boost{namespace type_traits_detail{typedef int tmp_add_type_55;}}
  boost::type_traits_detail::tmp_add_type_55 tmp_add_func_55(){return 0;};
  namespace boost{namespace type_traits_swappable_detail{typedef int tmp_add_type_56;}}
  boost::type_traits_swappable_detail::tmp_add_type_56 tmp_add_func_56(){return 0;};
  namespace boost{namespace unordered{namespace iterator_detail{typedef int tmp_add_type_57;}}}
  boost::unordered::iterator_detail::tmp_add_type_57 tmp_add_func_57(){return 0;};
  namespace boost_concepts{typedef int tmp_add_type_58;}
  boost_concepts::tmp_add_type_58 tmp_add_func_58(){return 0;};
  namespace boost_concepts{namespace detail{typedef int tmp_add_type_59;}}
  boost_concepts::detail::tmp_add_type_59 tmp_add_func_59(){return 0;};
  namespace boost_optional_detail{typedef int tmp_add_type_60;}
  boost_optional_detail::tmp_add_type_60 tmp_add_func_60(){return 0;};
  namespace boost_swap_impl{typedef int tmp_add_type_61;}
  boost_swap_impl::tmp_add_type_61 tmp_add_func_61(){return 0;};
  namespace mpl_{typedef int tmp_add_type_62;}
  mpl_::tmp_add_type_62 tmp_add_func_62(){return 0;};
  namespace mpl_{namespace aux{typedef int tmp_add_type_63;}}
  mpl_::aux::tmp_add_type_63 tmp_add_func_63(){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;
  cmsghdr* tmp_add_class_3;
  group_filter* tmp_add_class_4;
  group_req* tmp_add_class_5;
  group_source_req* tmp_add_class_6;
  in6_addr* tmp_add_class_7;
  in6_pktinfo* tmp_add_class_8;
  in_addr* tmp_add_class_9;
  in_pktinfo* tmp_add_class_10;
  iovec* tmp_add_class_11;
  ip6_mtuinfo* tmp_add_class_12;
  ip_mreq* tmp_add_class_13;
  ip_mreq_source* tmp_add_class_14;
  ip_mreqn* tmp_add_class_15;
  ip_msfilter* tmp_add_class_16;
  ip_opts* tmp_add_class_17;
  ipv6_mreq* tmp_add_class_18;
  linger* tmp_add_class_19;
  mmsghdr* tmp_add_class_20;
  msghdr* tmp_add_class_21;
  osockaddr* tmp_add_class_22;
  sockaddr* tmp_add_class_23;
  sockaddr_in* tmp_add_class_24;
  sockaddr_in6* tmp_add_class_25;
  sockaddr_storage* tmp_add_class_26;
  ucred* tmp_add_class_27;

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

