head	1.1;
branch	1.1.1;
access;
symbols
	netbsd-11-0-RC5:1.1.1.1
	netbsd-11-0-RC4:1.1.1.1
	netbsd-11-0-RC3:1.1.1.1
	netbsd-11-0-RC2:1.1.1.1
	netbsd-11-0-RC1:1.1.1.1
	gcc-14-3-0:1.1.1.1
	perseant-exfatfs-base-20250801:1.1.1.1
	netbsd-11:1.1.1.1.0.56
	netbsd-11-base:1.1.1.1
	gcc-12-5-0:1.1.1.1
	netbsd-10-1-RELEASE:1.1.1.1
	perseant-exfatfs-base-20240630:1.1.1.1
	gcc-12-4-0:1.1.1.1
	perseant-exfatfs:1.1.1.1.0.54
	perseant-exfatfs-base:1.1.1.1
	netbsd-8-3-RELEASE:1.1.1.1
	netbsd-9-4-RELEASE:1.1.1.1
	netbsd-10-0-RELEASE:1.1.1.1
	netbsd-10-0-RC6:1.1.1.1
	netbsd-10-0-RC5:1.1.1.1
	netbsd-10-0-RC4:1.1.1.1
	netbsd-10-0-RC3:1.1.1.1
	netbsd-10-0-RC2:1.1.1.1
	netbsd-10-0-RC1:1.1.1.1
	gcc-12-3-0:1.1.1.1
	gcc-10-5-0:1.1.1.1
	netbsd-10:1.1.1.1.0.52
	netbsd-10-base:1.1.1.1
	netbsd-9-3-RELEASE:1.1.1.1
	gcc-10-4-0:1.1.1.1
	cjep_sun2x-base1:1.1.1.1
	cjep_sun2x:1.1.1.1.0.50
	cjep_sun2x-base:1.1.1.1
	cjep_staticlib_x-base1:1.1.1.1
	netbsd-9-2-RELEASE:1.1.1.1
	cjep_staticlib_x:1.1.1.1.0.48
	cjep_staticlib_x-base:1.1.1.1
	gcc-10-3-0:1.1.1.1
	netbsd-9-1-RELEASE:1.1.1.1
	gcc-9-3-0:1.1.1.1
	gcc-7-5-0:1.1.1.1
	phil-wifi-20200421:1.1.1.1
	phil-wifi-20200411:1.1.1.1
	is-mlppp:1.1.1.1.0.46
	is-mlppp-base:1.1.1.1
	phil-wifi-20200406:1.1.1.1
	netbsd-8-2-RELEASE:1.1.1.1
	gcc-8-4-0:1.1.1.1
	netbsd-9-0-RELEASE:1.1.1.1
	netbsd-9-0-RC2:1.1.1.1
	netbsd-9-0-RC1:1.1.1.1
	phil-wifi-20191119:1.1.1.1
	gcc-8-3-0:1.1.1.1
	netbsd-9:1.1.1.1.0.44
	netbsd-9-base:1.1.1.1
	phil-wifi-20190609:1.1.1.1
	netbsd-8-1-RELEASE:1.1.1.1
	netbsd-8-1-RC1:1.1.1.1
	pgoyette-compat-merge-20190127:1.1.1.1
	pgoyette-compat-20190127:1.1.1.1
	gcc-7-4-0:1.1.1.1
	pgoyette-compat-20190118:1.1.1.1
	pgoyette-compat-1226:1.1.1.1
	pgoyette-compat-1126:1.1.1.1
	gcc-6-5-0:1.1.1.1
	pgoyette-compat-1020:1.1.1.1
	pgoyette-compat-0930:1.1.1.1
	pgoyette-compat-0906:1.1.1.1
	netbsd-7-2-RELEASE:1.1.1.1
	pgoyette-compat-0728:1.1.1.1
	netbsd-8-0-RELEASE:1.1.1.1
	phil-wifi:1.1.1.1.0.42
	phil-wifi-base:1.1.1.1
	pgoyette-compat-0625:1.1.1.1
	netbsd-8-0-RC2:1.1.1.1
	pgoyette-compat-0521:1.1.1.1
	pgoyette-compat-0502:1.1.1.1
	pgoyette-compat-0422:1.1.1.1
	netbsd-8-0-RC1:1.1.1.1
	pgoyette-compat-0415:1.1.1.1
	pgoyette-compat-0407:1.1.1.1
	pgoyette-compat-0330:1.1.1.1
	pgoyette-compat-0322:1.1.1.1
	pgoyette-compat-0315:1.1.1.1
	netbsd-7-1-2-RELEASE:1.1.1.1
	pgoyette-compat:1.1.1.1.0.40
	pgoyette-compat-base:1.1.1.1
	gcc-6-4-0:1.1.1.1
	netbsd-7-1-1-RELEASE:1.1.1.1
	gcc-5-5-0:1.1.1.1
	matt-nb8-mediatek:1.1.1.1.0.38
	matt-nb8-mediatek-base:1.1.1.1
	perseant-stdc-iso10646:1.1.1.1.0.36
	perseant-stdc-iso10646-base:1.1.1.1
	netbsd-8:1.1.1.1.0.34
	netbsd-8-base:1.1.1.1
	prg-localcount2-base3:1.1.1.1
	prg-localcount2-base2:1.1.1.1
	prg-localcount2-base1:1.1.1.1
	prg-localcount2:1.1.1.1.0.32
	prg-localcount2-base:1.1.1.1
	pgoyette-localcount-20170426:1.1.1.1
	bouyer-socketcan-base1:1.1.1.1
	pgoyette-localcount-20170320:1.1.1.1
	netbsd-7-1:1.1.1.1.0.30
	netbsd-7-1-RELEASE:1.1.1.1
	netbsd-7-1-RC2:1.1.1.1
	netbsd-7-nhusb-base-20170116:1.1.1.1
	bouyer-socketcan:1.1.1.1.0.28
	bouyer-socketcan-base:1.1.1.1
	pgoyette-localcount-20170107:1.1.1.1
	netbsd-7-1-RC1:1.1.1.1
	pgoyette-localcount-20161104:1.1.1.1
	netbsd-7-0-2-RELEASE:1.1.1.1
	localcount-20160914:1.1.1.1
	netbsd-7-nhusb:1.1.1.1.0.26
	netbsd-7-nhusb-base:1.1.1.1
	pgoyette-localcount-20160806:1.1.1.1
	pgoyette-localcount-20160726:1.1.1.1
	pgoyette-localcount:1.1.1.1.0.24
	pgoyette-localcount-base:1.1.1.1
	gcc-5-4-0:1.1.1.1
	netbsd-7-0-1-RELEASE:1.1.1.1
	gcc-5-3-0:1.1.1.1
	netbsd-7-0:1.1.1.1.0.22
	netbsd-7-0-RELEASE:1.1.1.1
	gcc-4-8-5-pre-gcc-old-import:1.1.1.1
	netbsd-7-0-RC3:1.1.1.1
	netbsd-7-0-RC2:1.1.1.1
	post-gcc-4-8-5-merge:1.1.1.1
	gcc-4-8-5:1.1.1.1
	netbsd-7-0-RC1:1.1.1.1
	gcc-4-8-4:1.1.1.1
	gcc-4-8-20141009:1.1.1.1
	netbsd-6-0-6-RELEASE:1.1.1.1
	netbsd-6-1-5-RELEASE:1.1.1.1
	netbsd-7:1.1.1.1.0.20
	netbsd-7-base:1.1.1.1
	gcc-4-8-3:1.1.1.1
	yamt-pagecache-base9:1.1.1.1
	yamt-pagecache-tag8:1.1.1.1
	netbsd-6-1-4-RELEASE:1.1.1.1
	netbsd-6-0-5-RELEASE:1.1.1.1
	tls-earlyentropy:1.1.1.1.0.18
	tls-earlyentropy-base:1.1.1.1
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.1
	riastradh-drm2-base3:1.1.1.1
	gcc-4-8-3-pre-r208254:1.1.1.1
	gcc-4-8-3-pre-r206687:1.1.1.1
	imported-to-gcc-old-20140227-0107:1.1.1.1
	netbsd-6-1-3-RELEASE:1.1.1.1
	netbsd-6-0-4-RELEASE:1.1.1.1
	netbsd-6-1-2-RELEASE:1.1.1.1
	netbsd-6-0-3-RELEASE:1.1.1.1
	netbsd-6-1-1-RELEASE:1.1.1.1
	riastradh-drm2-base2:1.1.1.1
	riastradh-drm2-base1:1.1.1.1
	riastradh-drm2:1.1.1.1.0.12
	riastradh-drm2-base:1.1.1.1
	netbsd-6-1:1.1.1.1.0.16
	netbsd-6-0-2-RELEASE:1.1.1.1
	netbsd-6-1-RELEASE:1.1.1.1
	netbsd-6-1-RC4:1.1.1.1
	netbsd-6-1-RC3:1.1.1.1
	agc-symver:1.1.1.1.0.14
	agc-symver-base:1.1.1.1
	netbsd-6-1-RC2:1.1.1.1
	netbsd-6-1-RC1:1.1.1.1
	yamt-pagecache-base8:1.1.1.1
	netbsd-6-0-1-RELEASE:1.1.1.1
	yamt-pagecache-base7:1.1.1.1
	matt-nb6-plus-nbase:1.1.1.1
	yamt-pagecache-base6:1.1.1.1
	netbsd-6-0:1.1.1.1.0.10
	netbsd-6-0-RELEASE:1.1.1.1
	gcc-4-5-4:1.1.1.1
	netbsd-6-0-RC2:1.1.1.1
	tls-maxphys:1.1.1.1.0.8
	tls-maxphys-base:1.1.1.1
	matt-nb6-plus:1.1.1.1.0.6
	matt-nb6-plus-base:1.1.1.1
	netbsd-6-0-RC1:1.1.1.1
	yamt-pagecache-base5:1.1.1.1
	yamt-pagecache-base4:1.1.1.1
	netbsd-6:1.1.1.1.0.4
	netbsd-6-base:1.1.1.1
	yamt-pagecache-base3:1.1.1.1
	yamt-pagecache-base2:1.1.1.1
	yamt-pagecache:1.1.1.1.0.2
	yamt-pagecache-base:1.1.1.1
	gcc-4-5-3:1.1.1.1
	FSF:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2011.06.21.01.24.29;	author mrg;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2011.06.21.01.24.29;	author mrg;	state Exp;
