Temporary header file '/tmp/ifBThVip0S/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/opencv4/opencv2/imgproc/bindings.hpp"
  #include "/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp"
  #include "/usr/include/opencv4/opencv2/imgproc/hal/hal.hpp"
  #include "/usr/include/opencv4/opencv2/imgproc/hal/interface.h"
  #include "/usr/include/opencv4/opencv2/imgproc/imgproc_c.h"
  #include "/usr/include/opencv4/opencv2/imgproc/segmentation.hpp"
  #include "/usr/include/opencv4/opencv2/imgproc/types_c.h"
  #include "/usr/include/opencv4/opencv2/imgproc.hpp"

  // add namespaces
  namespace cv{typedef int tmp_add_type_1;}
  cv::tmp_add_type_1 tmp_add_func_1(){return 0;};
  namespace cv{namespace cuda{typedef int tmp_add_type_2;}}
  cv::cuda::tmp_add_type_2 tmp_add_func_2(){return 0;};
  namespace cv{namespace cudev{typedef int tmp_add_type_3;}}
  cv::cudev::tmp_add_type_3 tmp_add_func_3(){return 0;};
  namespace cv{namespace detail{typedef int tmp_add_type_4;}}
  cv::detail::tmp_add_type_4 tmp_add_func_4(){return 0;};
  namespace cv{namespace details{typedef int tmp_add_type_5;}}
  cv::details::tmp_add_type_5 tmp_add_func_5(){return 0;};
  namespace cv{namespace Error{typedef int tmp_add_type_6;}}
  cv::Error::tmp_add_type_6 tmp_add_func_6(){return 0;};
  namespace cv{namespace hal{typedef int tmp_add_type_7;}}
  cv::hal::tmp_add_type_7 tmp_add_func_7(){return 0;};
  namespace cv{namespace internal{typedef int tmp_add_type_8;}}
  cv::internal::tmp_add_type_8 tmp_add_func_8(){return 0;};
  namespace cv{namespace ipp{typedef int tmp_add_type_9;}}
  cv::ipp::tmp_add_type_9 tmp_add_func_9(){return 0;};
  namespace cv{namespace ogl{typedef int tmp_add_type_10;}}
  cv::ogl::tmp_add_type_10 tmp_add_func_10(){return 0;};
  namespace cv{namespace samples{typedef int tmp_add_type_11;}}
  cv::samples::tmp_add_type_11 tmp_add_func_11(){return 0;};
  namespace cv{namespace segmentation{typedef int tmp_add_type_12;}}
  cv::segmentation::tmp_add_type_12 tmp_add_func_12(){return 0;};
  namespace cv{namespace sfinae{typedef int tmp_add_type_13;}}
  cv::sfinae::tmp_add_type_13 tmp_add_func_13(){return 0;};
  namespace cv{namespace traits{typedef int tmp_add_type_14;}}
  cv::traits::tmp_add_type_14 tmp_add_func_14(){return 0;};
  namespace cv{namespace traits{namespace internal{typedef int tmp_add_type_15;}}}
  cv::traits::internal::tmp_add_type_15 tmp_add_func_15(){return 0;};
  namespace cv{namespace utils{typedef int tmp_add_type_16;}}
  cv::utils::tmp_add_type_16 tmp_add_func_16(){return 0;};

  // add classes
  Cv16suf* tmp_add_class_0;
  Cv32suf* tmp_add_class_1;
  Cv64suf* tmp_add_class_2;
  CvBox2D* tmp_add_class_3;
  CvChain* tmp_add_class_4;
  CvChainPtReader* tmp_add_class_5;
  CvConnectedComp* tmp_add_class_6;
  CvContour* tmp_add_class_7;
  CvConvexityDefect* tmp_add_class_8;
  CvFont* tmp_add_class_9;
  CvGraph* tmp_add_class_10;
  CvGraphEdge* tmp_add_class_11;
  CvGraphScanner* tmp_add_class_12;
  CvGraphVtx* tmp_add_class_13;
  CvGraphVtx2D* tmp_add_class_14;
  CvHistogram* tmp_add_class_15;
  CvHuMoments* tmp_add_class_16;
  CvLineIterator* tmp_add_class_17;
  CvMat* tmp_add_class_18;
  CvMatND* tmp_add_class_19;
  CvMemBlock* tmp_add_class_20;
  CvMemStorage* tmp_add_class_21;
  CvMemStoragePos* tmp_add_class_22;
  CvMoments* tmp_add_class_23;
  CvNArrayIterator* tmp_add_class_24;
  CvPoint* tmp_add_class_25;
  CvPoint2D32f* tmp_add_class_26;
  CvPoint2D64f* tmp_add_class_27;
  CvPoint3D32f* tmp_add_class_28;
  CvPoint3D64f* tmp_add_class_29;
  CvRect* tmp_add_class_30;
  CvScalar* tmp_add_class_31;
  CvSeq* tmp_add_class_32;
  CvSeqBlock* tmp_add_class_33;
  CvSeqReader* tmp_add_class_34;
  CvSeqWriter* tmp_add_class_35;
  CvSet* tmp_add_class_36;
  CvSetElem* tmp_add_class_37;
  CvSize* tmp_add_class_38;
  CvSize2D32f* tmp_add_class_39;
  CvSlice* tmp_add_class_40;
  CvSparseMat* tmp_add_class_41;
  CvSparseMatIterator* tmp_add_class_42;
  CvSparseNode* tmp_add_class_43;
  CvTermCriteria* tmp_add_class_44;
  CvTreeNodeIterator* tmp_add_class_45;
  _G_fpos64_t* tmp_add_class_46;
  _G_fpos_t* tmp_add_class_47;
  _IO_cookie_io_functions_t* tmp_add_class_48;
  _IplConvKernel* tmp_add_class_49;
  _IplConvKernelFP* tmp_add_class_50;
  _IplImage* tmp_add_class_51;
  _IplROI* tmp_add_class_52;

