Temporary header file '/tmp/HkpAtsbTPR/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/cppoptlib/boundedproblem.h"
  #include "/usr/include/cppoptlib/linesearch/armijo.h"
  #include "/usr/include/cppoptlib/linesearch/morethuente.h"
  #include "/usr/include/cppoptlib/linesearch/wolfeheuristic.h"
  #include "/usr/include/cppoptlib/meta.h"
  #include "/usr/include/cppoptlib/problem.h"
  #include "/usr/include/cppoptlib/solver/bfgssolver.h"
  #include "/usr/include/cppoptlib/solver/cmaesbsolver.h"
  #include "/usr/include/cppoptlib/solver/cmaessolver.h"
  #include "/usr/include/cppoptlib/solver/conjugatedgradientdescentsolver.h"
  #include "/usr/include/cppoptlib/solver/gradientdescentsolver.h"
  #include "/usr/include/cppoptlib/solver/isolver.h"
  #include "/usr/include/cppoptlib/solver/lbfgsbsolver.h"
  #include "/usr/include/cppoptlib/solver/lbfgssolver.h"
  #include "/usr/include/cppoptlib/solver/neldermeadsolver.h"
  #include "/usr/include/cppoptlib/solver/newtondescentsolver.h"
  #include "/usr/include/cppoptlib/timer.h"

  // add namespaces
  namespace cppoptlib{typedef int tmp_add_type_1;}
  cppoptlib::tmp_add_type_1 tmp_add_func_1(){return 0;};
  namespace Eigen{typedef int tmp_add_type_2;}
  Eigen::tmp_add_type_2 tmp_add_func_2(){return 0;};
  namespace Eigen{namespace Architecture{typedef int tmp_add_type_3;}}
  Eigen::Architecture::tmp_add_type_3 tmp_add_func_3(){return 0;};
  namespace Eigen{namespace indexing{typedef int tmp_add_type_4;}}
  Eigen::indexing::tmp_add_type_4 tmp_add_func_4(){return 0;};
  namespace Eigen{namespace internal{typedef int tmp_add_type_5;}}
  Eigen::internal::tmp_add_type_5 tmp_add_func_5(){return 0;};
  namespace Eigen{namespace numext{typedef int tmp_add_type_6;}}
  Eigen::numext::tmp_add_type_6 tmp_add_func_6(){return 0;};
  namespace Eigen{namespace placeholders{typedef int tmp_add_type_7;}}
  Eigen::placeholders::tmp_add_type_7 tmp_add_func_7(){return 0;};
  namespace Eigen{namespace symbolic{typedef int tmp_add_type_8;}}
  Eigen::symbolic::tmp_add_type_8 tmp_add_func_8(){return 0;};
  namespace Eigen{namespace bfloat16_impl{typedef int tmp_add_type_9;}}
  Eigen::bfloat16_impl::tmp_add_type_9 tmp_add_func_9(){return 0;};
  namespace Eigen{namespace half_impl{typedef int tmp_add_type_10;}}
  Eigen::half_impl::tmp_add_type_10 tmp_add_func_10(){return 0;};
  namespace Eigen{namespace internal{namespace std_fallback{typedef int tmp_add_type_11;}}}
  Eigen::internal::std_fallback::tmp_add_type_11 tmp_add_func_11(){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;

The GCC parameters:
  gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/HkpAtsbTPR/dump1.h"  -I/usr/include/eigen3 -I/usr/include/eigen3/Eigen/src/Core/arch/HIP/hcc

In file included from /tmp/HkpAtsbTPR/dump1.h:15:
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:22:29: error: ‘Vector’ does not name a type
   22 |   static T linesearch(const Vector<T> & x0, const Vector<T> & searchDir, P &objFunc, const T alpha_init = 1) {
      |                             ^~~~~~
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:22:35: error: expected ‘,’ or ‘...’ before ‘<’ token
   22 |   static T linesearch(const Vector<T> & x0, const Vector<T> & searchDir, P &objFunc, const T alpha_init = 1) {
      |                                   ^
/usr/include/cppoptlib/linesearch/wolfeheuristic.h: In static member function ‘static T cppoptlib::WolfeHeuristic<T, P, Ord>::linesearch(int)’:
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:24:5: error: ‘Vector’ was not declared in this scope; did you mean ‘Eigen::Vector’?
   24 |     Vector<T> x = x0;
      |     ^~~~~~
      |     Eigen::Vector
In file included from /usr/include/eigen3/Eigen/Core:295,
                 from /usr/include/cppoptlib/boundedproblem.h:15,
                 from /tmp/HkpAtsbTPR/dump1.h:12:
/usr/include/eigen3/Eigen/src/Core/Matrix.h:551:7: note: ‘Eigen::Vector’ declared here
  551 | using Vector = Matrix<Type, Size, 1>;
      |       ^~~~~~
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:24:13: error: expected primary-expression before ‘>’ token
   24 |     Vector<T> x = x0;
      |             ^
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:24:15: error: ‘x’ was not declared in this scope
   24 |     Vector<T> x = x0;
      |               ^
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:24:19: error: ‘x0’ was not declared in this scope; did you mean ‘y0’?
   24 |     Vector<T> x = x0;
      |                   ^~
      |                   y0
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:27:14: error: ‘objFunc’ was not declared in this scope
   27 |     T phi0 = objFunc.value(x0);
      |              ^~~~~~~
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:29:13: error: expected primary-expression before ‘>’ token
   29 |     Vector<T> grad(x.rows());
      |             ^
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:30:25: error: ‘grad’ was not declared in this scope
   30 |     objFunc.gradient(x, grad);
      |                         ^~~~
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:32:19: error: ‘searchDir’ was not declared in this scope
   32 |     T phi0_dash = searchDir.dot(grad);
      |                   ^~~~~~~~~
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:34:15: error: ‘alpha_init’ was not declared in this scope
   34 |     T alpha = alpha_init;
      |               ^~~~~~~~~~
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:41:15: error: expected primary-expression before ‘>’ token
   41 |       Vector<T> x_candidate = x + alpha * searchDir;
      |               ^
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:41:17: error: ‘x_candidate’ was not declared in this scope
   41 |       Vector<T> x_candidate = x + alpha * searchDir;
      |                 ^~~~~~~~~~~
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:51:17: error: expected primary-expression before ‘>’ token
   51 |         Vector<T> grad2(x.rows());
      |                 ^
/usr/include/cppoptlib/linesearch/wolfeheuristic.h:52:39: error: ‘grad2’ was not declared in this scope
   52 |         objFunc.gradient(x_candidate, grad2);
      |                                       ^~~~~