branches;
next	;


desc
@@


1.1
log
@Initial revision
@
text
@#!/usr/bin/perl -w
use English;

$max = shift @@ARGV;

$template_params = "typename _T1";
$template_params_unnamed = "typename";
$template_args = "_T1";
$params = "_T1 __a1";
$ref_params = "_T1& __a1";
$args = "__a1";
$bind_members = "_T1 _M_arg1;";
$bind_members_init = "_M_arg1(__a1)";
$mu_get_tuple_args = "::std::tr1::get<0>(__tuple)";
$bind_v_template_args = "typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type";
$bind_v_args = "_Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))";
$tuple_add_cref = "typename __add_c_ref<_T1>::type __a1";
$tuple_copy_init = "_M_arg1(__in._M_arg1)";
$tuple_assign = "_M_arg1 = __in._M_arg1;";
$template_params_null_class = "typename _T1 = _NullClass";
$template_args_stripped = "typename __strip_reference_wrapper<_T1>::__type";
$template_params_u = "typename _U1";
$template_args_u = "_U1";
$ref_wrap_params = "ref(__a1)";
$ref_template_args = "_T1&";
for ($num_args = 2; $num_args <= $max; ++$num_args) {
  $prev_args = $num_args - 1;
  $next_args = $num_args + 1;
  $template_params_shifted = $template_params;
  $template_args_shifted = $template_args;
  $params_shifted = $params;
  $args_shifted = $args;
  $template_params .= ", typename _T$num_args";
  $template_params_unnamed .= ", typename";
  $template_args .= ", _T$num_args";
  $params .= ", _T$num_args __a$num_args";
  $ref_params .=", _T$num_args& __a$num_args";
  $args .= ", __a$num_args";
  $bind_members .= " _T$num_args _M_arg$num_args;";
  $bind_members_init .= ", _M_arg$num_args(__a$num_args)";
  $mu_get_tuple_args .= ", ::std::tr1::get<$prev_args>(__tuple)";
  $bind_v_template_args .= ", typename result_of<_Mu<_T$num_args> _CV(_T$num_args, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type";
  $bind_v_args .= ", _Mu<_T$num_args>()(_M_arg$num_args, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))";
  $tuple_add_cref .= ", typename __add_c_ref<_T$num_args>::type __a$num_args";
  $tuple_copy_init .= ", _M_arg$num_args(__in._M_arg$num_args)";
  $tuple_assign .= " _M_arg$num_args = __in._M_arg$num_args;";
  $template_params_null_class .= ", typename _T$num_args = _NullClass";
  $template_args_stripped .= ", typename __strip_reference_wrapper<_T$num_args>::__type";
  $template_params_u .= ", typename _U$num_args";
  $template_args_u .= ", _U$num_args";
  $ref_wrap_params .= ", ref(__a$num_args)";
  $ref_template_args .= ", _T$num_args&";

  if ($num_args == $max) {
    print "#define _GLIBCXX_LAST_INCLUDE\n"
  }
  print "#define _GLIBCXX_NUM_ARGS $num_args\n";
  print "#define _GLIBCXX_COMMA ,\n";
  print "#define _GLIBCXX_TEMPLATE_PARAMS $template_params\n";
  print "#define _GLIBCXX_TEMPLATE_ARGS $template_args\n";
  print "#define _GLIBCXX_PARAMS $params\n";
  print "#define _GLIBCXX_REF_PARAMS $ref_params\n";
  print "#define _GLIBCXX_ARGS $args\n";
  print "#define _GLIBCXX_COMMA_SHIFTED ,\n";
  print "#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED $template_params_shifted\n";
  print "#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED $template_args_shifted\n";
  print "#define _GLIBCXX_PARAMS_SHIFTED $params_shifted\n";
  print "#define _GLIBCXX_ARGS_SHIFTED $args_shifted\n";
  print "#define _GLIBCXX_BIND_MEMBERS $bind_members\n";
  print "#define _GLIBCXX_BIND_MEMBERS_INIT $bind_members_init\n";
  print "#define _GLIBCXX_MU_GET_TUPLE_ARGS $mu_get_tuple_args\n";
  print "#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) $bind_v_template_args\n";
  print "#define _GLIBCXX_BIND_V_ARGS $bind_v_args\n";
  print "#define _GLIBCXX_TUPLE_ADD_CREF $tuple_add_cref\n";
  print "#define _GLIBCXX_TUPLE_COPY_INIT $tuple_copy_init\n";
  print "#define _GLIBCXX_TUPLE_ASSIGN $tuple_assign\n";
  print "#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS $template_params_null_class\n";
  print "#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED $template_args_stripped\n";
  print "#define _GLIBCXX_TEMPLATE_PARAMS_U $template_params_u\n";
  print "#define _GLIBCXX_TEMPLATE_ARGS_U $template_args_u\n";
  print "#define _GLIBCXX_REF_WRAP_PARAMS $ref_wrap_params\n";
  print "#define _GLIBCXX_REF_TEMPLATE_ARGS $ref_template_args\n";
  print "#define _GLIBCXX_NUM_ARGS_PLUS_1 $next_args\n";
  print "#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T$next_args\n";
  print "#include _GLIBCXX_REPEAT_HEADER\n";
  print "#undef _GLIBCXX_T_NUM_ARGS_PLUS_1\n";
  print "#undef _GLIBCXX_NUM_ARGS_PLUS_1\n";
  print "#undef _GLIBCXX_REF_TEMPLATE_ARGS\n";
  print "#undef _GLIBCXX_REF_WRAP_PARAMS\n";
  print "#undef _GLIBCXX_TEMPLATE_ARGS_U\n";
  print "#undef _GLIBCXX_TEMPLATE_PARAMS_U\n";
  print "#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED\n";
  print "#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS\n";
  print "#undef _GLIBCXX_TUPLE_ASSIGN\n";
  print "#undef _GLIBCXX_TUPLE_COPY_INIT\n";
  print "#undef _GLIBCXX_TUPLE_ADD_CREF\n";
  print "#undef _GLIBCXX_BIND_V_ARGS\n";
  print "#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS\n";
  print "#undef _GLIBCXX_MU_GET_TUPLE_ARGS\n";
  print "#undef _GLIBCXX_BIND_MEMBERS_INIT\n";
  print "#undef _GLIBCXX_BIND_MEMBERS\n";
  print "#undef _GLIBCXX_ARGS_SHIFTED\n";
  print "#undef _GLIBCXX_PARAMS_SHIFTED\n";
  print "#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED\n";
  print "#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED\n";
  print "#undef _GLIBCXX_COMMA_SHIFTED\n";
  print "#undef _GLIBCXX_ARGS\n";
  print "#undef _GLIBCXX_REF_PARAMS\n";
  print "#undef _GLIBCXX_PARAMS\n";
  print "#undef _GLIBCXX_TEMPLATE_ARGS\n";
  print "#undef _GLIBCXX_TEMPLATE_PARAMS\n";
  print "#undef _GLIBCXX_COMMA\n";
  print "#undef _GLIBCXX_NUM_ARGS\n";
  if ($num_args == $max) {
    print "#undef _GLIBCXX_LAST_INCLUDE\n"
  }
}

print "\n";
print "#ifndef _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS\n";
print "#  define _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS $template_params\n";
print "#  define _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS_UNNAMED $template_params_unnamed\n";
print "#  define _GLIBCXX_TUPLE_ALL_TEMPLATE_ARGS $template_args\n";
print "#endif\n";
print "\n";

@


1.1.1.1
log
@initial import of GCC 4.5.3 sources.  changes since 4.1 are way too numerous
to review, please see http://gcc.gnu.org/gcc-4.5/changes.html (and the 4.2,
4.3 and 4.4 versions, too.)

this includes the core, c++, objc and the non java/ada/fortran parts of the
testsuite.
@
text
@@