The GCC parameters:
  gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/ifBThVip0S/dump1.h"  -I/usr/include/opencv4 -I/usr/include/arm-linux-gnueabihf/opencv4/opencv2

In file included from /tmp/ifBThVip0S/dump1.h:12:
/usr/include/opencv4/opencv2/imgproc/bindings.hpp:19:1: error: ‘CV_WRAP’ does not name a type
   19 | CV_WRAP static inline
      | ^~~~~~~
/usr/include/opencv4/opencv2/imgproc/bindings.hpp:19:1: note: the macro ‘CV_WRAP’ had not yet been defined
In file included from /usr/include/opencv4/opencv2/imgproc/hal/hal.hpp:4,
                 from /tmp/ifBThVip0S/dump1.h:14:
/usr/include/opencv4/opencv2/core/cvdef.h:460: note: it was later defined here
  460 | #define CV_WRAP
      | 
In file included from /tmp/ifBThVip0S/dump1.h:13:
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:70:9: error: ‘uchar’ does not name a type; did you mean ‘char’?
   70 |         uchar t;
      |         ^~~~~
      |         char
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:80:10: error: ‘vector’ in namespace ‘std’ does not name a template type
   80 |     std::vector<Vtx> vtcs;
      |          ^~~~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:1:1: note: ‘std::vector’ is defined in header ‘<vector>’; did you forget to ‘#include <vector>’?
  +++ |+#include <vector>
    1 | /*M///////////////////////////////////////////////////////////////////////////////////////
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:81:10: error: ‘vector’ in namespace ‘std’ does not name a template type
   81 |     std::vector<Edge> edges;
      |          ^~~~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:81:5: note: ‘std::vector’ is defined in header ‘<vector>’; did you forget to ‘#include <vector>’?
   81 |     std::vector<Edge> edges;
      |     ^~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp: In member function ‘void cv::detail::GCGraph<TWeight>::create(unsigned int, unsigned int)’:
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:102:5: error: ‘vtcs’ was not declared in this scope
  102 |     vtcs.reserve( vtxCount );
      |     ^~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:103:5: error: ‘edges’ was not declared in this scope
  103 |     edges.reserve( edgeCount + 2 );
      |     ^~~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp: In member function ‘int cv::detail::GCGraph<TWeight>::addVtx()’:
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:112:5: error: ‘vtcs’ was not declared in this scope
  112 |     vtcs.push_back(v);
      |     ^~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp: In member function ‘void cv::detail::GCGraph<TWeight>::addEdges(int, int, TWeight, TWeight)’:
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:119:31: error: ‘vtcs’ was not declared in this scope
  119 |     CV_Assert( i>=0 && i<(int)vtcs.size() );
      |                               ^~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:124:10: error: ‘edges’ was not declared in this scope
  124 |     if( !edges.size() )
      |          ^~~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:131:26: error: ‘edges’ was not declared in this scope
  131 |     vtcs[i].first = (int)edges.size();
      |                          ^~~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp: In member function ‘void cv::detail::GCGraph<TWeight>::addTermWeights(int, TWeight, TWeight)’:
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:144:31: error: ‘vtcs’ was not declared in this scope
  144 |     CV_Assert( i>=0 && i<(int)vtcs.size() );
      |                               ^~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp: In member function ‘TWeight cv::detail::GCGraph<TWeight>::maxFlow()’:
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:158:16: error: ‘vtcs’ was not declared in this scope
  158 |     CV_Assert(!vtcs.empty());
      |                ^~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:159:16: error: ‘edges’ was not declared in this scope
  159 |     CV_Assert(!edges.empty());
      |                ^~~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:167:10: error: ‘vector’ is not a member of ‘std’
  167 |     std::vector<Vtx*> orphans;
      |          ^~~~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:167:10: note: ‘std::vector’ is defined in header ‘<vector>’; did you forget to ‘#include <vector>’?
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:167:20: error: expected primary-expression before ‘*’ token
  167 |     std::vector<Vtx*> orphans;
      |                    ^
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:167:21: error: expected primary-expression before ‘>’ token
  167 |     std::vector<Vtx*> orphans;
      |                     ^
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:167:23: error: ‘orphans’ was not declared in this scope
  167 |     std::vector<Vtx*> orphans;
      |                       ^~~~~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:194:9: error: ‘uchar’ was not declared in this scope; did you mean ‘char’?
  194 |         uchar vt;
      |         ^~~~~
      |         char
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:202:17: error: ‘vt’ was not declared in this scope; did you mean ‘v’?
  202 |                 vt = v->t;
      |                 ^~
      |                 v
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:301:30: error: ‘INT_MAX’ was not declared in this scope
  301 |             int d, minDist = INT_MAX;
      |                              ^~~~~~~
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:1:1: note: ‘INT_MAX’ is defined in header ‘<climits>’; did you forget to ‘#include <climits>’?
  +++ |+#include <climits>
    1 | /*M///////////////////////////////////////////////////////////////////////////////////////
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:303:13: error: ‘vt’ was not declared in this scope; did you mean ‘v2’?
  303 |             vt = v2->t;
      |             ^~
      |             v2
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp: In member function ‘bool cv::detail::GCGraph<TWeight>::inSourceSegment(int)’:
/usr/include/opencv4/opencv2/imgproc/detail/gcgraph.hpp:386:31: error: ‘vtcs’ was not declared in this scope
  386 |     CV_Assert( i>=0 && i<(int)vtcs.size() );
      |                               ^~~~

