diff -Nrc3pad gcc-3.2.1/gcc/cp/ChangeLog gcc-3.2.2/gcc/cp/ChangeLog *** gcc-3.2.1/gcc/cp/ChangeLog Tue Nov 19 17:48:55 2002 --- gcc-3.2.2/gcc/cp/ChangeLog Wed Feb 5 03:00:17 2003 *************** *** 1,3 **** --- 1,120 ---- + 2003-02-05 Release Manager + + * GCC 3.2.2 Released. + + 2003-02-03 Mark Mitchell + + PR C++/7129 + * operators.def: Add ?=. + + 2003-01-28 Christian Cornelssen + + * Make-lang.in (c++.install-common, c++.install-man) + (c++.uninstall): Prepend $(DESTDIR) to destination paths + in all (un)installation commands. + (c++.install-common): Rewrite $(LN) commands to support + DESTDIR with "ln" as well as with "ln -s". + + 2003-01-22 Mark Mitchell + + PR c++/9328 + * error.c (dump_decl): For an OVERLOAD, just print the name of the + function; it doesn't make sense to try to print its type. + * semantics.c (finish_typeof): Issue errors about invalid uses. + + 2003-01-21 Jeffrey D. Oldham + + PR c++/47 + * cp-tree.h (lookup_nested_field): Add declaration. + * decl.c (lookup_name_real): Call lookup_nested_field. + * search.c (lookup_nested_field): Add function. + + 2002-12-26 Nathan Sidwell + + PR c++/8503 + Remove DR 295 implementation. + * pt.c (check_cv_quals_for_unify): Disable function & method cases. + * tree.c (cp_build_qualified_type_real): Likewise. Don't warn + about ignoring volatile qualifiers. + + 2002-12-18 Kriang Lerdsuwanakij + + * parse.y (bad_parm): Add missing argument to error function call. + + 2002-12-18 Kriang Lerdsuwanakij + + PR c++/8442 + * decl2.c (handle_class_head): Verify if the looked up name is a + type or template. + * pt.c (convert_template_argument): Fix type or template template + parameter decision logic. + + 2002-12-13 Joe Buck + + * parse.y (class_head_defn): Set CLASSTYPE_DECLARED_CLASS for + anonymous structs. + + 2002-12-13 Gabriel Dos Reis + + PR C++/8031 + * cvt.c (convert_to_pointer_force): Don't try comparing against + erronous type. + + 2002-12-10 Mark Mitchell + + PR c++/8372 + * pt.c (tsubst_copy): Handle destructor names more correctly. + + 2002-12-05 Kaveh R. Ghazi + + * error.c (dump_expr): Fix format specifier warning. + + 2002-12-04 Gabriel Dos Reis + + PR C++/8799 + * error.c (dump_expr): Don't ever try to dump a non-existent + expression. + + 2002-12-02 Mark Mitchell + + PR c++/8615 + * error.c (dump_expr): Handle character constants with + TREE_OVERFLOW set. + + 2002-12-01 Mark Mitchell + + PR c++/5919 + * pt.c (unify): Use variably_modified_type_p to test validity of + template argument types. + + 2002-12-01 Mark Mitchell + + PR c++/8727 + * cp-tree.h (lang_type_class): Add typeinfo_var. + (CLASSTYPE_TYPEINFO_VAR): New macro. + * rtti.c (get_tinfo_decl): Use it. + + PR c++/8663 + * init.c (expand_member_init): Always get the main variant of a + base class. + + 2002-12-01 Mark Mitchell + + PR c++/8332 + PR c++/8493 + * decl.c (cxx_init_decl_processing): Use size_type_node, not + c_size_type_node. + * decl2.c (coerce_new_type): Likewise. + * except.c (do_allocate_exception): Likewise. + * typeck.c (c_sizeof): Likewise. + (c_sizeof_nowarn): Likewise. + + 2002-11-30 Mark Mitchell + + PR c++/8214 + * typeck.c (convert_for_assignment): Do not use + decl_constant_value on the operand. + 2002-11-19 Release Manager * GCC 3.2.1 Released. diff -Nrc3pad gcc-3.2.1/gcc/cp/Make-lang.in gcc-3.2.2/gcc/cp/Make-lang.in *** gcc-3.2.1/gcc/cp/Make-lang.in Thu May 23 17:57:42 2002 --- gcc-3.2.2/gcc/cp/Make-lang.in Tue Jan 28 21:53:12 2003 *************** c++.install-normal: *** 155,191 **** c++.install-common: installdirs -if [ -f cc1plus$(exeext) ] ; then \ if [ -f g++-cross$(exeext) ] ; then \ ! rm -f $(bindir)/$(GXX_CROSS_NAME)$(exeext); \ ! $(INSTALL_PROGRAM) g++-cross$(exeext) $(bindir)/$(GXX_CROSS_NAME)$(exeext); \ ! chmod a+x $(bindir)/$(GXX_CROSS_NAME)$(exeext); \ ! rm -f $(bindir)/$(CXX_CROSS_NAME)$(exeext); \ ! $(LN) $(bindir)/$(GXX_CROSS_NAME)$(exeext) $(bindir)/$(CXX_CROSS_NAME)$(exeext); \ ! if [ -d $(gcc_tooldir)/bin/. ] ; then \ ! rm -f $(gcc_tooldir)/bin/g++$(exeext); \ ! $(INSTALL_PROGRAM) g++-cross$(exeext) $(gcc_tooldir)/bin/g++$(exeext); \ ! rm -f $(gcc_tooldir)/bin/c++$(exeext); \ ! $(LN) $(gcc_tooldir)/bin/g++$(exeext) $(gcc_tooldir)/bin/c++$(exeext); \ else true; fi; \ else \ ! rm -f $(bindir)/$(GXX_INSTALL_NAME)$(exeext); \ ! $(INSTALL_PROGRAM) g++$(exeext) $(bindir)/$(GXX_INSTALL_NAME)$(exeext); \ ! chmod a+x $(bindir)/$(GXX_INSTALL_NAME)$(exeext); \ ! rm -f $(bindir)/$(CXX_INSTALL_NAME)$(exeext); \ ! $(LN) $(bindir)/$(GXX_INSTALL_NAME)$(exeext) $(bindir)/$(CXX_INSTALL_NAME)$(exeext); \ ! rm -f $(bindir)/$(GXX_TARGET_INSTALL_NAME)$(exeext); \ ! $(LN) $(bindir)/$(GXX_INSTALL_NAME)$(exeext) $(bindir)/$(GXX_TARGET_INSTALL_NAME)$(exeext); \ ! rm -f $(bindir)/$(CXX_TARGET_INSTALL_NAME)$(exeext); \ ! $(LN) $(bindir)/$(CXX_INSTALL_NAME)$(exeext) $(bindir)/$(CXX_TARGET_INSTALL_NAME)$(exeext); \ fi ; \ if [ x$(DEMANGLER_PROG) != x ] && [ -x "$(DEMANGLER_PROG)" ]; then \ if [ -f g++-cross$(exeext) ] ; then \ ! rm -f $(bindir)/$(DEMANGLER_CROSS_NAME)$(exeext); \ ! $(INSTALL_PROGRAM) $(DEMANGLER_PROG) $(bindir)/$(DEMANGLER_CROSS_NAME)$(exeext); \ ! chmod a+x $(bindir)/$(DEMANGLER_CROSS_NAME)$(exeext); \ else \ ! rm -f $(bindir)/$(DEMANGLER_INSTALL_NAME)$(exeext); \ ! $(INSTALL_PROGRAM) $(DEMANGLER_PROG) $(bindir)/$(DEMANGLER_INSTALL_NAME)$(exeext); \ ! chmod a+x $(bindir)/$(DEMANGLER_INSTALL_NAME)$(exeext); \ fi ; \ fi ; \ fi --- 155,196 ---- c++.install-common: installdirs -if [ -f cc1plus$(exeext) ] ; then \ if [ -f g++-cross$(exeext) ] ; then \ ! rm -f $(DESTDIR)$(bindir)/$(GXX_CROSS_NAME)$(exeext); \ ! $(INSTALL_PROGRAM) g++-cross$(exeext) $(DESTDIR)$(bindir)/$(GXX_CROSS_NAME)$(exeext); \ ! chmod a+x $(DESTDIR)$(bindir)/$(GXX_CROSS_NAME)$(exeext); \ ! rm -f $(DESTDIR)$(bindir)/$(CXX_CROSS_NAME)$(exeext); \ ! ( cd $(DESTDIR)$(bindir) && \ ! $(LN) $(GXX_CROSS_NAME)$(exeext) $(CXX_CROSS_NAME)$(exeext) ); \ ! if [ -d $(DESTDIR)$(gcc_tooldir)/bin/. ] ; then \ ! rm -f $(DESTDIR)$(gcc_tooldir)/bin/g++$(exeext); \ ! $(INSTALL_PROGRAM) g++-cross$(exeext) $(DESTDIR)$(gcc_tooldir)/bin/g++$(exeext); \ ! rm -f $(DESTDIR)$(gcc_tooldir)/bin/c++$(exeext); \ ! ( cd $(DESTDIR)$(gcc_tooldir)/bin && \ ! $(LN) g++$(exeext) c++$(exeext) ); \ else true; fi; \ else \ ! rm -f $(DESTDIR)$(bindir)/$(GXX_INSTALL_NAME)$(exeext); \ ! $(INSTALL_PROGRAM) g++$(exeext) $(DESTDIR)$(bindir)/$(GXX_INSTALL_NAME)$(exeext); \ ! chmod a+x $(DESTDIR)$(bindir)/$(GXX_INSTALL_NAME)$(exeext); \ ! rm -f $(DESTDIR)$(bindir)/$(CXX_INSTALL_NAME)$(exeext); \ ! ( cd $(DESTDIR)$(bindir) && \ ! $(LN) $(GXX_INSTALL_NAME)$(exeext) $(CXX_INSTALL_NAME)$(exeext) ); \ ! rm -f $(DESTDIR)$(bindir)/$(GXX_TARGET_INSTALL_NAME)$(exeext); \ ! ( cd $(DESTDIR)$(bindir) && \ ! $(LN) $(GXX_INSTALL_NAME)$(exeext) $(GXX_TARGET_INSTALL_NAME)$(exeext) ); \ ! rm -f $(DESTDIR)$(bindir)/$(CXX_TARGET_INSTALL_NAME)$(exeext); \ ! ( cd $(DESTDIR)$(bindir) && \ ! $(LN) $(CXX_INSTALL_NAME)$(exeext) $(CXX_TARGET_INSTALL_NAME)$(exeext) ); \ fi ; \ if [ x$(DEMANGLER_PROG) != x ] && [ -x "$(DEMANGLER_PROG)" ]; then \ if [ -f g++-cross$(exeext) ] ; then \ ! rm -f $(DESTDIR)$(bindir)/$(DEMANGLER_CROSS_NAME)$(exeext); \ ! $(INSTALL_PROGRAM) $(DEMANGLER_PROG) $(DESTDIR)$(bindir)/$(DEMANGLER_CROSS_NAME)$(exeext); \ ! chmod a+x $(DESTDIR)$(bindir)/$(DEMANGLER_CROSS_NAME)$(exeext); \ else \ ! rm -f $(DESTDIR)$(bindir)/$(DEMANGLER_INSTALL_NAME)$(exeext); \ ! $(INSTALL_PROGRAM) $(DEMANGLER_PROG) $(DESTDIR)$(bindir)/$(DEMANGLER_INSTALL_NAME)$(exeext); \ ! chmod a+x $(DESTDIR)$(bindir)/$(DEMANGLER_INSTALL_NAME)$(exeext); \ fi ; \ fi ; \ fi *************** c++.install-info: *** 195,219 **** c++.install-man: installdirs $(srcdir)/cp/g++.1 -if [ -f cc1plus$(exeext) ] ; then \ if [ -f g++-cross$(exeext) ] ; then \ ! rm -f $(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \ ! $(INSTALL_DATA) $(srcdir)/cp/g++.1 $(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \ ! chmod a-x $(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \ else \ ! rm -f $(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \ ! $(INSTALL_DATA) $(srcdir)/cp/g++.1 $(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \ ! chmod a-x $(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \ fi; \ else true; fi c++.uninstall: ! -rm -rf $(bindir)/$(CXX_INSTALL_NAME)$(exeext) ! -rm -rf $(bindir)/$(CXX_CROSS_NAME)$(exeext) ! -rm -rf $(bindir)/$(GXX_INSTALL_NAME)$(exeext) ! -rm -rf $(bindir)/$(GXX_CROSS_NAME)$(exeext) ! -rm -rf $(bindir)/$(DEMANGLER_INSTALL_NAME)$(exeext) ! -rm -rf $(bindir)/$(DEMANGLER_CROSS_NAME)$(exeext) ! -rm -rf $(man1dir)/$(GXX_INSTALL_NAME)$(man1ext) ! -rm -rf $(man1dir)/$(GXX_CROSS_NAME)$(man1ext) # # Clean hooks: # A lot of the ancillary files are deleted by the main makefile. --- 200,224 ---- c++.install-man: installdirs $(srcdir)/cp/g++.1 -if [ -f cc1plus$(exeext) ] ; then \ if [ -f g++-cross$(exeext) ] ; then \ ! rm -f $(DESTDIR)$(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \ ! $(INSTALL_DATA) $(srcdir)/cp/g++.1 $(DESTDIR)$(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \ ! chmod a-x $(DESTDIR)$(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \ else \ ! rm -f $(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \ ! $(INSTALL_DATA) $(srcdir)/cp/g++.1 $(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \ ! chmod a-x $(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \ fi; \ else true; fi c++.uninstall: ! -rm -rf $(DESTDIR)$(bindir)/$(CXX_INSTALL_NAME)$(exeext) ! -rm -rf $(DESTDIR)$(bindir)/$(CXX_CROSS_NAME)$(exeext) ! -rm -rf $(DESTDIR)$(bindir)/$(GXX_INSTALL_NAME)$(exeext) ! -rm -rf $(DESTDIR)$(bindir)/$(GXX_CROSS_NAME)$(exeext) ! -rm -rf $(DESTDIR)$(bindir)/$(DEMANGLER_INSTALL_NAME)$(exeext) ! -rm -rf $(DESTDIR)$(bindir)/$(DEMANGLER_CROSS_NAME)$(exeext) ! -rm -rf $(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext) ! -rm -rf $(DESTDIR)$(man1dir)/$(GXX_CROSS_NAME)$(man1ext) # # Clean hooks: # A lot of the ancillary files are deleted by the main makefile. diff -Nrc3pad gcc-3.2.1/gcc/cp/NEWS gcc-3.2.2/gcc/cp/NEWS *** gcc-3.2.1/gcc/cp/NEWS Tue Mar 19 00:21:55 2002 --- gcc-3.2.2/gcc/cp/NEWS Tue Dec 10 07:16:03 2002 *************** *** 1,3 **** --- 1,27 ---- + *** Changes in GCC 3.2.2: + + * G++ no longer allows in-class initializations of static data members + that do not have arithmetic or enumeration type. For example: + + struct S { + static const char* const p = "abc"; + }; + + is no longer accepted. + + Use the standards-conformant form: + + struct S { + static const char* const p; + }; + + const char* const S::p = "abc"; + + instead. + + (ISO C++ is even stricter; it does not allow in-class + initializations of floating-point types.) + *** Changes in GCC 3.1: * -fhonor-std and -fno-honor-std have been removed. -fno-honor-std was diff -Nrc3pad gcc-3.2.1/gcc/cp/cp-tree.h gcc-3.2.2/gcc/cp/cp-tree.h *** gcc-3.2.1/gcc/cp/cp-tree.h Fri Oct 25 22:11:14 2002 --- gcc-3.2.2/gcc/cp/cp-tree.h Tue Jan 21 19:00:26 2003 *************** *** 1,6 **** /* Definitions for C++ parsing and type checking. Copyright (C) 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ! 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. --- 1,6 ---- /* Definitions for C++ parsing and type checking. Copyright (C) 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ! 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. *************** struct lang_type *** 1266,1271 **** --- 1266,1272 ---- tree primary_base; tree vfields; + tree typeinfo_var; tree vbases; tree tags; tree size; *************** struct lang_type *** 1686,1691 **** --- 1687,1698 ---- /* Used by various search routines. */ #define IDENTIFIER_MARKED(NODE) TREE_LANG_FLAG_0 (NODE) + /* The std::type_info variable representing this class, or NULL if no + such variable has been created. This field is only set for the + TYPE_MAIN_VARIANT of the class. */ + #define CLASSTYPE_TYPEINFO_VAR(NODE) \ + (TYPE_LANG_SPECIFIC (NODE)->typeinfo_var) + /* Accessor macros for the vfield slots in structures. */ /* The virtual function pointer fields that this type contains. For a *************** extern tree get_dynamic_cast_base_type *** 4055,4060 **** --- 4062,4068 ---- extern void type_access_control PARAMS ((tree, tree)); extern int accessible_p PARAMS ((tree, tree)); extern tree lookup_field PARAMS ((tree, tree, int, int)); + extern tree lookup_nested_field PARAMS ((tree, int)); extern int lookup_fnfields_1 PARAMS ((tree, tree)); extern tree lookup_fnfields PARAMS ((tree, tree, int)); extern tree lookup_member PARAMS ((tree, tree, int, int)); diff -Nrc3pad gcc-3.2.1/gcc/cp/cvt.c gcc-3.2.2/gcc/cp/cvt.c *** gcc-3.2.1/gcc/cp/cvt.c Thu Oct 17 00:15:37 2002 --- gcc-3.2.2/gcc/cp/cvt.c Fri Dec 13 21:54:46 2002 *************** convert_to_pointer_force (type, expr) *** 313,318 **** --- 313,320 ---- if (binfo) { expr = build_base_path (code, expr, binfo, 0); + if (expr == error_mark_node) + return error_mark_node; /* Add any qualifier conversions. */ if (!same_type_p (TREE_TYPE (TREE_TYPE (expr)), TREE_TYPE (type))) diff -Nrc3pad gcc-3.2.1/gcc/cp/decl.c gcc-3.2.2/gcc/cp/decl.c *** gcc-3.2.1/gcc/cp/decl.c Thu Oct 31 00:02:33 2002 --- gcc-3.2.2/gcc/cp/decl.c Tue Jan 21 19:00:27 2003 *************** *** 1,6 **** /* Process declarations and variables for C compiler. Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, ! 2001, 2002 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. --- 1,6 ---- /* Process declarations and variables for C compiler. Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, ! 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. *************** lookup_name_real (name, prefer_type, non *** 6173,6178 **** --- 6173,6182 ---- } } + /* The name might be from an enclosing class of the current scope. */ + if (!val && !nonclass && current_class_type) + val = qualify_lookup (lookup_nested_field (name, !yylex), flags); + /* Now lookup in namespace scopes. */ if (!val || val_is_implicit_typename) { *************** cxx_init_decl_processing () *** 6659,6665 **** ptr_ftype_sizetype = build_function_type (ptr_type_node, tree_cons (NULL_TREE, ! c_size_type_node, void_list_node)); newtype = build_exception_variant (ptr_ftype_sizetype, add_exception_specifier --- 6663,6669 ---- ptr_ftype_sizetype = build_function_type (ptr_type_node, tree_cons (NULL_TREE, ! size_type_node, void_list_node)); newtype = build_exception_variant (ptr_ftype_sizetype, add_exception_specifier *************** check_static_variable_definition (decl, *** 9402,9411 **** the definition, but not both. If it appears in the class, the member is a member constant. The file-scope definition is always required. */ ! if (CLASS_TYPE_P (type) || TREE_CODE (type) == REFERENCE_TYPE) { error ("invalid in-class initialization of static data member of non-integral type `%T'", ! type); /* If we just return the declaration, crashes will sometimes occur. We therefore return void_type_node, as if this was a friend declaration, to cause callers to completely ignore --- 9406,9415 ---- the definition, but not both. If it appears in the class, the member is a member constant. The file-scope definition is always required. */ ! if (!ARITHMETIC_TYPE_P (type) && TREE_CODE (type) != ENUMERAL_TYPE) { error ("invalid in-class initialization of static data member of non-integral type `%T'", ! type); /* If we just return the declaration, crashes will sometimes occur. We therefore return void_type_node, as if this was a friend declaration, to cause callers to completely ignore diff -Nrc3pad gcc-3.2.1/gcc/cp/decl2.c gcc-3.2.2/gcc/cp/decl2.c *** gcc-3.2.1/gcc/cp/decl2.c Sat Nov 2 10:28:42 2002 --- gcc-3.2.2/gcc/cp/decl2.c Wed Dec 18 14:58:28 2002 *************** grokfield (declarator, declspecs, init, *** 1583,1612 **** else init = digest_init (TREE_TYPE (value), init, (tree *)0); } ! ! if (TREE_CODE (init) == CONST_DECL) ! init = DECL_INITIAL (init); ! else if (TREE_READONLY_DECL_P (init)) ! init = decl_constant_value (init); ! else if (TREE_CODE (init) == CONSTRUCTOR) ! init = digest_init (TREE_TYPE (value), init, (tree *)0); ! if (init == error_mark_node) ! /* We must make this look different than `error_mark_node' ! because `decl_const_value' would mis-interpret it ! as only meaning that this VAR_DECL is defined. */ ! init = build1 (NOP_EXPR, TREE_TYPE (value), init); ! else if (processing_template_decl) ! ; ! else if (! TREE_CONSTANT (init)) { ! /* We can allow references to things that are effectively ! static, since references are initialized with the address. */ ! if (TREE_CODE (TREE_TYPE (value)) != REFERENCE_TYPE ! || (TREE_STATIC (init) == 0 ! && (!DECL_P (init) || DECL_EXTERNAL (init) == 0))) { ! error ("field initializer is not constant"); ! init = error_mark_node; } } } --- 1583,1614 ---- else init = digest_init (TREE_TYPE (value), init, (tree *)0); } ! ! if (!processing_template_decl) { ! if (TREE_CODE (init) == CONST_DECL) ! init = DECL_INITIAL (init); ! else if (TREE_READONLY_DECL_P (init)) ! init = decl_constant_value (init); ! else if (TREE_CODE (init) == CONSTRUCTOR) ! init = digest_init (TREE_TYPE (value), init, (tree *)0); ! if (init == error_mark_node) ! /* We must make this look different than `error_mark_node' ! because `decl_const_value' would mis-interpret it ! as only meaning that this VAR_DECL is defined. */ ! init = build1 (NOP_EXPR, TREE_TYPE (value), init); ! else if (! TREE_CONSTANT (init)) { ! /* We can allow references to things that are effectively ! static, since references are initialized with the ! address. */ ! if (TREE_CODE (TREE_TYPE (value)) != REFERENCE_TYPE ! || (TREE_STATIC (init) == 0 ! && (!DECL_P (init) || DECL_EXTERNAL (init) == 0))) ! { ! error ("field initializer is not constant"); ! init = error_mark_node; ! } } } } *************** coerce_new_type (type) *** 2062,2078 **** e = 1, error ("`operator new' must return type `%T'", ptr_type_node); if (!args || args == void_list_node ! || !same_type_p (TREE_VALUE (args), c_size_type_node)) { e = 2; if (args && args != void_list_node) args = TREE_CHAIN (args); ! pedwarn ("`operator new' takes type `size_t' (`%T') as first parameter", c_size_type_node); } switch (e) { case 2: ! args = tree_cons (NULL_TREE, c_size_type_node, args); /* FALLTHROUGH */ case 1: type = build_exception_variant --- 2064,2080 ---- e = 1, error ("`operator new' must return type `%T'", ptr_type_node); if (!args || args == void_list_node ! || !same_type_p (TREE_VALUE (args), size_type_node)) { e = 2; if (args && args != void_list_node) args = TREE_CHAIN (args); ! pedwarn ("`operator new' takes type `size_t' (`%T') as first parameter", size_type_node); } switch (e) { case 2: ! args = tree_cons (NULL_TREE, size_type_node, args); /* FALLTHROUGH */ case 1: type = build_exception_variant *************** handle_class_head (aggr, scope, id, defn *** 5239,5244 **** --- 5241,5247 ---- int *new_type_p; { tree decl = NULL_TREE; + tree type; tree current = current_scope (); bool xrefd_p = false; *************** handle_class_head (aggr, scope, id, defn *** 5287,5298 **** xrefd_p = true; } ! if (!TYPE_BINFO (TREE_TYPE (decl))) { error ("`%T' is not a class or union type", decl); return error_mark_node; } ! if (defn_p) { /* For a definition, we want to enter the containing scope --- 5290,5317 ---- xrefd_p = true; } ! type = TREE_TYPE (decl); ! ! if (!TYPE_BINFO (type)) { error ("`%T' is not a class or union type", decl); return error_mark_node; } ! ! /* When `A' is a template class, using `class A' without template ! argument is invalid unless ! - we are inside the scope of the template class `A' or one of its ! specialization. ! - we are declaring the template class `A' itself. */ ! if (TREE_CODE (type) == RECORD_TYPE ! && CLASSTYPE_IS_TEMPLATE (type) ! && processing_template_decl <= template_class_depth (current) ! && ! is_base_of_enclosing_class (type, current_class_type)) ! { ! error ("template argument is required for `%T'", type); ! return error_mark_node; ! } ! if (defn_p) { /* For a definition, we want to enter the containing scope diff -Nrc3pad gcc-3.2.1/gcc/cp/error.c gcc-3.2.2/gcc/cp/error.c *** gcc-3.2.1/gcc/cp/error.c Sun May 19 11:04:37 2002 --- gcc-3.2.2/gcc/cp/error.c Thu Jan 23 00:30:23 2003 *************** dump_decl (t, flags) *** 935,940 **** --- 935,959 ---- break; case OVERLOAD: + if (OVL_CHAIN (t)) + { + t = OVL_CURRENT (t); + if (DECL_CLASS_SCOPE_P (t)) + { + dump_type (DECL_CONTEXT (t), flags); + output_add_string (scratch_buffer, "::"); + } + else if (DECL_CONTEXT (t)) + { + dump_decl (DECL_CONTEXT (t), flags); + output_add_string (scratch_buffer, "::"); + } + dump_decl (DECL_NAME (t), flags); + break; + } + + /* If there's only one function, just treat it like an ordinary + FUNCTION_DECL. */ t = OVL_CURRENT (t); /* Fall through. */ *************** dump_expr (t, flags) *** 1424,1429 **** --- 1443,1451 ---- tree t; int flags; { + if (t == 0) + return; + switch (TREE_CODE (t)) { case VAR_DECL: *************** dump_expr (t, flags) *** 1473,1479 **** else if (type == char_type_node) { output_add_character (scratch_buffer, '\''); ! dump_char (tree_low_cst (t, 0)); output_add_character (scratch_buffer, '\''); } else --- 1495,1505 ---- else if (type == char_type_node) { output_add_character (scratch_buffer, '\''); ! if (host_integerp (t, TREE_UNSIGNED (type))) ! dump_char (tree_low_cst (t, TREE_UNSIGNED (type))); ! else ! output_printf (scratch_buffer, "\\x%x", ! (unsigned int) TREE_INT_CST_LOW (t)); output_add_character (scratch_buffer, '\''); } else diff -Nrc3pad gcc-3.2.1/gcc/cp/except.c gcc-3.2.2/gcc/cp/except.c *** gcc-3.2.1/gcc/cp/except.c Tue Dec 18 03:35:30 2001 --- gcc-3.2.2/gcc/cp/except.c Sun Dec 1 18:19:12 2002 *************** do_allocate_exception (type) *** 508,514 **** else { /* Declare void *__cxa_allocate_exception(size_t). */ ! tree tmp = tree_cons (NULL_TREE, c_size_type_node, void_list_node); fn = push_library_fn (fn, build_function_type (ptr_type_node, tmp)); } --- 508,514 ---- else { /* Declare void *__cxa_allocate_exception(size_t). */ ! tree tmp = tree_cons (NULL_TREE, size_type_node, void_list_node); fn = push_library_fn (fn, build_function_type (ptr_type_node, tmp)); } diff -Nrc3pad gcc-3.2.1/gcc/cp/init.c gcc-3.2.2/gcc/cp/init.c *** gcc-3.2.1/gcc/cp/init.c Fri Oct 11 18:10:59 2002 --- gcc-3.2.2/gcc/cp/init.c Sun Dec 1 20:40:36 2002 *************** expand_member_init (exp, name, init) *** 1062,1068 **** } else if (TYPE_P (name)) { ! basetype = name; name = TYPE_NAME (name); } else if (TREE_CODE (name) == TYPE_DECL) --- 1062,1068 ---- } else if (TYPE_P (name)) { ! basetype = TYPE_MAIN_VARIANT (name); name = TYPE_NAME (name); } else if (TREE_CODE (name) == TYPE_DECL) diff -Nrc3pad gcc-3.2.1/gcc/cp/operators.def gcc-3.2.2/gcc/cp/operators.def *** gcc-3.2.1/gcc/cp/operators.def Tue Jul 2 03:14:24 2002 --- gcc-3.2.2/gcc/cp/operators.def Wed Feb 5 01:01:03 2003 *************** *** 5,11 **** non-overloadable operators (like the `?:' ternary operator). Writtey by Mark Mitchell ! Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU CC. --- 5,11 ---- non-overloadable operators (like the `?:' ternary operator). Writtey by Mark Mitchell ! Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of GNU CC. *************** Boston, MA 02111-1307, USA. */ *** 40,46 **** assignment operators, the same tree-codes are reused; i.e., `operator +' will also have PLUS_EXPR as its CODE. ! NEW_MANGLING The mangling prefix for the operator, as a C string, and as mangled under the new ABI. For `operator +', for example, this --- 40,46 ---- assignment operators, the same tree-codes are reused; i.e., `operator +' will also have PLUS_EXPR as its CODE. ! MANGLING The mangling prefix for the operator, as a C string, and as mangled under the new ABI. For `operator +', for example, this *************** DEF_SIMPLE_OPERATOR ("->", COMPONENT_REF *** 127,133 **** DEF_SIMPLE_OPERATOR ("[]", ARRAY_REF, "ix", 2) DEF_SIMPLE_OPERATOR ("++", POSTINCREMENT_EXPR, "pp", 2) DEF_SIMPLE_OPERATOR ("--", POSTDECREMENT_EXPR, "mm", 2) ! /* These are extensions. */ DEF_SIMPLE_OPERATOR ("?", MAX_EXPR, "v23max", 2) /* This one is needed for mangling. */ --- 127,133 ---- DEF_SIMPLE_OPERATOR ("[]", ARRAY_REF, "ix", 2) DEF_SIMPLE_OPERATOR ("++", POSTINCREMENT_EXPR, "pp", 2) DEF_SIMPLE_OPERATOR ("--", POSTDECREMENT_EXPR, "mm", 2) ! /* These operators are GNU extensions. */ DEF_SIMPLE_OPERATOR ("?", MAX_EXPR, "v23max", 2) /* This one is needed for mangling. */ *************** DEF_ASSN_OPERATOR ("|=", BIT_IOR_EXPR, " *** 145,150 **** --- 145,153 ---- DEF_ASSN_OPERATOR ("^=", BIT_XOR_EXPR, "eO", 2) DEF_ASSN_OPERATOR ("<<=", LSHIFT_EXPR, "lS", 2) DEF_ASSN_OPERATOR (">>=", RSHIFT_EXPR, "rS", 2) + /* These operators are GNU extensions. */ + DEF_ASSN_OPERATOR ("?=", MAX_EXPR, "v23maX", 2); /* Ternary operators. */ DEF_SIMPLE_OPERATOR ("?:", COND_EXPR, "qu", 3) diff -Nrc3pad gcc-3.2.1/gcc/cp/parse.c gcc-3.2.2/gcc/cp/parse.c *** gcc-3.2.1/gcc/cp/parse.c Tue Nov 19 18:27:03 2002 --- gcc-3.2.2/gcc/cp/parse.c Wed Feb 5 03:19:13 2003 *************** *** 1,96 **** ! ! /* A Bison parser, made from parse.y ! by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ ! #define IDENTIFIER 257 ! #define tTYPENAME 258 ! #define SELFNAME 259 ! #define PFUNCNAME 260 ! #define SCSPEC 261 ! #define TYPESPEC 262 ! #define CV_QUALIFIER 263 ! #define CONSTANT 264 ! #define VAR_FUNC_NAME 265 ! #define STRING 266 ! #define ELLIPSIS 267 ! #define SIZEOF 268 ! #define ENUM 269 ! #define IF 270 ! #define ELSE 271 ! #define WHILE 272 ! #define DO 273 ! #define FOR 274 ! #define SWITCH 275 ! #define CASE 276 ! #define DEFAULT 277 ! #define BREAK 278 ! #define CONTINUE 279 ! #define RETURN_KEYWORD 280 ! #define GOTO 281 ! #define ASM_KEYWORD 282 ! #define TYPEOF 283 ! #define ALIGNOF 284 ! #define SIGOF 285 ! #define ATTRIBUTE 286 ! #define EXTENSION 287 ! #define LABEL 288 ! #define REALPART 289 ! #define IMAGPART 290 ! #define VA_ARG 291 ! #define AGGR 292 ! #define VISSPEC 293 ! #define DELETE 294 ! #define NEW 295 ! #define THIS 296 ! #define OPERATOR 297 ! #define CXX_TRUE 298 ! #define CXX_FALSE 299 ! #define NAMESPACE 300 ! #define TYPENAME_KEYWORD 301 ! #define USING 302 ! #define LEFT_RIGHT 303 ! #define TEMPLATE 304 ! #define TYPEID 305 ! #define DYNAMIC_CAST 306 ! #define STATIC_CAST 307 ! #define REINTERPRET_CAST 308 ! #define CONST_CAST 309 ! #define SCOPE 310 ! #define EXPORT 311 ! #define EMPTY 312 ! #define PTYPENAME 313 ! #define NSNAME 314 ! #define THROW 315 ! #define ASSIGN 316 ! #define OROR 317 ! #define ANDAND 318 ! #define MIN_MAX 319 ! #define EQCOMPARE 320 ! #define ARITHCOMPARE 321 ! #define LSHIFT 322 ! #define RSHIFT 323 ! #define POINTSAT_STAR 324 ! #define DOT_STAR 325 ! #define UNARY 326 ! #define PLUSPLUS 327 ! #define MINUSMINUS 328 ! #define HYPERUNARY 329 ! #define POINTSAT 330 ! #define TRY 331 ! #define CATCH 332 ! #define EXTERN_LANG_STRING 333 ! #define ALL 334 ! #define PRE_PARSED_CLASS_DECL 335 ! #define DEFARG 336 ! #define DEFARG_MARKER 337 ! #define PRE_PARSED_FUNCTION_DECL 338 ! #define TYPENAME_DEFN 339 ! #define IDENTIFIER_DEFN 340 ! #define PTYPENAME_DEFN 341 ! #define END_OF_LINE 342 ! #define END_OF_SAVED_INPUT 343 #line 30 "parse.y" --- 1,95 ---- ! /* A Bison parser, made from parse.y ! by GNU bison 1.33. */ #define YYBISON 1 /* Identify Bison output. */ ! # define IDENTIFIER 257 ! # define tTYPENAME 258 ! # define SELFNAME 259 ! # define PFUNCNAME 260 ! # define SCSPEC 261 ! # define TYPESPEC 262 ! # define CV_QUALIFIER 263 ! # define CONSTANT 264 ! # define VAR_FUNC_NAME 265 ! # define STRING 266 ! # define ELLIPSIS 267 ! # define SIZEOF 268 ! # define ENUM 269 ! # define IF 270 ! # define ELSE 271 ! # define WHILE 272 ! # define DO 273 ! # define FOR 274 ! # define SWITCH 275 ! # define CASE 276 ! # define DEFAULT 277 ! # define BREAK 278 ! # define CONTINUE 279 ! # define RETURN_KEYWORD 280 ! # define GOTO 281 ! # define ASM_KEYWORD 282 ! # define TYPEOF 283 ! # define ALIGNOF 284 ! # define SIGOF 285 ! # define ATTRIBUTE 286 ! # define EXTENSION 287 ! # define LABEL 288 ! # define REALPART 289 ! # define IMAGPART 290 ! # define VA_ARG 291 ! # define AGGR 292 ! # define VISSPEC 293 ! # define DELETE 294 ! # define NEW 295 ! # define THIS 296 ! # define OPERATOR 297 ! # define CXX_TRUE 298 ! # define CXX_FALSE 299 ! # define NAMESPACE 300 ! # define TYPENAME_KEYWORD 301 ! # define USING 302 ! # define LEFT_RIGHT 303 ! # define TEMPLATE 304 ! # define TYPEID 305 ! # define DYNAMIC_CAST 306 ! # define STATIC_CAST 307 ! # define REINTERPRET_CAST 308 ! # define CONST_CAST 309 ! # define SCOPE 310 ! # define EXPORT 311 ! # define EMPTY 312 ! # define PTYPENAME 313 ! # define NSNAME 314 ! # define THROW 315 ! # define ASSIGN 316 ! # define OROR 317 ! # define ANDAND 318 ! # define MIN_MAX 319 ! # define EQCOMPARE 320 ! # define ARITHCOMPARE 321 ! # define LSHIFT 322 ! # define RSHIFT 323 ! # define POINTSAT_STAR 324 ! # define DOT_STAR 325 ! # define UNARY 326 ! # define PLUSPLUS 327 ! # define MINUSMINUS 328 ! # define HYPERUNARY 329 ! # define POINTSAT 330 ! # define TRY 331 ! # define CATCH 332 ! # define EXTERN_LANG_STRING 333 ! # define ALL 334 ! # define PRE_PARSED_CLASS_DECL 335 ! # define DEFARG 336 ! # define DEFARG_MARKER 337 ! # define PRE_PARSED_FUNCTION_DECL 338 ! # define TYPENAME_DEFN 339 ! # define IDENTIFIER_DEFN 340 ! # define PTYPENAME_DEFN 341 ! # define END_OF_LINE 342 ! # define END_OF_SAVED_INPUT 343 #line 30 "parse.y" *************** cp_parse_init () *** 301,306 **** --- 300,306 ---- #define yyparse yyparse_1 #line 240 "parse.y" + #ifndef YYSTYPE typedef union { long itype; tree ttype; *************** typedef union { *** 308,325 **** enum tree_code code; flagged_type_tree ftype; struct unparsed_text *pi; ! } YYSTYPE; #line 447 "parse.y" /* Tell yyparse how to print a token's value, if yydebug is set. */ #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL) extern void yyprint PARAMS ((FILE *, int, YYSTYPE)); ! #include ! ! #ifndef __cplusplus ! #ifndef __STDC__ ! #define const ! #endif #endif --- 308,323 ---- enum tree_code code; flagged_type_tree ftype; struct unparsed_text *pi; ! } yystype; ! # define YYSTYPE yystype ! #endif #line 447 "parse.y" /* Tell yyparse how to print a token's value, if yydebug is set. */ #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL) extern void yyprint PARAMS ((FILE *, int, YYSTYPE)); ! #ifndef YYDEBUG ! # define YYDEBUG 0 #endif *************** extern void yyprint PARAMS ((FILE *, i *** 328,4318 **** #define YYFLAG -32768 #define YYNTBASE 114 #define YYTRANSLATE(x) ((unsigned)(x) <= 343 ? yytranslate[x] : 407) ! static const char yytranslate[] = { 0, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 112, 2, 2, 2, 85, 73, 2, 95, ! 110, 83, 81, 62, 82, 94, 84, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 65, 63, 77, ! 67, 78, 68, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 96, 2, 113, 72, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 61, 71, 111, 91, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, ! 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, ! 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, ! 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, ! 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, ! 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, ! 57, 58, 59, 60, 64, 66, 69, 70, 74, 75, ! 76, 79, 80, 86, 87, 88, 89, 90, 92, 93, ! 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, ! 107, 108, 109 }; ! #if YYDEBUG != 0 ! static const short yyprhs[] = { 0, ! 0, 1, 3, 4, 7, 10, 12, 13, 14, 15, ! 17, 19, 20, 23, 26, 28, 29, 33, 35, 41, ! 46, 52, 57, 58, 65, 66, 72, 74, 77, 79, ! 82, 83, 90, 93, 97, 101, 105, 109, 114, 115, ! 121, 124, 128, 130, 132, 135, 138, 140, 143, 144, ! 150, 154, 156, 158, 160, 164, 166, 167, 170, 173, ! 177, 179, 183, 185, 189, 191, 195, 198, 201, 204, ! 206, 208, 214, 219, 222, 225, 229, 233, 236, 239, ! 243, 247, 250, 253, 256, 259, 262, 265, 267, 269, ! 271, 273, 274, 276, 279, 280, 282, 283, 290, 294, ! 298, 302, 303, 312, 318, 319, 329, 336, 337, 346, ! 352, 353, 363, 370, 373, 376, 378, 381, 383, 390, ! 399, 404, 411, 418, 423, 426, 428, 431, 434, 436, ! 439, 441, 444, 447, 452, 455, 458, 459, 460, 462, ! 466, 469, 473, 475, 480, 483, 488, 491, 496, 499, ! 501, 503, 505, 507, 509, 511, 513, 515, 517, 519, ! 521, 523, 524, 531, 532, 539, 540, 546, 547, 553, ! 554, 562, 563, 571, 572, 579, 580, 587, 588, 589, ! 595, 601, 603, 605, 611, 617, 618, 620, 622, 623, ! 625, 627, 631, 633, 635, 638, 640, 644, 646, 648, ! 650, 652, 654, 656, 658, 660, 664, 666, 670, 671, ! 673, 675, 676, 684, 686, 688, 692, 697, 701, 705, ! 709, 713, 717, 719, 721, 723, 726, 729, 732, 735, ! 738, 741, 744, 749, 752, 757, 760, 764, 768, 773, ! 778, 784, 790, 797, 800, 805, 811, 814, 817, 821, ! 825, 829, 831, 835, 838, 842, 847, 849, 852, 858, ! 860, 864, 868, 872, 876, 880, 884, 888, 892, 896, ! 900, 904, 908, 912, 916, 920, 924, 928, 932, 936, ! 942, 946, 950, 952, 955, 957, 961, 965, 969, 973, ! 977, 981, 985, 989, 993, 997, 1001, 1005, 1009, 1013, ! 1017, 1021, 1025, 1029, 1035, 1039, 1043, 1045, 1048, 1052, ! 1056, 1058, 1060, 1062, 1064, 1066, 1067, 1073, 1079, 1085, ! 1091, 1097, 1099, 1101, 1103, 1105, 1108, 1110, 1113, 1116, ! 1120, 1125, 1130, 1132, 1134, 1136, 1140, 1142, 1144, 1146, ! 1148, 1150, 1154, 1158, 1162, 1163, 1168, 1173, 1176, 1181, ! 1184, 1191, 1196, 1199, 1202, 1204, 1209, 1211, 1219, 1227, ! 1235, 1243, 1248, 1253, 1256, 1259, 1262, 1264, 1269, 1272, ! 1275, 1281, 1285, 1288, 1291, 1297, 1301, 1307, 1311, 1316, ! 1323, 1326, 1328, 1331, 1333, 1336, 1338, 1340, 1342, 1345, ! 1346, 1349, 1352, 1356, 1360, 1364, 1367, 1370, 1373, 1375, ! 1377, 1379, 1382, 1385, 1388, 1391, 1393, 1395, 1397, 1399, ! 1402, 1405, 1409, 1413, 1417, 1422, 1424, 1427, 1430, 1432, ! 1434, 1437, 1440, 1443, 1445, 1448, 1451, 1455, 1457, 1460, ! 1463, 1465, 1467, 1469, 1471, 1473, 1475, 1477, 1482, 1487, ! 1492, 1497, 1499, 1501, 1503, 1505, 1509, 1511, 1515, 1517, ! 1521, 1522, 1527, 1528, 1535, 1539, 1540, 1545, 1547, 1551, ! 1555, 1556, 1561, 1565, 1566, 1568, 1570, 1573, 1580, 1582, ! 1586, 1587, 1589, 1594, 1601, 1606, 1608, 1610, 1612, 1614, ! 1616, 1620, 1621, 1624, 1626, 1629, 1633, 1638, 1640, 1642, ! 1646, 1651, 1655, 1661, 1665, 1669, 1673, 1674, 1678, 1682, ! 1686, 1687, 1690, 1693, 1694, 1701, 1702, 1708, 1711, 1714, ! 1717, 1718, 1719, 1720, 1732, 1734, 1735, 1737, 1738, 1740, ! 1742, 1745, 1748, 1751, 1754, 1757, 1760, 1764, 1769, 1773, ! 1776, 1780, 1785, 1787, 1790, 1792, 1795, 1798, 1801, 1804, ! 1808, 1812, 1815, 1816, 1819, 1823, 1825, 1830, 1832, 1836, ! 1838, 1840, 1843, 1846, 1850, 1854, 1855, 1857, 1861, 1864, ! 1867, 1869, 1872, 1875, 1878, 1881, 1884, 1887, 1890, 1892, ! 1895, 1898, 1902, 1904, 1907, 1910, 1915, 1920, 1923, 1925, ! 1931, 1936, 1938, 1939, 1941, 1945, 1946, 1948, 1952, 1954, ! 1956, 1958, 1960, 1965, 1970, 1975, 1980, 1985, 1989, 1994, ! 1999, 2004, 2009, 2013, 2016, 2018, 2020, 2024, 2026, 2030, ! 2033, 2035, 2042, 2043, 2046, 2048, 2051, 2053, 2056, 2060, ! 2064, 2066, 2070, 2072, 2075, 2079, 2083, 2086, 2089, 2093, ! 2095, 2100, 2105, 2109, 2113, 2116, 2118, 2120, 2123, 2125, ! 2127, 2130, 2133, 2135, 2138, 2142, 2146, 2149, 2152, 2156, ! 2158, 2162, 2166, 2169, 2172, 2176, 2178, 2183, 2187, 2192, ! 2196, 2198, 2201, 2204, 2207, 2210, 2213, 2216, 2219, 2221, ! 2224, 2229, 2234, 2237, 2239, 2241, 2243, 2245, 2248, 2253, ! 2257, 2261, 2264, 2267, 2270, 2273, 2275, 2278, 2281, 2284, ! 2287, 2291, 2293, 2296, 2300, 2305, 2308, 2311, 2314, 2317, ! 2320, 2323, 2328, 2331, 2333, 2336, 2339, 2343, 2345, 2349, ! 2352, 2356, 2359, 2362, 2366, 2368, 2372, 2377, 2379, 2382, ! 2386, 2389, 2392, 2394, 2398, 2401, 2404, 2406, 2409, 2413, ! 2415, 2419, 2426, 2431, 2436, 2440, 2446, 2450, 2454, 2458, ! 2461, 2463, 2465, 2468, 2471, 2474, 2475, 2477, 2479, 2482, ! 2486, 2487, 2492, 2494, 2495, 2496, 2502, 2504, 2505, 2509, ! 2511, 2514, 2516, 2519, 2520, 2525, 2527, 2528, 2529, 2535, ! 2536, 2537, 2545, 2546, 2547, 2548, 2549, 2562, 2563, 2564, ! 2572, 2573, 2579, 2580, 2588, 2589, 2594, 2597, 2600, 2603, ! 2607, 2614, 2623, 2634, 2643, 2656, 2667, 2678, 2683, 2687, ! 2690, 2693, 2695, 2697, 2699, 2701, 2703, 2704, 2705, 2711, ! 2712, 2713, 2719, 2721, 2724, 2725, 2726, 2727, 2733, 2735, ! 2737, 2741, 2745, 2748, 2751, 2754, 2757, 2760, 2762, 2765, ! 2766, 2768, 2769, 2771, 2773, 2774, 2776, 2778, 2782, 2787, ! 2795, 2797, 2801, 2802, 2804, 2806, 2808, 2811, 2814, 2817, ! 2819, 2822, 2825, 2826, 2830, 2832, 2834, 2836, 2839, 2842, ! 2845, 2850, 2853, 2856, 2859, 2862, 2865, 2868, 2870, 2873, ! 2875, 2878, 2880, 2882, 2883, 2884, 2886, 2892, 2896, 2897, ! 2901, 2902, 2903, 2908, 2911, 2913, 2915, 2917, 2921, 2922, ! 2926, 2930, 2934, 2936, 2937, 2941, 2945, 2949, 2953, 2957, ! 2961, 2965, 2969, 2973, 2977, 2981, 2985, 2989, 2993, 2997, ! 3001, 3005, 3009, 3013, 3017, 3021, 3025, 3029, 3034, 3038, ! 3042, 3046, 3050, 3055, 3059, 3063, 3069, 3075, 3080, 3084 }; ! ! static const short yyrhs[] = { -1, ! 115, 0, 0, 116, 122, 0, 115, 122, 0, 115, ! 0, 0, 0, 0, 33, 0, 28, 0, 0, 123, ! 124, 0, 155, 152, 0, 149, 0, 0, 57, 125, ! 146, 0, 146, 0, 121, 95, 223, 110, 63, 0, ! 136, 61, 117, 111, 0, 136, 118, 155, 119, 152, ! 0, 136, 118, 149, 119, 0, 0, 46, 170, 61, ! 126, 117, 111, 0, 0, 46, 61, 127, 117, 111, ! 0, 128, 0, 130, 63, 0, 132, 0, 120, 124, ! 0, 0, 46, 170, 67, 129, 135, 63, 0, 48, ! 315, 0, 48, 329, 315, 0, 48, 329, 213, 0, ! 48, 134, 170, 0, 48, 329, 170, 0, 48, 329, ! 134, 170, 0, 0, 48, 46, 133, 135, 63, 0, ! 60, 56, 0, 134, 60, 56, 0, 213, 0, 315, ! 0, 329, 315, 0, 329, 213, 0, 99, 0, 136, ! 99, 0, 0, 50, 77, 138, 141, 78, 0, 50, ! 77, 78, 0, 137, 0, 139, 0, 145, 0, 141, ! 62, 145, 0, 170, 0, 0, 275, 142, 0, 47, ! 142, 0, 137, 275, 142, 0, 143, 0, 143, 67, ! 229, 0, 393, 0, 393, 67, 208, 0, 144, 0, ! 144, 67, 191, 0, 140, 147, 0, 140, 1, 0, ! 155, 152, 0, 148, 0, 146, 0, 136, 118, 155, ! 119, 152, 0, 136, 118, 148, 119, 0, 120, 147, ! 0, 243, 63, 0, 233, 242, 63, 0, 230, 241, ! 63, 0, 267, 63, 0, 243, 63, 0, 233, 242, ! 63, 0, 230, 241, 63, 0, 233, 63, 0, 173, ! 63, 0, 230, 63, 0, 1, 63, 0, 1, 111, ! 0, 1, 109, 0, 63, 0, 396, 0, 224, 0, ! 166, 0, 0, 165, 0, 165, 63, 0, 0, 109, ! 0, 0, 167, 150, 406, 61, 154, 199, 0, 161, ! 151, 153, 0, 161, 151, 364, 0, 161, 151, 1, ! 0, 0, 320, 5, 95, 157, 384, 110, 302, 399, ! 0, 320, 5, 49, 302, 399, 0, 0, 329, 320, ! 5, 95, 158, 384, 110, 302, 399, 0, 329, 320, ! 5, 49, 302, 399, 0, 0, 320, 186, 95, 159, ! 384, 110, 302, 399, 0, 320, 186, 49, 302, 399, ! 0, 0, 329, 320, 186, 95, 160, 384, 110, 302, ! 399, 0, 329, 320, 186, 49, 302, 399, 0, 230, ! 227, 0, 233, 312, 0, 312, 0, 233, 156, 0, ! 156, 0, 5, 95, 384, 110, 302, 399, 0, 95, ! 5, 110, 95, 384, 110, 302, 399, 0, 5, 49, ! 302, 399, 0, 95, 5, 110, 49, 302, 399, 0, ! 186, 95, 384, 110, 302, 399, 0, 186, 49, 302, ! 399, 0, 233, 162, 0, 162, 0, 230, 227, 0, ! 233, 312, 0, 312, 0, 233, 156, 0, 156, 0, ! 26, 3, 0, 164, 260, 0, 164, 95, 201, 110, ! 0, 164, 49, 0, 65, 168, 0, 0, 0, 169, ! 0, 168, 62, 169, 0, 168, 1, 0, 95, 201, ! 110, 0, 49, 0, 171, 95, 201, 110, 0, 171, ! 49, 0, 308, 95, 201, 110, 0, 308, 49, 0, ! 322, 95, 201, 110, 0, 322, 49, 0, 1, 0, ! 3, 0, 4, 0, 5, 0, 59, 0, 60, 0, ! 3, 0, 59, 0, 60, 0, 106, 0, 105, 0, ! 107, 0, 0, 50, 182, 239, 63, 174, 183, 0, ! 0, 50, 182, 230, 227, 175, 183, 0, 0, 50, ! 182, 312, 176, 183, 0, 0, 50, 182, 156, 177, ! 183, 0, 0, 7, 50, 182, 239, 63, 178, 183, ! 0, 0, 7, 50, 182, 230, 227, 179, 183, 0, ! 0, 7, 50, 182, 312, 180, 183, 0, 0, 7, ! 50, 182, 156, 181, 183, 0, 0, 0, 59, 77, ! 189, 188, 187, 0, 4, 77, 189, 188, 187, 0, ! 186, 0, 184, 0, 170, 77, 189, 78, 187, 0, ! 5, 77, 189, 188, 187, 0, 0, 78, 0, 80, ! 0, 0, 190, 0, 191, 0, 190, 62, 191, 0, ! 229, 0, 59, 0, 329, 59, 0, 208, 0, 320, ! 50, 170, 0, 82, 0, 81, 0, 89, 0, 90, ! 0, 112, 0, 200, 0, 207, 0, 49, 0, 95, ! 193, 110, 0, 49, 0, 95, 197, 110, 0, 0, ! 197, 0, 1, 0, 0, 374, 227, 244, 253, 67, ! 198, 261, 0, 193, 0, 111, 0, 337, 335, 111, ! 0, 337, 335, 1, 111, 0, 337, 1, 111, 0, ! 207, 62, 207, 0, 207, 62, 1, 0, 200, 62, ! 207, 0, 200, 62, 1, 0, 207, 0, 200, 0, ! 218, 0, 120, 206, 0, 83, 206, 0, 73, 206, ! 0, 91, 206, 0, 192, 206, 0, 70, 170, 0, ! 236, 202, 0, 236, 95, 229, 110, 0, 237, 202, ! 0, 237, 95, 229, 110, 0, 220, 301, 0, 220, ! 301, 204, 0, 220, 203, 301, 0, 220, 203, 301, ! 204, 0, 220, 95, 229, 110, 0, 220, 95, 229, ! 110, 204, 0, 220, 203, 95, 229, 110, 0, 220, ! 203, 95, 229, 110, 204, 0, 221, 206, 0, 221, ! 96, 113, 206, 0, 221, 96, 193, 113, 206, 0, ! 35, 206, 0, 36, 206, 0, 95, 201, 110, 0, ! 61, 201, 111, 0, 95, 201, 110, 0, 49, 0, ! 95, 239, 110, 0, 67, 261, 0, 95, 229, 110, ! 0, 205, 95, 229, 110, 0, 202, 0, 205, 202, ! 0, 205, 61, 262, 273, 111, 0, 206, 0, 207, ! 86, 207, 0, 207, 87, 207, 0, 207, 81, 207, ! 0, 207, 82, 207, 0, 207, 83, 207, 0, 207, ! 84, 207, 0, 207, 85, 207, 0, 207, 79, 207, ! 0, 207, 80, 207, 0, 207, 76, 207, 0, 207, ! 77, 207, 0, 207, 78, 207, 0, 207, 75, 207, ! 0, 207, 74, 207, 0, 207, 73, 207, 0, 207, ! 71, 207, 0, 207, 72, 207, 0, 207, 70, 207, ! 0, 207, 69, 207, 0, 207, 68, 379, 65, 207, ! 0, 207, 67, 207, 0, 207, 66, 207, 0, 64, ! 0, 64, 207, 0, 206, 0, 208, 86, 208, 0, ! 208, 87, 208, 0, 208, 81, 208, 0, 208, 82, ! 208, 0, 208, 83, 208, 0, 208, 84, 208, 0, ! 208, 85, 208, 0, 208, 79, 208, 0, 208, 80, ! 208, 0, 208, 76, 208, 0, 208, 77, 208, 0, ! 208, 75, 208, 0, 208, 74, 208, 0, 208, 73, ! 208, 0, 208, 71, 208, 0, 208, 72, 208, 0, ! 208, 70, 208, 0, 208, 69, 208, 0, 208, 68, ! 379, 65, 208, 0, 208, 67, 208, 0, 208, 66, ! 208, 0, 64, 0, 64, 208, 0, 91, 394, 170, ! 0, 91, 394, 184, 0, 211, 0, 405, 0, 3, ! 0, 59, 0, 60, 0, 0, 6, 77, 210, 189, ! 188, 0, 405, 77, 210, 189, 188, 0, 50, 170, ! 77, 189, 188, 0, 50, 6, 77, 189, 188, 0, ! 50, 405, 77, 189, 188, 0, 209, 0, 4, 0, ! 5, 0, 215, 0, 254, 215, 0, 209, 0, 83, ! 214, 0, 73, 214, 0, 95, 214, 110, 0, 3, ! 77, 189, 188, 0, 60, 77, 190, 188, 0, 314, ! 0, 209, 0, 216, 0, 95, 214, 110, 0, 209, ! 0, 10, 0, 222, 0, 223, 0, 11, 0, 95, ! 193, 110, 0, 95, 214, 110, 0, 95, 1, 110, ! 0, 0, 95, 219, 340, 110, 0, 209, 95, 201, ! 110, 0, 209, 49, 0, 218, 95, 201, 110, 0, ! 218, 49, 0, 37, 95, 207, 62, 229, 110, 0, ! 218, 96, 193, 113, 0, 218, 89, 0, 218, 90, ! 0, 42, 0, 9, 95, 201, 110, 0, 318, 0, ! 52, 77, 229, 78, 95, 193, 110, 0, 53, 77, ! 229, 78, 95, 193, 110, 0, 54, 77, 229, 78, ! 95, 193, 110, 0, 55, 77, 229, 78, 95, 193, ! 110, 0, 51, 95, 193, 110, 0, 51, 95, 229, ! 110, 0, 329, 3, 0, 329, 211, 0, 329, 405, ! 0, 317, 0, 317, 95, 201, 110, 0, 317, 49, ! 0, 225, 212, 0, 225, 212, 95, 201, 110, 0, ! 225, 212, 49, 0, 225, 213, 0, 225, 317, 0, ! 225, 213, 95, 201, 110, 0, 225, 213, 49, 0, ! 225, 317, 95, 201, 110, 0, 225, 317, 49, 0, ! 225, 91, 8, 49, 0, 225, 8, 56, 91, 8, ! 49, 0, 225, 1, 0, 41, 0, 329, 41, 0, ! 40, 0, 329, 221, 0, 44, 0, 45, 0, 12, ! 0, 223, 12, 0, 0, 218, 94, 0, 218, 93, ! 0, 239, 241, 63, 0, 230, 241, 63, 0, 233, ! 242, 63, 0, 230, 63, 0, 233, 63, 0, 120, ! 226, 0, 306, 0, 312, 0, 49, 0, 228, 49, ! 0, 234, 333, 0, 303, 333, 0, 239, 333, 0, ! 234, 0, 303, 0, 234, 0, 231, 0, 233, 239, ! 0, 239, 232, 0, 239, 235, 232, 0, 233, 239, ! 232, 0, 233, 239, 235, 0, 233, 239, 235, 232, ! 0, 7, 0, 232, 240, 0, 232, 7, 0, 303, ! 0, 7, 0, 233, 9, 0, 233, 7, 0, 233, ! 254, 0, 239, 0, 303, 239, 0, 239, 235, 0, ! 303, 239, 235, 0, 240, 0, 235, 240, 0, 235, ! 254, 0, 254, 0, 14, 0, 30, 0, 29, 0, ! 267, 0, 8, 0, 309, 0, 238, 95, 193, 110, ! 0, 238, 95, 229, 110, 0, 31, 95, 193, 110, ! 0, 31, 95, 229, 110, 0, 8, 0, 9, 0, ! 267, 0, 249, 0, 241, 62, 245, 0, 250, 0, ! 242, 62, 245, 0, 251, 0, 243, 62, 245, 0, ! 0, 121, 95, 223, 110, 0, 0, 227, 244, 253, ! 67, 246, 261, 0, 227, 244, 253, 0, 0, 253, ! 67, 248, 261, 0, 253, 0, 227, 244, 247, 0, ! 312, 244, 247, 0, 0, 312, 244, 252, 247, 0, ! 156, 244, 253, 0, 0, 254, 0, 255, 0, 254, ! 255, 0, 32, 95, 95, 256, 110, 110, 0, 257, ! 0, 256, 62, 257, 0, 0, 258, 0, 258, 95, ! 3, 110, 0, 258, 95, 3, 62, 201, 110, 0, ! 258, 95, 201, 110, 0, 170, 0, 7, 0, 8, ! 0, 9, 0, 170, 0, 259, 62, 170, 0, 0, ! 67, 261, 0, 207, 0, 61, 111, 0, 61, 262, ! 111, 0, 61, 262, 62, 111, 0, 1, 0, 261, ! 0, 262, 62, 261, 0, 96, 207, 113, 261, 0, ! 170, 65, 261, 0, 262, 62, 170, 65, 261, 0, ! 104, 151, 153, 0, 104, 151, 364, 0, 104, 151, ! 1, 0, 0, 264, 263, 152, 0, 103, 207, 109, ! 0, 103, 1, 109, 0, 0, 266, 265, 0, 266, ! 1, 0, 0, 15, 170, 61, 268, 298, 111, 0, ! 0, 15, 61, 269, 298, 111, 0, 15, 170, 0, ! 15, 327, 0, 47, 322, 0, 0, 0, 0, 279, ! 280, 61, 270, 285, 111, 253, 271, 266, 272, 264, ! 0, 278, 0, 0, 62, 0, 0, 62, 0, 38, ! 0, 275, 7, 0, 275, 8, 0, 275, 9, 0, ! 275, 38, 0, 275, 254, 0, 275, 170, 0, 275, ! 320, 170, 0, 275, 329, 320, 170, 0, 275, 329, ! 170, 0, 275, 185, 0, 275, 320, 185, 0, 275, ! 329, 320, 185, 0, 276, 0, 275, 172, 0, 277, ! 0, 276, 61, 0, 276, 65, 0, 277, 61, 0, ! 277, 65, 0, 275, 172, 61, 0, 275, 172, 65, ! 0, 275, 61, 0, 0, 65, 394, 0, 65, 394, ! 281, 0, 282, 0, 281, 62, 394, 282, 0, 283, ! 0, 284, 394, 283, 0, 322, 0, 308, 0, 39, ! 394, 0, 7, 394, 0, 284, 39, 394, 0, 284, ! 7, 394, 0, 0, 287, 0, 285, 286, 287, 0, ! 285, 286, 0, 39, 65, 0, 288, 0, 287, 288, ! 0, 289, 63, 0, 289, 111, 0, 163, 65, 0, ! 163, 97, 0, 163, 26, 0, 163, 61, 0, 63, ! 0, 120, 288, 0, 140, 288, 0, 140, 230, 63, ! 0, 396, 0, 230, 290, 0, 233, 291, 0, 312, ! 244, 253, 260, 0, 156, 244, 253, 260, 0, 65, ! 207, 0, 1, 0, 233, 162, 244, 253, 260, 0, ! 162, 244, 253, 260, 0, 130, 0, 0, 292, 0, ! 290, 62, 293, 0, 0, 295, 0, 291, 62, 297, ! 0, 294, 0, 295, 0, 296, 0, 297, 0, 306, ! 244, 253, 260, 0, 4, 65, 207, 253, 0, 312, ! 244, 253, 260, 0, 156, 244, 253, 260, 0, 3, ! 65, 207, 253, 0, 65, 207, 253, 0, 306, 244, ! 253, 260, 0, 4, 65, 207, 253, 0, 312, 244, ! 253, 260, 0, 3, 65, 207, 253, 0, 65, 207, ! 253, 0, 299, 274, 0, 274, 0, 300, 0, 299, ! 62, 300, 0, 170, 0, 170, 67, 207, 0, 374, ! 330, 0, 374, 0, 95, 229, 110, 96, 193, 113, ! 0, 0, 302, 9, 0, 9, 0, 303, 9, 0, ! 254, 0, 303, 254, 0, 95, 201, 110, 0, 95, ! 384, 110, 0, 49, 0, 95, 1, 110, 0, 306, ! 0, 254, 306, 0, 83, 303, 305, 0, 73, 303, ! 305, 0, 83, 305, 0, 73, 305, 0, 328, 302, ! 305, 0, 307, 0, 307, 304, 302, 399, 0, 307, ! 96, 193, 113, 0, 307, 96, 113, 0, 95, 305, ! 110, 0, 320, 319, 0, 319, 0, 319, 0, 329, ! 319, 0, 308, 0, 310, 0, 329, 310, 0, 320, ! 319, 0, 312, 0, 254, 312, 0, 83, 303, 311, ! 0, 73, 303, 311, 0, 83, 311, 0, 73, 311, ! 0, 328, 302, 311, 0, 217, 0, 83, 303, 311, ! 0, 73, 303, 311, 0, 83, 313, 0, 73, 313, ! 0, 328, 302, 311, 0, 314, 0, 217, 304, 302, ! 399, 0, 95, 313, 110, 0, 217, 96, 193, 113, ! 0, 217, 96, 113, 0, 316, 0, 329, 316, 0, ! 329, 209, 0, 320, 216, 0, 320, 213, 0, 320, ! 212, 0, 320, 209, 0, 320, 212, 0, 316, 0, ! 329, 316, 0, 239, 95, 201, 110, 0, 239, 95, ! 214, 110, 0, 239, 228, 0, 4, 0, 5, 0, ! 184, 0, 321, 0, 320, 321, 0, 320, 50, 326, ! 56, 0, 320, 3, 56, 0, 320, 59, 56, 0, ! 4, 56, 0, 5, 56, 0, 60, 56, 0, 184, ! 56, 0, 323, 0, 329, 323, 0, 324, 170, 0, ! 324, 184, 0, 324, 326, 0, 324, 50, 326, 0, ! 325, 0, 324, 325, 0, 324, 326, 56, 0, 324, ! 50, 326, 56, 0, 4, 56, 0, 5, 56, 0, ! 184, 56, 0, 59, 56, 0, 3, 56, 0, 60, ! 56, 0, 170, 77, 189, 188, 0, 329, 319, 0, ! 310, 0, 329, 310, 0, 320, 83, 0, 329, 320, ! 83, 0, 56, 0, 83, 302, 330, 0, 83, 302, ! 0, 73, 302, 330, 0, 73, 302, 0, 328, 302, ! 0, 328, 302, 330, 0, 331, 0, 96, 193, 113, ! 0, 331, 96, 193, 113, 0, 333, 0, 254, 333, ! 0, 83, 303, 332, 0, 83, 332, 0, 83, 303, ! 0, 83, 0, 73, 303, 332, 0, 73, 332, 0, ! 73, 303, 0, 73, 0, 328, 302, 0, 328, 302, ! 332, 0, 334, 0, 95, 332, 110, 0, 334, 95, ! 384, 110, 302, 399, 0, 334, 49, 302, 399, 0, ! 334, 96, 193, 113, 0, 334, 96, 113, 0, 95, ! 385, 110, 302, 399, 0, 205, 302, 399, 0, 228, ! 302, 399, 0, 96, 193, 113, 0, 96, 113, 0, ! 348, 0, 336, 0, 335, 348, 0, 335, 336, 0, ! 1, 63, 0, 0, 338, 0, 339, 0, 338, 339, ! 0, 34, 259, 63, 0, 0, 406, 61, 341, 199, ! 0, 340, 0, 0, 0, 16, 344, 195, 345, 346, ! 0, 342, 0, 0, 347, 406, 349, 0, 342, 0, ! 406, 349, 0, 226, 0, 193, 63, 0, 0, 343, ! 17, 350, 346, 0, 343, 0, 0, 0, 18, 351, ! 195, 352, 346, 0, 0, 0, 19, 353, 346, 18, ! 354, 194, 63, 0, 0, 0, 0, 0, 20, 355, ! 95, 377, 356, 196, 63, 357, 379, 110, 358, 346, ! 0, 0, 0, 21, 359, 95, 197, 110, 360, 346, ! 0, 0, 22, 207, 65, 361, 348, 0, 0, 22, ! 207, 13, 207, 65, 362, 348, 0, 0, 23, 65, ! 363, 348, 0, 24, 63, 0, 25, 63, 0, 26, ! 63, 0, 26, 193, 63, 0, 121, 378, 95, 223, ! 110, 63, 0, 121, 378, 95, 223, 65, 380, 110, ! 63, 0, 121, 378, 95, 223, 65, 380, 65, 380, ! 110, 63, 0, 121, 378, 95, 223, 56, 380, 110, ! 63, 0, 121, 378, 95, 223, 65, 380, 65, 380, ! 65, 383, 110, 63, 0, 121, 378, 95, 223, 56, ! 380, 65, 383, 110, 63, 0, 121, 378, 95, 223, ! 65, 380, 56, 383, 110, 63, 0, 27, 83, 193, ! 63, 0, 27, 170, 63, 0, 376, 348, 0, 376, ! 111, 0, 63, 0, 367, 0, 132, 0, 131, 0, ! 128, 0, 0, 0, 97, 365, 153, 366, 370, 0, ! 0, 0, 97, 368, 342, 369, 370, 0, 371, 0, ! 370, 371, 0, 0, 0, 0, 98, 372, 375, 373, ! 342, 0, 234, 0, 303, 0, 95, 13, 110, 0, ! 95, 393, 110, 0, 3, 65, 0, 59, 65, 0, ! 4, 65, 0, 5, 65, 0, 379, 63, 0, 226, ! 0, 61, 199, 0, 0, 9, 0, 0, 193, 0, ! 1, 0, 0, 381, 0, 382, 0, 381, 62, 382, ! 0, 12, 95, 193, 110, 0, 96, 170, 113, 12, ! 95, 193, 110, 0, 223, 0, 383, 62, 223, 0, ! 0, 385, 0, 229, 0, 389, 0, 390, 13, 0, ! 389, 13, 0, 229, 13, 0, 13, 0, 389, 65, ! 0, 229, 65, 0, 0, 67, 387, 388, 0, 102, ! 0, 261, 0, 391, 0, 393, 386, 0, 390, 392, ! 0, 390, 395, 0, 390, 395, 67, 261, 0, 389, ! 62, 0, 229, 62, 0, 231, 227, 0, 234, 227, ! 0, 239, 227, 0, 231, 333, 0, 231, 0, 233, ! 312, 0, 393, 0, 393, 386, 0, 391, 0, 229, ! 0, 0, 0, 312, 0, 3, 397, 3, 398, 63, ! 0, 77, 189, 188, 0, 0, 95, 201, 110, 0, ! 0, 0, 64, 95, 401, 110, 0, 64, 49, 0, ! 229, 0, 1, 0, 400, 0, 401, 62, 400, 0, ! 0, 83, 302, 402, 0, 73, 302, 402, 0, 328, ! 302, 402, 0, 43, 0, 0, 403, 83, 404, 0, ! 403, 84, 404, 0, 403, 85, 404, 0, 403, 81, ! 404, 0, 403, 82, 404, 0, 403, 73, 404, 0, ! 403, 71, 404, 0, 403, 72, 404, 0, 403, 91, ! 404, 0, 403, 62, 404, 0, 403, 76, 404, 0, ! 403, 77, 404, 0, 403, 78, 404, 0, 403, 75, ! 404, 0, 403, 66, 404, 0, 403, 67, 404, 0, ! 403, 79, 404, 0, 403, 80, 404, 0, 403, 89, ! 404, 0, 403, 90, 404, 0, 403, 70, 404, 0, ! 403, 69, 404, 0, 403, 112, 404, 0, 403, 68, ! 65, 404, 0, 403, 74, 404, 0, 403, 93, 404, ! 0, 403, 86, 404, 0, 403, 49, 404, 0, 403, ! 96, 113, 404, 0, 403, 41, 404, 0, 403, 40, ! 404, 0, 403, 41, 96, 113, 404, 0, 403, 40, ! 96, 113, 404, 0, 403, 374, 402, 404, 0, 403, ! 1, 404, 0, 0 }; #endif ! #if YYDEBUG != 0 ! static const short yyrline[] = { 0, ! 454, 457, 465, 468, 469, 473, 475, 478, 483, 487, ! 493, 497, 501, 505, 508, 511, 514, 515, 517, 520, ! 522, 524, 526, 528, 530, 532, 534, 535, 537, 538, ! 542, 545, 554, 557, 559, 563, 566, 568, 572, 575, ! 587, 594, 603, 605, 606, 608, 612, 615, 621, 624, ! 628, 634, 636, 639, 642, 646, 649, 653, 656, 660, ! 665, 675, 677, 679, 681, 683, 697, 700, 704, 707, ! 709, 711, 714, 717, 721, 723, 725, 727, 737, 739, ! 741, 743, 745, 746, 753, 754, 755, 757, 758, 761, ! 763, 766, 768, 769, 772, 774, 780, 784, 791, 794, ! 796, 800, 803, 805, 809, 811, 813, 817, 819, 821, ! 825, 827, 829, 835, 840, 843, 846, 849, 857, 860, ! 863, 865, 867, 869, 875, 884, 887, 889, 891, 894, ! 896, 901, 908, 911, 913, 917, 929, 936, 942, 947, ! 958, 961, 968, 976, 978, 981, 983, 986, 988, 991, ! 995, 997, 998, 999, 1000, 1003, 1005, 1006, 1009, 1011, ! 1012, 1015, 1020, 1020, 1024, 1024, 1027, 1027, 1030, 1030, ! 1034, 1035, 1040, 1041, 1044, 1045, 1048, 1051, 1055, 1063, ! 1067, 1070, 1073, 1075, 1080, 1086, 1096, 1098, 1106, 1109, ! 1112, 1115, 1119, 1122, 1128, 1134, 1135, 1147, 1150, 1152, ! 1154, 1156, 1160, 1163, 1166, 1171, 1175, 1180, 1184, 1187, ! 1188, 1192, 1209, 1215, 1218, 1220, 1221, 1222, 1225, 1229, ! 1232, 1234, 1238, 1241, 1244, 1248, 1251, 1253, 1255, 1257, ! 1260, 1262, 1265, 1269, 1272, 1279, 1282, 1285, 1288, 1291, ! 1296, 1299, 1302, 1306, 1308, 1312, 1316, 1318, 1322, 1325, ! 1330, 1333, 1335, 1345, 1359, 1364, 1370, 1372, 1374, 1387, ! 1390, 1392, 1394, 1396, 1398, 1400, 1402, 1404, 1406, 1408, ! 1410, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1428, ! 1430, 1434, 1436, 1438, 1442, 1445, 1447, 1449, 1451, 1453, ! 1455, 1457, 1459, 1461, 1463, 1465, 1467, 1469, 1471, 1473, ! 1475, 1477, 1479, 1481, 1483, 1487, 1489, 1491, 1495, 1498, ! 1500, 1501, 1502, 1503, 1504, 1507, 1520, 1523, 1527, 1530, ! 1532, 1537, 1539, 1540, 1543, 1545, 1553, 1555, 1557, 1559, ! 1563, 1566, 1570, 1574, 1575, 1576, 1580, 1588, 1589, 1590, ! 1600, 1606, 1608, 1611, 1613, 1624, 1629, 1631, 1633, 1635, ! 1637, 1640, 1642, 1644, 1647, 1649, 1660, 1661, 1665, 1669, ! 1673, 1677, 1679, 1683, 1685, 1687, 1695, 1697, 1699, 1701, ! 1705, 1707, 1709, 1711, 1716, 1718, 1720, 1722, 1725, 1727, ! 1729, 1773, 1776, 1780, 1783, 1787, 1790, 1795, 1797, 1801, ! 1809, 1812, 1819, 1825, 1829, 1831, 1836, 1838, 1845, 1847, ! 1851, 1855, 1861, 1865, 1868, 1872, 1875, 1885, 1888, 1892, ! 1896, 1899, 1902, 1905, 1908, 1914, 1920, 1922, 1943, 1946, ! 1951, 1956, 1964, 1974, 1978, 1981, 1984, 1989, 1992, 1994, ! 1996, 2000, 2004, 2008, 2016, 2019, 2021, 2023, 2027, 2031, ! 2046, 2065, 2068, 2070, 2073, 2075, 2079, 2081, 2085, 2087, ! 2091, 2094, 2098, 2103, 2104, 2117, 2124, 2125, 2131, 2136, ! 2141, 2149, 2150, 2157, 2160, 2164, 2167, 2171, 2176, 2179, ! 2183, 2186, 2188, 2190, 2192, 2199, 2201, 2202, 2203, 2207, ! 2210, 2214, 2217, 2224, 2226, 2229, 2232, 2235, 2241, 2244, ! 2247, 2249, 2251, 2255, 2261, 2266, 2272, 2274, 2279, 2282, ! 2286, 2288, 2290, 2294, 2298, 2304, 2307, 2313, 2316, 2319, ! 2325, 2342, 2361, 2366, 2371, 2379, 2381, 2384, 2386, 2391, ! 2393, 2395, 2397, 2399, 2401, 2405, 2411, 2416, 2421, 2428, ! 2434, 2439, 2446, 2453, 2459, 2466, 2474, 2481, 2492, 2503, ! 2511, 2519, 2528, 2531, 2534, 2538, 2540, 2544, 2547, 2551, ! 2555, 2559, 2561, 2565, 2576, 2590, 2591, 2592, 2593, 2596, ! 2605, 2612, 2620, 2622, 2627, 2629, 2631, 2633, 2635, 2637, ! 2640, 2650, 2655, 2659, 2684, 2690, 2692, 2694, 2696, 2707, ! 2712, 2714, 2720, 2723, 2730, 2740, 2743, 2750, 2760, 2762, ! 2765, 2767, 2770, 2774, 2779, 2783, 2786, 2789, 2794, 2797, ! 2801, 2804, 2806, 2810, 2812, 2819, 2821, 2824, 2827, 2832, ! 2836, 2841, 2851, 2854, 2858, 2862, 2865, 2868, 2877, 2880, ! 2882, 2884, 2890, 2892, 2901, 2904, 2906, 2908, 2910, 2914, ! 2917, 2920, 2922, 2924, 2926, 2930, 2933, 2944, 2954, 2956, ! 2957, 2961, 2969, 2971, 2979, 2982, 2984, 2986, 2988, 2992, ! 2995, 2998, 3000, 3002, 3004, 3008, 3011, 3014, 3016, 3018, ! 3020, 3022, 3024, 3028, 3035, 3039, 3044, 3048, 3053, 3055, ! 3059, 3062, 3064, 3068, 3070, 3071, 3074, 3076, 3078, 3082, ! 3085, 3092, 3103, 3109, 3115, 3119, 3121, 3125, 3139, 3141, ! 3143, 3147, 3155, 3168, 3171, 3178, 3191, 3197, 3199, 3200, ! 3201, 3209, 3214, 3223, 3224, 3228, 3231, 3237, 3243, 3246, ! 3248, 3250, 3252, 3256, 3260, 3264, 3267, 3271, 3273, 3282, ! 3285, 3287, 3289, 3291, 3293, 3295, 3297, 3299, 3303, 3307, ! 3311, 3315, 3317, 3319, 3321, 3323, 3325, 3327, 3329, 3331, ! 3339, 3341, 3342, 3343, 3346, 3352, 3354, 3359, 3361, 3364, ! 3375, 3379, 3383, 3388, 3393, 3395, 3399, 3401, 3403, 3409, ! 3411, 3415, 3419, 3421, 3424, 3429, 3432, 3438, 3440, 3442, ! 3444, 3449, 3452, 3454, 3456, 3458, 3461, 3463, 3465, 3468, ! 3470, 3473, 3474, 3477, 3478, 3481, 3482, 3484, 3486, 3488, ! 3490, 3495, 3498, 3501, 3504, 3507, 3510, 3513, 3519, 3521, ! 3523, 3527, 3530, 3532, 3534, 3537, 3541, 3545, 3547, 3550, ! 3554, 3556, 3559, 3561, 3562, 3573, 3577, 3579, 3582, 3584, ! 3587, 3604, 3612, 3615, 3617, 3619, 3623, 3626, 3627, 3635, ! 3638, 3641, 3644, 3645, 3651, 3654, 3657, 3659, 3663, 3666, ! 3670, 3673, 3683, 3688, 3689, 3696, 3699, 3702, 3704, 3707, ! 3709, 3719, 3733, 3737, 3740, 3742, 3746, 3750, 3753, 3756, ! 3758, 3762, 3764, 3771, 3777, 3780, 3784, 3787, 3790, 3795, ! 3799, 3804, 3806, 3809, 3814, 3820, 3836, 3844, 3847, 3850, ! 3853, 3856, 3859, 3861, 3865, 3871, 3875, 3878, 3882, 3885, ! 3887, 3889, 3895, 3908, 3916, 3919, 3921, 3923, 3925, 3927, ! 3929, 3931, 3933, 3935, 3937, 3939, 3941, 3943, 3945, 3947, ! 3949, 3951, 3953, 3955, 3957, 3959, 3961, 3963, 3965, 3967, ! 3969, 3971, 3973, 3975, 3977, 3979, 3981, 3983, 3985, 3992 }; #endif ! #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) ! static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER", ! "tTYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT", ! "VAR_FUNC_NAME","STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO", ! "FOR","SWITCH","CASE","DEFAULT","BREAK","CONTINUE","RETURN_KEYWORD","GOTO","ASM_KEYWORD", ! "TYPEOF","ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART", ! "VA_ARG","AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE", ! "NAMESPACE","TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST", ! "STATIC_CAST","REINTERPRET_CAST","CONST_CAST","SCOPE","EXPORT","EMPTY","PTYPENAME", ! "NSNAME","'{'","','","';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND", ! "'|'","'^'","'&'","MIN_MAX","EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT", ! "RSHIFT","'+'","'-'","'*'","'/'","'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS", ! "MINUSMINUS","'~'","HYPERUNARY","POINTSAT","'.'","'('","'['","TRY","CATCH","EXTERN_LANG_STRING", ! "ALL","PRE_PARSED_CLASS_DECL","DEFARG","DEFARG_MARKER","PRE_PARSED_FUNCTION_DECL", ! "TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN","END_OF_LINE","END_OF_SAVED_INPUT", ! "')'","'}'","'!'","']'","program","extdefs","@1","extdefs_opt",".hush_warning", ! ".warning_ok","extension","asm_keyword","lang_extdef","@2","extdef","@3","@4", ! "@5","namespace_alias","@6","using_decl","namespace_using_decl","using_directive", ! "@7","namespace_qualifier","any_id","extern_lang_string","template_parm_header", ! "@8","template_spec_header","template_header","template_parm_list","maybe_identifier", ! "template_type_parm","template_template_parm","template_parm","template_def", ! "template_extdef","template_datadef","datadef","ctor_initializer_opt","maybe_return_init", ! "eat_saved_input","function_body","@9","fndef","constructor_declarator","@10", ! "@11","@12","@13","fn.def1","component_constructor_declarator","fn.def2","return_id", ! "return_init","base_init",".begin_function_body","member_init_list","member_init", ! "identifier","notype_identifier","identifier_defn","explicit_instantiation", ! "@14","@15","@16","@17","@18","@19","@20","@21","begin_explicit_instantiation", ! "end_explicit_instantiation","template_type","apparent_template_type","self_template_type", ! ".finish_template_type","template_close_bracket","template_arg_list_opt","template_arg_list", ! "template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond", ! "condition","@22","compstmtend","nontrivial_exprlist","nonnull_exprlist","unary_expr", ! "new_placement","new_initializer","regcast_or_absdcl","cast_expr","expr_no_commas", ! "expr_no_comma_rangle","notype_unqualified_id","do_id","template_id","object_template_id", ! "unqualified_id","expr_or_declarator_intern","expr_or_declarator","notype_template_declarator", ! "direct_notype_declarator","primary","@23","new","delete","boolean.literal", ! "string","nodecls","object","decl","declarator","fcast_or_absdcl","type_id", ! "typed_declspecs","typed_declspecs1","reserved_declspecs","declmods","typed_typespecs", ! "reserved_typespecquals","sizeof","alignof","typeof","typespec","typespecqual_reserved", ! "initdecls","notype_initdecls","nomods_initdecls","maybeasm","initdcl","@24", ! "initdcl0_innards","@25","initdcl0","notype_initdcl0","nomods_initdcl0","@26", ! "maybe_attribute","attributes","attribute","attribute_list","attrib","any_word", ! "identifiers_or_typenames","maybe_init","init","initlist","pending_inline","pending_inlines", ! "defarg_again","pending_defargs","structsp","@27","@28","@29","@30","@31","maybecomma", ! "maybecomma_warn","aggr","class_head","class_head_apparent_template","class_head_decl", ! "class_head_defn","maybe_base_class_list","base_class_list","base_class","base_class.1", ! "base_class_access_list","opt.component_decl_list","access_specifier","component_decl_list", ! "component_decl","component_decl_1","components","notype_components","component_declarator0", ! "component_declarator","after_type_component_declarator0","notype_component_declarator0", ! "after_type_component_declarator","notype_component_declarator","enumlist_opt", ! "enumlist","enumerator","new_type_id","cv_qualifiers","nonempty_cv_qualifiers", ! "maybe_parmlist","after_type_declarator_intern","after_type_declarator","direct_after_type_declarator", ! "nonnested_type","complete_type_name","nested_type","notype_declarator_intern", ! "notype_declarator","complex_notype_declarator","complex_direct_notype_declarator", ! "qualified_id","notype_qualified_id","overqualified_id","functional_cast","type_name", ! "nested_name_specifier","nested_name_specifier_1","typename_sub","typename_sub0", ! "typename_sub1","typename_sub2","explicit_template_type","complex_type_name", ! "ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl_intern", ! "absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls", ! "label_decls","label_decl","compstmt_or_stmtexpr","@32","compstmt","simple_if", ! "@33","@34","implicitly_scoped_stmt","@35","stmt","simple_stmt","@36","@37", ! "@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","@48","@49","function_try_block", ! "@50","@51","try_block","@52","@53","handler_seq","handler","@54","@55","type_specifier_seq", ! "handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr", ! "asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist", ! "complex_parmlist","defarg","@56","defarg1","parms","parms_comma","named_parm", ! "full_parm","parm","see_typename","bad_parm","bad_decl","template_arg_list_ignore", ! "arg_list_ignore","exception_specification_opt","ansi_raise_identifier","ansi_raise_identifiers", ! "conversion_declarator","operator","unoperator","operator_name","save_lineno", NULL }; #endif ! static const short yyr1[] = { 0, ! 114, 114, 116, 115, 115, 117, 117, 118, 119, 120, ! 121, 123, 122, 124, 124, 125, 124, 124, 124, 124, ! 124, 124, 126, 124, 127, 124, 124, 124, 124, 124, ! 129, 128, 130, 130, 130, 131, 131, 131, 133, 132, ! 134, 134, 135, 135, 135, 135, 136, 136, 138, 137, ! 139, 140, 140, 141, 141, 142, 142, 143, 143, 144, ! 145, 145, 145, 145, 145, 145, 146, 146, 147, 147, ! 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, ! 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, ! 150, 151, 151, 151, 152, 152, 154, 153, 155, 155, ! 155, 157, 156, 156, 158, 156, 156, 159, 156, 156, ! 160, 156, 156, 161, 161, 161, 161, 161, 162, 162, ! 162, 162, 162, 162, 163, 163, 163, 163, 163, 163, ! 163, 164, 165, 165, 165, 166, 167, 168, 168, 168, ! 168, 169, 169, 169, 169, 169, 169, 169, 169, 169, ! 170, 170, 170, 170, 170, 171, 171, 171, 172, 172, ! 172, 174, 173, 175, 173, 176, 173, 177, 173, 178, ! 173, 179, 173, 180, 173, 181, 173, 182, 183, 184, ! 184, 184, 185, 185, 186, 187, 188, 188, 189, 189, ! 190, 190, 191, 191, 191, 191, 191, 192, 192, 192, ! 192, 192, 193, 193, 194, 194, 195, 195, 196, 196, ! 196, 198, 197, 197, 199, 199, 199, 199, 200, 200, ! 200, 200, 201, 201, 202, 202, 202, 202, 202, 202, ! 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, ! 202, 202, 202, 202, 202, 202, 202, 202, 203, 203, ! 204, 204, 204, 204, 205, 205, 206, 206, 206, 207, ! 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, ! 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, ! 207, 207, 207, 207, 208, 208, 208, 208, 208, 208, ! 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, ! 208, 208, 208, 208, 208, 208, 208, 208, 209, 209, ! 209, 209, 209, 209, 209, 210, 211, 211, 212, 212, ! 212, 213, 213, 213, 214, 214, 215, 215, 215, 215, ! 216, 216, 217, 217, 217, 217, 218, 218, 218, 218, ! 218, 218, 218, 218, 219, 218, 218, 218, 218, 218, ! 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, ! 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, ! 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, ! 218, 220, 220, 221, 221, 222, 222, 223, 223, 224, ! 225, 225, 226, 226, 226, 226, 226, 226, 227, 227, ! 228, 228, 229, 229, 229, 229, 229, 230, 230, 231, ! 231, 231, 231, 231, 231, 232, 232, 232, 233, 233, ! 233, 233, 233, 234, 234, 234, 234, 235, 235, 235, ! 235, 236, 237, 238, 239, 239, 239, 239, 239, 239, ! 239, 240, 240, 240, 241, 241, 242, 242, 243, 243, ! 244, 244, 246, 245, 245, 248, 247, 247, 249, 250, ! 252, 251, 251, 253, 253, 254, 254, 255, 256, 256, ! 257, 257, 257, 257, 257, 258, 258, 258, 258, 259, ! 259, 260, 260, 261, 261, 261, 261, 261, 262, 262, ! 262, 262, 262, 263, 263, 263, 264, 264, 265, 265, ! 266, 266, 266, 268, 267, 269, 267, 267, 267, 267, ! 270, 271, 272, 267, 267, 273, 273, 274, 274, 275, ! 275, 275, 275, 275, 275, 276, 276, 276, 276, 277, ! 277, 277, 278, 278, 278, 279, 279, 279, 279, 279, ! 279, 279, 280, 280, 280, 281, 281, 282, 282, 283, ! 283, 284, 284, 284, 284, 285, 285, 285, 285, 286, ! 287, 287, 288, 288, 288, 288, 288, 288, 288, 288, ! 288, 288, 288, 289, 289, 289, 289, 289, 289, 289, ! 289, 289, 290, 290, 290, 291, 291, 291, 292, 292, ! 293, 293, 294, 294, 295, 295, 295, 295, 296, 296, ! 297, 297, 297, 298, 298, 299, 299, 300, 300, 301, ! 301, 301, 302, 302, 303, 303, 303, 303, 304, 304, ! 304, 304, 305, 305, 306, 306, 306, 306, 306, 306, ! 307, 307, 307, 307, 307, 307, 308, 308, 309, 309, ! 309, 310, 311, 311, 312, 312, 312, 312, 312, 312, ! 313, 313, 313, 313, 313, 313, 314, 314, 314, 314, ! 314, 314, 314, 314, 315, 315, 316, 316, 317, 317, ! 318, 318, 318, 319, 319, 319, 320, 320, 320, 320, ! 320, 321, 321, 321, 321, 322, 322, 323, 323, 323, ! 323, 324, 324, 324, 324, 325, 325, 325, 325, 325, ! 325, 326, 327, 327, 327, 328, 328, 329, 330, 330, ! 330, 330, 330, 330, 330, 331, 331, 332, 332, 333, ! 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, ! 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, ! 335, 335, 335, 335, 336, 337, 337, 338, 338, 339, ! 341, 340, 342, 344, 345, 343, 346, 347, 346, 348, ! 348, 349, 349, 350, 349, 349, 351, 352, 349, 353, ! 354, 349, 355, 356, 357, 358, 349, 359, 360, 349, ! 361, 349, 362, 349, 363, 349, 349, 349, 349, 349, ! 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, ! 349, 349, 349, 349, 349, 349, 365, 366, 364, 368, ! 369, 367, 370, 370, 370, 372, 373, 371, 374, 374, ! 375, 375, 376, 376, 376, 376, 377, 377, 377, 378, ! 378, 379, 379, 379, 380, 380, 381, 381, 382, 382, ! 383, 383, 384, 384, 384, 385, 385, 385, 385, 385, ! 385, 385, 387, 386, 388, 388, 389, 389, 389, 389, ! 389, 390, 390, 391, 391, 391, 391, 391, 391, 392, ! 392, 393, 393, 394, 395, 395, 396, 397, 397, 398, ! 398, 399, 399, 399, 400, 400, 401, 401, 402, 402, ! 402, 402, 403, 404, 405, 405, 405, 405, 405, 405, ! 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, ! 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, ! 405, 405, 405, 405, 405, 405, 405, 405, 405, 406 }; ! static const short yyr2[] = { 0, ! 0, 1, 0, 2, 2, 1, 0, 0, 0, 1, ! 1, 0, 2, 2, 1, 0, 3, 1, 5, 4, ! 5, 4, 0, 6, 0, 5, 1, 2, 1, 2, ! 0, 6, 2, 3, 3, 3, 3, 4, 0, 5, ! 2, 3, 1, 1, 2, 2, 1, 2, 0, 5, ! 3, 1, 1, 1, 3, 1, 0, 2, 2, 3, ! 1, 3, 1, 3, 1, 3, 2, 2, 2, 1, ! 1, 5, 4, 2, 2, 3, 3, 2, 2, 3, ! 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, ! 1, 0, 1, 2, 0, 1, 0, 6, 3, 3, ! 3, 0, 8, 5, 0, 9, 6, 0, 8, 5, ! 0, 9, 6, 2, 2, 1, 2, 1, 6, 8, ! 4, 6, 6, 4, 2, 1, 2, 2, 1, 2, ! 1, 2, 2, 4, 2, 2, 0, 0, 1, 3, ! 2, 3, 1, 4, 2, 4, 2, 4, 2, 1, ! 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 1, 0, 6, 0, 6, 0, 5, 0, 5, 0, ! 7, 0, 7, 0, 6, 0, 6, 0, 0, 5, ! 5, 1, 1, 5, 5, 0, 1, 1, 0, 1, ! 1, 3, 1, 1, 2, 1, 3, 1, 1, 1, ! 1, 1, 1, 1, 1, 3, 1, 3, 0, 1, ! 1, 0, 7, 1, 1, 3, 4, 3, 3, 3, ! 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, ! 2, 2, 4, 2, 4, 2, 3, 3, 4, 4, ! 5, 5, 6, 2, 4, 5, 2, 2, 3, 3, ! 3, 1, 3, 2, 3, 4, 1, 2, 5, 1, ! 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, ! 3, 3, 1, 2, 1, 3, 3, 3, 3, 3, ! 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 3, 3, 3, 5, 3, 3, 1, 2, 3, 3, ! 1, 1, 1, 1, 1, 0, 5, 5, 5, 5, ! 5, 1, 1, 1, 1, 2, 1, 2, 2, 3, ! 4, 4, 1, 1, 1, 3, 1, 1, 1, 1, ! 1, 3, 3, 3, 0, 4, 4, 2, 4, 2, ! 6, 4, 2, 2, 1, 4, 1, 7, 7, 7, ! 7, 4, 4, 2, 2, 2, 1, 4, 2, 2, ! 5, 3, 2, 2, 5, 3, 5, 3, 4, 6, ! 2, 1, 2, 1, 2, 1, 1, 1, 2, 0, ! 2, 2, 3, 3, 3, 2, 2, 2, 1, 1, ! 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, ! 2, 3, 3, 3, 4, 1, 2, 2, 1, 1, ! 2, 2, 2, 1, 2, 2, 3, 1, 2, 2, ! 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, ! 4, 1, 1, 1, 1, 3, 1, 3, 1, 3, ! 0, 4, 0, 6, 3, 0, 4, 1, 3, 3, ! 0, 4, 3, 0, 1, 1, 2, 6, 1, 3, ! 0, 1, 4, 6, 4, 1, 1, 1, 1, 1, ! 3, 0, 2, 1, 2, 3, 4, 1, 1, 3, ! 4, 3, 5, 3, 3, 3, 0, 3, 3, 3, ! 0, 2, 2, 0, 6, 0, 5, 2, 2, 2, ! 0, 0, 0, 11, 1, 0, 1, 0, 1, 1, ! 2, 2, 2, 2, 2, 2, 3, 4, 3, 2, ! 3, 4, 1, 2, 1, 2, 2, 2, 2, 3, ! 3, 2, 0, 2, 3, 1, 4, 1, 3, 1, ! 1, 2, 2, 3, 3, 0, 1, 3, 2, 2, ! 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, ! 2, 3, 1, 2, 2, 4, 4, 2, 1, 5, ! 4, 1, 0, 1, 3, 0, 1, 3, 1, 1, ! 1, 1, 4, 4, 4, 4, 4, 3, 4, 4, ! 4, 4, 3, 2, 1, 1, 3, 1, 3, 2, ! 1, 6, 0, 2, 1, 2, 1, 2, 3, 3, ! 1, 3, 1, 2, 3, 3, 2, 2, 3, 1, ! 4, 4, 3, 3, 2, 1, 1, 2, 1, 1, ! 2, 2, 1, 2, 3, 3, 2, 2, 3, 1, ! 3, 3, 2, 2, 3, 1, 4, 3, 4, 3, ! 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, ! 4, 4, 2, 1, 1, 1, 1, 2, 4, 3, ! 3, 2, 2, 2, 2, 1, 2, 2, 2, 2, ! 3, 1, 2, 3, 4, 2, 2, 2, 2, 2, ! 2, 4, 2, 1, 2, 2, 3, 1, 3, 2, ! 3, 2, 2, 3, 1, 3, 4, 1, 2, 3, ! 2, 2, 1, 3, 2, 2, 1, 2, 3, 1, ! 3, 6, 4, 4, 3, 5, 3, 3, 3, 2, ! 1, 1, 2, 2, 2, 0, 1, 1, 2, 3, ! 0, 4, 1, 0, 0, 5, 1, 0, 3, 1, ! 2, 1, 2, 0, 4, 1, 0, 0, 5, 0, ! 0, 7, 0, 0, 0, 0, 12, 0, 0, 7, ! 0, 5, 0, 7, 0, 4, 2, 2, 2, 3, ! 6, 8, 10, 8, 12, 10, 10, 4, 3, 2, ! 2, 1, 1, 1, 1, 1, 0, 0, 5, 0, ! 0, 5, 1, 2, 0, 0, 0, 5, 1, 1, ! 3, 3, 2, 2, 2, 2, 2, 1, 2, 0, ! 1, 0, 1, 1, 0, 1, 1, 3, 4, 7, ! 1, 3, 0, 1, 1, 1, 2, 2, 2, 1, ! 2, 2, 0, 3, 1, 1, 1, 2, 2, 2, ! 4, 2, 2, 2, 2, 2, 2, 1, 2, 1, ! 2, 1, 1, 0, 0, 1, 5, 3, 0, 3, ! 0, 0, 4, 2, 1, 1, 1, 3, 0, 3, ! 3, 3, 1, 0, 3, 3, 3, 3, 3, 3, ! 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, ! 3, 3, 4, 3, 3, 5, 5, 4, 3, 0 }; ! static const short yydefact[] = { 3, ! 12, 12, 5, 0, 4, 0, 313, 674, 675, 0, ! 420, 436, 615, 0, 11, 434, 0, 0, 10, 520, ! 893, 0, 0, 0, 178, 708, 16, 314, 315, 88, ! 0, 0, 874, 0, 47, 0, 0, 13, 27, 0, ! 29, 8, 52, 53, 0, 18, 15, 95, 118, 92, ! 0, 676, 182, 334, 311, 335, 650, 0, 409, 0, ! 408, 0, 424, 0, 449, 617, 466, 435, 0, 533, ! 535, 515, 543, 419, 639, 437, 640, 116, 333, 661, ! 637, 0, 677, 613, 0, 89, 0, 312, 85, 87, ! 86, 189, 0, 682, 189, 683, 189, 316, 178, 151, ! 152, 153, 154, 155, 506, 508, 0, 704, 0, 509, ! 0, 0, 0, 152, 153, 154, 155, 25, 0, 0, ! 0, 0, 0, 0, 0, 510, 686, 0, 692, 0, ! 0, 0, 39, 0, 0, 33, 0, 0, 49, 0, ! 0, 189, 684, 0, 313, 617, 0, 648, 643, 0, ! 0, 0, 647, 0, 0, 0, 0, 334, 0, 325, ! 0, 0, 0, 333, 613, 30, 0, 28, 3, 48, ! 0, 68, 420, 0, 0, 8, 71, 67, 70, 95, ! 0, 0, 0, 435, 96, 14, 0, 464, 0, 0, ! 482, 93, 83, 685, 621, 0, 0, 613, 84, 0, ! 0, 0, 114, 0, 445, 399, 630, 400, 636, 0, ! 613, 422, 421, 82, 117, 410, 0, 447, 423, 115, ! 0, 416, 442, 443, 411, 426, 428, 431, 444, 0, ! 79, 467, 521, 522, 523, 524, 542, 160, 159, 161, ! 526, 534, 183, 530, 525, 0, 0, 536, 537, 538, ! 539, 874, 0, 616, 425, 618, 0, 461, 313, 675, ! 0, 314, 706, 182, 667, 668, 664, 642, 678, 0, ! 313, 315, 663, 641, 662, 638, 0, 894, 894, 894, ! 894, 894, 894, 894, 0, 894, 894, 894, 894, 894, ! 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, ! 894, 894, 894, 894, 894, 894, 894, 0, 894, 819, ! 424, 820, 889, 316, 615, 338, 341, 388, 432, 433, ! 0, 0, 0, 384, 382, 355, 386, 387, 0, 0, ! 0, 0, 0, 314, 307, 0, 0, 199, 198, 0, ! 200, 201, 0, 0, 202, 0, 0, 190, 191, 0, ! 257, 0, 285, 196, 337, 225, 0, 0, 339, 340, ! 0, 193, 406, 0, 0, 424, 407, 669, 367, 357, ! 0, 0, 881, 0, 0, 189, 0, 518, 504, 0, ! 0, 0, 705, 703, 283, 0, 203, 260, 204, 0, ! 0, 0, 471, 3, 23, 31, 700, 696, 697, 699, ! 701, 698, 151, 152, 153, 0, 154, 155, 688, 689, ! 693, 690, 687, 0, 313, 323, 324, 322, 666, 665, ! 35, 34, 51, 0, 168, 0, 0, 424, 166, 17, ! 0, 0, 189, 644, 618, 646, 0, 645, 152, 153, ! 309, 310, 329, 617, 0, 654, 328, 0, 653, 0, ! 336, 314, 315, 0, 0, 0, 327, 326, 658, 0, ! 0, 12, 0, 178, 9, 9, 74, 0, 69, 0, ! 0, 75, 78, 0, 463, 465, 132, 101, 807, 99, ! 390, 100, 135, 0, 0, 133, 94, 0, 850, 224, ! 0, 223, 845, 868, 0, 406, 424, 407, 0, 844, ! 846, 875, 857, 0, 0, 660, 0, 0, 882, 617, ! 0, 628, 623, 0, 627, 0, 0, 0, 0, 0, ! 613, 464, 0, 81, 0, 613, 635, 0, 413, 414, ! 0, 80, 464, 0, 0, 418, 417, 412, 429, 430, ! 451, 450, 189, 540, 541, 151, 154, 527, 531, 529, ! 0, 544, 511, 427, 464, 680, 613, 102, 0, 0, ! 0, 0, 681, 613, 108, 614, 0, 649, 675, 707, ! 182, 929, 0, 925, 0, 924, 922, 904, 909, 910, ! 894, 916, 915, 901, 902, 900, 919, 908, 905, 906, ! 907, 911, 912, 898, 899, 895, 896, 897, 921, 913, ! 914, 903, 920, 894, 917, 426, 613, 613, 0, 613, ! 0, 894, 189, 0, 247, 248, 0, 0, 0, 0, ! 0, 0, 308, 231, 228, 227, 229, 0, 0, 0, ! 0, 0, 337, 0, 930, 0, 226, 187, 188, 331, ! 0, 230, 0, 0, 258, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 348, 0, 350, 353, ! 354, 392, 391, 0, 0, 0, 0, 0, 236, 611, ! 0, 244, 389, 381, 0, 0, 874, 370, 373, 374, ! 0, 0, 401, 727, 723, 0, 0, 613, 613, 613, ! 403, 730, 0, 232, 0, 234, 0, 673, 405, 0, ! 0, 404, 369, 0, 0, 364, 383, 195, 365, 385, ! 670, 0, 366, 0, 0, 186, 186, 0, 176, 0, ! 424, 174, 519, 608, 605, 0, 518, 606, 518, 0, ! 284, 440, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 441, 477, 478, 479, ! 476, 0, 469, 472, 0, 3, 0, 691, 189, 694, ! 0, 43, 44, 0, 57, 0, 0, 0, 61, 65, ! 54, 873, 424, 57, 872, 63, 179, 164, 162, 179, ! 186, 332, 0, 652, 651, 336, 0, 655, 0, 20, ! 22, 95, 9, 9, 77, 76, 0, 137, 0, 930, ! 91, 90, 488, 0, 484, 483, 0, 622, 619, 849, ! 863, 852, 727, 723, 0, 864, 613, 867, 869, 0, ! 0, 865, 0, 866, 620, 848, 862, 851, 847, 876, ! 859, 870, 860, 853, 858, 659, 0, 673, 0, 657, ! 624, 618, 626, 625, 617, 0, 0, 0, 0, 0, ! 0, 613, 634, 0, 459, 458, 446, 633, 0, 882, ! 0, 629, 415, 448, 460, 438, 439, 464, 0, 528, ! 532, 674, 675, 874, 874, 676, 545, 546, 548, 874, ! 551, 550, 0, 0, 462, 882, 843, 189, 189, 679, ! 189, 882, 843, 613, 105, 613, 111, 894, 894, 918, ! 923, 889, 889, 889, 0, 928, 0, 0, 0, 0, ! 0, 0, 424, 0, 0, 0, 344, 0, 342, 343, ! 0, 0, 255, 192, 313, 674, 675, 314, 315, 0, ! 0, 489, 516, 0, 306, 305, 834, 833, 0, 303, ! 302, 300, 301, 299, 298, 297, 295, 296, 293, 294, ! 288, 289, 290, 291, 292, 286, 287, 0, 0, 0, ! 0, 0, 0, 0, 238, 252, 0, 0, 237, 613, ! 613, 0, 613, 610, 715, 0, 0, 0, 0, 0, ! 372, 0, 376, 0, 378, 0, 617, 726, 725, 718, ! 722, 721, 873, 0, 0, 740, 0, 0, 882, 402, ! 882, 728, 613, 843, 0, 0, 0, 727, 723, 0, ! 0, 613, 0, 617, 0, 0, 0, 0, 197, 0, ! 877, 181, 185, 317, 179, 172, 170, 179, 0, 507, ! 519, 604, 0, 222, 221, 220, 219, 282, 281, 0, ! 279, 278, 276, 277, 275, 274, 273, 270, 271, 272, ! 268, 269, 263, 264, 265, 266, 267, 261, 262, 471, ! 0, 0, 26, 0, 0, 695, 0, 40, 46, 45, ! 59, 56, 49, 57, 0, 50, 0, 0, 58, 526, ! 0, 169, 179, 179, 167, 180, 331, 330, 19, 21, ! 73, 95, 452, 808, 150, 156, 143, 157, 158, 0, ! 0, 139, 0, 0, 0, 0, 485, 0, 134, 617, ! 726, 722, 727, 723, 0, 617, 637, 0, 613, 728, ! 0, 727, 723, 0, 337, 0, 669, 0, 871, 0, ! 0, 884, 0, 0, 0, 0, 456, 632, 631, 455, ! 186, 553, 552, 874, 874, 874, 0, 579, 675, 0, ! 569, 0, 0, 0, 582, 0, 131, 126, 0, 182, ! 583, 586, 0, 0, 561, 0, 129, 573, 104, 0, ! 0, 0, 0, 110, 0, 882, 843, 882, 843, 927, ! 926, 891, 890, 892, 318, 356, 0, 362, 363, 0, ! 0, 0, 0, 343, 346, 751, 0, 0, 0, 0, ! 256, 0, 347, 349, 352, 250, 249, 240, 0, 239, ! 254, 0, 0, 712, 710, 0, 713, 0, 245, 0, ! 0, 189, 379, 0, 0, 0, 719, 618, 724, 720, ! 731, 613, 739, 737, 738, 0, 729, 882, 0, 735, ! 0, 233, 235, 671, 672, 727, 723, 0, 368, 880, ! 177, 179, 179, 175, 609, 607, 505, 0, 470, 468, ! 313, 0, 24, 32, 702, 60, 55, 62, 66, 64, ! 165, 163, 72, 815, 0, 141, 0, 145, 0, 147, ! 0, 149, 0, 97, 0, 486, 618, 726, 722, 727, ! 723, 0, 613, 642, 728, 0, 0, 672, 364, 365, ! 670, 366, 861, 855, 856, 854, 886, 885, 887, 0, ! 0, 0, 0, 618, 0, 0, 453, 184, 0, 555, ! 554, 549, 613, 843, 578, 0, 570, 583, 571, 464, ! 464, 567, 568, 565, 566, 613, 843, 313, 674, 0, ! 451, 127, 574, 584, 589, 590, 451, 451, 0, 0, ! 451, 125, 575, 587, 451, 0, 464, 0, 562, 563, ! 564, 464, 613, 320, 319, 321, 613, 107, 0, 113, ! 0, 0, 0, 0, 0, 0, 746, 0, 492, 0, ! 490, 259, 304, 0, 241, 242, 251, 253, 711, 709, ! 716, 714, 0, 246, 0, 0, 371, 375, 377, 882, ! 733, 613, 734, 173, 171, 280, 0, 473, 475, 816, ! 809, 813, 142, 140, 0, 0, 0, 746, 487, 726, ! 722, 0, 728, 343, 0, 883, 617, 457, 0, 547, ! 882, 0, 0, 572, 482, 482, 882, 0, 0, 0, ! 464, 464, 0, 464, 464, 0, 464, 0, 560, 512, ! 0, 482, 882, 882, 613, 613, 351, 0, 0, 0, ! 0, 0, 215, 752, 0, 747, 748, 491, 0, 0, ! 243, 717, 380, 319, 736, 882, 0, 0, 814, 144, ! 146, 148, 98, 727, 723, 0, 618, 0, 888, 454, ! 121, 613, 613, 843, 577, 581, 124, 613, 464, 464, ! 598, 482, 313, 674, 0, 585, 591, 592, 451, 451, ! 482, 482, 0, 482, 588, 501, 576, 103, 109, 882, ! 882, 358, 359, 360, 361, 480, 0, 0, 0, 742, ! 753, 760, 741, 0, 749, 493, 612, 732, 474, 0, ! 817, 617, 882, 882, 0, 882, 597, 594, 596, 0, ! 0, 464, 464, 464, 593, 595, 580, 0, 106, 112, ! 0, 750, 745, 218, 0, 216, 744, 743, 313, 674, ! 675, 754, 767, 770, 773, 778, 0, 0, 0, 0, ! 0, 0, 0, 0, 314, 802, 810, 0, 830, 806, ! 805, 804, 0, 762, 0, 0, 424, 766, 761, 803, ! 930, 0, 0, 930, 119, 122, 613, 123, 464, 464, ! 603, 482, 482, 503, 0, 502, 497, 481, 217, 823, ! 825, 826, 0, 0, 758, 0, 0, 0, 785, 787, ! 788, 789, 0, 0, 0, 0, 0, 0, 0, 824, ! 930, 398, 831, 0, 763, 396, 451, 0, 397, 0, ! 451, 0, 0, 764, 801, 800, 821, 822, 818, 882, ! 602, 600, 599, 601, 0, 0, 514, 207, 0, 755, ! 768, 757, 0, 930, 0, 0, 0, 781, 930, 790, ! 0, 799, 41, 155, 36, 155, 0, 37, 811, 0, ! 394, 395, 0, 0, 0, 393, 758, 120, 500, 499, ! 92, 95, 214, 0, 424, 0, 758, 758, 771, 0, ! 746, 828, 774, 0, 0, 0, 930, 786, 798, 42, ! 38, 815, 0, 765, 0, 498, 208, 451, 756, 769, ! 0, 759, 829, 0, 827, 779, 783, 782, 812, 835, ! 835, 0, 496, 494, 495, 464, 205, 0, 0, 211, ! 0, 210, 758, 930, 0, 0, 0, 836, 837, 0, ! 791, 0, 0, 772, 775, 780, 784, 0, 0, 0, ! 0, 0, 0, 835, 0, 212, 206, 0, 0, 0, ! 841, 0, 794, 838, 0, 0, 792, 0, 0, 839, ! 0, 0, 0, 0, 0, 0, 213, 776, 0, 842, ! 796, 797, 0, 793, 758, 0, 0, 777, 840, 795, ! 0, 0, 0 }; ! static const short yydefgoto[] = { 1831, ! 462, 2, 463, 171, 811, 346, 187, 3, 4, 38, ! 141, 776, 394, 39, 777, 1175, 1611, 41, 414, 1658, ! 781, 42, 43, 424, 44, 1176, 788, 1091, 789, 790, ! 791, 46, 178, 179, 47, 820, 190, 186, 480, 1438, ! 48, 49, 907, 1197, 913, 1199, 50, 1178, 1179, 191, ! 192, 821, 481, 1121, 1122, 734, 1123, 242, 51, 1104, ! 1103, 800, 797, 1273, 1272, 1048, 1045, 140, 1102, 52, ! 244, 53, 1042, 640, 347, 348, 349, 350, 632, 1769, ! 1690, 1771, 1724, 1808, 1484, 387, 1031, 351, 678, 989, ! 352, 388, 389, 354, 355, 376, 55, 266, 782, 443, ! 160, 56, 57, 356, 635, 357, 358, 359, 360, 822, ! 361, 1614, 541, 699, 362, 1181, 494, 225, 495, 363, ! 226, 364, 365, 62, 508, 227, 204, 217, 64, 522, ! 542, 1449, 875, 1336, 205, 218, 65, 555, 876, 66, ! 67, 772, 773, 774, 1547, 486, 952, 953, 1722, 1687, ! 1636, 1578, 68, 739, 378, 904, 1536, 1637, 1220, 735, ! 69, 70, 71, 72, 73, 253, 897, 898, 899, 900, ! 1183, 1378, 1184, 1185, 1186, 1363, 1373, 1364, 1526, 1365, ! 1366, 1527, 1528, 736, 737, 738, 679, 1019, 367, 198, ! 520, 513, 207, 75, 76, 77, 148, 149, 163, 79, ! 136, 368, 369, 370, 81, 391, 83, 902, 127, 128, ! 129, 561, 110, 84, 392, 994, 995, 1014, 1010, 702, ! 1549, 1550, 1485, 1486, 1487, 1551, 1397, 1552, 1618, 1643, ! 1727, 1693, 1694, 1553, 1619, 1717, 1644, 1728, 1645, 1751, ! 1646, 1754, 1798, 1825, 1647, 1773, 1737, 1774, 1699, 482, ! 818, 1294, 1620, 1661, 1742, 1431, 1432, 1498, 1624, 1726, ! 1561, 1621, 1733, 1664, 959, 1777, 1778, 1779, 1802, 499, ! 1015, 855, 1151, 1326, 501, 502, 503, 851, 504, 154, ! 853, 1188, 93, 725, 860, 1329, 1330, 612, 87, 572, ! 88, 942 }; ! static const short yypact[] = { 166, ! 189,-32768,-32768, 2909,-32768, 58, 121, 405, 440, 60, ! 158,-32768,-32768, 1066,-32768,-32768, 107, 228,-32768,-32768, ! -32768, 1235, 1578, 1102, 254,-32768,-32768, 281, 504,-32768, ! 1072, 1072,-32768, 2487,-32768, 2909, 304,-32768,-32768, 351, ! -32768, 152,-32768,-32768, 4624,-32768,-32768, 315, 911, 401, ! 371, 442,-32768,-32768,-32768,-32768, 529, 2462,-32768, 7370, ! -32768, 409, 3123, 867,-32768, 477,-32768,-32768, 996, 577, ! 724,-32768, 458, 7869,-32768,-32768,-32768, 830,-32768,-32768, ! -32768, 826,-32768,-32768, 2245,-32768, 6505, 449,-32768,-32768, ! -32768, 11743, 533,-32768, 11743,-32768, 11743,-32768,-32768,-32768, ! 405, 440, 281, 495,-32768, 505, 442,-32768, 1885,-32768, ! 331, 11836, 464,-32768,-32768,-32768,-32768,-32768, 94, 535, ! 508, 572, 617, 545, 553,-32768,-32768, 1913,-32768, 1588, ! 405, 440,-32768, 281, 495,-32768, 1376, 3330, 563, 13256, ! 565, 11743,-32768, 11743, 645, 7187, 2200,-32768,-32768, 1396, ! 3508, 2200,-32768, 1697, 5083, 5083, 2487, 607, 618,-32768, ! 529, 327, 620, 632,-32768,-32768, 742,-32768, 649,-32768, ! 6188,-32768,-32768, 254, 5248, 663,-32768,-32768,-32768, 315, ! 1800, 13317, 878, 707,-32768,-32768, 689, 477, 783, 162, ! 407, 729,-32768,-32768,-32768, 9182, 10694,-32768,-32768, 6052, ! 6052, 7434, 830, 893,-32768,-32768, 629,-32768,-32768, 1596, ! -32768,-32768,-32768,-32768,-32768, 3123, 918,-32768, 477, 830, ! 11836,-32768,-32768,-32768, 1297, 3123,-32768, 477,-32768, 1800, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 722, 877, 442,-32768, 477, 2005, 1719,-32768,-32768,-32768, ! -32768,-32768, 748,-32768, 2045, 477, 331,-32768, 740, 443, ! 1315, 745,-32768, 196,-32768,-32768,-32768,-32768,-32768, 6289, ! -32768, 495,-32768,-32768,-32768,-32768, 2473,-32768, 730, 737, ! -32768,-32768,-32768,-32768, 785,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768, 705,-32768,-32768, ! 2045, 7869, 342,-32768, 757,-32768,-32768,-32768,-32768,-32768, ! 12953, 12953, 762,-32768,-32768,-32768,-32768,-32768, 765, 806, ! 822, 824, 836, 1108, 12301, 1833, 12953,-32768,-32768, 12953, ! -32768,-32768, 12953, 9480,-32768, 12953, 364, 865,-32768, 12953, ! -32768, 12394,-32768, 8489, 288, 1023, 3814, 12487,-32768, 907, ! 485,-32768, 991, 13046, 13139, 5389, 5285,-32768, 435,-32768, ! 1469, 2101, 869, 364, 364, 11743, 13256, 973,-32768, 904, ! 1833, 745,-32768,-32768, 12581, 855, 906,-32768, 13413, 874, ! 1819, 2400, 1613, 649,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, 535, 508, 572, 1833, 617, 545, 909, 553, ! -32768, 933,-32768, 3467, 904, 405, 440,-32768,-32768,-32768, ! -32768,-32768,-32768, 5180,-32768, 1800, 7547, 857,-32768,-32768, ! 364, 588, 11743,-32768, 7187,-32768, 3944,-32768, 948, 953, ! -32768,-32768,-32768, 327, 2200,-32768,-32768, 2200,-32768, 929, ! -32768,-32768,-32768, 327, 327, 327,-32768,-32768,-32768, 6289, ! 86, 931, 935,-32768,-32768,-32768,-32768, 13256,-32768, 930, ! 975,-32768,-32768, 742,-32768, 477,-32768,-32768,-32768,-32768, ! 979,-32768,-32768, 10136, 12581,-32768,-32768, 939,-32768, 906, ! 943, 13413, 383, 2035, 13317, 2035, 2020, 6996, 949,-32768, ! 253, 2838, 1006, 1012, 757,-32768, 950, 498, 74, 7877, ! 6382,-32768,-32768, 6382,-32768, 6600, 6600, 7434, 8192, 955, ! -32768, 477, 1800,-32768, 10787,-32768,-32768, 6649, 1297, 3123, ! 1800,-32768, 477, 978, 983,-32768,-32768, 1297,-32768, 477, ! 1070,-32768, 11743,-32768,-32768, 904, 745, 722,-32768,-32768, ! 2005, 1677,-32768, 2045, 477,-32768,-32768,-32768, 1018, 1031, ! 1058, 1047,-32768,-32768,-32768,-32768, 7187,-32768, 1005,-32768, ! 564,-32768, 1024,-32768, 1029,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768, 2045,-32768,-32768, 685,-32768, ! 640,-32768, 11743, 12581,-32768,-32768, 12581, 11836, 8172, 8172, ! 8172, 8172, 8489,-32768,-32768,-32768,-32768, 1034, 12674, 12674, ! 9480, 1054, 192, 1077,-32768, 1082,-32768,-32768,-32768, 1150, ! 11743,-32768, 9573, 9480,-32768, 12301, 12301, 10229, 12301, 12301, ! 12301, 12301, 12301, 12301, 12301, 12301, 12301, 12301, 12301, 12301, ! 12301, 12301, 12301, 12301, 12301, 12301,-32768, 12581,-32768,-32768, ! -32768,-32768,-32768, 12581, 12581, 12581, 11836, 3924, 597, 815, ! 10880,-32768,-32768,-32768, 1101, 1315, 1169, 567, 603, 687, ! 2587, 640,-32768, 2359, 2359, 3337, 10973, 1085, 1133,-32768, ! -32768, 741, 9480,-32768, 9480,-32768, 11367, 1236,-32768, 876, ! 331,-32768,-32768, 12581, 1315,-32768,-32768, 281,-32768,-32768, ! -32768, 393, 449, 12581, 1132,-32768,-32768, 364,-32768, 1800, ! 2987,-32768,-32768, 1130,-32768, 1098, 1149,-32768, 973, 909, ! 13484,-32768, 10415, 10508, 12581, 12581, 10229, 12581, 12581, 12581, ! 12581, 12581, 12581, 12581, 12581, 12581, 12581, 12581, 12581, 12581, ! 12581, 12581, 12581, 12581, 12581, 12581,-32768,-32768,-32768,-32768, ! -32768, 129,-32768, 1118, 1115, 649, 3467, 1173, 11743,-32768, ! 1168,-32768,-32768, 3330, 1704, 1155, 1196, 613, 1170, 1177, ! -32768,-32768, 4050, 996,-32768, 1179,-32768,-32768,-32768,-32768, ! -32768,-32768, 364,-32768,-32768, 1126, 1138,-32768, 1184,-32768, ! -32768, 315,-32768,-32768,-32768,-32768, 90,-32768, 528,-32768, ! -32768,-32768,-32768, 9368, 13484,-32768, 1140,-32768,-32768,-32768, ! -32768,-32768, 1898, 1898, 4226,-32768,-32768,-32768,-32768, 1596, ! 2245,-32768, 11461,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 1012, 1192,-32768,-32768,-32768, 11929, 1133, 692,-32768, ! -32768, 7877,-32768,-32768, 8192, 6382, 6382, 6823, 6823, 8192, ! 876,-32768,-32768, 6649,-32768, 1193,-32768,-32768, 1151, 74, ! 7877,-32768, 1297,-32768,-32768,-32768,-32768, 477, 1188, 722, ! -32768, 508, 572,-32768,-32768, 553, 1189,-32768,-32768, 137, ! -32768,-32768, 2177, 6742,-32768, 74, 6934, 11743, 11743,-32768, ! 11743, 74, 6934,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 1425, 1425, 1425, 1008,-32768, 364, 1159, 13439, 1160, ! 1161, 1194, 5788, 1197, 1201, 1204,-32768, 1164,-32768,-32768, ! 1174, 1222,-32768,-32768, 1221, 363, 469, 392, 866, 12581, ! 1223,-32768, 1225, 1187, 8489, 8489,-32768,-32768, 1234, 13312, ! 8944, 7399, 5868, 5598, 5991, 4656, 3360, 3360, 2388, 2388, ! 1732, 1732, 998, 998, 998,-32768,-32768, 1200, 1203, 1202, ! 1191, 1212, 1214, 8172, 597,-32768, 10136, 12581,-32768,-32768, ! -32768, 12581,-32768,-32768, 1229, 12953, 1213, 1245, 1262, 1296, ! -32768, 12581,-32768, 12581,-32768, 12581, 2708, 2624,-32768,-32768, ! 2624,-32768, 139, 1240, 1243,-32768, 1242, 8172, 74,-32768, ! 74, 3264,-32768, 6934, 11066, 1247, 1249, 11555, 11555, 8848, ! 1251, 12394, 1255, 2119, 4340, 2400, 1304, 1256, 1031, 1263, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 12581,-32768, ! 1833,-32768, 1261,-32768, 13484,-32768, 13484, 13484, 13484, 1313, ! 7561, 5576, 8216, 7900, 5890, 4525, 5728, 3691, 3691, 3691, ! 2502, 2502, 1761, 1761, 1049, 1049, 1049,-32768,-32768, 1613, ! 1273, 12767,-32768, 1278, 1321,-32768, 364,-32768,-32768,-32768, ! -32768,-32768,-32768, 1737, 5180,-32768, 8172, 11743,-32768, 1112, ! 12301,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 315,-32768,-32768,-32768, 535,-32768, 617, 545, 12581, ! 202,-32768, 699, 702, 709, 1329,-32768, 111,-32768, 4503, ! 2134, 2134, 3038, 3038, 4226, 4977, 83, 1596,-32768, 3179, ! 4413, 11649, 11649, 9072, 224, 1284, 356, 3050,-32768, 10136, ! 9669,-32768, 6619, 2666, 2666, 3164,-32768,-32768,-32768, 1331, ! -32768,-32768,-32768,-32768,-32768,-32768, 2093,-32768, 1043, 1217, ! -32768, 12581, 8459, 8037,-32768, 8037, 216, 216, 514, 772, ! 5485, 7528, 79, 7166,-32768, 227, 216,-32768,-32768, 1286, ! 364, 364, 364,-32768, 1294, 74, 6934, 74, 6934,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768, 8172,-32768,-32768, 1310, ! 1312, 1316, 1320, 1126,-32768,-32768, 13347, 10136, 9764, 1299, ! -32768, 12301,-32768,-32768,-32768,-32768,-32768, 616, 1298,-32768, ! -32768, 1308, 229, 601, 601, 1307, 601, 12581,-32768, 12953, ! 1416, 11743,-32768, 1317, 1335, 1338,-32768, 2708,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768, 2708,-32768, 74, 1341,-32768, ! 1339,-32768,-32768,-32768,-32768, 4406, 4406, 4903,-32768,-32768, ! -32768,-32768,-32768,-32768, 13484,-32768,-32768, 12581,-32768,-32768, ! 230, 1343,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 8489, ! -32768,-32768,-32768, 1356, 1348,-32768, 459,-32768, 12581,-32768, ! 12581,-32768, 12581,-32768, 9857,-32768, 4503, 2134, 2134, 4725, ! 4725, 6322,-32768, 457, 3179, 4503, 1350, 537, 559, 749, ! 751, 311,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 232, ! 3445, 3445, 1893, 1893, 1893, 10136,-32768,-32768, 1677,-32768, ! -32768,-32768,-32768, 6934, 13484, 240,-32768, 3821,-32768, 477, ! 477,-32768,-32768,-32768,-32768,-32768, 6934, 497, 602, 12581, ! 1070,-32768, 1399,-32768,-32768,-32768, 451, 542, 826, 3508, ! 566, 216, 1401,-32768, 746, 1404, 477, 8341,-32768,-32768, ! -32768, 477,-32768,-32768, 1420,-32768,-32768,-32768, 1367,-32768, ! 1370, 1372, 12581, 12581, 12581, 12581, 75, 10136,-32768, 1418, ! -32768,-32768, 8489, 12581,-32768, 616,-32768,-32768,-32768,-32768, ! -32768,-32768, 1373,-32768, 1440, 364,-32768,-32768,-32768, 74, ! -32768,-32768,-32768,-32768,-32768, 13484, 12581,-32768,-32768,-32768, ! 1356,-32768,-32768,-32768, 1380, 1383, 1385, 75,-32768, 3645, ! 3645, 876, 3660, 753, 6619,-32768, 1893,-32768, 10136,-32768, ! 74, 1386, 775,-32768, 1430, 1430, 74, 1390, 12581, 12581, ! 7042, 477, 6894, 477, 477, 4759, 477, 8334,-32768,-32768, ! 8949, 1430, 74, 74,-32768,-32768,-32768, 1392, 1393, 1394, ! 1397, 1833,-32768,-32768, 8738, 1482,-32768,-32768, 10136, 1405, ! -32768,-32768,-32768,-32768,-32768, 74, 1407, 1427,-32768,-32768, ! -32768,-32768,-32768, 4188, 4188, 3528, 4298, 4298,-32768,-32768, ! -32768,-32768,-32768, 6934,-32768,-32768,-32768,-32768, 7042, 7042, ! -32768, 1430, 549, 902, 12581,-32768,-32768,-32768, 1070, 1070, ! 1430, 1430, 1005, 1430,-32768,-32768,-32768,-32768,-32768, 74, ! 74,-32768,-32768,-32768,-32768,-32768, 1067, 246, 8604,-32768, ! -32768,-32768,-32768, 11177,-32768,-32768,-32768,-32768,-32768, 7298, ! -32768, 4298, 74, 74, 1410, 74,-32768,-32768,-32768, 12581, ! 12581, 7042, 477, 477,-32768,-32768,-32768, 7710,-32768,-32768, ! 1833,-32768,-32768,-32768, 251,-32768,-32768,-32768, 1458, 905, ! 954,-32768,-32768,-32768,-32768,-32768, 12581, 1467, 1470, 1475, ! 12022, 295, 1833, 701, 655,-32768,-32768, 12115, 1531,-32768, ! -32768,-32768, 1480,-32768, 4123, 13210, 5661, 1528,-32768,-32768, ! 1435, 1437, 1439,-32768,-32768,-32768,-32768,-32768, 7042, 7042, ! -32768, 1430, 1430,-32768, 10601,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, 778, 778, 1489, 1462, 1466, 4801,-32768,-32768, ! -32768,-32768, 1499, 12581, 1500, 1501, 1510, 2271, 2295,-32768, ! -32768,-32768,-32768, 1474,-32768,-32768, 1070, 1084,-32768, 1137, ! 1070, 12208, 1145,-32768,-32768,-32768,-32768,-32768,-32768, 74, ! -32768,-32768,-32768,-32768, 1463, 13369, 1471,-32768, 11836,-32768, ! -32768,-32768, 1556,-32768, 9275, 11836, 12581,-32768,-32768,-32768, ! 1513,-32768,-32768, 1523,-32768, 1510, 2271,-32768,-32768, 742, ! -32768,-32768, 12860, 12860, 9950,-32768, 1489,-32768,-32768,-32768, ! 401, 315,-32768, 1484, 718, 1800, 1489, 1489,-32768, 11272, ! 75,-32768,-32768, 1521, 1486, 13462,-32768,-32768,-32768,-32768, ! -32768, 1356, 175,-32768, 163,-32768,-32768, 1070,-32768,-32768, ! 828,-32768,-32768, 10043,-32768,-32768,-32768,-32768, 1356, 64, ! 64, 1527,-32768,-32768,-32768, 477,-32768, 12581, 1540,-32768, ! 1541,-32768, 1489,-32768, 1511, 1833, 161, 1543,-32768, 100, ! -32768, 1544, 1502,-32768,-32768,-32768,-32768, 12581, 1497, 742, ! 1551, 64, 742, 64, 1560,-32768,-32768, 10322, 1516, 1615, ! 907, 267,-32768,-32768, 349, 239,-32768, 10136, 1519,-32768, ! 1535, 742, 1569, 1573, 742, 1577,-32768,-32768, 12581, 907, ! -32768,-32768, 368,-32768, 1489, 1532, 1580,-32768,-32768,-32768, ! 1649, 1658,-32768 }; ! static const short yypgoto[] = {-32768, ! 1661,-32768, -330, 1487, -401, 44, -3, 1662,-32768, 1632, ! -32768,-32768,-32768, -1477,-32768, 280,-32768, -1476,-32768, 11, ! 894, 37, -387,-32768,-32768, 97,-32768, -725,-32768,-32768, ! 579, 36, 1508, 1207, 1515,-32768, -31, -178, -808,-32768, ! -21, 186,-32768,-32768,-32768,-32768,-32768, 510,-32768,-32768, ! -32768,-32768,-32768,-32768, 399, -14,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1598, -759, 7802, ! -180, 28, -681, -247, -70, 1555, -603,-32768, 131,-32768, ! 62,-32768, -1574,-32768, -1370, 39, 1266, -322,-32768, -935, ! 7005, 5257, 6906, 1950, 4998, 1391, -343, -66, -81, 834, ! -134, -76, 119,-32768,-32768,-32768, -340,-32768, -162,-32768, ! -32768, -1524, 61, -349, 4916, 54, 17, -101, 43, 59, ! -204,-32768,-32768,-32768, -1, -165, -168, -166, 0, -38, ! -266,-32768, -397,-32768,-32768,-32768,-32768,-32768, 555, 1354, ! 3136,-32768, 633,-32768,-32768, -1325, -480, 891,-32768,-32768, ! -32768,-32768, 42,-32768,-32768,-32768,-32768,-32768,-32768, 980, ! -390,-32768,-32768,-32768,-32768,-32768,-32768, 379, 552,-32768, ! -32768,-32768, 347, -1068,-32768,-32768,-32768,-32768,-32768,-32768, ! 544,-32768, 260, 992,-32768, 679, 1056, 2999, 81, 1536, ! 2626, 1770,-32768, -516,-32768, 12, 1899, 3865, -136, 298, ! -63, 5586, 1374,-32768, 6554, 2282, 1962, -16, -108,-32768, ! 1622, -58,-32768, 6007, 3657, -69,-32768, 3173, 524,-32768, ! -32768, 203,-32768,-32768, 272, 1124,-32768, -1252,-32768,-32768, ! -32768, -1512,-32768, -1449, 31,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 20, ! -32768,-32768,-32768,-32768,-32768, 24, -1364,-32768,-32768, -56, ! -32768,-32768,-32768,-32768, -738, -1420,-32768, -24, -1376, -762, ! -173, 919,-32768,-32768,-32768,-32768, -410,-32768, -409, -213, ! -32768, 99,-32768,-32768, 2380, 338,-32768, 92,-32768, 5700, ! -243, -766 }; #define YYLAST 13571 ! static const short yytable[] = { 106, ! 37, 469, 63, 826, 461, 267, 126, 119, 1060, 1114, ! 188, 530, 470, 795, 796, 471, 708, 562, 446, 449, ! 59, 413, 500, 180, 374, 108, 375, 458, 719, 645, ! 313, 720, 37, 794, 63, 901, 787, 944, 552, 258, ! 1105, 704, 706, 63, 183, 1043, 60, 36, 719, 1230, ! 554, 720, 59, 1126, 241, 420, 421, 58, 216, 537, ! 539, 59, 61, 775, 812, 549, 1499, 1503, 1099, 412, ! 419, 431, 255, 267, 422, 1775, 1610, 1612, 60, 36, ! 177, 176, 566, 1662, 74, 311, 184, 182, 175, 58, ! 366, 795, 852, 366, 61, 366, 274, 683, 181, 1588, ! 45, 683, 86, 61, 229, 1347, 606, 1349, 1482, 264, ! 366, 147, 152, 409, 529, 1379, 74, 1376, 203, 1106, ! 89, 1735, 383, -879, 538, 74, 726, 727, 723, 1515, ! 1516, -636, 45, 267, 86, 885, 98, 859, 428, 441, ! 366, 45, 366, 1165, 1190, 310, 1537, 708, 723, 466, ! 1195, 830, 161, 180, 395, 1793, 59, 905, 858, 1776, ! 396, 606, 478, 1763, 1794, -1, 90, 312, 91, 63, ! 1732, 1676, 1305, 63, 183, 1166, 430, -636, -636, 1772, ! 216, 533, 427, 801, 802, 1483, 683, 59, -2, 1377, ! 1080, 59, -636, 426, 497, 809, 1569, 92, 61, 1113, ! 831, 112, 1296, 832, 1744, 1575, 1576, 99, 1577, 1795, ! 177, 176, 169, 60, 1749, 1750, 184, 182, 175, 366, ! 74, 1306, -137, -137, 58, 1790, -137, -137, 181, 61, ! 1760, 548, 550, 61, 490, 445, 448, 45, 1081, 1761, ! 667, 203, 386, 15, 564, 215, 560, -451, 943, 1738, ! 170, 74, 1610, 1612, 496, 74, 877, 229, 479, 479, ! 1786, 1259, -136, 1297, 884, 846, 229, 229, 274, 86, ! 1791, 45, -334, 161, 161, 161, 498, 693, -451, 689, ! 511, 514, -451, 40, 1762, 1271, 668, 1758, 1274, 1380, ! 565, 1427, 1405, 1445, 688, 96, 229, 100, 114, 115, ! 680, -327, 1124, 1815, 571, 728, 1683, 1684, 1583, 458, ! 255, 817, 1828, 1583, 847, 40, 97, 848, -334, -334, ! 161, 624, 113, 857, 1787, 425, -451, 507, 1812, 271, ! 139, 164, 10, -327, 8, 9, 667, 1381, 1408, 1428, ! 1780, 1446, 366, 1291, 1292, 131, 132, 778, 1816, 1453, ! 783, 534, 229, 116, 117, 311, 1584, 142, 18, -312, ! 1753, 1639, 803, 537, 539, 255, 740, 215, 1286, 21, ! 891, 1679, 537, 1806, 366, 731, 1813, 1654, 771, 446, ! 449, 720, 668, 274, 458, 452, 453, 314, 539, 134, ! 135, 740, 1692, 59, 1499, 830, 1094, 26, 167, 454, ! 134, 135, 1379, 274, -661, -312, -312, 229, 1709, 455, ! 1812, 1111, 1112, 168, 607, 310, 1805, 33, 94, 427, ! -312, 456, 793, 185, 608, 216, 189, -152, 883, 1812, ! 730, 366, 324, 193, 1389, 61, 1391, 312, 1823, 95, ! 539, 638, 562, 639, 831, 1084, 814, 832, 26, -873, ! -661, -661, 164, 164, 164, 483, -154, 74, 1814, 1115, ! 94, 1116, 892, 893, 1692, -661, 63, 183, 142, 229, ! 1491, 562, 889, 484, 1692, 1692, -399, 1827, 15, 1338, ! 1044, 95, 496, 713, 59, 684, 798, 271, 416, 417, ! 10, 557, 685, 216, 1289, 96, 255, 194, 96, 164, ! 793, 485, 888, 221, 498, -635, 1231, 1117, 18, 184, ! 182, -399, 1424, 1425, 26, -399, 97, 1118, 1119, 97, ! 1692, 181, 252, 490, 96, 314, 61, 21, 1115, 714, ! 1116, 892, 893, -153, 686, 373, 890, 558, 229, 1352, ! 26, 366, 927, 28, 272, 97, 693, -399, 74, -336, ! 143, -635, -635, 1120, 836, 1107, 842, 844, 393, 143, ! 496, 1459, 729, 398, -336, 379, -635, -400, -336, 15, ! 229, 229, 1692, 433, 1353, 687, 1117, 195, 1354, 229, ! 144, 1452, 498, 26, 95, -336, 1118, 1119, -138, -138, ! 397, -130, 857, 15, 1458, 229, 866, 867, -336, -336, ! 401, -336, -400, -336, 131, 132, -400, -313, 402, 566, ! 1355, 366, 916, 1570, 174, 1001, 366, 933, 933, 933, ! 933, 680, 1120, 196, 197, 433, -130, 399, 951, 366, ! -130, -336, -336, 1110, 161, 161, 161, 248, -400, 366, ! 423, 249, 366, 131, 132, 986, -336, 229, 97, 641, ! 901, 1003, 490, -313, -313, 879, 26, 94, 917, 134, ! 135, 1002, -130, 987, 986, 638, 1460, 639, -313, 1323, ! 1325, 999, 400, 990, 1095, 366, 311, 195, 95, 1205, ! 1162, 1163, 987, 991, 795, 796, 1167, 380, 131, 132, ! 1096, 988, 719, 142, 793, 720, 992, 1004, 134, 135, ! 1039, 366, 1089, 366, 794, 497, 490, 787, 1087, 645, ! 988, 1404, 490, 783, 490, 490, -327, 537, 1554, 1660, ! 1090, 433, 274, 196, 525, 223, 224, 451, 606, 459, ! 458, 142, 14, 500, 381, 1005, 310, 1399, 1401, 500, ! 1152, -656, 475, 382, 135, 490, 133, 1298, 930, 18, ! 1300, 1565, 490, 318, 496, 20, 26, 1302, 312, -7, ! 1657, 170, 490, 267, 23, 496, 693, 263, 126, 473, ! 1092, -128, 229, 15, 1008, 1011, 498, 366, 958, 1100, ! 1124, 1006, 1554, 474, 250, 477, 1153, 498, 251, 1023, ! 1046, 487, 723, 1299, 413, 556, 1301, -311, 543, -662, ! 563, -336, 1125, 1303, 1320, 980, -128, 720, 553, 951, ! -128, 997, 857, 164, 164, 164, 433, 604, 131, 132, ! 1356, 142, 901, 1513, 1401, 573, 1688, 1017, 259, 8, ! 260, 10, 575, 793, 229, 1024, 1025, 1191, 1192, 1285, ! 1193, 497, -128, -311, -311, -662, -662, -336, -336, 581, ! 500, 614, 274, 844, 1554, 1448, 617, 15, -311, 618, ! -662, -451, -330, 222, 223, 224, 1357, 159, 21, 1514, ! 26, 14, 1689, 134, 135, 261, 1767, 958, 380, 8, ! 9, 490, 619, 858, 262, 29, 701, 990, 18, 709, ! 712, -451, -451, 496, 20, 490, -451, 991, 620, 458, ! 621, 496, 63, 23, 1322, 793, 366, 366, 263, 366, ! 992, 793, 622, 1131, 1132, 498, 33, 1488, 683, 799, ! 59, 143, 1768, 498, 229, 381, 641, 1730, 230, 231, ! -155, 1180, 1554, 1293, 382, 135, 1764, 544, 15, 230, ! 472, 545, -451, 1384, 1385, 1386, 1182, 1174, 1154, 1155, ! 1339, 1340, 1341, 161, 523, 524, 1734, 94, 263, 556, ! 94, 161, 61, 724, 742, 496, 1571, 743, 1510, 1641, ! 1554, 496, -451, -451, 229, 100, 114, 115, 95, 531, ! 532, 95, 933, 767, 74, 779, 1233, 498, 780, 447, ! 450, 523, 815, 498, 131, 132, 446, 449, 100, 101, ! 102, 458, 233, 234, 235, 446, 449, 1554, 1556, 96, ! 380, 131, 132, 1202, 1203, 1204, 933, 838, 1642, 701, ! 709, 712, 793, 500, 95, 500, 490, 18, 497, 97, ! 97, 116, 117, 236, 733, 159, 531, 816, 806, 693, ! 490, -6, 490, 819, 490, 810, 26, 274, 828, 134, ! 135, 26, 829, 914, 103, 104, 237, 381, 845, 1809, ! 96, 267, 856, 694, 873, 771, 382, 135, 100, 101, ! 102, 669, -872, 695, 145, 131, 132, 10, 854, 1092, ! 13, 97, 496, 665, 666, 696, 697, 886, 496, 1177, ! 570, 1343, 887, 793, 908, 933, 366, 15, 96, 915, ! 238, 239, 240, 18, 498, 131, 132, 909, 1008, 1011, ! 498, 670, 671, 910, 21, 672, 673, 674, 675, 97, ! 490, 26, 1236, 911, 103, 104, 105, 26, 1581, 1582, ! 28, 29, 164, 793, 765, 766, 918, 1344, 1350, 1351, ! 164, 919, 497, 937, 31, 523, 1711, 133, 1382, 795, ! 1623, 933, -878, 496, 32, 1261, 998, 26, 490, 274, ! 134, 135, 33, 939, 1409, 1410, 34, 1412, 1494, -194, ! 500, 1416, 63, -56, 63, 498, 1000, 634, -56, 1018, ! 216, 1020, 63, 500, 142, -194, 940, -194, 543, -56, ! 59, 943, 59, 496, 1041, 793, 1049, 793, 531, 1712, ! 59, 1180, 496, 1180, 1400, 933, 523, 1716, 1050, 1180, ! 1051, 1180, 1082, 1308, 1309, 498, 1182, 1174, 1182, 1174, ! 131, 132, 1308, 1309, 498, 1083, 1182, 1174, 1086, 1348, ! 1088, 1093, 61, 20, 61, -330, 1097, 100, 114, 115, ! 366, 1362, 61, 1098, -613, 1101, 1109, 1108, -613, 1129, ! 1164, 161, 161, 161, 74, 496, 74, 496, 1150, 1157, ! 161, 161, 161, 1158, 74, 1161, 793, 858, 1206, 1208, ! 1209, 1210, 26, 1214, 1211, 134, 135, 498, 1212, 498, ! 1125, 1213, 1216, 1215, 1020, -151, 1219, 1218, 447, 807, ! 1400, 161, 267, 116, 117, 118, 1221, -613, 1222, -613, ! -613, 1226, -613, 536, 223, 224, 380, 8, 9, 1223, ! 793, 14, 1224, -613, 1225, -613, 709, 100, 114, 115, ! 559, 1227, 1462, 1228, 1238, 1240, 496, 1817, 1464, 1465, ! -613, -613, 1462, 1467, 20, 1241, 1465, 490, 1242, 490, ! 500, 490, 793, 23, 1243, -613, 1008, 1011, 498, 1251, ! 447, 450, 1252, 381, 1253, 793, 1262, 21, 1263, 1177, ! 1264, 1177, 382, 135, 1265, 1269, 1361, 1371, 1413, 1177, ! 496, 1277, 1270, 116, 117, 858, 63, 1278, 415, 416, ! 417, 10, 1280, 1284, 146, 146, 570, 162, 1283, 1304, ! 1440, 1441, 498, 1318, 59, 1383, 264, 1337, 259, 131, ! 132, 10, 496, 1387, 1393, 1180, 1394, 1406, 1362, 1402, ! 1395, 1154, 1155, 219, 1396, 496, 228, 1407, 21, 1411, ! 1182, 1174, 245, 1415, 498, 261, 1417, 256, 131, 132, ! 164, 164, 164, 566, 262, 272, 61, 498, 21, 164, ! 164, 164, 1160, 933, 1418, 261, 1668, 1419, 1673, 1670, ! 1422, 1423, 1429, 1430, 262, 29, 709, 1433, 74, 1444, ! 1463, 491, 1468, 447, 938, 490, 33, 1546, 1469, 63, ! 164, 415, 8, 9, 10, -702, 1475, 634, 263, 1476, ! 26, 1477, 1489, 134, 135, 1492, 33, 59, 1493, 1500, ! 1573, 1574, 1501, 571, 1502, 1512, 484, 607, 1180, 1518, ! 435, 1542, 1543, 1544, 793, 435, 1545, 608, 444, 444, ! 162, 21, 793, 1182, 1174, 1482, 1559, 1557, 715, 1627, ! 606, 1560, 1640, 1478, 1479, 1480, 1481, 262, 272, 61, ! 1247, 1649, 1650, 1361, 1490, 219, 634, 1651, 634, 1663, ! 1033, 476, 1665, 1746, 1674, 1675, 1677, 1743, 1678, -930, ! 1609, 74, 1617, 510, 510, 519, 1695, 1247, 793, 33, ! 1696, 1700, 1702, 1177, 496, 1703, 1638, 396, 1710, 228, ! 59, 1719, 496, 1729, 1721, 1739, 446, 449, 1740, 540, ! 120, 121, 122, 1755, 1440, 1441, 498, 1655, 1656, 1781, ! 120, 121, 122, 1747, 498, 1756, 1616, 1608, 259, 8, ! 9, 10, 1784, 1785, 1792, 1788, 1617, 1615, 228, 1800, ! 1796, 1797, 61, 1803, 216, 100, 114, 115, 496, 768, ! 769, 770, 1807, 567, 59, 1810, 1811, 1801, 1818, 1819, ! 1801, 1821, 533, 26, 74, 1822, 123, 124, 21, 1824, ! 498, 1829, 1830, 1705, 1708, 261, 123, 124, 1832, 1820, ! 1616, 1608, 1801, 1247, 262, 29, 1177, 1833, 229, 1247, ! 1, 1615, 468, 5, 228, 256, 61, 166, 159, 1707, ! 1085, 116, 117, 1287, 813, 1667, 1146, 1667, 263, 120, ! 892, 893, 467, 894, 1613, 465, 33, 1725, 74, 1745, ! 1033, 1372, 1741, 1617, 1725, 1434, 377, 444, 432, 100, ! 439, 440, 447, 807, 613, 1691, 403, 404, 405, 1766, ! 490, 59, 1279, 366, 1128, 895, 1052, 1450, 1342, 228, ! 256, 100, 101, 102, 1471, 1374, 1609, 1535, 1617, 1276, ! 1053, 1653, 26, 985, 690, 123, 124, 1616, 1608, 100, ! 114, 115, 526, 233, 234, 235, 59, 310, 1615, 411, ! 827, 1587, 1725, 61, 310, 103, 117, 1555, 941, 26, ! 1752, 1789, 407, 408, 1765, 1759, 229, 1804, 18, 312, ! 1149, 1247, 1616, 1608, 236, 74, 312, 103, 104, 1247, ! 219, 228, 1509, 1615, 1701, 0, 1748, 0, 61, 0, ! 161, 0, 0, 866, 867, 116, 117, 0, 435, 0, ! 0, 435, 145, 8, 9, 10, 0, 162, 162, 162, ! 74, 0, 310, 567, 662, 663, 664, 665, 666, 1723, ! 0, 415, 8, 9, 10, 958, 1723, 206, 0, 0, ! 1247, 161, 161, 161, 312, 100, 114, 115, 0, 1247, ! 0, 0, 21, 762, 763, 764, 765, 766, 219, 0, ! 228, 256, 0, 0, 0, 26, 0, 0, 28, 29, ! 1613, 21, 447, 938, 862, 0, 0, 862, 261, 865, ! 865, 519, 200, 0, 0, 476, 0, 262, 272, 928, ! 0, 881, 201, 540, 1723, 0, 476, 380, 8, 9, ! 33, 116, 117, 0, 202, 0, 8, 9, 1783, 0, ! 145, 8, 9, 10, 1455, 1456, 13, 540, 476, 33, ! 0, 0, 0, 0, 0, 403, 404, 405, 1799, 0, ! 0, 0, 0, 0, 18, 0, 0, 0, 958, 18, ! 153, 1470, 0, 978, 381, 0, 1472, 0, 0, 979, ! 21, 981, 982, 382, 135, 0, 693, 0, 26, 1826, ! 206, 134, 135, 26, 0, 0, 28, 29, 0, 540, ! 0, 0, 406, 0, 0, 1331, 0, 447, 450, 164, ! 833, 407, 408, 0, 0, 1332, 447, 1317, 0, 1038, ! 834, 0, 162, 162, 444, 0, 0, 1333, 33, 1040, ! 0, 0, 835, 697, 0, 0, 0, 444, 0, 206, ! 0, 0, 0, 0, 0, 0, 159, 546, 101, 102, ! 164, 164, 164, 0, 0, 1521, 1522, 0, 1531, 1532, ! 0, 1534, 145, 8, 9, 10, 222, 223, 224, 0, ! 1247, 1247, 0, 0, 14, 0, 0, 145, 8, 9, ! 10, 0, 0, 269, 0, 436, 0, 1007, 1007, 1007, ! 438, 18, 223, 224, 381, 0, 444, 20, 444, 14, ! 1034, 0, 21, 547, 104, 0, 23, 0, 693, 0, ! 269, 0, 0, 1567, 1568, 26, 18, 21, 28, 29, ! 0, 0, 20, 693, 228, 1247, 0, 0, 0, 0, ! 26, 23, 833, 28, 29, 120, 892, 893, 269, 153, ! 447, 807, 834, 716, 8, 9, 10, 833, 0, 0, ! 33, 269, 0, 0, 843, 697, 0, 834, 0, 0, ! 0, 271, 131, 132, 10, 33, 1631, 1632, 1633, 835, ! 697, 0, 0, 0, 0, 0, 145, 8, 9, 10, ! 324, 717, 254, 21, 447, 807, 228, 245, 26, 0, ! 18, 123, 124, 0, 0, 0, 26, 0, 0, 718, ! 135, 21, 0, 0, 0, 18, 0, 693, 568, 0, ! 0, 269, 0, 0, 26, 0, 21, 28, 272, 120, ! 892, 893, 693, 1681, 1682, 0, 1130, 1130, 1136, 26, ! 0, 1266, 28, 29, 0, 206, 1136, 0, 0, 0, ! 0, 1267, 145, 131, 132, 10, 833, 269, 254, 33, ! 162, 0, 0, 1268, 697, 0, 834, 0, 0, 862, ! 862, 865, 865, 519, 33, 0, 0, 881, 835, 697, ! 0, 18, 0, 0, 0, 123, 124, 0, 269, 0, ! 0, 476, 21, 0, 0, 0, 0, 271, 8, 9, ! 10, 0, 0, 1232, 0, 26, 0, 0, 28, 29, ! 0, 0, 0, 206, 0, 206, 206, 1244, 0, 1245, ! 0, 1246, 31, 100, 114, 115, 0, 0, 0, 861, ! 0, 0, 32, 0, 623, 82, 228, 21, 861, 0, ! 33, 0, 206, 0, 34, 109, 0, 100, 114, 115, ! 206, 0, 0, 28, 272, 137, 0, 0, 0, 0, ! 0, 0, 150, 150, 0, 150, 0, 82, 0, 0, ! 1782, 0, 0, 0, 0, 0, 82, 0, 0, 116, ! 1704, 0, 269, 0, 0, 33, 0, 0, 0, 210, ! 0, 82, 0, 804, 0, 0, 805, 1282, 0, 0, ! 246, 0, 269, 116, 1706, 109, 0, 0, 808, 0, ! 0, 1248, 131, 132, 1248, 0, 277, 13, 109, 0, ! 0, 0, 0, 371, 0, 1256, 371, 0, 371, 0, ! 0, 1034, 1034, 1034, 0, 1295, 0, 0, 0, 0, ! 18, 0, 109, 0, 0, 0, 0, 0, 269, 0, ! 0, 0, 716, 8, 9, 10, 0, 693, 0, 436, ! 0, 0, 438, 0, 26, 0, 0, 134, 135, 137, ! 0, 82, 0, 371, 0, 371, 568, 150, 150, 0, ! 0, 694, 437, 150, 0, 0, 150, 150, 150, 324, ! 717, 695, 21, 0, 0, 0, 0, 245, 0, 0, ! 0, 0, 82, 696, 697, 26, 82, 0, 134, 135, ! 0, 0, 210, 82, 145, 8, 9, 10, 660, 661, ! 662, 663, 664, 665, 666, 415, 8, 569, 10, 0, ! 0, 210, 210, 210, 1307, 1307, 1136, 1136, 1136, 145, ! 131, 132, 10, 1316, 0, 1136, 1136, 1136, 0, 206, ! 0, 0, 0, 0, 21, 1146, 0, 1334, 1334, 1335, ! 0, 210, 269, 0, 0, 21, 0, 26, 18, 0, ! 28, 29, 261, 0, 199, 0, 162, 0, 551, 21, ! 0, 262, 272, 0, 200, 219, 0, 0, 109, 0, ! 0, 0, 26, 0, 201, 28, 29, 447, 1317, 0, ! 0, 150, 33, 0, 0, 570, 202, 0, 0, 155, ! 0, 0, 206, 33, 1435, 0, 1436, 0, 1437, 156, ! 269, 0, 0, 0, 0, 0, 0, 33, 0, 0, ! 0, 157, 760, 761, 762, 763, 764, 765, 766, 415, ! 131, 132, 10, 109, 609, 955, 956, 0, 960, 961, ! 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, ! 972, 973, 974, 975, 976, 977, 0, 0, 0, 1034, ! 1034, 1034, 0, 0, 0, 0, 0, 131, 132, 21, ! 0, 861, 254, 0, 861, 0, 261, 0, 109, 0, ! 0, 0, 691, 0, 609, 262, 272, 609, 710, 0, ! 861, 0, 269, 0, 0, 18, 0, 371, 82, 0, ! 0, 1307, 1307, 1136, 1136, 1136, 0, 0, 1316, 8, ! 9, 269, 693, 0, 254, 0, 0, 33, 0, 26, ! 0, 0, 134, 135, 1447, 1447, 1335, 0, 0, 0, ! 0, 0, 1497, 0, 0, 137, 694, 18, 0, 0, ! 0, 0, 0, 476, 476, 109, 695, 210, 109, 0, ! 0, 131, 132, 0, 371, 0, 150, 0, 696, 697, ! 0, 26, 0, 0, 134, 135, 150, 0, 0, 150, ! 476, 0, 153, 0, 0, 476, 0, 0, 1331, 18, ! 0, 150, 0, 0, 0, 0, 0, 0, 1332, 82, ! 0, 0, 0, 0, 0, 0, 693, 0, 0, 0, ! 1333, 0, 0, 26, 804, 805, 134, 135, 0, 0, ! 0, 0, 808, 0, 0, 210, 840, 210, 210, 710, ! 694, 0, 0, 840, 0, 0, 0, 0, 0, 0, ! 695, 210, 210, 1507, 1507, 210, 1508, 210, 210, 210, ! 871, 269, 696, 697, 210, 0, 0, 0, 0, 210, ! 0, 0, 210, 0, 476, 476, 0, 476, 476, 0, ! 476, 0, 0, 0, 371, 512, 515, 0, 0, 0, ! 0, 0, 269, 0, 0, 0, 0, 0, 0, 0, ! 145, 8, 9, 10, 173, 12, 13, 0, 150, 0, ! 849, 0, 14, 0, 0, 0, 0, 1562, 1562, 1562, ! 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, ! 0, 0, 476, 476, 0, 20, 0, 0, 0, 0, ! 21, 0, 0, 0, 23, 0, 269, 0, 0, 0, ! 0, 0, 925, 26, 371, 0, 28, 29, 0, 861, ! 109, 109, 109, 109, 0, 861, 0, 0, 0, 6, ! 31, 7, 8, 9, 10, 11, 12, 13, 0, 0, ! 32, 0, 371, 14, 0, 476, 476, 476, 33, 0, ! 0, 0, 34, 0, 0, 0, 15, 16, 0, 17, ! 18, 19, 0, 0, 0, 0, 20, 0, 0, 0, ! 1367, 21, 0, 0, 22, 23, 24, 0, 25, 109, ! 0, 609, 0, 0, 26, 27, 0, 28, 29, 219, ! 228, 30, 0, 691, 0, 609, 609, 710, 0, 0, ! 0, 31, 476, 476, 0, 0, 0, 0, 1035, 0, ! 0, 32, 1037, 222, 223, 224, 269, 0, 269, 33, ! 0, 14, 0, 34, 0, 0, 0, 35, 0, 0, ! 0, 210, 0, 0, 0, 0, 0, 0, 18, 0, ! 0, 0, 0, 0, 20, 519, 0, 0, 0, 436, ! 438, 0, 0, 23, 0, 0, 0, 0, 568, 0, ! 145, 8, 9, 10, 0, 0, 13, 0, 0, 1047, ! 1290, 0, 1319, 8, 9, 10, 0, 0, 137, 0, ! 371, 0, 0, 0, 0, 137, 865, 865, 865, 18, ! 0, 0, 0, 0, 210, 246, 861, 0, 228, 0, ! 21, 0, 270, 0, 0, 861, 693, 0, 0, 324, ! 717, 0, 21, 26, 0, 0, 28, 29, 0, 269, ! 0, 0, 269, 861, 861, 26, 0, 0, 28, 272, ! 1133, 0, 0, 0, 210, 210, 1138, 1367, 0, 476, ! 1134, 0, 1141, 0, 1138, 0, 0, 0, 33, 222, ! 223, 224, 1135, 697, 0, 0, 863, 14, 0, 864, ! 33, 512, 515, 210, 0, 0, 871, 210, 210, 871, ! 871, 871, 0, 882, 18, 210, 0, 0, 0, 0, ! 20, 0, 210, 460, 0, 0, 0, 8, 9, 23, ! 0, 1403, 566, 0, 0, 0, 0, 0, 0, 0, ! 0, 145, 8, 9, 10, 82, 0, 566, 109, 371, ! 371, 0, 371, 0, 109, 18, 509, 0, 0, 0, ! 0, 232, 0, 609, 609, 609, 804, 805, 0, 528, ! 18, 0, 0, 808, 609, 0, 861, 0, 0, 26, ! 0, 21, 134, 135, 0, 0, 0, 693, 0, 0, ! 0, 0, 1529, 0, 26, 0, 1331, 28, 29, 0, ! 0, 0, 0, 0, 0, 0, 1332, 0, 0, 0, ! 0, 833, 0, 0, 0, 0, 0, 0, 1333, 1159, ! 0, 834, 0, 0, 0, 109, 0, 131, 132, 33, ! 0, 0, 566, 835, 697, 0, 861, 861, 0, 0, ! 0, 232, 0, 0, 0, 1189, 0, 0, 609, 609, ! 0, 1194, 609, 0, 0, 18, 0, 232, 0, 109, ! 0, 0, 0, 609, 0, 109, 0, 0, 0, 1035, ! 1035, 1035, 693, 0, 0, 609, 0, 1141, 0, 26, ! 0, 0, 134, 135, 0, 0, 0, 0, 0, 0, ! 269, 861, 271, 416, 417, 10, 694, 0, 0, 0, ! 8, 9, 0, 173, 12, 13, 695, 0, 0, 489, ! 0, 14, 0, 0, 232, 0, 0, 0, 696, 697, ! 0, 0, 0, 232, 0, 16, 0, 17, 18, 0, ! 0, 0, 21, 0, 20, 0, 109, 0, 109, 371, ! 232, 0, 0, 23, 206, 693, 206, 0, 28, 272, ! 0, 232, 26, 0, 0, 134, 135, 0, 1254, 0, ! 1255, 0, 0, 269, 0, 0, 0, 0, 0, 694, ! 0, 210, 210, 210, 210, 210, 1138, 871, 0, 695, ! 33, 210, 0, 1138, 1138, 1138, 0, 269, 0, 1141, ! 0, 696, 697, 0, 109, 871, 871, 871, 658, 659, ! 660, 661, 662, 663, 664, 665, 666, 0, 8, 9, ! 0, 137, 0, 13, 150, 82, 0, 82, 512, 515, ! 0, 0, 1369, 82, 0, 82, 0, 0, 0, 271, ! 416, 417, 10, 0, 0, 0, 18, 0, 109, 0, ! 109, 0, 0, 0, 0, 0, 0, 0, 109, 0, ! 0, 863, 864, 512, 515, 206, 0, 0, 0, 882, ! 26, 0, 0, 134, 135, 0, 0, 0, 0, 21, ! 271, 131, 132, 10, 0, 609, 609, 1331, 609, 874, ! 0, 0, 26, 371, 880, 28, 272, 1332, 0, 609, ! 0, 8, 9, 0, 173, 12, 13, 609, 0, 1333, ! 489, 0, 14, 0, 0, 0, 0, 609, 609, 710, ! 21, 0, 0, 0, 0, 906, 16, 33, 17, 18, ! 0, 0, 912, 0, 0, 20, 28, 272, 0, 0, ! 232, 0, 0, 0, 23, 1388, 693, 1390, 0, 232, ! 0, 0, 0, 26, 0, 0, 134, 135, 210, 210, ! 210, 871, 871, 1442, 0, 0, 210, 210, 33, 0, ! 1504, 0, 0, 0, 0, 922, 923, 0, 924, 0, ! 1505, 232, 871, 871, 871, 871, 871, 0, 0, 0, ! 0, 0, 1506, 697, 0, 109, 0, 0, 0, 1369, ! 0, 0, 0, 0, 0, 0, 0, 1421, 109, 0, ! 0, 0, 0, 0, 0, 232, 0, 0, 8, 9, ! 0, 1466, 0, 254, 232, 0, 0, 0, 0, 82, ! 85, 0, 0, 8, 9, 0, 0, 0, 566, 0, ! 111, 0, 0, 0, 0, 232, 18, 0, 0, 130, ! 138, 0, 0, 0, 0, 0, 0, 151, 151, 0, ! 151, 18, 85, 693, 0, 0, 0, 1021, 1022, 0, ! 26, 85, 232, 134, 135, 0, 1021, 0, 693, 0, ! 0, 0, 0, 0, 151, 26, 85, 1504, 134, 135, ! 0, 871, 871, 0, 871, 247, 109, 1505, 871, 0, ! 257, 0, 1504, 0, 0, 0, 0, 0, 0, 1506, ! 697, 0, 1505, 257, 210, 0, 0, 0, 372, 150, ! 0, 372, 82, 372, 1506, 697, 863, 864, 512, 515, ! 0, 0, 0, 0, 0, 882, 0, 512, 515, 758, ! 759, 760, 761, 762, 763, 764, 765, 766, 0, 863, ! 864, 882, 0, 0, 0, 871, 871, 1442, 871, 871, ! 0, 0, 0, 0, 0, 109, 85, 0, 372, 1495, ! 372, 0, 151, 151, 0, 0, 0, 0, 151, 0, ! 0, 151, 151, 151, 0, 0, 0, 8, 9, 0, ! 0, 12, 13, 1358, 1359, 9, 10, 85, 14, 0, ! 1511, 85, 0, 0, 0, 1140, 1517, 151, 85, 0, ! 0, 109, 16, 871, 17, 18, 0, 0, 0, 0, ! 0, 20, 1538, 1539, 0, 0, 151, 151, 151, 0, ! 23, 0, 0, 21, 0, 0, 1009, 1012, 78, 26, ! 1156, 0, 134, 135, 676, 1558, 26, 0, 0, 28, ! 29, 0, 0, 1454, 0, 1360, 151, 0, 0, 0, ! 0, 0, 0, 200, 0, 0, 210, 840, 210, 0, ! 78, 0, 0, 201, 0, 0, 0, 0, 677, 78, ! 0, 33, 1196, 0, 1198, 202, 0, 0, 0, 1579, ! 1580, 0, 208, 0, 220, 0, 151, 8, 9, 0, ! 0, 12, 13, 863, 864, 512, 515, 0, 14, 0, ! 882, 0, 1625, 1626, 0, 1628, 415, 131, 132, 10, ! 0, 0, 16, 1138, 17, 18, 512, 515, 0, 0, ! 0, 20, 0, 0, 0, 0, 0, 0, 257, 611, ! 23, 0, 0, 0, 0, 0, 0, 0, 0, 26, ! 0, 0, 134, 135, 0, 0, 21, 0, 1234, 1235, ! 0, 1237, 0, 261, 1138, 1138, 1138, 232, 0, 0, ! 232, 0, 262, 272, 429, 1009, 1012, 210, 0, 0, ! 434, 0, 0, 257, 0, 0, 232, 692, 984, 611, ! 0, 1258, 611, 711, 0, 0, 570, 0, 722, 0, ! 0, 0, 372, 85, 33, 78, 0, 0, 0, 78, ! 0, 0, 0, 0, 0, 208, 220, 0, 722, 0, ! 0, 0, 145, 8, 9, 10, 222, 223, 224, 1718, ! 0, 0, 0, 0, 14, 863, 864, 0, 882, 0, ! 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 257, 18, 151, 257, 0, 0, 0, 20, 0, 372, ! 0, 151, 21, 0, 208, 0, 23, 0, 693, 0, ! 0, 151, 0, 0, 151, 26, 0, 0, 28, 29, ! 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, ! 0, 0, 833, 0, 85, 145, 8, 9, 10, 512, ! 515, 0, 834, 0, 0, 0, 0, 1315, 0, 0, ! 33, 0, 232, 0, 835, 697, 0, 0, 0, 0, ! 151, 841, 151, 151, 711, 0, 0, 0, 841, 0, ! 0, 0, 0, 0, 0, 21, 151, 151, 0, 232, ! 151, 0, 151, 151, 151, 611, 0, 0, 26, 151, ! 1249, 28, 29, 1250, 151, 1666, 0, 151, 0, 0, ! 0, 8, 9, 0, 1257, 200, 13, 0, 0, 372, ! 1009, 1012, 0, 0, 0, 201, 0, 0, 903, 0, ! 0, 0, 0, 33, 0, 0, 0, 202, 0, 18, ! 0, 0, 0, 151, 0, 0, 0, 0, 145, 8, ! 9, 10, 173, 12, 13, 0, 693, 0, 489, 0, ! 14, 732, 0, 26, 0, 0, 134, 135, 0, 0, ! 1420, 0, 0, 0, 16, 0, 17, 18, 0, 0, ! 1504, 0, 0, 20, 0, 232, 0, 0, 21, 372, ! 1505, 232, 23, 0, 693, 257, 257, 257, 257, 0, ! 0, 26, 1506, 697, 28, 29, 0, 0, 0, 0, ! 208, 0, 0, 0, 0, 0, 0, 372, 1133, 434, ! 0, 8, 9, 1249, 1250, 1009, 1012, 0, 1134, 0, ! 0, 1443, 1257, 0, 1009, 1012, 33, 0, 0, 0, ! 1135, 697, 0, 0, 0, 0, 0, 0, 0, 18, ! 0, 0, 78, 0, 257, 0, 611, 0, 512, 515, ! 0, 1451, 415, 8, 9, 10, 693, 0, 0, 0, ! 611, 611, 711, 26, 1457, 0, 134, 135, 208, 839, ! 208, 208, 0, 1036, 0, 0, 850, 0, 0, 0, ! 1504, 0, 0, 0, 434, 0, 0, 0, 722, 0, ! 1505, 1473, 21, 232, 0, 1474, 151, 208, 0, 261, ! 0, 232, 1506, 697, 0, 208, 0, 0, 262, 272, ! 0, 0, 0, 0, 0, 0, 0, 0, 271, 131, ! 132, 10, 0, 0, 13, 415, 8, 9, 10, 0, ! 1496, 0, 263, 0, 0, 0, 0, 0, 0, 0, ! 33, 434, 0, 784, 0, 372, 0, 18, 1009, 1012, ! 0, 130, 232, 0, 0, 0, 0, 0, 21, 151, ! 247, 232, 0, 0, 693, 21, 0, 0, 0, 0, ! 0, 26, 261, 0, 28, 272, 0, 0, 0, 232, ! 232, 262, 272, 1540, 1541, 903, 0, 0, 1266, 0, ! 1249, 1250, 1009, 1012, 0, 0, 0, 1257, 1267, 151, ! 151, 841, 0, 0, 0, 570, 33, 0, 0, 1148, ! 1268, 697, 0, 33, 0, 145, 8, 9, 10, 0, ! 1563, 1564, 0, 0, 0, 0, 1566, 0, 151, 0, ! 0, 611, 151, 151, 611, 611, 611, 0, 0, 0, ! 151, 0, 0, 0, 18, 0, 0, 151, 0, 0, ! 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, ! 0, 693, 0, 0, 0, 0, 0, 0, 26, 0, ! 85, 28, 29, 257, 372, 372, 0, 372, 0, 257, ! 0, 0, 0, 0, 0, 833, 0, 0, 611, 611, ! 611, 0, 232, 0, 0, 834, 0, 0, 0, 611, ! 0, 0, 0, 33, 208, 0, 0, 835, 697, 754, ! 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, ! 765, 766, 1249, 1250, 0, 1257, 0, 0, 0, 0, ! 0, 0, 0, 0, 172, 1680, 145, 8, 9, 10, ! 173, 12, 13, 0, 0, 0, 0, 0, 14, 0, ! 257, 0, 232, 232, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 0, 17, 18, 19, 208, 0, 0, ! 0, 20, 0, 611, 611, 0, 21, 611, 0, 0, ! 23, 0, 0, 174, 257, 0, 1009, 1012, 611, 26, ! 257, 0, 28, 29, 1036, 1036, 1036, 0, 0, 0, ! 611, 0, 722, 0, 0, 0, 31, 232, 0, 0, ! 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, ! 0, 0, 0, 0, 33, 0, 0, 0, 34, 0, ! 0, 0, 35, 0, 0, 0, 434, 271, 8, 9, ! 10, 656, 657, 13, 658, 659, 660, 661, 662, 663, ! 664, 665, 666, 0, 0, 434, 0, 0, 0, 0, ! 0, 257, 0, 257, 372, 0, 18, 0, 0, 0, ! 0, 415, 131, 1533, 10, 0, 0, 21, 1187, 0, ! 0, 0, 0, 693, 0, 0, 0, 0, 0, 0, ! 26, 0, 0, 28, 272, 0, 151, 151, 151, 151, ! 151, 841, 611, 0, 0, 0, 151, 1310, 1148, 1148, ! 1148, 21, 0, 0, 722, 0, 0, 1311, 261, 257, ! 611, 611, 611, 1697, 0, 33, 0, 262, 272, 1312, ! 697, 0, 0, 903, 0, 0, 138, 0, 0, 151, ! 85, 0, 85, 0, 0, 0, 0, 1370, 85, 0, ! 85, 570, 0, 0, 0, 0, 0, 0, 0, 33, ! 0, 0, 0, 257, 0, 257, 0, 0, 0, 0, ! 0, 0, 0, 257, 0, 1698, 745, 746, 747, 748, ! 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, ! 759, 760, 761, 762, 763, 764, 765, 766, 0, 0, ! 611, 611, 0, 611, 0, 0, 0, 0, 372, 0, ! 0, 0, 0, 0, 611, 271, 8, 9, 10, 173, ! 12, 13, 611, 0, 0, 489, 0, 14, 0, 0, ! 0, 0, 611, 611, 711, 0, 0, 0, 0, 0, ! 0, 16, 0, 17, 18, 0, 0, 0, 0, 0, ! 20, 0, 0, 0, 0, 21, 0, 0, 0, 23, ! 0, 693, 0, 903, 0, 0, 0, 0, 26, 0, ! 0, 28, 272, 151, 151, 151, 611, 611, 711, 0, ! 0, 151, 151, 0, 0, 1266, 0, 0, 0, 271, ! 8, 9, 10, 0, 0, 1267, 0, 611, 611, 611, ! 611, 611, 0, 33, 434, 903, 0, 1268, 697, 0, ! 257, 54, 0, 0, 1370, 0, 0, 0, 18, 0, ! 0, 0, 0, 257, 0, 0, 0, 0, 0, 21, ! 0, 0, 0, 0, 0, 693, 0, 390, 54, 54, ! 0, 158, 26, 54, 85, 28, 272, 0, 1187, 0, ! 1187, 0, 54, 0, 0, 1368, 1375, 0, 1187, 1310, ! 0, 0, 0, 0, 0, 54, 0, 54, 0, 1311, ! 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, ! 0, 1312, 697, 0, 0, 0, 0, 0, 0, 265, ! 0, 0, 273, 0, 0, 145, 131, 132, 10, 0, ! 0, 13, 0, 0, 0, 0, 611, 611, 0, 611, ! 0, 257, 0, 611, 0, 0, 0, 0, 0, 0, ! 0, 493, 0, 0, 18, 0, 0, 0, 0, 151, ! 0, 0, 0, 0, 151, 21, 0, 85, 0, 0, ! 0, 0, 0, 0, 418, 418, 535, 54, 26, 0, ! 0, 28, 29, 54, 54, 0, 0, 265, 273, 54, ! 0, 0, 158, 158, 158, 155, 0, 0, 0, 457, ! 611, 611, 711, 611, 611, 156, 0, 0, 54, 0, ! 257, 434, 54, 33, 0, 0, 0, 157, 54, 54, ! 434, 0, 0, 8, 9, 0, 173, 12, 13, 0, ! 0, 0, 0, 0, 14, 0, 0, 54, 54, 158, ! 0, 0, 0, 0, 0, 0, 0, 265, 16, 0, ! 17, 18, 1368, 0, 0, 0, 257, 20, 611, 0, ! 0, 0, 0, 0, 0, 0, 785, 54, 0, 786, ! 0, 0, 0, 0, 0, 26, 0, 0, 134, 135, ! 0, 0, 1187, 0, 0, 0, 0, 0, 0, 0, ! 145, 8, 9, 10, 173, 12, 13, 0, 0, 636, ! 1659, 0, 14, 0, 0, 0, 0, 54, 0, 0, ! 0, 151, 841, 151, 265, 0, 16, 0, 17, 18, ! 19, 0, 0, 0, 0, 20, 0, 0, 8, 9, ! 21, 0, 12, 254, 23, 0, 0, 174, 0, 14, ! 0, 0, 0, 26, 0, 0, 28, 29, 0, 0, ! 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, ! 31, 0, 20, 0, 0, 0, 0, 1530, 1148, 0, ! 32, 23, 1530, 693, 0, 1187, 0, 0, 33, 792, ! 26, 633, 34, 134, 135, 0, 35, 0, 353, 0, ! 0, 353, 0, 353, 0, 0, 0, 694, 418, 0, ! 0, 0, 0, 0, 0, 0, 0, 695, 265, 1148, ! 1148, 1148, 0, 0, 54, 0, 0, 0, 0, 696, ! 697, 0, 151, 0, 0, 0, 0, 0, 265, 0, ! 0, 0, 131, 132, 0, 0, 223, 224, 353, 0, ! 353, 0, 0, 14, 0, 0, 0, 0, 0, 0, ! 0, 418, 0, 0, 0, 0, 0, 792, 0, 0, ! 18, 0, 0, 54, 0, 0, 20, 0, 0, 0, ! 0, 0, 54, 0, 265, 23, 0, 693, 0, 0, ! 0, 457, 54, 0, 26, 54, 0, 134, 135, 0, ! 0, 457, 457, 457, 0, 0, 0, 54, 0, 0, ! 0, 694, 0, 0, 0, 54, 0, 0, 0, 0, ! 0, 695, 0, 0, 0, 0, 0, 0, 0, 208, ! 1671, 208, 0, 707, 697, 0, 0, 1358, 1359, 9, ! 10, 54, 54, 54, 54, 0, 0, 0, 0, 54, ! 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, ! 0, 54, 0, 158, 158, 158, 457, 0, 0, 0, ! 54, 0, 0, 0, 0, 54, 0, 21, 54, 0, ! 0, 0, 0, 931, 932, 934, 935, 936, 0, 0, ! 26, 0, 0, 28, 29, 0, 636, 0, 0, 1360, ! 0, 0, 0, 0, 0, 0, 0, 200, 0, 954, ! 0, 0, 0, 0, 54, 0, 0, 201, 0, 0, ! 0, 0, 0, 0, 0, 33, 0, 615, 616, 202, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, ! 208, 353, 983, 625, 0, 0, 626, 0, 0, 627, ! 0, 0, 637, 0, 0, 0, 642, 0, 0, 0, ! 0, 1013, 0, 0, 682, 0, 80, 80, 1026, 80, ! 1027, 80, 1013, 0, 0, 0, 633, 633, 633, 0, ! 80, 0, 353, 0, 0, 0, 0, 0, 0, 0, ! 0, 633, 0, 80, 0, 80, 750, 751, 752, 753, ! 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, ! 764, 765, 766, 145, 8, 9, 10, 222, 223, 224, ! 275, 654, 655, 656, 657, 14, 658, 659, 660, 661, ! 662, 663, 664, 665, 666, 0, 0, 0, 265, 353, ! 0, 0, 18, 0, 0, 0, 0, 0, 20, 0, ! 633, 0, 633, 21, 633, 0, 0, 23, 0, 693, ! 0, 0, 0, 0, 0, 0, 26, 0, 0, 28, ! 29, 0, 0, 0, 0, 80, 0, 54, 0, 0, ! 0, 80, 80, 200, 0, 0, 275, 80, 0, 0, ! 80, 80, 80, 201, 0, 0, 0, 0, 0, 0, ! 1013, 33, 0, 0, 0, 1672, 80, 0, 1013, 0, ! 80, 0, 0, 0, 0, 0, 80, 80, 0, 0, ! 0, 0, 0, 0, 418, 0, 0, 0, 0, 0, ! 0, 418, 0, 0, 0, 80, 80, 80, 0, 0, ! 54, 131, 132, 0, 0, 223, 224, 0, 0, 353, ! 0, 0, 14, 755, 756, 757, 758, 759, 760, 761, ! 762, 763, 764, 765, 766, 80, 0, 0, 0, 18, ! 0, 0, 493, 0, 0, 20, 0, 0, 493, 0, ! 54, 54, 158, 0, 23, 0, 693, 265, 273, 0, ! 1145, 0, 0, 26, 0, 0, 134, 135, 0, 0, ! 0, 0, 0, 0, 633, 80, 0, 0, 0, 54, ! 694, 0, 457, 54, 54, 457, 457, 457, 0, 353, ! 695, 54, 0, 0, 0, 0, 0, 0, 54, 0, ! 0, 0, 696, 697, 0, 625, 626, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 353, 0, 1229, ! 0, 54, 353, 353, 0, 353, 353, 353, 353, 353, ! 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ! 353, 353, 353, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 954, 0, 0, 0, 0, 0, 493, ! 653, 654, 655, 656, 657, 1013, 658, 659, 660, 661, ! 662, 663, 664, 665, 666, 0, 0, 721, 0, 0, ! 0, 0, 80, 753, 754, 755, 756, 757, 758, 759, ! 760, 761, 762, 763, 764, 765, 766, 721, 574, 576, ! 577, 578, 579, 580, 0, 582, 583, 584, 585, 586, ! 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, ! 597, 598, 599, 600, 601, 602, 603, 0, 605, 0, ! 792, 80, 1288, 0, 0, 0, 0, 0, 0, 0, ! 80, 0, 0, 0, 0, 633, 633, 633, 0, 0, ! 80, 457, 265, 80, 0, 353, 0, 0, 0, 0, ! 165, 0, 0, 0, 0, 80, 0, 0, 0, 0, ! 1013, 0, 0, 80, 145, 8, 9, 10, 0, 1013, ! 13, 0, 0, 0, 211, 655, 656, 657, 1328, 658, ! 659, 660, 661, 662, 663, 664, 665, 666, 0, 80, ! 80, 80, 80, 18, 0, 0, 0, 80, 0, 0, ! 0, 0, 0, 0, 21, 80, 80, 0, 0, 80, ! 0, 80, 80, 80, 0, 0, 0, 26, 80, 0, ! 28, 29, 493, 80, 493, 0, 80, 0, 0, 0, ! 0, 0, 1392, 0, 200, 0, 0, 54, 54, 54, ! 158, 158, 158, 457, 201, 265, 0, 54, 265, 1145, ! 1145, 1145, 33, 0, 0, 273, 202, 0, 0, 0, ! 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, ! 0, 165, 165, 165, 353, 353, 0, 353, 0, 0, ! 158, 54, 0, 54, 0, 0, 0, 0, 54, 54, ! 0, 54, 0, 1013, 0, 0, 0, 211, 6, 0, ! 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, ! 0, 0, 14, 0, 0, 0, 211, 211, 521, 0, ! 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, ! 0, 0, 0, 0, 0, 20, 0, 1013, 0, 0, ! 21, 0, 0, 0, 23, 0, 211, 464, 0, 0, ! 0, 0, 0, 26, 0, 0, 28, 29, 0, 0, ! 30, 0, 1239, 0, 0, 0, 0, 0, 0, 493, ! 31, 0, 0, 457, 457, 457, 0, 0, 0, 0, ! 32, 0, 493, 0, 0, 0, 0, 721, 33, 0, ! 920, 0, 34, 0, 625, 626, 0, 0, 0, 0, ! 0, 145, 131, 132, 10, 0, 0, 566, 0, 0, ! 0, 0, 0, 921, 54, 54, 54, 457, 457, 457, ! 0, 926, 54, 54, 0, 80, 0, 0, 0, 610, ! 18, 0, 0, 0, 271, 8, 9, 10, 173, 12, ! 13, 21, 0, 0, 489, 0, 14, 0, 0, 0, ! 0, 0, 0, 0, 26, 54, 0, 28, 29, 0, ! 16, 0, 17, 18, 353, 0, 0, 353, 0, 20, ! 1328, 31, 0, 0, 21, 0, 265, 273, 23, 700, ! 693, 32, 700, 700, 0, 54, 0, 26, 80, 33, ! 28, 272, 0, 34, 145, 8, 9, 10, 0, 0, ! 254, 0, 0, 0, 1310, 0, 0, 0, 625, 626, ! 0, 0, 0, 0, 1311, 0, 0, 0, 0, 0, ! 0, 0, 33, 18, 0, 0, 1312, 697, 80, 80, ! 80, 1013, 0, 0, 21, 0, 275, 0, 1147, 493, ! 0, 0, 211, 0, 0, 0, 0, 26, 0, 0, ! 28, 29, 0, 0, 0, 0, 0, 80, 0, 0, ! 0, 80, 80, 0, 200, 0, 0, 0, 0, 80, ! 54, 0, 0, 265, 201, 54, 80, 0, 54, 0, ! 0, 0, 33, 0, 0, 792, 202, 0, 353, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, ! 0, 0, 0, 0, 0, 0, 1414, 0, 353, 0, ! 837, 0, 837, 837, 700, 278, 0, 0, 8, 9, ! 0, 0, 12, 13, 0, 0, 211, 211, 0, 14, ! 211, 0, 521, 521, 521, 872, 0, 0, 0, 211, ! 0, 0, 0, 16, 211, 17, 18, 211, 0, 0, ! 0, 0, 20, 0, 279, 280, 0, 0, 0, 0, ! 0, 23, 0, 281, 0, 0, 0, 0, 0, 0, ! 26, 0, 0, 134, 135, 0, 282, 0, 0, 0, ! 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, ! 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, ! 303, 0, 0, 304, 305, 306, 0, 307, 0, 0, ! 308, 0, 145, 8, 9, 10, 0, 0, 13, 0, ! 0, 209, 54, 54, 54, 0, 309, 1200, 1201, 1327, ! 0, 721, 8, 9, 0, 0, 12, 13, 0, 0, ! 636, 18, 0, 14, 0, 268, 0, 0, 276, 0, ! 0, 0, 21, 0, 0, 0, 0, 16, 0, 17, ! 18, 145, 8, 9, 10, 26, 20, 566, 28, 29, ! 0, 0, 268, 0, 384, 23, 0, 0, 0, 1145, ! 0, 0, 516, 0, 26, 0, 0, 134, 135, 0, ! 18, 0, 517, 0, 0, 0, 993, 0, 0, 0, ! 33, 21, 0, 0, 518, 0, 0, 0, 0, 0, ! 700, 700, 700, 0, 26, 0, 0, 28, 29, 0, ! 1145, 1145, 1145, 700, 0, 80, 80, 80, 80, 80, ! 80, 200, 0, 54, 0, 80, 0, 1147, 1147, 1147, ! 0, 201, 0, 1321, 209, 0, 211, 0, 0, 33, ! 0, 0, 1168, 202, 7, 8, 1169, 10, 173, 12, ! 13, 0, 0, 209, 209, 209, 14, 0, 80, 80, ! 0, 80, 0, 527, 0, 0, 80, 80, 0, 80, ! 16, 0, 17, 18, 19, 0, 0, 0, 0, 20, ! -556, 0, 0, 209, 21, 0, 0, 0, 23, 1170, ! 0, 174, 0, 0, 0, 0, 0, 26, 0, 837, ! 28, 29, 0, 0, 1171, 0, 1172, 0, 0, 0, ! 276, 0, 0, 0, 31, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 32, 271, 8, 9, 10, 0, ! 268, 13, 33, 0, 0, 0, 1173, 0, 0, 837, ! 837, 1139, 0, 0, 0, 0, 0, 0, 0, 1139, ! 0, 0, -556, 0, 18, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 637, 21, 0, 0, 211, 0, ! 0, 872, 211, 211, 872, 872, 872, 0, 26, 0, ! 211, 28, 272, 0, 0, 0, 0, 211, 0, 0, ! 0, 0, 80, 80, 80, 868, 1523, 1524, 9, 10, ! 80, 80, 0, 0, 0, 869, 0, 0, 0, 0, ! 0, 0, 0, 33, 0, 0, 0, 870, 0, 0, ! 0, 0, 0, 0, 268, 276, 0, 0, 610, 610, ! 610, 0, 0, 80, 0, 0, 21, 8, 9, 700, ! 173, 12, 13, 0, 268, 276, 489, 0, 14, 26, ! 0, 0, 28, 29, 0, 275, 0, 0, 1525, 0, ! 0, 0, 16, 80, 17, 18, 200, 0, 0, 625, ! 626, 20, 0, 0, 0, 0, 201, 0, 0, 209, ! 23, 0, 0, 0, 33, 0, 0, 0, 202, 26, ! 0, 0, 134, 135, 0, 0, 0, 0, -419, 8, ! 9, -419, -419, 12, 254, 0, 0, 0, 0, 0, ! 14, 0, 0, 700, 700, 0, 0, 700, 0, 0, ! 0, 0, 0, 0, 16, 0, 17, 18, 700, 0, ! 0, 0, 0, 20, 700, 700, 700, 0, -419, 0, ! 700, 0, 23, 0, 693, 0, 0, 209, 80, 209, ! 209, 26, 0, 80, 134, 135, 80, 0, 0, 0, ! 0, 0, 0, 209, 209, 0, 0, 209, 694, 209, ! 209, 209, 209, 18, 0, 0, 209, 0, 695, 0, ! 0, 209, 0, 0, 209, 0, -419, 0, 0, 0, ! 696, 697, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 492, 0, 0, 0, 0, 0, 745, 746, 747, ! 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, ! 758, 759, 760, 761, 762, 763, 764, 765, 766, 0, ! 0, 0, 0, 0, 0, 0, 837, 837, 837, 1139, ! 1139, 1139, 1313, 0, 0, 0, 837, 0, 1139, 1139, ! 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 872, 872, 872, 0, 0, 0, 1168, 0, 7, 8, ! 1169, 10, 173, 12, 13, 0, 0, 0, 0, 165, ! 14, 0, 0, 0, 0, 0, 0, 211, 0, 145, ! 131, 132, 10, 0, 16, 0, 17, 18, 19, 0, ! 80, 80, 80, 20, -557, 0, 0, 0, 21, 0, ! 0, 0, 23, 1170, 0, 174, 0, 0, 18, 0, ! 0, 26, 0, 0, 28, 29, 0, 0, 1171, 21, ! 1172, 0, 0, 0, 0, 0, 0, 0, 31, 0, ! 993, 993, 26, 993, 0, 28, 29, 0, 32, 0, ! 0, 0, 0, 0, 700, 0, 33, 1147, 0, 31, ! 1173, 0, 700, 268, 276, 0, 0, 0, 0, 32, ! 0, 0, 700, 700, 700, 0, -557, 33, 0, 0, ! 0, 34, 0, 209, 0, 0, 0, 0, 0, 0, ! 741, 0, 0, 0, 0, 0, 0, 0, 1147, 1147, ! 1147, 8, 9, 0, 173, 12, 13, 0, 0, 0, ! 1622, 80, 14, 837, 837, 837, 1313, 1313, 1313, 0, ! 0, 837, 837, 0, 0, 0, 16, 0, 17, 18, ! 0, 0, 0, 0, 0, 20, 0, 872, 872, 872, ! 872, 872, 0, 0, 23, 0, 209, 0, 0, 0, ! 0, 0, 0, 26, 211, 0, 134, 135, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 698, 0, 0, ! 698, 698, 145, 8, 9, 10, 212, 12, 213, 0, ! 0, 0, 0, 0, 14, 0, 209, 209, 1137, 825, ! 492, 0, 0, 268, 276, 0, 1137, 0, 16, 0, ! 17, 18, 0, 0, 0, 0, 0, 20, 0, 0, ! 0, 0, 21, 0, 0, 209, 23, 0, 209, 209, ! 209, 209, 209, 209, 527, 26, 0, 209, 28, 29, ! 0, 0, 214, 0, 209, 0, 145, 8, 9, 10, ! 0, 0, 31, 0, 0, 0, 1313, 1313, 0, 1313, ! 0, 0, 32, 872, 0, 0, 276, 0, 0, 0, ! 33, 0, 0, 0, 34, 18, 0, 0, 0, 211, ! 652, 653, 654, 655, 656, 657, 21, 658, 659, 660, ! 661, 662, 663, 664, 665, 666, 0, 0, 0, 26, ! 0, 0, 28, 29, 0, 0, 0, 0, 698, 0, ! 698, 698, 698, 0, 0, 0, 516, 0, 0, 0, ! 1313, 1313, 1313, 1313, 1313, 0, 517, 0, 0, 492, ! 0, 0, 929, 0, 33, 0, 0, 0, 518, 0, ! 1358, 8, 1169, 10, 212, 12, 213, 0, 0, 0, ! 0, 0, 14, 0, 0, 0, 0, 0, 825, 0, ! 8, 9, 0, 212, 12, 213, 16, 0, 17, 18, ! 0, 14, 0, 0, 0, 20, 0, 0, 1313, 0, ! 21, 0, 0, 492, 23, 16, 0, 17, 18, 492, ! 0, 492, 492, 26, 20, 0, 28, 29, 268, 276, ! 268, 0, 1360, 23, 0, 0, 0, 0, 0, 0, ! 31, 0, 26, 0, 0, 134, 135, 0, 0, 0, ! 32, 0, 492, 0, 0, 0, 0, 0, 33, 492, ! 0, 211, 1173, 211, 0, 0, 0, 0, 0, 492, ! 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, ! 759, 760, 761, 762, 763, 764, 765, 766, 1055, 1057, ! 1058, 1059, 0, 1061, 1062, 1063, 1064, 1065, 1066, 1067, ! 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, ! 1078, 1079, 0, 0, 0, 0, 0, 0, 521, 0, ! 0, 0, 0, 209, 209, 209, 209, 209, 1137, 209, ! 0, 1314, 0, 209, 268, 1137, 1137, 1137, 698, 698, ! 698, 276, 0, 0, 0, 0, 0, 209, 209, 209, ! 1634, 1032, -513, -513, -513, -513, -513, -513, -513, 521, ! 521, 521, -513, 0, -513, 0, 0, 0, 0, 825, ! 0, 0, 211, 0, 209, -513, 0, -513, 0, 0, ! 0, -513, 0, 0, 0, 0, 0, -513, 492, 0, ! 0, 0, -513, 0, 0, 0, -513, 0, -513, 0, ! 0, 0, 492, 0, 0, -513, 0, 0, -513, -513, ! -513, -513, -513, 0, -513, -513, -513, -513, -513, -513, ! -513, -513, -513, -513, -513, -513, -513, -513, -513, -513, ! -513, -513, -513, -513, -513, -513, -513, 698, -513, -513, ! -513, 0, -513, -513, -513, -513, -513, 0, 0, 0, ! 0, 0, 1635, -513, 0, 107, 0, 0, -513, -513, ! -513, 0, -513, 0, 125, 107, 0, 0, 0, 0, ! 0, 0, 107, 107, 0, 107, 0, 698, 698, 698, ! 0, 0, 0, 0, 0, 0, 0, 1032, 0, 0, ! 0, 0, 0, 0, 0, 1217, 0, 0, 0, 0, ! 209, 209, 209, 209, 209, 1137, 0, 0, 209, 209, ! 243, 0, 8, 9, 0, 0, 12, 254, 0, 145, ! 8, 9, 10, 14, 209, 209, 209, 209, 209, 0, ! 0, 0, 825, 492, 0, 0, 0, 16, 0, 17, ! 18, 209, 0, 0, 0, 0, 20, 492, 18, 492, ! 0, 492, 0, 0, 0, 23, 0, 0, 0, 21, ! 0, 0, 527, 0, 26, 0, 0, 134, 135, 410, ! 0, 125, 26, 0, 0, 28, 29, 698, 107, 107, ! 0, 0, 0, 0, 0, 0, 0, 107, 107, 200, ! 0, 107, 107, 107, 1275, 442, 107, 107, 107, 201, ! 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, ! 0, 202, 752, 753, 754, 755, 756, 757, 758, 759, ! 760, 761, 762, 763, 764, 765, 766, 492, 0, 0, ! 0, 0, 0, 209, 209, 1314, 209, 0, 0, 0, ! 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 698, 698, 0, 0, 698, 209, 0, 0, 0, ! 0, 0, 0, 0, 0, 492, 698, 0, 0, 0, ! 0, 0, 1032, 1032, 1032, 0, 0, 1168, 698, 7, ! 8, 1169, 10, 173, 12, 13, 0, 243, 107, 0, ! 0, 14, 0, 0, 0, 825, 825, 209, 209, 1137, ! 209, 209, 0, 0, 0, 16, 0, 17, 18, 19, ! 0, 107, 0, 0, 20, 0, 0, 1345, 0, 21, ! 0, 0, 0, 23, 1170, 0, 174, 0, 0, 0, ! 0, 0, 26, 0, 0, 28, 29, 0, 0, 1171, ! 0, 1172, 0, 0, 0, 0, 0, 0, 0, 31, ! 0, 0, 0, 0, 107, 209, 0, 0, 0, 32, ! 0, 0, 0, 825, 825, 0, 0, 33, 0, 0, ! 0, 1173, 0, 0, 698, 698, 698, 698, 698, 698, ! 698, 0, 0, 0, 698, 0, 1032, 1032, 1032, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 107, 0, 107, 0, 0, 107, 209, 0, ! 209, 0, 0, 0, 0, 8, 9, 0, 0, 12, ! 13, 0, 0, 1426, 0, 0, 14, 0, 0, 0, ! 0, 0, 0, 0, 271, 8, 9, 10, 0, 0, ! 16, 0, 17, 18, 492, 0, 492, 0, 492, 20, ! 825, 0, 0, 0, 0, 107, 0, 0, 23, 0, ! 0, 0, 0, 18, 0, 1137, 0, 26, 0, 0, ! 134, 135, 0, 0, 21, 0, 107, 0, 107, 0, ! 0, 825, 0, 0, 0, 0, 107, 26, 0, 107, ! 28, 272, 698, 0, 0, 0, 0, 0, 0, 0, ! 698, 107, 0, 0, 868, 1461, 1137, 1137, 1137, 0, ! 698, 698, 698, 0, 869, 0, 0, 0, 0, 209, ! 0, 0, 33, 0, 0, 0, 870, 751, 752, 753, ! 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, ! 764, 765, 766, 825, 0, 0, 0, 0, 0, 0, ! 0, 698, 698, 698, 698, 698, 698, 0, 0, 698, ! 698, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 492, 0, 0, 0, 1523, 131, 132, 10, ! 0, 1168, 0, 7, 8, 1169, 10, 173, 12, 13, ! 0, 0, 243, 896, 825, 14, 0, 0, 0, 0, ! 0, 0, 0, 0, 1519, 1520, 0, 0, 107, 16, ! 0, 17, 18, 19, 0, 0, 21, 0, 20, -559, ! 0, 0, 0, 21, 0, 0, 0, 23, 1170, 26, ! 174, 0, 28, 29, 825, 0, 26, 0, 1525, 28, ! 29, 0, 0, 1171, 0, 1172, 31, 0, 0, 0, ! 107, 0, 107, 31, 0, 0, 32, 0, 0, 0, ! 0, 0, 0, 32, 33, 0, 0, 0, 34, 0, ! 1572, 33, 0, 0, 0, 1173, 0, 0, 0, 0, ! 0, 0, 0, 0, 698, 698, 0, 698, 0, 0, ! 0, -559, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 145, 131, 1346, 10, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 1629, 1630, 0, 0, 0, ! 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, ! 18, 0, 107, 107, 0, 107, 107, 0, 0, 0, ! 0, 21, 1648, 0, 0, 0, 0, 0, 698, 698, ! 698, 698, 698, 0, 26, 0, 0, 28, 29, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, ! 1686, 156, 0, 0, 0, 0, 0, 0, 0, 33, ! 0, 0, 0, 157, 646, 647, 648, 649, 650, 651, ! 652, 653, 654, 655, 656, 657, 698, 658, 659, 660, ! 661, 662, 663, 664, 665, 666, 0, 492, 107, 0, ! 0, 0, 0, 0, 0, 107, 125, 0, 0, 0, ! 0, 0, 0, 0, 0, 243, 0, 0, 0, 0, ! 0, 0, 1736, 0, 1585, 0, -930, -930, -930, -930, ! -930, -930, -930, -930, -930, -930, 0, -930, -930, -930, ! 896, -930, -930, -930, -930, -930, -930, -930, -930, -930, ! -930, -930, -930, -930, -930, -930, -930, 0, -930, -930, ! -930, -930, 0, -930, -930, -930, -930, -930, -930, -930, ! -930, -930, 0, 0, -930, -930, -930, -930, -930, -930, ! 0, 0, -930, -930, -930, 0, -930, -930, 0, 0, ! 0, 0, 0, -930, 0, 0, -930, 0, 0, 0, ! 0, 0, 0, 0, -930, -930, -930, 0, 0, 0, ! 0, 0, -930, -930, -930, 0, 0, 0, -930, 0, ! -930, 0, 0, 0, 896, 0, 0, 0, 0, 0, ! 0, 0, 0, 825, 1586, -930, 0, 0, 0, 0, ! 0, 0, 0, 107, 107, 107, 107, 0, 0, 0, ! 0, 0, 0, 0, 107, 0, 0, 0, 1548, 0, ! -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, ! 0, -930, -930, -930, 0, -930, -930, -930, -930, -930, ! -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, ! -930, 0, -930, -930, -930, -930, 0, -930, -930, -930, ! -930, -930, -930, -930, -930, -930, 0, 0, -930, -930, ! -930, -930, -930, -930, 0, 0, -930, -930, -930, 0, ! -930, -930, 0, 0, 0, 0, 0, -930, 107, 107, ! -930, 0, 107, 0, 0, 0, 0, 0, -930, -930, ! -930, 0, 0, 107, 0, 0, -930, -930, -930, 0, ! 0, 0, -930, 0, -930, 107, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 628, -930, ! 271, 8, 9, 10, 173, 12, 315, 316, 317, 318, ! 489, 319, 14, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 320, 17, 18, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 0, 23, 0, 693, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 28, 272, -345, 0, ! 0, 385, 0, 0, 0, 0, 0, 336, 0, 0, ! 1028, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 1029, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 0, 1030, 697, 0, 0, 0, 0, 0, 1168, ! 0, 7, 8, 1169, 10, 173, 12, 13, 0, 345, ! 0, 0, 0, 14, 0, 0, 0, 0, 896, 0, ! 0, 107, 0, 0, 107, 0, 0, 16, 0, 17, ! 18, 19, 0, 0, 0, 0, 20, -558, 0, 0, ! 0, 21, 0, 0, 0, 23, 1170, 0, 174, 0, ! 0, 0, 0, 0, 26, 0, 0, 28, 29, 0, ! 0, 1171, 0, 1172, 651, 652, 653, 654, 655, 656, ! 657, 31, 658, 659, 660, 661, 662, 663, 664, 665, ! 666, 32, 0, 0, 0, 107, 107, 0, 107, 33, ! 0, 0, 0, 1173, 0, 0, 0, 0, 0, 107, ! 0, 0, 0, 0, 0, 0, 0, 107, 0, -558, ! 0, 0, 0, 0, 0, 0, 0, 107, 107, 0, ! 0, 0, 628, 0, 145, 8, 9, 10, 173, 12, ! 315, 316, 317, 318, 489, 319, 14, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 896, 0, ! 16, 320, 17, 18, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 0, 23, 0, ! 693, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 28, 29, -345, 0, 0, 385, 0, 0, 0, 0, ! 896, 336, 0, 0, 1142, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 1143, 0, 0, 0, 0, 0, ! 341, 342, 343, 0, 0, 0, 1144, 697, 0, 0, ! 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 488, 345, 271, 8, 9, 10, 173, 12, ! 315, 316, 317, 318, 489, 319, 14, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 320, 17, 18, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 0, 23, 0, ! 0, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 28, 272, 0, 0, 0, 385, 0, 0, 0, 0, ! 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 340, 0, 0, 107, 0, 107, ! 341, 342, 343, 0, 0, 957, 344, 271, 8, 9, ! 10, 173, 12, 315, 316, 317, 318, 0, 319, 14, ! 0, -843, 0, 345, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 320, 17, 18, 19, 0, 321, ! 322, 323, 20, 0, 324, 325, 326, 21, 327, 328, ! 0, 23, 0, 0, 0, 329, 330, 331, 332, 333, ! 26, 0, 0, 28, 272, 1731, 0, -832, 385, 0, ! 0, 0, 0, 0, 336, 0, 0, 337, 0, 0, ! 0, 0, 0, 0, 0, 338, 339, 340, 0, 0, ! 0, 0, 0, 341, 342, 343, 0, 0, 823, 344, ! 945, 946, 947, 10, 0, 12, 505, 316, 317, 318, ! 0, 319, 14, 0, 0, 0, 345, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 320, 17, 0, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 0, 23, 0, 0, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 948, 949, 824, 0, ! 0, 385, 0, 0, 0, 0, 0, 336, 0, 0, ! 337, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 340, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 0, 344, 950, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 1127, 345, ! 628, 0, 271, 8, 9, 10, 0, 12, 315, 316, ! 317, 318, 0, 319, 14, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 320, ! 17, 18, 19, 0, 321, 322, 323, 20, 0, 324, ! 325, 326, 21, 327, 328, 0, 23, 0, 0, 0, ! 329, 330, 331, 332, 333, 26, 0, 0, 28, 272, ! -345, 0, 0, 385, 0, 0, 0, 0, 0, 336, ! 0, 0, 629, 0, 0, 0, 0, 0, 0, 0, ! 338, 339, 630, 0, 0, 0, 0, 0, 341, 342, ! 343, 0, 0, 823, 631, 945, 946, 947, 10, 0, ! 12, 505, 316, 317, 318, 0, 319, 14, 0, 0, ! 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 320, 17, 0, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 948, 949, 824, 0, 0, 385, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 0, 344, 950, 823, ! 0, 271, 8, 9, 10, 0, 12, 505, 316, 317, ! 318, 0, 319, 14, 345, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 0, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 0, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 28, 272, 824, ! 0, 0, 385, 0, 0, 0, 0, 0, 336, 0, ! 0, 337, 0, 0, 0, 0, 0, 0, 0, 338, ! 339, 340, 0, 0, 0, 0, 0, 341, 342, 343, ! 0, 0, 0, 344, 823, 0, 945, 946, 947, 10, ! 1324, 12, 505, 316, 317, 318, 0, 319, 14, 0, ! 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 320, 17, 0, 19, 0, 321, 322, ! 323, 20, 0, 324, 325, 326, 21, 327, 328, 0, ! 23, 0, 0, 0, 329, 330, 331, 332, 333, 26, ! 0, 0, 948, 949, 824, 0, 0, 385, 0, 0, ! 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, ! 0, 0, 0, 0, 338, 339, 340, 0, 0, 0, ! 0, 0, 341, 342, 343, 0, 0, 823, 344, 945, ! 946, 947, 10, 0, 12, 505, 316, 317, 318, 0, ! 319, 14, 0, 0, -517, 345, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 0, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 948, 949, 824, 0, 0, ! 385, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 628, 344, 145, 8, 9, 10, 0, 12, 315, 316, ! 317, 318, 0, 319, 14, 0, 0, 1439, 345, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 320, ! 17, 18, 19, 0, 321, 322, 323, 20, 0, 324, ! 325, 326, 21, 327, 328, 0, 23, 0, 0, 0, ! 329, 330, 331, 332, 333, 26, 0, 0, 28, 29, ! -345, 0, 0, 385, 0, 0, 0, 0, 0, 336, ! 0, 0, 1713, 0, 0, 0, 0, 0, 0, 0, ! 338, 339, 1714, 0, 0, 0, 0, 0, 341, 342, ! 343, 0, 0, 1770, 1715, 271, 8, 9, 10, 0, ! 12, 315, 316, 317, 318, 0, 319, 14, 0, 0, ! 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 320, 17, 18, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 28, 272, 0, 0, -209, 385, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 823, 344, 271, 8, ! 9, 10, 0, 12, 505, 316, 317, 318, 0, 319, ! 14, 0, 0, 0, 345, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 320, 17, 0, 19, 0, ! 321, 322, 323, 20, 0, 324, 325, 326, 21, 327, ! 328, 0, 23, 0, 0, 0, 329, 330, 331, 332, ! 333, 26, 0, 0, 28, 272, 824, 0, 0, 385, ! 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, ! 0, 0, 0, 0, 0, 0, 338, 339, 340, 0, ! 0, 0, 0, 0, 341, 342, 343, 0, 0, 957, ! 344, 271, 8, 9, 10, 0, 12, 505, 316, 317, ! 318, 0, 319, 14, 0, 0, 0, 345, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 0, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 0, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 28, 272, 0, ! 0, 0, 385, -832, 0, 0, 0, 0, 336, 0, ! 0, 337, 0, 0, 0, 0, 0, 0, 0, 338, ! 339, 340, 0, 0, 0, 0, 0, 341, 342, 343, ! 0, 0, 957, 344, 271, 8, 9, 10, 0, 12, ! 505, 316, 317, 318, 0, 319, 14, 0, 0, 0, ! 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 320, 17, 0, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 0, 23, 0, ! 0, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 28, 272, 0, 0, 0, 385, 0, 0, 0, 0, ! 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 340, 0, 0, 0, 0, 0, ! 341, 342, 343, 0, 0, 1054, 344, 271, 8, 9, ! 10, 0, 12, 505, 316, 317, 318, 0, 319, 14, ! 0, -832, 0, 345, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 320, 17, 0, 19, 0, 321, ! 322, 323, 20, 0, 324, 325, 326, 21, 327, 328, ! 0, 23, 0, 0, 0, 329, 330, 331, 332, 333, ! 26, 0, 0, 28, 272, 0, 0, 0, 385, 0, ! 0, 0, 0, 0, 336, 0, 0, 337, 0, 0, ! 0, 0, 0, 0, 0, 338, 339, 340, 0, 0, ! 0, 0, 0, 341, 342, 343, 0, 0, 1056, 344, ! 271, 8, 9, 10, 0, 12, 505, 316, 317, 318, ! 0, 319, 14, 0, 0, 0, 345, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 320, 17, 0, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 0, 23, 0, 0, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 28, 272, 0, 0, ! 0, 385, 0, 0, 0, 0, 0, 336, 0, 0, ! 337, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 340, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 1685, 344, 271, 8, 9, 10, 0, 12, 505, ! 316, 317, 318, 0, 319, 14, 0, 0, 0, 345, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 320, 17, 0, 19, 0, 321, 322, 323, 20, 0, ! 324, 325, 326, 21, 327, 328, 0, 23, 0, 0, ! 0, 329, 330, 331, 332, 333, 26, 0, 0, 28, ! 272, 0, 0, 0, 385, 0, 0, 0, 0, 0, ! 336, 0, 0, 337, 0, 0, 0, 0, 0, 0, ! 0, 338, 339, 340, 0, 0, 0, 0, 0, 341, ! 342, 343, 0, 0, 0, 344, 271, 8, 9, 10, ! 0, 12, 505, 316, 317, 318, 0, 319, 14, 0, ! 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 320, 17, 0, 19, 0, 321, 322, ! 323, 20, 0, 324, 325, 326, 21, 327, 328, 0, ! 23, 0, 0, 0, 329, 330, 331, 332, 333, 26, ! 0, 0, 28, 272, 0, 0, 0, 385, 0, 0, ! 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, ! 0, 0, 0, 0, 338, 339, 340, 0, 0, 0, ! 0, 0, 341, 342, 343, 0, 0, 0, 344, 271, ! 8, 9, 10, 0, 12, 505, 316, 317, 318, 0, ! 319, 14, 0, 0, 0, 345, 506, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 0, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 28, 272, 0, 0, 0, ! 385, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 0, 344, 271, 8, 9, 10, 0, 12, 505, 316, ! 317, 318, 0, 319, 14, 0, 0, 0, 345, 878, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 320, ! 17, 0, 19, 0, 321, 322, 323, 20, 0, 324, ! 325, 326, 21, 327, 328, 0, 23, 0, 0, 0, ! 329, 330, 331, 332, 333, 26, 0, 0, 28, 272, ! 0, 0, 0, 385, 0, 0, 0, 0, 0, 336, ! 0, 0, 337, 0, 0, 0, 0, 0, 0, 0, ! 338, 339, 340, 0, 0, 0, 0, 0, 341, 342, ! 343, 0, 0, 0, 344, 271, 8, 9, 10, 0, ! 12, 505, 316, 317, 318, 0, 319, 14, 0, 0, ! 0, 345, 996, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 320, 17, 0, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 28, 272, 0, 0, 0, 385, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 0, 344, 271, 8, ! 9, 10, 0, 12, 505, 316, 317, 318, 0, 319, ! 14, 0, 0, 0, 345, 1016, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 320, 17, 0, 19, 0, ! 321, 322, 323, 20, 0, 324, 325, 326, 21, 327, ! 328, 0, 23, 0, 0, 0, 329, 330, 331, 332, ! 333, 26, 0, 0, 28, 272, 0, 0, 0, 385, ! 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, ! 0, 0, 0, 0, 0, 0, 338, 339, 340, 0, ! 0, 0, 0, 0, 341, 342, 343, 0, 0, 0, ! 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 345, 1260, 1589, ! 1590, 1591, 10, 173, 12, 315, 316, 317, 318, 0, ! 319, 14, 1592, 0, 1593, 1594, 1595, 1596, 1597, 1598, ! 1599, 1600, 1601, 1602, 15, 16, 320, 17, 18, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 1603, 23, 1604, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 1605, 272, 1216, 0, 1606, ! 385, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 0, 344, 0, 1607, 1589, 1590, 1591, 10, 173, 12, ! 315, 316, 317, 318, 0, 319, 14, 1592, 345, 1593, ! 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 15, ! 16, 320, 17, 18, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 1603, 23, 1604, ! 0, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 1605, 272, 0, 0, 1606, 385, 0, 0, 0, 0, ! 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 340, 0, 0, 0, 0, 0, ! 341, 342, 343, 0, 0, 0, 344, 0, 1607, 271, ! 8, 9, 10, 173, 12, 315, 316, 317, 318, 489, ! 319, 14, 0, 345, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 18, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 693, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 28, 272, 0, 0, 0, ! 385, 0, 0, 0, 0, 0, 336, 0, 0, 1028, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 1029, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 0, 1030, 697, 145, 8, 9, 10, 173, 12, 315, ! 316, 317, 318, 489, 319, 14, 0, 0, 345, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 320, 17, 18, 19, 0, 321, 322, 323, 20, 0, ! 324, 325, 326, 21, 327, 328, 0, 23, 0, 693, ! 0, 329, 330, 331, 332, 333, 26, 0, 0, 28, ! 29, 0, 0, 0, 385, 0, 0, 0, 0, 0, ! 336, 0, 0, 1142, 0, 0, 0, 0, 0, 0, ! 0, 338, 339, 1143, 0, 0, 0, 0, 0, 341, ! 342, 343, 0, 0, 0, 1144, 697, 271, 8, 9, ! 10, 0, 12, 315, 316, 317, 318, 0, 319, 14, ! 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 320, 17, 18, 19, 0, 321, ! 322, 323, 20, 0, 324, 325, 326, 21, 327, 328, ! 0, 23, 0, 693, 0, 329, 330, 331, 332, 333, ! 26, 0, 0, 28, 272, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 336, 0, 0, 1028, 0, 0, ! 0, 0, 0, 0, 0, 338, 339, 1029, 0, 0, ! 0, 0, 0, 341, 342, 343, 0, 0, 0, 1030, ! 697, 145, 8, 9, 10, 0, 12, 315, 316, 317, ! 318, 0, 319, 14, 0, 0, 345, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 18, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 693, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 28, 29, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, ! 0, 1142, 0, 0, 0, 0, 0, 0, 0, 338, ! 339, 1143, 0, 0, 0, 0, 0, 341, 342, 343, ! 0, 0, 0, 1144, 697, 271, 8, 9, 10, 0, ! 12, 315, 316, 317, 318, 0, 319, 14, 0, 0, ! 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 320, 17, 18, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 334, 272, 0, 0, 0, 335, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 0, 344, 271, 8, ! 9, 10, 0, 12, 315, 316, 317, 318, 0, 319, ! 14, 0, 0, 0, 345, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 320, 17, 18, 19, 0, ! 321, 322, 323, 20, 0, 324, 325, 326, 21, 327, ! 328, 0, 23, 0, 0, 0, 329, 330, 331, 332, ! 333, 26, 0, 0, 28, 272, 0, 0, 0, 385, ! 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, ! 0, 0, 0, 0, 0, 0, 338, 339, 340, 0, ! 0, 0, 0, 0, 341, 342, 343, 0, 0, 0, ! 344, 271, 8, 9, 10, 0, 12, 505, 316, 317, ! 318, 0, 319, 14, 0, 0, 0, 345, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 18, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 0, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 28, 272, 0, ! 0, 0, 385, 0, 0, 0, 0, 0, 336, 0, ! 0, 629, 0, 0, 0, 0, 0, 0, 0, 338, ! 339, 630, 0, 0, 0, 0, 0, 341, 342, 343, ! 0, 0, 0, 631, 271, 8, 9, 10, 0, 12, ! 505, 316, 317, 318, 0, 319, 14, 0, 0, 0, ! 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 320, 17, 0, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 0, 23, 0, ! 0, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 28, 272, 0, 0, 1652, 385, 0, 0, 0, 0, ! 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 340, 0, 0, 0, 0, 0, ! 341, 342, 343, 0, 0, 0, 344, 271, 8, 9, ! 10, 173, 12, 315, 316, 317, 318, 0, 319, 14, ! 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 320, 17, 18, 19, 0, 321, ! 322, 323, 20, 0, 324, 325, 326, 21, 327, 328, ! 0, 23, 0, 0, 0, 329, 330, 331, 332, 333, ! 26, 0, 0, 28, 272, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 336, 0, 0, 337, 0, 0, ! 0, 0, 0, 0, 0, 338, 339, 340, 0, 0, ! 0, 0, 0, 341, 342, 343, 0, 0, 0, 344, ! 145, 8, 9, 10, 0, 12, 505, 316, 317, 318, ! 0, 319, 14, 0, 0, 0, 345, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 320, 17, 18, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 0, 23, 0, 0, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 28, 29, 0, 0, ! 0, 385, 0, 0, 0, 0, 0, 336, 0, 0, ! 1713, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 1714, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 0, 1715, 271, 8, 9, 10, 0, 12, 505, ! 316, 317, 318, 0, 319, 14, 0, 0, 0, 345, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 320, 17, 0, 19, 0, 321, 322, 323, 20, 0, ! 324, 325, 326, 21, 327, 328, 0, 23, 0, 0, ! 0, 329, 330, 331, 332, 333, 26, 0, 0, 28, ! 272, 0, 0, 0, 335, 0, 0, 0, 0, 0, ! 336, 0, 0, 337, 0, 0, 0, 0, 0, 0, ! 0, 338, 339, 340, 0, 0, 0, 0, 0, 341, ! 342, 343, 0, 0, 0, 344, 271, 8, 9, 10, ! 0, 12, 505, 316, 317, 318, 0, 319, 14, 0, ! 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 320, 17, 0, 19, 0, 321, 322, ! 323, 20, 0, 324, 325, 326, 21, 327, 328, 0, ! 23, 0, 0, 0, 329, 330, 331, 332, 333, 26, ! 0, 0, 28, 272, 643, 0, 0, 0, 0, 0, ! 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, ! 0, 0, 0, 0, 338, 339, 340, 0, 0, 0, ! 0, 0, 341, 342, 343, 0, 0, 0, 644, 271, ! 8, 9, 10, 0, 12, 505, 316, 317, 318, 0, ! 319, 14, 0, 0, 0, 345, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 0, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 28, 272, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 0, 344, 681, 271, 8, 9, 10, 0, 12, 505, ! 316, 317, 318, 0, 319, 14, 0, 0, 345, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 320, 17, 0, 19, 0, 321, 322, 323, 20, 0, ! 324, 325, 326, 21, 327, 328, 0, 23, 0, 0, ! 0, 329, 330, 331, 332, 333, 26, 0, 0, 28, ! 272, 0, 0, 0, 385, 0, 0, 0, 0, 0, ! 336, 0, 0, 337, 0, 0, 0, 0, 0, 0, ! 0, 338, 339, 340, 0, 0, 0, 0, 0, 341, ! 342, 343, 0, 0, 0, 344, 271, 8, 9, 10, ! 0, 12, 505, 316, 317, 318, 0, 319, 14, 0, ! 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 320, 17, 18, 19, 0, 321, 322, ! 323, 20, 0, 324, 325, 326, 21, 327, 328, 0, ! 23, 0, 0, 0, 329, 330, 331, 332, 333, 26, ! 0, 0, 28, 272, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 336, 0, 0, 629, 0, 0, 0, ! 0, 0, 0, 0, 338, 339, 630, 0, 0, 0, ! 0, 0, 341, 342, 343, 0, 0, 0, 631, 1281, ! 8, 9, 10, 0, 12, 505, 316, 317, 318, 0, ! 319, 14, 0, 0, 0, 345, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 0, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 28, 272, 0, 0, 0, ! 385, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 0, 344, 145, 8, 9, 10, 0, 12, 315, 316, ! 317, 318, 0, 319, 14, 0, 0, 0, 345, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 320, ! 17, 18, 19, 0, 321, 322, 323, 20, 0, 324, ! 325, 326, 21, 327, 328, 0, 23, 0, 0, 0, ! 329, 330, 331, 332, 333, 26, 0, 0, 28, 29, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, ! 0, 0, 1713, 0, 0, 0, 0, 0, 0, 0, ! 338, 339, 1714, 0, 0, 0, 0, 0, 341, 342, ! 343, 0, 0, 0, 1715, 271, 8, 9, 10, 0, ! 12, 505, 316, 317, 318, 0, 319, 14, 0, 0, ! 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 320, 17, 0, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 28, 272, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 0, 344, 271, 8, ! 9, 10, 0, 12, 505, 316, 317, 318, 0, 319, ! 14, 0, 0, 0, 345, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 320, 17, 0, 19, 0, ! 321, 322, 323, 20, 0, 324, 325, 326, 21, 327, ! 328, 0, 23, 0, 0, 0, 329, 330, 331, 332, ! 333, 26, 0, 0, 28, 272, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, ! 0, 0, 0, 0, 0, 0, 338, 339, 340, 0, ! 0, 0, 0, 0, 341, 342, 343, 0, 0, 0, ! 703, 271, 8, 9, 10, 0, 12, 505, 316, 317, ! 318, 0, 319, 14, 0, 0, 0, 345, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 0, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 0, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 28, 272, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, ! 0, 337, 145, 8, 9, 10, 212, 12, 213, 338, ! 339, 340, 0, 0, 14, 0, 0, 341, 342, 343, ! 0, 0, 0, 705, 0, 0, 0, 0, 16, 0, ! 17, 18, 0, 0, 0, 0, 0, 20, 0, 0, ! 345, 0, 21, 0, 0, 0, 23, 0, 145, 8, ! 9, 10, 173, 12, 13, 26, 0, 0, 28, 29, ! 14, 0, 1669, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 31, 0, 16, 0, 17, 18, 0, 0, ! 0, 0, 32, 20, 0, 0, 0, 0, 21, 0, ! 33, 0, 23, 0, 34, 0, 0, 0, 0, 0, ! 0, 26, 0, 0, 28, 29, 0, 0, 0, 145, ! 8, 9, 10, 212, 12, 213, 0, 0, 31, 0, ! 0, 14, 0, 0, 0, 0, 0, 0, 32, 0, ! 0, 0, 0, 0, 0, 16, 33, 17, 18, 0, ! 34, 0, 0, 0, 20, 0, 0, 0, 0, 21, ! 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, ! 0, 0, 26, 0, 0, 28, 29, 0, 0, 0, ! 0, 650, 651, 652, 653, 654, 655, 656, 657, 31, ! 658, 659, 660, 661, 662, 663, 664, 665, 666, 32, ! 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, ! 0, 34, 745, 746, 747, 748, 749, 750, 751, 752, ! 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, ! 763, 764, 765, 766, 745, 746, 747, 748, 749, 750, ! 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, ! 761, 762, 763, 764, 765, 766, 0, 0, 0, 1398, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 744, 0, 0, 1720, 745, 746, ! 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, ! 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, ! 1207, 0, 0, 0, 745, 746, 747, 748, 749, 750, ! 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, ! 761, 762, 763, 764, 765, 766, 1757, 745, 746, 747, ! 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, ! 758, 759, 760, 761, 762, 763, 764, 765, 766, 745, ! 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, ! 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, ! 766 }; ! static const short yycheck[] = { 14, ! 4, 180, 4, 484, 167, 82, 23, 22, 747, 818, ! 49, 216, 181, 424, 424, 182, 366, 261, 155, 156, ! 4, 130, 196, 45, 95, 14, 97, 162, 372, 352, ! 87, 372, 36, 424, 36, 552, 424, 641, 252, 78, ! 800, 364, 365, 45, 45, 727, 4, 4, 392, 985, ! 255, 392, 36, 820, 69, 137, 138, 4, 60, 225, ! 226, 45, 4, 394, 466, 246, 1431, 1438, 794, 128, ! 137, 142, 74, 150, 138, 12, 1554, 1554, 36, 36, ! 45, 45, 9, 1608, 4, 87, 45, 45, 45, 36, ! 92, 502, 502, 95, 36, 97, 85, 12, 45, 1549, ! 4, 12, 4, 45, 63, 1174, 311, 1176, 34, 82, ! 112, 31, 32, 128, 216, 1184, 36, 39, 58, 801, ! 63, 1696, 111, 3, 226, 45, 374, 375, 372, 1455, ! 1456, 49, 36, 210, 36, 533, 77, 64, 140, 154, ! 142, 45, 144, 7, 907, 87, 1472, 497, 392, 171, ! 913, 13, 34, 175, 61, 56, 140, 555, 508, 96, ! 67, 366, 1, 1, 65, 0, 109, 87, 111, 171, ! 1695, 1621, 62, 175, 175, 39, 141, 95, 96, 1754, ! 182, 220, 140, 431, 432, 111, 12, 171, 0, 111, ! 62, 175, 110, 140, 196, 110, 1522, 77, 140, 110, ! 62, 95, 1, 65, 1717, 1531, 1532, 50, 1534, 110, ! 175, 175, 61, 171, 1727, 1728, 175, 175, 175, 221, ! 140, 111, 61, 61, 171, 65, 65, 65, 175, 171, ! 56, 246, 247, 175, 196, 155, 156, 141, 110, 65, ! 49, 181, 112, 28, 49, 60, 261, 32, 110, 1699, ! 99, 171, 1730, 1730, 196, 175, 523, 216, 97, 97, ! 1773, 1024, 61, 62, 531, 13, 225, 226, 257, 171, ! 110, 175, 49, 155, 156, 157, 196, 49, 63, 361, ! 200, 201, 67, 4, 110, 1045, 95, 1737, 1048, 63, ! 95, 62, 1228, 62, 361, 56, 255, 3, 4, 5, ! 357, 110, 819, 65, 277, 376, 1632, 1633, 63, 444, ! 312, 474, 1825, 63, 62, 36, 77, 65, 95, 96, ! 202, 336, 95, 95, 1774, 140, 111, 197, 62, 3, ! 77, 34, 6, 110, 4, 5, 49, 111, 110, 110, ! 1761, 110, 344, 1103, 1104, 4, 5, 406, 110, 110, ! 414, 221, 311, 59, 60, 357, 111, 77, 32, 49, ! 1731, 111, 433, 529, 530, 367, 381, 182, 1094, 43, ! 551, 1624, 538, 1794, 376, 377, 110, 83, 393, 516, ! 517, 722, 95, 372, 519, 59, 60, 77, 554, 59, ! 60, 406, 1645, 377, 1759, 13, 787, 56, 95, 73, ! 59, 60, 1471, 392, 49, 95, 96, 366, 1661, 83, ! 62, 813, 814, 63, 73, 357, 1793, 91, 56, 377, ! 110, 95, 424, 109, 83, 427, 26, 65, 530, 62, ! 377, 433, 40, 63, 1197, 377, 1199, 357, 1815, 77, ! 606, 78, 686, 80, 62, 776, 468, 65, 56, 67, ! 95, 96, 155, 156, 157, 49, 65, 377, 110, 1, ! 56, 3, 4, 5, 1717, 110, 468, 468, 77, 428, ! 1406, 715, 543, 67, 1727, 1728, 26, 110, 28, 1161, ! 728, 77, 424, 49, 468, 1, 426, 3, 4, 5, ! 6, 49, 8, 495, 1098, 56, 498, 56, 56, 202, ! 502, 95, 541, 95, 424, 49, 987, 49, 32, 468, ! 468, 61, 1272, 1273, 56, 65, 77, 59, 60, 77, ! 1773, 468, 65, 485, 56, 77, 468, 43, 1, 95, ! 3, 4, 5, 65, 50, 3, 551, 95, 497, 26, ! 56, 543, 613, 59, 60, 77, 49, 97, 468, 13, ! 56, 95, 96, 95, 494, 803, 496, 497, 95, 56, ! 502, 65, 377, 56, 28, 61, 110, 26, 32, 28, ! 529, 530, 1825, 77, 61, 91, 49, 49, 65, 538, ! 77, 1344, 502, 56, 77, 49, 59, 60, 61, 62, ! 56, 26, 95, 28, 1357, 554, 516, 517, 62, 63, ! 56, 65, 61, 67, 4, 5, 65, 49, 56, 9, ! 97, 613, 49, 65, 50, 49, 618, 619, 620, 621, ! 622, 678, 95, 95, 96, 77, 61, 56, 643, 631, ! 65, 95, 96, 812, 516, 517, 518, 61, 97, 641, ! 78, 65, 644, 4, 5, 49, 110, 606, 77, 62, ! 1167, 49, 614, 95, 96, 525, 56, 56, 95, 59, ! 60, 95, 97, 67, 49, 78, 65, 80, 110, 1150, ! 1151, 686, 56, 73, 62, 677, 678, 49, 77, 927, ! 894, 895, 67, 83, 1095, 1095, 900, 3, 4, 5, ! 78, 95, 1036, 77, 696, 1036, 96, 95, 59, 60, ! 715, 703, 784, 705, 1095, 707, 668, 1095, 779, 1032, ! 95, 96, 674, 777, 676, 677, 110, 883, 1485, 65, ! 784, 77, 711, 95, 96, 8, 9, 110, 933, 110, ! 865, 77, 15, 907, 50, 49, 678, 1218, 1219, 913, ! 49, 110, 188, 59, 60, 707, 46, 49, 618, 32, ! 49, 1514, 714, 12, 696, 38, 56, 49, 678, 111, ! 60, 99, 724, 840, 47, 707, 49, 83, 785, 63, ! 785, 26, 731, 28, 694, 695, 696, 779, 648, 794, ! 1297, 95, 1549, 95, 61, 3, 95, 707, 65, 49, ! 730, 63, 1036, 95, 903, 56, 95, 49, 77, 49, ! 56, 49, 819, 95, 1148, 675, 61, 1148, 61, 824, ! 65, 681, 95, 516, 517, 518, 77, 113, 4, 5, ! 49, 77, 1339, 49, 1305, 96, 49, 697, 3, 4, ! 5, 6, 96, 835, 793, 95, 96, 908, 909, 1087, ! 911, 843, 97, 95, 96, 95, 96, 95, 96, 65, ! 1024, 95, 841, 793, 1621, 1336, 95, 28, 110, 95, ! 110, 32, 110, 7, 8, 9, 95, 34, 43, 95, ! 56, 15, 95, 59, 60, 50, 49, 747, 3, 4, ! 5, 843, 77, 1233, 59, 60, 363, 73, 32, 366, ! 367, 62, 63, 835, 38, 857, 67, 83, 77, 1034, ! 77, 843, 904, 47, 1148, 907, 908, 909, 83, 911, ! 96, 913, 77, 833, 834, 835, 91, 1398, 12, 63, ! 904, 56, 95, 843, 883, 50, 62, 1694, 62, 63, ! 65, 904, 1699, 1112, 59, 60, 1745, 61, 28, 62, ! 63, 65, 32, 1191, 1192, 1193, 904, 904, 868, 869, ! 1164, 1165, 1166, 835, 62, 63, 1695, 56, 83, 56, ! 56, 843, 904, 95, 110, 907, 65, 62, 1449, 65, ! 1737, 913, 62, 63, 933, 3, 4, 5, 77, 62, ! 63, 77, 984, 110, 904, 77, 988, 907, 56, 156, ! 157, 62, 63, 913, 4, 5, 1133, 1134, 3, 4, ! 5, 1136, 7, 8, 9, 1142, 1143, 1774, 1489, 56, ! 3, 4, 5, 922, 923, 924, 1018, 494, 65, 496, ! 497, 498, 1024, 1197, 77, 1199, 988, 32, 1030, 77, ! 77, 59, 60, 38, 62, 202, 62, 63, 110, 49, ! 1002, 111, 1004, 65, 1006, 111, 56, 1036, 110, 59, ! 60, 56, 110, 49, 59, 60, 61, 50, 110, 1798, ! 56, 1138, 113, 73, 110, 1080, 59, 60, 3, 4, ! 5, 49, 67, 83, 3, 4, 5, 6, 67, 1094, ! 9, 77, 1024, 86, 87, 95, 96, 110, 1030, 904, ! 83, 49, 110, 1095, 77, 1097, 1098, 28, 56, 95, ! 105, 106, 107, 32, 1024, 4, 5, 77, 1028, 1029, ! 1030, 89, 90, 56, 43, 93, 94, 95, 96, 77, ! 1082, 56, 992, 77, 59, 60, 61, 56, 62, 63, ! 59, 60, 835, 1135, 86, 87, 113, 95, 1177, 1178, ! 843, 113, 1144, 110, 73, 62, 63, 46, 1187, 1560, ! 1560, 1153, 3, 1095, 83, 1025, 56, 56, 1120, 1148, ! 59, 60, 91, 110, 1234, 1235, 95, 1237, 1416, 62, ! 1344, 1242, 1174, 62, 1176, 1095, 8, 344, 67, 95, ! 1182, 49, 1184, 1357, 77, 78, 110, 80, 77, 78, ! 1174, 110, 1176, 1135, 63, 1197, 67, 1199, 62, 63, ! 1184, 1174, 1144, 1176, 1219, 1207, 62, 63, 111, 1182, ! 62, 1184, 95, 1133, 1134, 1135, 1174, 1174, 1176, 1176, ! 4, 5, 1142, 1143, 1144, 111, 1184, 1184, 56, 1176, ! 63, 77, 1174, 38, 1176, 110, 67, 3, 4, 5, ! 1242, 1181, 1184, 67, 9, 67, 63, 110, 13, 110, ! 62, 1133, 1134, 1135, 1174, 1197, 1176, 1199, 67, 67, ! 1142, 1143, 1144, 113, 1184, 78, 1268, 1617, 110, 110, ! 110, 78, 56, 110, 78, 59, 60, 1197, 78, 1199, ! 1297, 78, 61, 110, 49, 65, 62, 65, 455, 456, ! 1305, 1173, 1369, 59, 60, 61, 110, 62, 65, 64, ! 65, 111, 67, 7, 8, 9, 3, 4, 5, 110, ! 1312, 15, 110, 78, 113, 80, 793, 3, 4, 5, ! 6, 110, 1361, 110, 96, 113, 1268, 1808, 1367, 1368, ! 95, 96, 1371, 1372, 38, 91, 1375, 1299, 77, 1301, ! 1514, 1303, 1344, 47, 49, 110, 1266, 1267, 1268, 110, ! 517, 518, 110, 50, 113, 1357, 110, 43, 110, 1174, ! 110, 1176, 59, 60, 110, 110, 1181, 1182, 1238, 1184, ! 1312, 111, 110, 59, 60, 1725, 1378, 65, 3, 4, ! 5, 6, 110, 63, 31, 32, 83, 34, 111, 61, ! 1310, 1311, 1312, 110, 1378, 110, 1369, 67, 3, 4, ! 5, 6, 1344, 110, 95, 1378, 95, 110, 1348, 111, ! 95, 1331, 1332, 60, 95, 1357, 63, 110, 43, 113, ! 1378, 1378, 69, 8, 1344, 50, 110, 74, 4, 5, ! 1133, 1134, 1135, 9, 59, 60, 1378, 1357, 43, 1142, ! 1143, 1144, 888, 1445, 110, 50, 1615, 110, 1617, 1616, ! 110, 113, 110, 98, 59, 60, 933, 110, 1378, 110, ! 62, 196, 62, 630, 631, 1427, 91, 1482, 65, 1471, ! 1173, 3, 4, 5, 6, 56, 110, 644, 83, 110, ! 56, 110, 65, 59, 60, 113, 91, 1471, 49, 110, ! 1529, 1530, 110, 1466, 110, 110, 67, 73, 1471, 110, ! 147, 110, 110, 110, 1506, 152, 110, 83, 155, 156, ! 157, 43, 1514, 1471, 1471, 34, 110, 113, 50, 110, ! 1725, 95, 65, 1393, 1394, 1395, 1396, 59, 60, 1471, ! 1007, 65, 63, 1348, 1404, 182, 703, 63, 705, 9, ! 707, 188, 63, 1722, 17, 111, 110, 1710, 110, 61, ! 1554, 1471, 1554, 200, 201, 202, 95, 1034, 1560, 91, ! 95, 63, 63, 1378, 1506, 56, 1581, 67, 95, 216, ! 1554, 109, 1514, 18, 104, 63, 1713, 1714, 56, 226, ! 3, 4, 5, 63, 1504, 1505, 1506, 1602, 1603, 63, ! 3, 4, 5, 110, 1514, 110, 1554, 1554, 3, 4, ! 5, 6, 63, 63, 62, 95, 1608, 1554, 255, 113, ! 67, 110, 1554, 63, 1616, 3, 4, 5, 1560, 7, ! 8, 9, 63, 270, 1608, 110, 12, 1790, 110, 95, ! 1793, 63, 1671, 56, 1554, 63, 59, 60, 43, 63, ! 1560, 110, 63, 1658, 1659, 50, 59, 60, 0, 1812, ! 1608, 1608, 1815, 1130, 59, 60, 1471, 0, 1617, 1136, ! 0, 1608, 176, 2, 311, 312, 1608, 36, 835, 1659, ! 777, 59, 60, 1095, 468, 1615, 843, 1617, 83, 3, ! 4, 5, 175, 7, 1554, 171, 91, 1689, 1608, 1721, ! 857, 1182, 1707, 1695, 1696, 1297, 99, 344, 144, 3, ! 4, 5, 869, 870, 314, 1644, 3, 4, 5, 1748, ! 1672, 1695, 1080, 1715, 824, 39, 737, 1339, 1167, 366, ! 367, 3, 4, 5, 1378, 1182, 1730, 1468, 1730, 1051, ! 739, 1601, 56, 678, 361, 59, 60, 1695, 1695, 3, ! 4, 5, 207, 7, 8, 9, 1730, 1689, 1695, 128, ! 485, 1549, 1754, 1695, 1696, 59, 60, 1486, 635, 56, ! 1730, 1776, 59, 60, 1745, 1742, 1725, 1792, 32, 1689, ! 852, 1248, 1730, 1730, 38, 1695, 1696, 59, 60, 1256, ! 427, 428, 1445, 1730, 1654, -1, 1726, -1, 1730, -1, ! 1672, -1, -1, 1713, 1714, 59, 60, -1, 445, -1, ! -1, 448, 3, 4, 5, 6, -1, 454, 455, 456, ! 1730, -1, 1754, 460, 83, 84, 85, 86, 87, 1689, ! -1, 3, 4, 5, 6, 1695, 1696, 58, -1, -1, ! 1307, 1713, 1714, 1715, 1754, 3, 4, 5, -1, 1316, ! -1, -1, 43, 83, 84, 85, 86, 87, 495, -1, ! 497, 498, -1, -1, -1, 56, -1, -1, 59, 60, ! 1730, 43, 1029, 1030, 511, -1, -1, 514, 50, 516, ! 517, 518, 73, -1, -1, 522, -1, 59, 60, 614, ! -1, 528, 83, 530, 1754, -1, 533, 3, 4, 5, ! 91, 59, 60, -1, 95, -1, 4, 5, 1768, -1, ! 3, 4, 5, 6, 1350, 1351, 9, 554, 555, 91, ! -1, -1, -1, -1, -1, 3, 4, 5, 1788, -1, ! -1, -1, -1, -1, 32, -1, -1, -1, 1798, 32, ! 32, 1377, -1, 668, 50, -1, 1382, -1, -1, 674, ! 43, 676, 677, 59, 60, -1, 49, -1, 56, 1819, ! 181, 59, 60, 56, -1, -1, 59, 60, -1, 606, ! -1, -1, 50, -1, -1, 73, -1, 1134, 1135, 1672, ! 73, 59, 60, -1, -1, 83, 1143, 1144, -1, 714, ! 83, -1, 629, 630, 631, -1, -1, 95, 91, 724, ! -1, -1, 95, 96, -1, -1, -1, 644, -1, 230, ! -1, -1, -1, -1, -1, -1, 1173, 3, 4, 5, ! 1713, 1714, 1715, -1, -1, 1461, 1462, -1, 1464, 1465, ! -1, 1467, 3, 4, 5, 6, 7, 8, 9, -1, ! 1507, 1508, -1, -1, 15, -1, -1, 3, 4, 5, ! 6, -1, -1, 82, -1, 147, -1, 694, 695, 696, ! 152, 32, 8, 9, 50, -1, 703, 38, 705, 15, ! 707, -1, 43, 59, 60, -1, 47, -1, 49, -1, ! 109, -1, -1, 1519, 1520, 56, 32, 43, 59, 60, ! -1, -1, 38, 49, 731, 1562, -1, -1, -1, -1, ! 56, 47, 73, 59, 60, 3, 4, 5, 137, 201, ! 1267, 1268, 83, 3, 4, 5, 6, 73, -1, -1, ! 91, 150, -1, -1, 95, 96, -1, 83, -1, -1, ! -1, 3, 4, 5, 6, 91, 1572, 1573, 1574, 95, ! 96, -1, -1, -1, -1, -1, 3, 4, 5, 6, ! 40, 41, 9, 43, 1311, 1312, 793, 794, 56, -1, ! 32, 59, 60, -1, -1, -1, 56, -1, -1, 59, ! 60, 43, -1, -1, -1, 32, -1, 49, 270, -1, ! -1, 210, -1, -1, 56, -1, 43, 59, 60, 3, ! 4, 5, 49, 1629, 1630, -1, 833, 834, 835, 56, ! -1, 73, 59, 60, -1, 426, 843, -1, -1, -1, ! -1, 83, 3, 4, 5, 6, 73, 246, 9, 91, ! 857, -1, -1, 95, 96, -1, 83, -1, -1, 866, ! 867, 868, 869, 870, 91, -1, -1, 874, 95, 96, ! -1, 32, -1, -1, -1, 59, 60, -1, 277, -1, ! -1, 888, 43, -1, -1, -1, -1, 3, 4, 5, ! 6, -1, -1, 988, -1, 56, -1, -1, 59, 60, ! -1, -1, -1, 494, -1, 496, 497, 1002, -1, 1004, ! -1, 1006, 73, 3, 4, 5, -1, -1, -1, 510, ! -1, -1, 83, -1, 335, 4, 933, 43, 519, -1, ! 91, -1, 523, -1, 95, 14, -1, 3, 4, 5, ! 531, -1, -1, 59, 60, 24, -1, -1, -1, -1, ! -1, -1, 31, 32, -1, 34, -1, 36, -1, -1, ! 1766, -1, -1, -1, -1, -1, 45, -1, -1, 59, ! 60, -1, 371, -1, -1, 91, -1, -1, -1, 58, ! -1, 60, -1, 445, -1, -1, 448, 1082, -1, -1, ! 69, -1, 391, 59, 60, 74, -1, -1, 460, -1, ! -1, 1008, 4, 5, 1011, -1, 85, 9, 87, -1, ! -1, -1, -1, 92, -1, 1022, 95, -1, 97, -1, ! -1, 1028, 1029, 1030, -1, 1120, -1, -1, -1, -1, ! 32, -1, 111, -1, -1, -1, -1, -1, 437, -1, ! -1, -1, 3, 4, 5, 6, -1, 49, -1, 511, ! -1, -1, 514, -1, 56, -1, -1, 59, 60, 138, ! -1, 140, -1, 142, -1, 144, 528, 146, 147, -1, ! -1, 73, 151, 152, -1, -1, 155, 156, 157, 40, ! 41, 83, 43, -1, -1, -1, -1, 1094, -1, -1, ! -1, -1, 171, 95, 96, 56, 175, -1, 59, 60, ! -1, -1, 181, 182, 3, 4, 5, 6, 81, 82, ! 83, 84, 85, 86, 87, 3, 4, 5, 6, -1, ! -1, 200, 201, 202, 1131, 1132, 1133, 1134, 1135, 3, ! 4, 5, 6, 1140, -1, 1142, 1143, 1144, -1, 730, ! -1, -1, -1, -1, 43, 1672, -1, 1154, 1155, 1156, ! -1, 230, 551, -1, -1, 43, -1, 56, 32, -1, ! 59, 60, 50, -1, 63, -1, 1173, -1, 247, 43, ! -1, 59, 60, -1, 73, 1182, -1, -1, 257, -1, ! -1, -1, 56, -1, 83, 59, 60, 1714, 1715, -1, ! -1, 270, 91, -1, -1, 83, 95, -1, -1, 73, ! -1, -1, 793, 91, 1299, -1, 1301, -1, 1303, 83, ! 609, -1, -1, -1, -1, -1, -1, 91, -1, -1, ! -1, 95, 81, 82, 83, 84, 85, 86, 87, 3, ! 4, 5, 6, 312, 313, 646, 647, -1, 649, 650, ! 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, ! 661, 662, 663, 664, 665, 666, -1, -1, -1, 1266, ! 1267, 1268, -1, -1, -1, -1, -1, 4, 5, 43, ! -1, 862, 9, -1, 865, -1, 50, -1, 357, -1, ! -1, -1, 361, -1, 363, 59, 60, 366, 367, -1, ! 881, -1, 691, -1, -1, 32, -1, 376, 377, -1, ! -1, 1308, 1309, 1310, 1311, 1312, -1, -1, 1315, 4, ! 5, 710, 49, -1, 9, -1, -1, 91, -1, 56, ! -1, -1, 59, 60, 1331, 1332, 1333, -1, -1, -1, ! -1, -1, 1427, -1, -1, 414, 73, 32, -1, -1, ! -1, -1, -1, 1350, 1351, 424, 83, 426, 427, -1, ! -1, 4, 5, -1, 433, -1, 435, -1, 95, 96, ! -1, 56, -1, -1, 59, 60, 445, -1, -1, 448, ! 1377, -1, 834, -1, -1, 1382, -1, -1, 73, 32, ! -1, 460, -1, -1, -1, -1, -1, -1, 83, 468, ! -1, -1, -1, -1, -1, -1, 49, -1, -1, -1, ! 95, -1, -1, 56, 866, 867, 59, 60, -1, -1, ! -1, -1, 874, -1, -1, 494, 495, 496, 497, 498, ! 73, -1, -1, 502, -1, -1, -1, -1, -1, -1, ! 83, 510, 511, 1440, 1441, 514, 1443, 516, 517, 518, ! 519, 840, 95, 96, 523, -1, -1, -1, -1, 528, ! -1, -1, 531, -1, 1461, 1462, -1, 1464, 1465, -1, ! 1467, -1, -1, -1, 543, 200, 201, -1, -1, -1, ! -1, -1, 871, -1, -1, -1, -1, -1, -1, -1, ! 3, 4, 5, 6, 7, 8, 9, -1, 567, -1, ! 13, -1, 15, -1, -1, -1, -1, 1504, 1505, 1506, ! -1, -1, -1, -1, -1, -1, 29, -1, 31, 32, ! -1, -1, 1519, 1520, -1, 38, -1, -1, -1, -1, ! 43, -1, -1, -1, 47, -1, 925, -1, -1, -1, ! -1, -1, 611, 56, 613, -1, 59, 60, -1, 1130, ! 619, 620, 621, 622, -1, 1136, -1, -1, -1, 1, ! 73, 3, 4, 5, 6, 7, 8, 9, -1, -1, ! 83, -1, 641, 15, -1, 1572, 1573, 1574, 91, -1, ! -1, -1, 95, -1, -1, -1, 28, 29, -1, 31, ! 32, 33, -1, -1, -1, -1, 38, -1, -1, -1, ! 1181, 43, -1, -1, 46, 47, 48, -1, 50, 678, ! -1, 680, -1, -1, 56, 57, -1, 59, 60, 1616, ! 1617, 63, -1, 692, -1, 694, 695, 696, -1, -1, ! -1, 73, 1629, 1630, -1, -1, -1, -1, 707, -1, ! -1, 83, 711, 7, 8, 9, 1035, -1, 1037, 91, ! -1, 15, -1, 95, -1, -1, -1, 99, -1, -1, ! -1, 730, -1, -1, -1, -1, -1, -1, 32, -1, ! -1, -1, -1, -1, 38, 1672, -1, -1, -1, 1131, ! 1132, -1, -1, 47, -1, -1, -1, -1, 1140, -1, ! 3, 4, 5, 6, -1, -1, 9, -1, -1, 63, ! 1101, -1, 3, 4, 5, 6, -1, -1, 777, -1, ! 779, -1, -1, -1, -1, 784, 1713, 1714, 1715, 32, ! -1, -1, -1, -1, 793, 794, 1307, -1, 1725, -1, ! 43, -1, 84, -1, -1, 1316, 49, -1, -1, 40, ! 41, -1, 43, 56, -1, -1, 59, 60, -1, 1138, ! -1, -1, 1141, 1334, 1335, 56, -1, -1, 59, 60, ! 73, -1, -1, -1, 833, 834, 835, 1348, -1, 1766, ! 83, -1, 841, -1, 843, -1, -1, -1, 91, 7, ! 8, 9, 95, 96, -1, -1, 511, 15, -1, 514, ! 91, 516, 517, 862, -1, -1, 865, 866, 867, 868, ! 869, 870, -1, 528, 32, 874, -1, -1, -1, -1, ! 38, -1, 881, 165, -1, -1, -1, 4, 5, 47, ! -1, 1222, 9, -1, -1, -1, -1, -1, -1, -1, ! -1, 3, 4, 5, 6, 904, -1, 9, 907, 908, ! 909, -1, 911, -1, 913, 32, 198, -1, -1, -1, ! -1, 66, -1, 922, 923, 924, 1308, 1309, -1, 211, ! 32, -1, -1, 1315, 933, -1, 1447, -1, -1, 56, ! -1, 43, 59, 60, -1, -1, -1, 49, -1, -1, ! -1, -1, 1463, -1, 56, -1, 73, 59, 60, -1, ! -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, 95, 880, ! -1, 83, -1, -1, -1, 984, -1, 4, 5, 91, ! -1, -1, 9, 95, 96, -1, 1507, 1508, -1, -1, ! -1, 146, -1, -1, -1, 906, -1, -1, 1007, 1008, ! -1, 912, 1011, -1, -1, 32, -1, 162, -1, 1018, ! -1, -1, -1, 1022, -1, 1024, -1, -1, -1, 1028, ! 1029, 1030, 49, -1, -1, 1034, -1, 1036, -1, 56, ! -1, -1, 59, 60, -1, -1, -1, -1, -1, -1, ! 1369, 1562, 3, 4, 5, 6, 73, -1, -1, -1, ! 4, 5, -1, 7, 8, 9, 83, -1, -1, 13, ! -1, 15, -1, -1, 219, -1, -1, -1, 95, 96, ! -1, -1, -1, 228, -1, 29, -1, 31, 32, -1, ! -1, -1, 43, -1, 38, -1, 1095, -1, 1097, 1098, ! 245, -1, -1, 47, 1615, 49, 1617, -1, 59, 60, ! -1, 256, 56, -1, -1, 59, 60, -1, 1019, -1, ! 1021, -1, -1, 1442, -1, -1, -1, -1, -1, 73, ! -1, 1130, 1131, 1132, 1133, 1134, 1135, 1136, -1, 83, ! 91, 1140, -1, 1142, 1143, 1144, -1, 1466, -1, 1148, ! -1, 95, 96, -1, 1153, 1154, 1155, 1156, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, -1, 4, 5, ! -1, 1170, -1, 9, 1173, 1174, -1, 1176, 833, 834, ! -1, -1, 1181, 1182, -1, 1184, -1, -1, -1, 3, ! 4, 5, 6, -1, -1, -1, 32, -1, 1197, -1, ! 1199, -1, -1, -1, -1, -1, -1, -1, 1207, -1, ! -1, 866, 867, 868, 869, 1726, -1, -1, -1, 874, ! 56, -1, -1, 59, 60, -1, -1, -1, -1, 43, ! 3, 4, 5, 6, -1, 1234, 1235, 73, 1237, 521, ! -1, -1, 56, 1242, 526, 59, 60, 83, -1, 1248, ! -1, 4, 5, -1, 7, 8, 9, 1256, -1, 95, ! 13, -1, 15, -1, -1, -1, -1, 1266, 1267, 1268, ! 43, -1, -1, -1, -1, 557, 29, 91, 31, 32, ! -1, -1, 564, -1, -1, 38, 59, 60, -1, -1, ! 435, -1, -1, -1, 47, 1196, 49, 1198, -1, 444, ! -1, -1, -1, 56, -1, -1, 59, 60, 1307, 1308, ! 1309, 1310, 1311, 1312, -1, -1, 1315, 1316, 91, -1, ! 73, -1, -1, -1, -1, 607, 608, -1, 610, -1, ! 83, 476, 1331, 1332, 1333, 1334, 1335, -1, -1, -1, ! -1, -1, 95, 96, -1, 1344, -1, -1, -1, 1348, ! -1, -1, -1, -1, -1, -1, -1, 1258, 1357, -1, ! -1, -1, -1, -1, -1, 510, -1, -1, 4, 5, ! -1, 1370, -1, 9, 519, -1, -1, -1, -1, 1378, ! 4, -1, -1, 4, 5, -1, -1, -1, 9, -1, ! 14, -1, -1, -1, -1, 540, 32, -1, -1, 23, ! 24, -1, -1, -1, -1, -1, -1, 31, 32, -1, ! 34, 32, 36, 49, -1, -1, -1, 699, 700, -1, ! 56, 45, 567, 59, 60, -1, 708, -1, 49, -1, ! -1, -1, -1, -1, 58, 56, 60, 73, 59, 60, ! -1, 1440, 1441, -1, 1443, 69, 1445, 83, 1447, -1, ! 74, -1, 73, -1, -1, -1, -1, -1, -1, 95, ! 96, -1, 83, 87, 1463, -1, -1, -1, 92, 1468, ! -1, 95, 1471, 97, 95, 96, 1131, 1132, 1133, 1134, ! -1, -1, -1, -1, -1, 1140, -1, 1142, 1143, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, -1, 1154, ! 1155, 1156, -1, -1, -1, 1504, 1505, 1506, 1507, 1508, ! -1, -1, -1, -1, -1, 1514, 140, -1, 142, 1420, ! 144, -1, 146, 147, -1, -1, -1, -1, 152, -1, ! -1, 155, 156, 157, -1, -1, -1, 4, 5, -1, ! -1, 8, 9, 3, 4, 5, 6, 171, 15, -1, ! 1451, 175, -1, -1, -1, 837, 1457, 181, 182, -1, ! -1, 1560, 29, 1562, 31, 32, -1, -1, -1, -1, ! -1, 38, 1473, 1474, -1, -1, 200, 201, 202, -1, ! 47, -1, -1, 43, -1, -1, 694, 695, 4, 56, ! 872, -1, 59, 60, 61, 1496, 56, -1, -1, 59, ! 60, -1, -1, 63, -1, 65, 230, -1, -1, -1, ! -1, -1, -1, 73, -1, -1, 1615, 1616, 1617, -1, ! 36, -1, -1, 83, -1, -1, -1, -1, 95, 45, ! -1, 91, 914, -1, 916, 95, -1, -1, -1, 1540, ! 1541, -1, 58, -1, 60, -1, 270, 4, 5, -1, ! -1, 8, 9, 1308, 1309, 1310, 1311, -1, 15, -1, ! 1315, -1, 1563, 1564, -1, 1566, 3, 4, 5, 6, ! -1, -1, 29, 1672, 31, 32, 1331, 1332, -1, -1, ! -1, 38, -1, -1, -1, -1, -1, -1, 312, 313, ! 47, -1, -1, -1, -1, -1, -1, -1, -1, 56, ! -1, -1, 59, 60, -1, -1, 43, -1, 990, 991, ! -1, 993, -1, 50, 1713, 1714, 1715, 862, -1, -1, ! 865, -1, 59, 60, 140, 833, 834, 1726, -1, -1, ! 146, -1, -1, 357, -1, -1, 881, 361, 95, 363, ! -1, 1023, 366, 367, -1, -1, 83, -1, 372, -1, ! -1, -1, 376, 377, 91, 171, -1, -1, -1, 175, ! -1, -1, -1, -1, -1, 181, 182, -1, 392, -1, ! -1, -1, 3, 4, 5, 6, 7, 8, 9, 1680, ! -1, -1, -1, -1, 15, 1440, 1441, -1, 1443, -1, ! 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 424, 32, 426, 427, -1, -1, -1, 38, -1, 433, ! -1, 435, 43, -1, 230, -1, 47, -1, 49, -1, ! -1, 445, -1, -1, 448, 56, -1, -1, 59, 60, ! -1, -1, -1, -1, -1, -1, 460, -1, -1, -1, ! -1, -1, 73, -1, 468, 3, 4, 5, 6, 1504, ! 1505, -1, 83, -1, -1, -1, -1, 1139, -1, -1, ! 91, -1, 1007, -1, 95, 96, -1, -1, -1, -1, ! 494, 495, 496, 497, 498, -1, -1, -1, 502, -1, ! -1, -1, -1, -1, -1, 43, 510, 511, -1, 1034, ! 514, -1, 516, 517, 518, 519, -1, -1, 56, 523, ! 1008, 59, 60, 1011, 528, 63, -1, 531, -1, -1, ! -1, 4, 5, -1, 1022, 73, 9, -1, -1, 543, ! 1028, 1029, -1, -1, -1, 83, -1, -1, 552, -1, ! -1, -1, -1, 91, -1, -1, -1, 95, -1, 32, ! -1, -1, -1, 567, -1, -1, -1, -1, 3, 4, ! 5, 6, 7, 8, 9, -1, 49, -1, 13, -1, ! 15, 377, -1, 56, -1, -1, 59, 60, -1, -1, ! 1252, -1, -1, -1, 29, -1, 31, 32, -1, -1, ! 73, -1, -1, 38, -1, 1130, -1, -1, 43, 613, ! 83, 1136, 47, -1, 49, 619, 620, 621, 622, -1, ! -1, 56, 95, 96, 59, 60, -1, -1, -1, -1, ! 426, -1, -1, -1, -1, -1, -1, 641, 73, 435, ! -1, 4, 5, 1131, 1132, 1133, 1134, -1, 83, -1, ! -1, 1313, 1140, -1, 1142, 1143, 91, -1, -1, -1, ! 95, 96, -1, -1, -1, -1, -1, -1, -1, 32, ! -1, -1, 468, -1, 678, -1, 680, -1, 1713, 1714, ! -1, 1343, 3, 4, 5, 6, 49, -1, -1, -1, ! 694, 695, 696, 56, 1356, -1, 59, 60, 494, 495, ! 496, 497, -1, 707, -1, -1, 502, -1, -1, -1, ! 73, -1, -1, -1, 510, -1, -1, -1, 722, -1, ! 83, 1383, 43, 1248, -1, 1387, 730, 523, -1, 50, ! -1, 1256, 95, 96, -1, 531, -1, -1, 59, 60, ! -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, ! 5, 6, -1, -1, 9, 3, 4, 5, 6, -1, ! 1422, -1, 83, -1, -1, -1, -1, -1, -1, -1, ! 91, 567, -1, 777, -1, 779, -1, 32, 1266, 1267, ! -1, 785, 1307, -1, -1, -1, -1, -1, 43, 793, ! 794, 1316, -1, -1, 49, 43, -1, -1, -1, -1, ! -1, 56, 50, -1, 59, 60, -1, -1, -1, 1334, ! 1335, 59, 60, 1475, 1476, 819, -1, -1, 73, -1, ! 1308, 1309, 1310, 1311, -1, -1, -1, 1315, 83, 833, ! 834, 835, -1, -1, -1, 83, 91, -1, -1, 843, ! 95, 96, -1, 91, -1, 3, 4, 5, 6, -1, ! 1512, 1513, -1, -1, -1, -1, 1518, -1, 862, -1, ! -1, 865, 866, 867, 868, 869, 870, -1, -1, -1, ! 874, -1, -1, -1, 32, -1, -1, 881, -1, -1, ! -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, ! -1, 49, -1, -1, -1, -1, -1, -1, 56, -1, ! 904, 59, 60, 907, 908, 909, -1, 911, -1, 913, ! -1, -1, -1, -1, -1, 73, -1, -1, 922, 923, ! 924, -1, 1447, -1, -1, 83, -1, -1, -1, 933, ! -1, -1, -1, 91, 730, -1, -1, 95, 96, 75, ! 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ! 86, 87, 1440, 1441, -1, 1443, -1, -1, -1, -1, ! -1, -1, -1, -1, 1, 1627, 3, 4, 5, 6, ! 7, 8, 9, -1, -1, -1, -1, -1, 15, -1, ! 984, -1, 1507, 1508, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, -1, 31, 32, 33, 793, -1, -1, ! -1, 38, -1, 1007, 1008, -1, 43, 1011, -1, -1, ! 47, -1, -1, 50, 1018, -1, 1504, 1505, 1022, 56, ! 1024, -1, 59, 60, 1028, 1029, 1030, -1, -1, -1, ! 1034, -1, 1036, -1, -1, -1, 73, 1562, -1, -1, ! -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, ! -1, -1, -1, -1, 91, -1, -1, -1, 95, -1, ! -1, -1, 99, -1, -1, -1, 862, 3, 4, 5, ! 6, 76, 77, 9, 79, 80, 81, 82, 83, 84, ! 85, 86, 87, -1, -1, 881, -1, -1, -1, -1, ! -1, 1095, -1, 1097, 1098, -1, 32, -1, -1, -1, ! -1, 3, 4, 5, 6, -1, -1, 43, 904, -1, ! -1, -1, -1, 49, -1, -1, -1, -1, -1, -1, ! 56, -1, -1, 59, 60, -1, 1130, 1131, 1132, 1133, ! 1134, 1135, 1136, -1, -1, -1, 1140, 73, 1142, 1143, ! 1144, 43, -1, -1, 1148, -1, -1, 83, 50, 1153, ! 1154, 1155, 1156, 13, -1, 91, -1, 59, 60, 95, ! 96, -1, -1, 1167, -1, -1, 1170, -1, -1, 1173, ! 1174, -1, 1176, -1, -1, -1, -1, 1181, 1182, -1, ! 1184, 83, -1, -1, -1, -1, -1, -1, -1, 91, ! -1, -1, -1, 1197, -1, 1199, -1, -1, -1, -1, ! -1, -1, -1, 1207, -1, 65, 66, 67, 68, 69, ! 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, -1, -1, ! 1234, 1235, -1, 1237, -1, -1, -1, -1, 1242, -1, ! -1, -1, -1, -1, 1248, 3, 4, 5, 6, 7, ! 8, 9, 1256, -1, -1, 13, -1, 15, -1, -1, ! -1, -1, 1266, 1267, 1268, -1, -1, -1, -1, -1, ! -1, 29, -1, 31, 32, -1, -1, -1, -1, -1, ! 38, -1, -1, -1, -1, 43, -1, -1, -1, 47, ! -1, 49, -1, 1297, -1, -1, -1, -1, 56, -1, ! -1, 59, 60, 1307, 1308, 1309, 1310, 1311, 1312, -1, ! -1, 1315, 1316, -1, -1, 73, -1, -1, -1, 3, ! 4, 5, 6, -1, -1, 83, -1, 1331, 1332, 1333, ! 1334, 1335, -1, 91, 1130, 1339, -1, 95, 96, -1, ! 1344, 4, -1, -1, 1348, -1, -1, -1, 32, -1, ! -1, -1, -1, 1357, -1, -1, -1, -1, -1, 43, ! -1, -1, -1, -1, -1, 49, -1, 112, 31, 32, ! -1, 34, 56, 36, 1378, 59, 60, -1, 1174, -1, ! 1176, -1, 45, -1, -1, 1181, 1182, -1, 1184, 73, ! -1, -1, -1, -1, -1, 58, -1, 60, -1, 83, ! -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, ! -1, 95, 96, -1, -1, -1, -1, -1, -1, 82, ! -1, -1, 85, -1, -1, 3, 4, 5, 6, -1, ! -1, 9, -1, -1, -1, -1, 1440, 1441, -1, 1443, ! -1, 1445, -1, 1447, -1, -1, -1, -1, -1, -1, ! -1, 196, -1, -1, 32, -1, -1, -1, -1, 1463, ! -1, -1, -1, -1, 1468, 43, -1, 1471, -1, -1, ! -1, -1, -1, -1, 137, 138, 221, 140, 56, -1, ! -1, 59, 60, 146, 147, -1, -1, 150, 151, 152, ! -1, -1, 155, 156, 157, 73, -1, -1, -1, 162, ! 1504, 1505, 1506, 1507, 1508, 83, -1, -1, 171, -1, ! 1514, 1307, 175, 91, -1, -1, -1, 95, 181, 182, ! 1316, -1, -1, 4, 5, -1, 7, 8, 9, -1, ! -1, -1, -1, -1, 15, -1, -1, 200, 201, 202, ! -1, -1, -1, -1, -1, -1, -1, 210, 29, -1, ! 31, 32, 1348, -1, -1, -1, 1560, 38, 1562, -1, ! -1, -1, -1, -1, -1, -1, 47, 230, -1, 50, ! -1, -1, -1, -1, -1, 56, -1, -1, 59, 60, ! -1, -1, 1378, -1, -1, -1, -1, -1, -1, -1, ! 3, 4, 5, 6, 7, 8, 9, -1, -1, 344, ! 1604, -1, 15, -1, -1, -1, -1, 270, -1, -1, ! -1, 1615, 1616, 1617, 277, -1, 29, -1, 31, 32, ! 33, -1, -1, -1, -1, 38, -1, -1, 4, 5, ! 43, -1, 8, 9, 47, -1, -1, 50, -1, 15, ! -1, -1, -1, 56, -1, -1, 59, 60, -1, -1, ! -1, -1, -1, 29, -1, 31, 32, -1, -1, -1, ! 73, -1, 38, -1, -1, -1, -1, 1463, 1672, -1, ! 83, 47, 1468, 49, -1, 1471, -1, -1, 91, 424, ! 56, 344, 95, 59, 60, -1, 99, -1, 92, -1, ! -1, 95, -1, 97, -1, -1, -1, 73, 361, -1, ! -1, -1, -1, -1, -1, -1, -1, 83, 371, 1713, ! 1714, 1715, -1, -1, 377, -1, -1, -1, -1, 95, ! 96, -1, 1726, -1, -1, -1, -1, -1, 391, -1, ! -1, -1, 4, 5, -1, -1, 8, 9, 142, -1, ! 144, -1, -1, 15, -1, -1, -1, -1, -1, -1, ! -1, 414, -1, -1, -1, -1, -1, 502, -1, -1, ! 32, -1, -1, 426, -1, -1, 38, -1, -1, -1, ! -1, -1, 435, -1, 437, 47, -1, 49, -1, -1, ! -1, 444, 445, -1, 56, 448, -1, 59, 60, -1, ! -1, 454, 455, 456, -1, -1, -1, 460, -1, -1, ! -1, 73, -1, -1, -1, 468, -1, -1, -1, -1, ! -1, 83, -1, -1, -1, -1, -1, -1, -1, 1615, ! 1616, 1617, -1, 95, 96, -1, -1, 3, 4, 5, ! 6, 494, 495, 496, 497, -1, -1, -1, -1, 502, ! -1, -1, -1, -1, -1, -1, -1, 510, 511, -1, ! -1, 514, -1, 516, 517, 518, 519, -1, -1, -1, ! 523, -1, -1, -1, -1, 528, -1, 43, 531, -1, ! -1, -1, -1, 618, 619, 620, 621, 622, -1, -1, ! 56, -1, -1, 59, 60, -1, 631, -1, -1, 65, ! -1, -1, -1, -1, -1, -1, -1, 73, -1, 644, ! -1, -1, -1, -1, 567, -1, -1, 83, -1, -1, ! -1, -1, -1, -1, -1, 91, -1, 321, 322, 95, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, ! 1726, 335, 677, 337, -1, -1, 340, -1, -1, 343, ! -1, -1, 346, -1, -1, -1, 350, -1, -1, -1, ! -1, 696, -1, -1, 358, -1, 31, 32, 703, 34, ! 705, 36, 707, -1, -1, -1, 629, 630, 631, -1, ! 45, -1, 376, -1, -1, -1, -1, -1, -1, -1, ! -1, 644, -1, 58, -1, 60, 71, 72, 73, 74, ! 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, ! 85, 86, 87, 3, 4, 5, 6, 7, 8, 9, ! 85, 74, 75, 76, 77, 15, 79, 80, 81, 82, ! 83, 84, 85, 86, 87, -1, -1, -1, 691, 433, ! -1, -1, 32, -1, -1, -1, -1, -1, 38, -1, ! 703, -1, 705, 43, 707, -1, -1, 47, -1, 49, ! -1, -1, -1, -1, -1, -1, 56, -1, -1, 59, ! 60, -1, -1, -1, -1, 140, -1, 730, -1, -1, ! -1, 146, 147, 73, -1, -1, 151, 152, -1, -1, ! 155, 156, 157, 83, -1, -1, -1, -1, -1, -1, ! 835, 91, -1, -1, -1, 95, 171, -1, 843, -1, ! 175, -1, -1, -1, -1, -1, 181, 182, -1, -1, ! -1, -1, -1, -1, 777, -1, -1, -1, -1, -1, ! -1, 784, -1, -1, -1, 200, 201, 202, -1, -1, ! 793, 4, 5, -1, -1, 8, 9, -1, -1, 543, ! -1, -1, 15, 76, 77, 78, 79, 80, 81, 82, ! 83, 84, 85, 86, 87, 230, -1, -1, -1, 32, ! -1, -1, 907, -1, -1, 38, -1, -1, 913, -1, ! 833, 834, 835, -1, 47, -1, 49, 840, 841, -1, ! 843, -1, -1, 56, -1, -1, 59, 60, -1, -1, ! -1, -1, -1, -1, 857, 270, -1, -1, -1, 862, ! 73, -1, 865, 866, 867, 868, 869, 870, -1, 613, ! 83, 874, -1, -1, -1, -1, -1, -1, 881, -1, ! -1, -1, 95, 96, -1, 629, 630, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 641, -1, 984, ! -1, 904, 646, 647, -1, 649, 650, 651, 652, 653, ! 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, ! 664, 665, 666, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 1018, -1, -1, -1, -1, -1, 1024, ! 73, 74, 75, 76, 77, 1030, 79, 80, 81, 82, ! 83, 84, 85, 86, 87, -1, -1, 372, -1, -1, ! -1, -1, 377, 74, 75, 76, 77, 78, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, 392, 279, 280, ! 281, 282, 283, 284, -1, 286, 287, 288, 289, 290, ! 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, ! 301, 302, 303, 304, 305, 306, 307, -1, 309, -1, ! 1095, 426, 1097, -1, -1, -1, -1, -1, -1, -1, ! 435, -1, -1, -1, -1, 1028, 1029, 1030, -1, -1, ! 445, 1034, 1035, 448, -1, 779, -1, -1, -1, -1, ! 34, -1, -1, -1, -1, 460, -1, -1, -1, -1, ! 1135, -1, -1, 468, 3, 4, 5, 6, -1, 1144, ! 9, -1, -1, -1, 58, 75, 76, 77, 1153, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, -1, 494, ! 495, 496, 497, 32, -1, -1, -1, 502, -1, -1, ! -1, -1, -1, -1, 43, 510, 511, -1, -1, 514, ! -1, 516, 517, 518, -1, -1, -1, 56, 523, -1, ! 59, 60, 1197, 528, 1199, -1, 531, -1, -1, -1, ! -1, -1, 1207, -1, 73, -1, -1, 1130, 1131, 1132, ! 1133, 1134, 1135, 1136, 83, 1138, -1, 1140, 1141, 1142, ! 1143, 1144, 91, -1, -1, 1148, 95, -1, -1, -1, ! -1, -1, 567, -1, -1, -1, -1, -1, -1, -1, ! -1, 155, 156, 157, 908, 909, -1, 911, -1, -1, ! 1173, 1174, -1, 1176, -1, -1, -1, -1, 1181, 1182, ! -1, 1184, -1, 1268, -1, -1, -1, 181, 1, -1, ! 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, ! -1, -1, 15, -1, -1, -1, 200, 201, 202, -1, ! -1, -1, -1, -1, -1, -1, 29, -1, 31, 32, ! -1, -1, -1, -1, -1, 38, -1, 1312, -1, -1, ! 43, -1, -1, -1, 47, -1, 230, 50, -1, -1, ! -1, -1, -1, 56, -1, -1, 59, 60, -1, -1, ! 63, -1, 996, -1, -1, -1, -1, -1, -1, 1344, ! 73, -1, -1, 1266, 1267, 1268, -1, -1, -1, -1, ! 83, -1, 1357, -1, -1, -1, -1, 692, 91, -1, ! 581, -1, 95, -1, 1028, 1029, -1, -1, -1, -1, ! -1, 3, 4, 5, 6, -1, -1, 9, -1, -1, ! -1, -1, -1, 604, 1307, 1308, 1309, 1310, 1311, 1312, ! -1, 612, 1315, 1316, -1, 730, -1, -1, -1, 313, ! 32, -1, -1, -1, 3, 4, 5, 6, 7, 8, ! 9, 43, -1, -1, 13, -1, 15, -1, -1, -1, ! -1, -1, -1, -1, 56, 1348, -1, 59, 60, -1, ! 29, -1, 31, 32, 1098, -1, -1, 1101, -1, 38, ! 1445, 73, -1, -1, 43, -1, 1369, 1370, 47, 363, ! 49, 83, 366, 367, -1, 1378, -1, 56, 793, 91, ! 59, 60, -1, 95, 3, 4, 5, 6, -1, -1, ! 9, -1, -1, -1, 73, -1, -1, -1, 1142, 1143, ! -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, ! -1, -1, 91, 32, -1, -1, 95, 96, 833, 834, ! 835, 1506, -1, -1, 43, -1, 841, -1, 843, 1514, ! -1, -1, 426, -1, -1, -1, -1, 56, -1, -1, ! 59, 60, -1, -1, -1, -1, -1, 862, -1, -1, ! -1, 866, 867, -1, 73, -1, -1, -1, -1, 874, ! 1463, -1, -1, 1466, 83, 1468, 881, -1, 1471, -1, ! -1, -1, 91, -1, -1, 1560, 95, -1, 1222, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 904, ! -1, -1, -1, -1, -1, -1, 1240, -1, 1242, -1, ! 494, -1, 496, 497, 498, 1, -1, -1, 4, 5, ! -1, -1, 8, 9, -1, -1, 510, 511, -1, 15, ! 514, -1, 516, 517, 518, 519, -1, -1, -1, 523, ! -1, -1, -1, 29, 528, 31, 32, 531, -1, -1, ! -1, -1, 38, -1, 40, 41, -1, -1, -1, -1, ! -1, 47, -1, 49, -1, -1, -1, -1, -1, -1, ! 56, -1, -1, 59, 60, -1, 62, -1, -1, -1, ! 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ! 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ! 86, -1, -1, 89, 90, 91, -1, 93, -1, -1, ! 96, -1, 3, 4, 5, 6, -1, -1, 9, -1, ! -1, 58, 1615, 1616, 1617, -1, 112, 918, 919, 1, ! -1, 1036, 4, 5, -1, -1, 8, 9, -1, -1, ! 1715, 32, -1, 15, -1, 82, -1, -1, 85, -1, ! -1, -1, 43, -1, -1, -1, -1, 29, -1, 31, ! 32, 3, 4, 5, 6, 56, 38, 9, 59, 60, ! -1, -1, 109, -1, 111, 47, -1, -1, -1, 1672, ! -1, -1, 73, -1, 56, -1, -1, 59, 60, -1, ! 32, -1, 83, -1, -1, -1, 680, -1, -1, -1, ! 91, 43, -1, -1, 95, -1, -1, -1, -1, -1, ! 694, 695, 696, -1, 56, -1, -1, 59, 60, -1, ! 1713, 1714, 1715, 707, -1, 1130, 1131, 1132, 1133, 1134, ! 1135, 73, -1, 1726, -1, 1140, -1, 1142, 1143, 1144, ! -1, 83, -1, 1148, 181, -1, 730, -1, -1, 91, ! -1, -1, 1, 95, 3, 4, 5, 6, 7, 8, ! 9, -1, -1, 200, 201, 202, 15, -1, 1173, 1174, ! -1, 1176, -1, 210, -1, -1, 1181, 1182, -1, 1184, ! 29, -1, 31, 32, 33, -1, -1, -1, -1, 38, ! 39, -1, -1, 230, 43, -1, -1, -1, 47, 48, ! -1, 50, -1, -1, -1, -1, -1, 56, -1, 793, ! 59, 60, -1, -1, 63, -1, 65, -1, -1, -1, ! 257, -1, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 83, 3, 4, 5, 6, -1, ! 277, 9, 91, -1, -1, -1, 95, -1, -1, 833, ! 834, 835, -1, -1, -1, -1, -1, -1, -1, 843, ! -1, -1, 111, -1, 32, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 1608, 43, -1, -1, 862, -1, ! -1, 865, 866, 867, 868, 869, 870, -1, 56, -1, ! 874, 59, 60, -1, -1, -1, -1, 881, -1, -1, ! -1, -1, 1307, 1308, 1309, 73, 3, 4, 5, 6, ! 1315, 1316, -1, -1, -1, 83, -1, -1, -1, -1, ! -1, -1, -1, 91, -1, -1, -1, 95, -1, -1, ! -1, -1, -1, -1, 371, 372, -1, -1, 922, 923, ! 924, -1, -1, 1348, -1, -1, 43, 4, 5, 933, ! 7, 8, 9, -1, 391, 392, 13, -1, 15, 56, ! -1, -1, 59, 60, -1, 1370, -1, -1, 65, -1, ! -1, -1, 29, 1378, 31, 32, 73, -1, -1, 1713, ! 1714, 38, -1, -1, -1, -1, 83, -1, -1, 426, ! 47, -1, -1, -1, 91, -1, -1, -1, 95, 56, ! -1, -1, 59, 60, -1, -1, -1, -1, 3, 4, ! 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, ! 15, -1, -1, 1007, 1008, -1, -1, 1011, -1, -1, ! -1, -1, -1, -1, 29, -1, 31, 32, 1022, -1, ! -1, -1, -1, 38, 1028, 1029, 1030, -1, 43, -1, ! 1034, -1, 47, -1, 49, -1, -1, 494, 1463, 496, ! 497, 56, -1, 1468, 59, 60, 1471, -1, -1, -1, ! -1, -1, -1, 510, 511, -1, -1, 514, 73, 516, ! 517, 518, 519, 32, -1, -1, 523, -1, 83, -1, ! -1, 528, -1, -1, 531, -1, 91, -1, -1, -1, ! 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 196, -1, -1, -1, -1, -1, 66, 67, 68, ! 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, ! 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, ! -1, -1, -1, -1, -1, -1, 1130, 1131, 1132, 1133, ! 1134, 1135, 1136, -1, -1, -1, 1140, -1, 1142, 1143, ! 1144, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 1154, 1155, 1156, -1, -1, -1, 1, -1, 3, 4, ! 5, 6, 7, 8, 9, -1, -1, -1, -1, 1173, ! 15, -1, -1, -1, -1, -1, -1, 1181, -1, 3, ! 4, 5, 6, -1, 29, -1, 31, 32, 33, -1, ! 1615, 1616, 1617, 38, 39, -1, -1, -1, 43, -1, ! -1, -1, 47, 48, -1, 50, -1, -1, 32, -1, ! -1, 56, -1, -1, 59, 60, -1, -1, 63, 43, ! 65, -1, -1, -1, -1, -1, -1, -1, 73, -1, ! 1234, 1235, 56, 1237, -1, 59, 60, -1, 83, -1, ! -1, -1, -1, -1, 1248, -1, 91, 1672, -1, 73, ! 95, -1, 1256, 710, 711, -1, -1, -1, -1, 83, ! -1, -1, 1266, 1267, 1268, -1, 111, 91, -1, -1, ! -1, 95, -1, 730, -1, -1, -1, -1, -1, -1, ! 385, -1, -1, -1, -1, -1, -1, -1, 1713, 1714, ! 1715, 4, 5, -1, 7, 8, 9, -1, -1, -1, ! 13, 1726, 15, 1307, 1308, 1309, 1310, 1311, 1312, -1, ! -1, 1315, 1316, -1, -1, -1, 29, -1, 31, 32, ! -1, -1, -1, -1, -1, 38, -1, 1331, 1332, 1333, ! 1334, 1335, -1, -1, 47, -1, 793, -1, -1, -1, ! -1, -1, -1, 56, 1348, -1, 59, 60, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 363, -1, -1, ! 366, 367, 3, 4, 5, 6, 7, 8, 9, -1, ! -1, -1, -1, -1, 15, -1, 833, 834, 835, 484, ! 485, -1, -1, 840, 841, -1, 843, -1, 29, -1, ! 31, 32, -1, -1, -1, -1, -1, 38, -1, -1, ! -1, -1, 43, -1, -1, 862, 47, -1, 865, 866, ! 867, 868, 869, 870, 871, 56, -1, 874, 59, 60, ! -1, -1, 63, -1, 881, -1, 3, 4, 5, 6, ! -1, -1, 73, -1, -1, -1, 1440, 1441, -1, 1443, ! -1, -1, 83, 1447, -1, -1, 903, -1, -1, -1, ! 91, -1, -1, -1, 95, 32, -1, -1, -1, 1463, ! 72, 73, 74, 75, 76, 77, 43, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, -1, -1, -1, 56, ! -1, -1, 59, 60, -1, -1, -1, -1, 494, -1, ! 496, 497, 498, -1, -1, -1, 73, -1, -1, -1, ! 1504, 1505, 1506, 1507, 1508, -1, 83, -1, -1, 614, ! -1, -1, 617, -1, 91, -1, -1, -1, 95, -1, ! 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, ! -1, -1, 15, -1, -1, -1, -1, -1, 643, -1, ! 4, 5, -1, 7, 8, 9, 29, -1, 31, 32, ! -1, 15, -1, -1, -1, 38, -1, -1, 1562, -1, ! 43, -1, -1, 668, 47, 29, -1, 31, 32, 674, ! -1, 676, 677, 56, 38, -1, 59, 60, 1035, 1036, ! 1037, -1, 65, 47, -1, -1, -1, -1, -1, -1, ! 73, -1, 56, -1, -1, 59, 60, -1, -1, -1, ! 83, -1, 707, -1, -1, -1, -1, -1, 91, 714, ! -1, 1615, 95, 1617, -1, -1, -1, -1, -1, 724, ! 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, 743, 744, ! 745, 746, -1, 748, 749, 750, 751, 752, 753, 754, ! 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, ! 765, 766, -1, -1, -1, -1, -1, -1, 1672, -1, ! -1, -1, -1, 1130, 1131, 1132, 1133, 1134, 1135, 1136, ! -1, 1138, -1, 1140, 1141, 1142, 1143, 1144, 694, 695, ! 696, 1148, -1, -1, -1, -1, -1, 1154, 1155, 1156, ! 1, 707, 3, 4, 5, 6, 7, 8, 9, 1713, ! 1714, 1715, 13, -1, 15, -1, -1, -1, -1, 824, ! -1, -1, 1726, -1, 1181, 26, -1, 28, -1, -1, ! -1, 32, -1, -1, -1, -1, -1, 38, 843, -1, ! -1, -1, 43, -1, -1, -1, 47, -1, 49, -1, ! -1, -1, 857, -1, -1, 56, -1, -1, 59, 60, ! 61, 62, 63, -1, 65, 66, 67, 68, 69, 70, ! 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, 793, 89, 90, ! 91, -1, 93, 94, 95, 96, 97, -1, -1, -1, ! -1, -1, 103, 104, -1, 14, -1, -1, 109, 110, ! 111, -1, 113, -1, 23, 24, -1, -1, -1, -1, ! -1, -1, 31, 32, -1, 34, -1, 833, 834, 835, ! -1, -1, -1, -1, -1, -1, -1, 843, -1, -1, ! -1, -1, -1, -1, -1, 950, -1, -1, -1, -1, ! 1307, 1308, 1309, 1310, 1311, 1312, -1, -1, 1315, 1316, ! 69, -1, 4, 5, -1, -1, 8, 9, -1, 3, ! 4, 5, 6, 15, 1331, 1332, 1333, 1334, 1335, -1, ! -1, -1, 987, 988, -1, -1, -1, 29, -1, 31, ! 32, 1348, -1, -1, -1, -1, 38, 1002, 32, 1004, ! -1, 1006, -1, -1, -1, 47, -1, -1, -1, 43, ! -1, -1, 1369, -1, 56, -1, -1, 59, 60, 128, ! -1, 130, 56, -1, -1, 59, 60, 933, 137, 138, ! -1, -1, -1, -1, -1, -1, -1, 146, 147, 73, ! -1, 150, 151, 152, 1049, 154, 155, 156, 157, 83, ! -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, ! -1, 95, 73, 74, 75, 76, 77, 78, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, 1082, -1, -1, ! -1, -1, -1, 1440, 1441, 1442, 1443, -1, -1, -1, ! 1447, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 1007, 1008, -1, -1, 1011, 1463, -1, -1, -1, ! -1, -1, -1, -1, -1, 1120, 1022, -1, -1, -1, ! -1, -1, 1028, 1029, 1030, -1, -1, 1, 1034, 3, ! 4, 5, 6, 7, 8, 9, -1, 246, 247, -1, ! -1, 15, -1, -1, -1, 1150, 1151, 1504, 1505, 1506, ! 1507, 1508, -1, -1, -1, 29, -1, 31, 32, 33, ! -1, 270, -1, -1, 38, -1, -1, 1172, -1, 43, ! -1, -1, -1, 47, 48, -1, 50, -1, -1, -1, ! -1, -1, 56, -1, -1, 59, 60, -1, -1, 63, ! -1, 65, -1, -1, -1, -1, -1, -1, -1, 73, ! -1, -1, -1, -1, 313, 1562, -1, -1, -1, 83, ! -1, -1, -1, 1218, 1219, -1, -1, 91, -1, -1, ! -1, 95, -1, -1, 1130, 1131, 1132, 1133, 1134, 1135, ! 1136, -1, -1, -1, 1140, -1, 1142, 1143, 1144, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 361, -1, 363, -1, -1, 366, 1615, -1, ! 1617, -1, -1, -1, -1, 4, 5, -1, -1, 8, ! 9, -1, -1, 1278, -1, -1, 15, -1, -1, -1, ! -1, -1, -1, -1, 3, 4, 5, 6, -1, -1, ! 29, -1, 31, 32, 1299, -1, 1301, -1, 1303, 38, ! 1305, -1, -1, -1, -1, 414, -1, -1, 47, -1, ! -1, -1, -1, 32, -1, 1672, -1, 56, -1, -1, ! 59, 60, -1, -1, 43, -1, 435, -1, 437, -1, ! -1, 1336, -1, -1, -1, -1, 445, 56, -1, 448, ! 59, 60, 1248, -1, -1, -1, -1, -1, -1, -1, ! 1256, 460, -1, -1, 73, 1360, 1713, 1714, 1715, -1, ! 1266, 1267, 1268, -1, 83, -1, -1, -1, -1, 1726, ! -1, -1, 91, -1, -1, -1, 95, 72, 73, 74, ! 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, ! 85, 86, 87, 1398, -1, -1, -1, -1, -1, -1, ! -1, 1307, 1308, 1309, 1310, 1311, 1312, -1, -1, 1315, ! 1316, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 1427, -1, -1, -1, 3, 4, 5, 6, ! -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, ! -1, -1, 551, 552, 1449, 15, -1, -1, -1, -1, ! -1, -1, -1, -1, 1459, 1460, -1, -1, 567, 29, ! -1, 31, 32, 33, -1, -1, 43, -1, 38, 39, ! -1, -1, -1, 43, -1, -1, -1, 47, 48, 56, ! 50, -1, 59, 60, 1489, -1, 56, -1, 65, 59, ! 60, -1, -1, 63, -1, 65, 73, -1, -1, -1, ! 609, -1, 611, 73, -1, -1, 83, -1, -1, -1, ! -1, -1, -1, 83, 91, -1, -1, -1, 95, -1, ! 1525, 91, -1, -1, -1, 95, -1, -1, -1, -1, ! -1, -1, -1, -1, 1440, 1441, -1, 1443, -1, -1, ! -1, 111, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 3, 4, 5, 6, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 1570, 1571, -1, -1, -1, ! -1, 680, -1, -1, -1, -1, -1, -1, -1, -1, ! 32, -1, 691, 692, -1, 694, 695, -1, -1, -1, ! -1, 43, 1597, -1, -1, -1, -1, -1, 1504, 1505, ! 1506, 1507, 1508, -1, 56, -1, -1, 59, 60, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, ! 1635, 83, -1, -1, -1, -1, -1, -1, -1, 91, ! -1, -1, -1, 95, 66, 67, 68, 69, 70, 71, ! 72, 73, 74, 75, 76, 77, 1562, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, -1, 1672, 777, -1, ! -1, -1, -1, -1, -1, 784, 785, -1, -1, -1, ! -1, -1, -1, -1, -1, 794, -1, -1, -1, -1, ! -1, -1, 1697, -1, 1, -1, 3, 4, 5, 6, ! 7, 8, 9, 10, 11, 12, -1, 14, 15, 16, ! 819, 18, 19, 20, 21, 22, 23, 24, 25, 26, ! 27, 28, 29, 30, 31, 32, 33, -1, 35, 36, ! 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, ! 47, 48, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, 61, -1, 63, 64, -1, -1, ! -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, ! -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, ! -1, -1, 89, 90, 91, -1, -1, -1, 95, -1, ! 97, -1, -1, -1, 903, -1, -1, -1, -1, -1, ! -1, -1, -1, 1808, 111, 112, -1, -1, -1, -1, ! -1, -1, -1, 922, 923, 924, 925, -1, -1, -1, ! -1, -1, -1, -1, 933, -1, -1, -1, 1, -1, ! 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ! -1, 14, 15, 16, -1, 18, 19, 20, 21, 22, ! 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, ! 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, ! 43, 44, 45, 46, 47, 48, -1, -1, 51, 52, ! 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, ! 63, 64, -1, -1, -1, -1, -1, 70, 1007, 1008, ! 73, -1, 1011, -1, -1, -1, -1, -1, 81, 82, ! 83, -1, -1, 1022, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, -1, 97, 1034, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 1, 112, ! 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ! 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, ! 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, ! 43, 44, 45, -1, 47, -1, 49, -1, 51, 52, ! 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, ! -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, ! 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, ! 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, 96, -1, -1, -1, -1, -1, 1, ! -1, 3, 4, 5, 6, 7, 8, 9, -1, 112, ! -1, -1, -1, 15, -1, -1, -1, -1, 1167, -1, ! -1, 1170, -1, -1, 1173, -1, -1, 29, -1, 31, ! 32, 33, -1, -1, -1, -1, 38, 39, -1, -1, ! -1, 43, -1, -1, -1, 47, 48, -1, 50, -1, ! -1, -1, -1, -1, 56, -1, -1, 59, 60, -1, ! -1, 63, -1, 65, 71, 72, 73, 74, 75, 76, ! 77, 73, 79, 80, 81, 82, 83, 84, 85, 86, ! 87, 83, -1, -1, -1, 1234, 1235, -1, 1237, 91, ! -1, -1, -1, 95, -1, -1, -1, -1, -1, 1248, ! -1, -1, -1, -1, -1, -1, -1, 1256, -1, 111, ! -1, -1, -1, -1, -1, -1, -1, 1266, 1267, -1, ! -1, -1, 1, -1, 3, 4, 5, 6, 7, 8, ! 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 1297, -1, ! 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, ! -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, ! 49, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, 61, -1, -1, 64, -1, -1, -1, -1, ! 1339, 70, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, ! 89, 90, 91, -1, -1, -1, 95, 96, -1, -1, ! -1, 1370, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 1, 112, 3, 4, 5, 6, 7, 8, ! 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, ! -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, ! -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, -1, -1, -1, 64, -1, -1, -1, -1, ! -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, 81, 82, 83, -1, -1, 1466, -1, 1468, ! 89, 90, 91, -1, -1, 1, 95, 3, 4, 5, ! 6, 7, 8, 9, 10, 11, 12, -1, 14, 15, ! -1, 110, -1, 112, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, ! 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, ! -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, 61, -1, 63, 64, -1, ! -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, ! -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, ! -1, -1, -1, 89, 90, 91, -1, -1, 1, 95, ! 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, ! -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, ! 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, ! 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, ! 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, ! -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, ! 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, ! 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, 96, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, ! 1, -1, 3, 4, 5, 6, -1, 8, 9, 10, ! 11, 12, -1, 14, 15, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, ! 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, ! 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, ! 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, ! 61, -1, -1, 64, -1, -1, -1, -1, -1, 70, ! -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, ! 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, ! 91, -1, -1, 1, 95, 3, 4, 5, 6, -1, ! 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, ! -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, ! 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, ! -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, 61, -1, -1, 64, -1, -1, -1, ! -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, ! -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, ! -1, 89, 90, 91, -1, -1, -1, 95, 96, 1, ! -1, 3, 4, 5, 6, -1, 8, 9, 10, 11, ! 12, -1, 14, 15, 112, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, ! -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, ! 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, ! 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, ! -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, ! 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, ! -1, -1, -1, 95, 1, -1, 3, 4, 5, 6, ! 102, 8, 9, 10, 11, 12, -1, 14, 15, -1, ! 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, ! 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, ! 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, 61, -1, -1, 64, -1, -1, ! -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, ! -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, ! -1, -1, 89, 90, 91, -1, -1, 1, 95, 3, ! 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, ! 14, 15, -1, -1, 111, 112, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, ! -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, ! 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, ! 54, 55, 56, -1, -1, 59, 60, 61, -1, -1, ! 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, ! -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, ! -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, ! 1, 95, 3, 4, 5, 6, -1, 8, 9, 10, ! 11, 12, -1, 14, 15, -1, -1, 111, 112, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, ! 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, ! 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, ! 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, ! 61, -1, -1, 64, -1, -1, -1, -1, -1, 70, ! -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, ! 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, ! 91, -1, -1, 1, 95, 3, 4, 5, 6, -1, ! 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, ! -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, ! 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, ! -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, -1, -1, 63, 64, -1, -1, -1, ! -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, ! -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, ! -1, 89, 90, 91, -1, -1, 1, 95, 3, 4, ! 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, ! 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, ! 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, ! 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, ! 55, 56, -1, -1, 59, 60, 61, -1, -1, 64, ! -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, ! -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, ! -1, -1, -1, -1, 89, 90, 91, -1, -1, 1, ! 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, ! 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, ! -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, ! 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, ! 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, ! -1, -1, 64, 65, -1, -1, -1, -1, 70, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, ! 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, ! -1, -1, 1, 95, 3, 4, 5, 6, -1, 8, ! 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, ! 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, ! -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, ! -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, -1, -1, -1, 64, -1, -1, -1, -1, ! -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, ! 89, 90, 91, -1, -1, 1, 95, 3, 4, 5, ! 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, ! -1, 110, -1, 112, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, ! 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, ! -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, -1, -1, -1, 64, -1, ! -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, ! -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, ! -1, -1, -1, 89, 90, 91, -1, -1, 1, 95, ! 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, ! -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, ! 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, ! 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, ! 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, ! -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, ! 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, ! 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, 1, 95, 3, 4, 5, 6, -1, 8, 9, ! 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, ! 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, ! 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, ! -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, ! 60, -1, -1, -1, 64, -1, -1, -1, -1, -1, ! 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, ! -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, ! 90, 91, -1, -1, -1, 95, 3, 4, 5, 6, ! -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, ! -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, ! 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, ! 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, -1, -1, -1, 64, -1, -1, ! -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, ! -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, ! -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, ! 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, ! 14, 15, -1, -1, -1, 112, 113, -1, -1, -1, ! -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, ! -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, ! 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, ! 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, ! 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, ! -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, ! -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, ! -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, ! 11, 12, -1, 14, 15, -1, -1, -1, 112, 113, ! -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, ! 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, ! 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, ! 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, ! -1, -1, -1, 64, -1, -1, -1, -1, -1, 70, ! -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, ! 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, ! 91, -1, -1, -1, 95, 3, 4, 5, 6, -1, ! 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, ! -1, 112, 113, -1, -1, -1, -1, -1, -1, -1, ! -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, ! 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, ! -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, -1, -1, -1, 64, -1, -1, -1, ! -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, ! -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, ! -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, ! 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, ! 15, -1, -1, -1, 112, 113, -1, -1, -1, -1, ! -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, ! 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, ! 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, ! 55, 56, -1, -1, 59, 60, -1, -1, -1, 64, ! -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, ! -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, ! -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, ! 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 112, 113, 3, ! 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, ! 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, ! 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, ! -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, ! 44, 45, 46, 47, 48, -1, -1, 51, 52, 53, ! 54, 55, 56, -1, -1, 59, 60, 61, -1, 63, ! 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, ! -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, ! -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, ! -1, 95, -1, 97, 3, 4, 5, 6, 7, 8, ! 9, 10, 11, 12, -1, 14, 15, 16, 112, 18, ! 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, ! 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, ! -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, ! -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, -1, -1, 63, 64, -1, -1, -1, -1, ! -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, ! 89, 90, 91, -1, -1, -1, 95, -1, 97, 3, ! 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, ! 14, 15, -1, 112, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, ! -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, ! 44, 45, -1, 47, -1, 49, -1, 51, 52, 53, ! 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, ! 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, ! -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, ! -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, ! -1, 95, 96, 3, 4, 5, 6, 7, 8, 9, ! 10, 11, 12, 13, 14, 15, -1, -1, 112, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, ! 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, ! 40, 41, 42, 43, 44, 45, -1, 47, -1, 49, ! -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, ! 60, -1, -1, -1, 64, -1, -1, -1, -1, -1, ! 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, ! -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, ! 90, 91, -1, -1, -1, 95, 96, 3, 4, 5, ! 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, ! -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, ! 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, ! -1, 47, -1, 49, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, ! -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, ! -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, ! 96, 3, 4, 5, 6, -1, 8, 9, 10, 11, ! 12, -1, 14, 15, -1, -1, 112, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, ! 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, ! 42, 43, 44, 45, -1, 47, -1, 49, -1, 51, ! 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, ! 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, ! -1, -1, -1, 95, 96, 3, 4, 5, 6, -1, ! 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, ! 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, ! 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, ! -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, -1, -1, -1, 64, -1, -1, -1, ! -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, ! -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, ! -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, ! 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, ! 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, ! 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, ! 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, ! 55, 56, -1, -1, 59, 60, -1, -1, -1, 64, ! -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, ! -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, ! -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, ! 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, ! 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, ! 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, ! 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, ! 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, ! -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, ! 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, ! -1, -1, -1, 95, 3, 4, 5, 6, -1, 8, ! 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, ! 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, ! -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, ! -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, -1, -1, 63, 64, -1, -1, -1, -1, ! -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, ! 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, ! 6, 7, 8, 9, 10, 11, 12, -1, 14, 15, ! -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, ! 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, ! -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, ! -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, ! -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, ! 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, ! -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, ! 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, ! 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, ! 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, ! -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, ! 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, ! 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, 3, 4, 5, 6, -1, 8, 9, ! 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, ! 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, ! 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, ! -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, ! 60, -1, -1, -1, 64, -1, -1, -1, -1, -1, ! 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, ! -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, ! 90, 91, -1, -1, -1, 95, 3, 4, 5, 6, ! -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, ! -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, ! 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, ! 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, 61, -1, -1, -1, -1, -1, ! -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, ! -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, ! -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, ! 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, ! 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, ! -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, ! 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, ! 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 70, -1, -1, 73, ! -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, ! -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, ! -1, 95, 96, 3, 4, 5, 6, -1, 8, 9, ! 10, 11, 12, -1, 14, 15, -1, -1, 112, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, ! 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, ! 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, ! -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, ! 60, -1, -1, -1, 64, -1, -1, -1, -1, -1, ! 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, ! -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, ! 90, 91, -1, -1, -1, 95, 3, 4, 5, 6, ! -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, ! -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, ! 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, ! 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, ! -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, ! -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, ! 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, ! 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, ! -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, ! 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, ! 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, ! 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, ! -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, ! -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, ! -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, ! 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, ! 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, ! 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, ! 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, ! -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, ! 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, ! 91, -1, -1, -1, 95, 3, 4, 5, 6, -1, ! 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, ! -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, ! 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, ! -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, ! -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, ! -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, ! 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, ! 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, ! 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, ! 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, ! 55, 56, -1, -1, 59, 60, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, ! -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, ! -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, ! 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, ! 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, ! -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, ! 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, ! 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, ! -1, 73, 3, 4, 5, 6, 7, 8, 9, 81, ! 82, 83, -1, -1, 15, -1, -1, 89, 90, 91, ! -1, -1, -1, 95, -1, -1, -1, -1, 29, -1, ! 31, 32, -1, -1, -1, -1, -1, 38, -1, -1, ! 112, -1, 43, -1, -1, -1, 47, -1, 3, 4, ! 5, 6, 7, 8, 9, 56, -1, -1, 59, 60, ! 15, -1, 63, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 73, -1, 29, -1, 31, 32, -1, -1, ! -1, -1, 83, 38, -1, -1, -1, -1, 43, -1, ! 91, -1, 47, -1, 95, -1, -1, -1, -1, -1, ! -1, 56, -1, -1, 59, 60, -1, -1, -1, 3, ! 4, 5, 6, 7, 8, 9, -1, -1, 73, -1, ! -1, 15, -1, -1, -1, -1, -1, -1, 83, -1, ! -1, -1, -1, -1, -1, 29, 91, 31, 32, -1, ! 95, -1, -1, -1, 38, -1, -1, -1, -1, 43, ! -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, ! -1, -1, 56, -1, -1, 59, 60, -1, -1, -1, ! -1, 70, 71, 72, 73, 74, 75, 76, 77, 73, ! 79, 80, 81, 82, 83, 84, 85, 86, 87, 83, ! -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, ! -1, 95, 66, 67, 68, 69, 70, 71, 72, 73, ! 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ! 84, 85, 86, 87, 66, 67, 68, 69, 70, 71, ! 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, -1, -1, -1, 113, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 62, -1, -1, 109, 66, 67, ! 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ! 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ! 62, -1, -1, -1, 66, 67, 68, 69, 70, 71, ! 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, 65, 66, 67, 68, ! 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, ! 79, 80, 81, 82, 83, 84, 85, 86, 87, 66, ! 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ! 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, ! 87 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ ! #line 3 "/usr/lib/bison.simple" ! /* This file comes from bison-1.28. */ /* Skeleton output parser for bison, ! Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by --- 326,4369 ---- #define YYFLAG -32768 #define YYNTBASE 114 + /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ #define YYTRANSLATE(x) ((unsigned)(x) <= 343 ? yytranslate[x] : 407) ! /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ ! static const char yytranslate[] = ! { ! 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 112, 2, 2, 2, 85, 73, 2, ! 95, 110, 83, 81, 62, 82, 94, 84, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 65, 63, ! 77, 67, 78, 68, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 96, 2, 113, 72, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 61, 71, 111, 91, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 1, 3, 4, 5, ! 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, ! 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, ! 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, ! 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, ! 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, ! 56, 57, 58, 59, 60, 64, 66, 69, 70, 74, ! 75, 76, 79, 80, 86, 87, 88, 89, 90, 92, ! 93, 97, 98, 99, 100, 101, 102, 103, 104, 105, ! 106, 107, 108, 109 }; ! #if YYDEBUG ! static const short yyprhs[] = ! { ! 0, 0, 1, 3, 4, 7, 10, 12, 13, 14, ! 15, 17, 19, 20, 23, 26, 28, 29, 33, 35, ! 41, 46, 52, 57, 58, 65, 66, 72, 74, 77, ! 79, 82, 83, 90, 93, 97, 101, 105, 109, 114, ! 115, 121, 124, 128, 130, 132, 135, 138, 140, 143, ! 144, 150, 154, 156, 158, 160, 164, 166, 167, 170, ! 173, 177, 179, 183, 185, 189, 191, 195, 198, 201, ! 204, 206, 208, 214, 219, 222, 225, 229, 233, 236, ! 239, 243, 247, 250, 253, 256, 259, 262, 265, 267, ! 269, 271, 273, 274, 276, 279, 280, 282, 283, 290, ! 294, 298, 302, 303, 312, 318, 319, 329, 336, 337, ! 346, 352, 353, 363, 370, 373, 376, 378, 381, 383, ! 390, 399, 404, 411, 418, 423, 426, 428, 431, 434, ! 436, 439, 441, 444, 447, 452, 455, 458, 459, 460, ! 462, 466, 469, 473, 475, 480, 483, 488, 491, 496, ! 499, 501, 503, 505, 507, 509, 511, 513, 515, 517, ! 519, 521, 523, 524, 531, 532, 539, 540, 546, 547, ! 553, 554, 562, 563, 571, 572, 579, 580, 587, 588, ! 589, 595, 601, 603, 605, 611, 617, 618, 620, 622, ! 623, 625, 627, 631, 633, 635, 638, 640, 644, 646, ! 648, 650, 652, 654, 656, 658, 660, 664, 666, 670, ! 671, 673, 675, 676, 684, 686, 688, 692, 697, 701, ! 705, 709, 713, 717, 719, 721, 723, 726, 729, 732, ! 735, 738, 741, 744, 749, 752, 757, 760, 764, 768, ! 773, 778, 784, 790, 797, 800, 805, 811, 814, 817, ! 821, 825, 829, 831, 835, 838, 842, 847, 849, 852, ! 858, 860, 864, 868, 872, 876, 880, 884, 888, 892, ! 896, 900, 904, 908, 912, 916, 920, 924, 928, 932, ! 936, 942, 946, 950, 952, 955, 957, 961, 965, 969, ! 973, 977, 981, 985, 989, 993, 997, 1001, 1005, 1009, ! 1013, 1017, 1021, 1025, 1029, 1035, 1039, 1043, 1045, 1048, ! 1052, 1056, 1058, 1060, 1062, 1064, 1066, 1067, 1073, 1079, ! 1085, 1091, 1097, 1099, 1101, 1103, 1105, 1108, 1110, 1113, ! 1116, 1120, 1125, 1130, 1132, 1134, 1136, 1140, 1142, 1144, ! 1146, 1148, 1150, 1154, 1158, 1162, 1163, 1168, 1173, 1176, ! 1181, 1184, 1191, 1196, 1199, 1202, 1204, 1209, 1211, 1219, ! 1227, 1235, 1243, 1248, 1253, 1256, 1259, 1262, 1264, 1269, ! 1272, 1275, 1281, 1285, 1288, 1291, 1297, 1301, 1307, 1311, ! 1316, 1323, 1326, 1328, 1331, 1333, 1336, 1338, 1340, 1342, ! 1345, 1346, 1349, 1352, 1356, 1360, 1364, 1367, 1370, 1373, ! 1375, 1377, 1379, 1382, 1385, 1388, 1391, 1393, 1395, 1397, ! 1399, 1402, 1405, 1409, 1413, 1417, 1422, 1424, 1427, 1430, ! 1432, 1434, 1437, 1440, 1443, 1445, 1448, 1451, 1455, 1457, ! 1460, 1463, 1465, 1467, 1469, 1471, 1473, 1475, 1477, 1482, ! 1487, 1492, 1497, 1499, 1501, 1503, 1505, 1509, 1511, 1515, ! 1517, 1521, 1522, 1527, 1528, 1535, 1539, 1540, 1545, 1547, ! 1551, 1555, 1556, 1561, 1565, 1566, 1568, 1570, 1573, 1580, ! 1582, 1586, 1587, 1589, 1594, 1601, 1606, 1608, 1610, 1612, ! 1614, 1616, 1620, 1621, 1624, 1626, 1629, 1633, 1638, 1640, ! 1642, 1646, 1651, 1655, 1661, 1665, 1669, 1673, 1674, 1678, ! 1682, 1686, 1687, 1690, 1693, 1694, 1701, 1702, 1708, 1711, ! 1714, 1717, 1718, 1719, 1720, 1732, 1734, 1735, 1737, 1738, ! 1740, 1742, 1745, 1748, 1751, 1754, 1757, 1760, 1764, 1769, ! 1773, 1776, 1780, 1785, 1787, 1790, 1792, 1795, 1798, 1801, ! 1804, 1808, 1812, 1815, 1816, 1819, 1823, 1825, 1830, 1832, ! 1836, 1838, 1840, 1843, 1846, 1850, 1854, 1855, 1857, 1861, ! 1864, 1867, 1869, 1872, 1875, 1878, 1881, 1884, 1887, 1890, ! 1892, 1895, 1898, 1902, 1904, 1907, 1910, 1915, 1920, 1923, ! 1925, 1931, 1936, 1938, 1939, 1941, 1945, 1946, 1948, 1952, ! 1954, 1956, 1958, 1960, 1965, 1970, 1975, 1980, 1985, 1989, ! 1994, 1999, 2004, 2009, 2013, 2016, 2018, 2020, 2024, 2026, ! 2030, 2033, 2035, 2042, 2043, 2046, 2048, 2051, 2053, 2056, ! 2060, 2064, 2066, 2070, 2072, 2075, 2079, 2083, 2086, 2089, ! 2093, 2095, 2100, 2105, 2109, 2113, 2116, 2118, 2120, 2123, ! 2125, 2127, 2130, 2133, 2135, 2138, 2142, 2146, 2149, 2152, ! 2156, 2158, 2162, 2166, 2169, 2172, 2176, 2178, 2183, 2187, ! 2192, 2196, 2198, 2201, 2204, 2207, 2210, 2213, 2216, 2219, ! 2221, 2224, 2229, 2234, 2237, 2239, 2241, 2243, 2245, 2248, ! 2253, 2257, 2261, 2264, 2267, 2270, 2273, 2275, 2278, 2281, ! 2284, 2287, 2291, 2293, 2296, 2300, 2305, 2308, 2311, 2314, ! 2317, 2320, 2323, 2328, 2331, 2333, 2336, 2339, 2343, 2345, ! 2349, 2352, 2356, 2359, 2362, 2366, 2368, 2372, 2377, 2379, ! 2382, 2386, 2389, 2392, 2394, 2398, 2401, 2404, 2406, 2409, ! 2413, 2415, 2419, 2426, 2431, 2436, 2440, 2446, 2450, 2454, ! 2458, 2461, 2463, 2465, 2468, 2471, 2474, 2475, 2477, 2479, ! 2482, 2486, 2487, 2492, 2494, 2495, 2496, 2502, 2504, 2505, ! 2509, 2511, 2514, 2516, 2519, 2520, 2525, 2527, 2528, 2529, ! 2535, 2536, 2537, 2545, 2546, 2547, 2548, 2549, 2562, 2563, ! 2564, 2572, 2573, 2579, 2580, 2588, 2589, 2594, 2597, 2600, ! 2603, 2607, 2614, 2623, 2634, 2643, 2656, 2667, 2678, 2683, ! 2687, 2690, 2693, 2695, 2697, 2699, 2701, 2703, 2704, 2705, ! 2711, 2712, 2713, 2719, 2721, 2724, 2725, 2726, 2727, 2733, ! 2735, 2737, 2741, 2745, 2748, 2751, 2754, 2757, 2760, 2762, ! 2765, 2766, 2768, 2769, 2771, 2773, 2774, 2776, 2778, 2782, ! 2787, 2795, 2797, 2801, 2802, 2804, 2806, 2808, 2811, 2814, ! 2817, 2819, 2822, 2825, 2826, 2830, 2832, 2834, 2836, 2839, ! 2842, 2845, 2850, 2853, 2856, 2859, 2862, 2865, 2868, 2870, ! 2873, 2875, 2878, 2880, 2882, 2883, 2884, 2886, 2892, 2896, ! 2897, 2901, 2902, 2903, 2908, 2911, 2913, 2915, 2917, 2921, ! 2922, 2926, 2930, 2934, 2936, 2937, 2941, 2945, 2949, 2953, ! 2957, 2961, 2965, 2969, 2973, 2977, 2981, 2985, 2989, 2993, ! 2997, 3001, 3005, 3009, 3013, 3017, 3021, 3025, 3029, 3034, ! 3038, 3042, 3046, 3050, 3055, 3059, 3063, 3069, 3075, 3080, ! 3084 }; ! static const short yyrhs[] = ! { ! -1, 115, 0, 0, 116, 122, 0, 115, 122, 0, ! 115, 0, 0, 0, 0, 33, 0, 28, 0, 0, ! 123, 124, 0, 155, 152, 0, 149, 0, 0, 57, ! 125, 146, 0, 146, 0, 121, 95, 223, 110, 63, ! 0, 136, 61, 117, 111, 0, 136, 118, 155, 119, ! 152, 0, 136, 118, 149, 119, 0, 0, 46, 170, ! 61, 126, 117, 111, 0, 0, 46, 61, 127, 117, ! 111, 0, 128, 0, 130, 63, 0, 132, 0, 120, ! 124, 0, 0, 46, 170, 67, 129, 135, 63, 0, ! 48, 315, 0, 48, 329, 315, 0, 48, 329, 213, ! 0, 48, 134, 170, 0, 48, 329, 170, 0, 48, ! 329, 134, 170, 0, 0, 48, 46, 133, 135, 63, ! 0, 60, 56, 0, 134, 60, 56, 0, 213, 0, ! 315, 0, 329, 315, 0, 329, 213, 0, 99, 0, ! 136, 99, 0, 0, 50, 77, 138, 141, 78, 0, ! 50, 77, 78, 0, 137, 0, 139, 0, 145, 0, ! 141, 62, 145, 0, 170, 0, 0, 275, 142, 0, ! 47, 142, 0, 137, 275, 142, 0, 143, 0, 143, ! 67, 229, 0, 393, 0, 393, 67, 208, 0, 144, ! 0, 144, 67, 191, 0, 140, 147, 0, 140, 1, ! 0, 155, 152, 0, 148, 0, 146, 0, 136, 118, ! 155, 119, 152, 0, 136, 118, 148, 119, 0, 120, ! 147, 0, 243, 63, 0, 233, 242, 63, 0, 230, ! 241, 63, 0, 267, 63, 0, 243, 63, 0, 233, ! 242, 63, 0, 230, 241, 63, 0, 233, 63, 0, ! 173, 63, 0, 230, 63, 0, 1, 63, 0, 1, ! 111, 0, 1, 109, 0, 63, 0, 396, 0, 224, ! 0, 166, 0, 0, 165, 0, 165, 63, 0, 0, ! 109, 0, 0, 167, 150, 406, 61, 154, 199, 0, ! 161, 151, 153, 0, 161, 151, 364, 0, 161, 151, ! 1, 0, 0, 320, 5, 95, 157, 384, 110, 302, ! 399, 0, 320, 5, 49, 302, 399, 0, 0, 329, ! 320, 5, 95, 158, 384, 110, 302, 399, 0, 329, ! 320, 5, 49, 302, 399, 0, 0, 320, 186, 95, ! 159, 384, 110, 302, 399, 0, 320, 186, 49, 302, ! 399, 0, 0, 329, 320, 186, 95, 160, 384, 110, ! 302, 399, 0, 329, 320, 186, 49, 302, 399, 0, ! 230, 227, 0, 233, 312, 0, 312, 0, 233, 156, ! 0, 156, 0, 5, 95, 384, 110, 302, 399, 0, ! 95, 5, 110, 95, 384, 110, 302, 399, 0, 5, ! 49, 302, 399, 0, 95, 5, 110, 49, 302, 399, ! 0, 186, 95, 384, 110, 302, 399, 0, 186, 49, ! 302, 399, 0, 233, 162, 0, 162, 0, 230, 227, ! 0, 233, 312, 0, 312, 0, 233, 156, 0, 156, ! 0, 26, 3, 0, 164, 260, 0, 164, 95, 201, ! 110, 0, 164, 49, 0, 65, 168, 0, 0, 0, ! 169, 0, 168, 62, 169, 0, 168, 1, 0, 95, ! 201, 110, 0, 49, 0, 171, 95, 201, 110, 0, ! 171, 49, 0, 308, 95, 201, 110, 0, 308, 49, ! 0, 322, 95, 201, 110, 0, 322, 49, 0, 1, ! 0, 3, 0, 4, 0, 5, 0, 59, 0, 60, ! 0, 3, 0, 59, 0, 60, 0, 106, 0, 105, ! 0, 107, 0, 0, 50, 182, 239, 63, 174, 183, ! 0, 0, 50, 182, 230, 227, 175, 183, 0, 0, ! 50, 182, 312, 176, 183, 0, 0, 50, 182, 156, ! 177, 183, 0, 0, 7, 50, 182, 239, 63, 178, ! 183, 0, 0, 7, 50, 182, 230, 227, 179, 183, ! 0, 0, 7, 50, 182, 312, 180, 183, 0, 0, ! 7, 50, 182, 156, 181, 183, 0, 0, 0, 59, ! 77, 189, 188, 187, 0, 4, 77, 189, 188, 187, ! 0, 186, 0, 184, 0, 170, 77, 189, 78, 187, ! 0, 5, 77, 189, 188, 187, 0, 0, 78, 0, ! 80, 0, 0, 190, 0, 191, 0, 190, 62, 191, ! 0, 229, 0, 59, 0, 329, 59, 0, 208, 0, ! 320, 50, 170, 0, 82, 0, 81, 0, 89, 0, ! 90, 0, 112, 0, 200, 0, 207, 0, 49, 0, ! 95, 193, 110, 0, 49, 0, 95, 197, 110, 0, ! 0, 197, 0, 1, 0, 0, 374, 227, 244, 253, ! 67, 198, 261, 0, 193, 0, 111, 0, 337, 335, ! 111, 0, 337, 335, 1, 111, 0, 337, 1, 111, ! 0, 207, 62, 207, 0, 207, 62, 1, 0, 200, ! 62, 207, 0, 200, 62, 1, 0, 207, 0, 200, ! 0, 218, 0, 120, 206, 0, 83, 206, 0, 73, ! 206, 0, 91, 206, 0, 192, 206, 0, 70, 170, ! 0, 236, 202, 0, 236, 95, 229, 110, 0, 237, ! 202, 0, 237, 95, 229, 110, 0, 220, 301, 0, ! 220, 301, 204, 0, 220, 203, 301, 0, 220, 203, ! 301, 204, 0, 220, 95, 229, 110, 0, 220, 95, ! 229, 110, 204, 0, 220, 203, 95, 229, 110, 0, ! 220, 203, 95, 229, 110, 204, 0, 221, 206, 0, ! 221, 96, 113, 206, 0, 221, 96, 193, 113, 206, ! 0, 35, 206, 0, 36, 206, 0, 95, 201, 110, ! 0, 61, 201, 111, 0, 95, 201, 110, 0, 49, ! 0, 95, 239, 110, 0, 67, 261, 0, 95, 229, ! 110, 0, 205, 95, 229, 110, 0, 202, 0, 205, ! 202, 0, 205, 61, 262, 273, 111, 0, 206, 0, ! 207, 86, 207, 0, 207, 87, 207, 0, 207, 81, ! 207, 0, 207, 82, 207, 0, 207, 83, 207, 0, ! 207, 84, 207, 0, 207, 85, 207, 0, 207, 79, ! 207, 0, 207, 80, 207, 0, 207, 76, 207, 0, ! 207, 77, 207, 0, 207, 78, 207, 0, 207, 75, ! 207, 0, 207, 74, 207, 0, 207, 73, 207, 0, ! 207, 71, 207, 0, 207, 72, 207, 0, 207, 70, ! 207, 0, 207, 69, 207, 0, 207, 68, 379, 65, ! 207, 0, 207, 67, 207, 0, 207, 66, 207, 0, ! 64, 0, 64, 207, 0, 206, 0, 208, 86, 208, ! 0, 208, 87, 208, 0, 208, 81, 208, 0, 208, ! 82, 208, 0, 208, 83, 208, 0, 208, 84, 208, ! 0, 208, 85, 208, 0, 208, 79, 208, 0, 208, ! 80, 208, 0, 208, 76, 208, 0, 208, 77, 208, ! 0, 208, 75, 208, 0, 208, 74, 208, 0, 208, ! 73, 208, 0, 208, 71, 208, 0, 208, 72, 208, ! 0, 208, 70, 208, 0, 208, 69, 208, 0, 208, ! 68, 379, 65, 208, 0, 208, 67, 208, 0, 208, ! 66, 208, 0, 64, 0, 64, 208, 0, 91, 394, ! 170, 0, 91, 394, 184, 0, 211, 0, 405, 0, ! 3, 0, 59, 0, 60, 0, 0, 6, 77, 210, ! 189, 188, 0, 405, 77, 210, 189, 188, 0, 50, ! 170, 77, 189, 188, 0, 50, 6, 77, 189, 188, ! 0, 50, 405, 77, 189, 188, 0, 209, 0, 4, ! 0, 5, 0, 215, 0, 254, 215, 0, 209, 0, ! 83, 214, 0, 73, 214, 0, 95, 214, 110, 0, ! 3, 77, 189, 188, 0, 60, 77, 190, 188, 0, ! 314, 0, 209, 0, 216, 0, 95, 214, 110, 0, ! 209, 0, 10, 0, 222, 0, 223, 0, 11, 0, ! 95, 193, 110, 0, 95, 214, 110, 0, 95, 1, ! 110, 0, 0, 95, 219, 340, 110, 0, 209, 95, ! 201, 110, 0, 209, 49, 0, 218, 95, 201, 110, ! 0, 218, 49, 0, 37, 95, 207, 62, 229, 110, ! 0, 218, 96, 193, 113, 0, 218, 89, 0, 218, ! 90, 0, 42, 0, 9, 95, 201, 110, 0, 318, ! 0, 52, 77, 229, 78, 95, 193, 110, 0, 53, ! 77, 229, 78, 95, 193, 110, 0, 54, 77, 229, ! 78, 95, 193, 110, 0, 55, 77, 229, 78, 95, ! 193, 110, 0, 51, 95, 193, 110, 0, 51, 95, ! 229, 110, 0, 329, 3, 0, 329, 211, 0, 329, ! 405, 0, 317, 0, 317, 95, 201, 110, 0, 317, ! 49, 0, 225, 212, 0, 225, 212, 95, 201, 110, ! 0, 225, 212, 49, 0, 225, 213, 0, 225, 317, ! 0, 225, 213, 95, 201, 110, 0, 225, 213, 49, ! 0, 225, 317, 95, 201, 110, 0, 225, 317, 49, ! 0, 225, 91, 8, 49, 0, 225, 8, 56, 91, ! 8, 49, 0, 225, 1, 0, 41, 0, 329, 41, ! 0, 40, 0, 329, 221, 0, 44, 0, 45, 0, ! 12, 0, 223, 12, 0, 0, 218, 94, 0, 218, ! 93, 0, 239, 241, 63, 0, 230, 241, 63, 0, ! 233, 242, 63, 0, 230, 63, 0, 233, 63, 0, ! 120, 226, 0, 306, 0, 312, 0, 49, 0, 228, ! 49, 0, 234, 333, 0, 303, 333, 0, 239, 333, ! 0, 234, 0, 303, 0, 234, 0, 231, 0, 233, ! 239, 0, 239, 232, 0, 239, 235, 232, 0, 233, ! 239, 232, 0, 233, 239, 235, 0, 233, 239, 235, ! 232, 0, 7, 0, 232, 240, 0, 232, 7, 0, ! 303, 0, 7, 0, 233, 9, 0, 233, 7, 0, ! 233, 254, 0, 239, 0, 303, 239, 0, 239, 235, ! 0, 303, 239, 235, 0, 240, 0, 235, 240, 0, ! 235, 254, 0, 254, 0, 14, 0, 30, 0, 29, ! 0, 267, 0, 8, 0, 309, 0, 238, 95, 193, ! 110, 0, 238, 95, 229, 110, 0, 31, 95, 193, ! 110, 0, 31, 95, 229, 110, 0, 8, 0, 9, ! 0, 267, 0, 249, 0, 241, 62, 245, 0, 250, ! 0, 242, 62, 245, 0, 251, 0, 243, 62, 245, ! 0, 0, 121, 95, 223, 110, 0, 0, 227, 244, ! 253, 67, 246, 261, 0, 227, 244, 253, 0, 0, ! 253, 67, 248, 261, 0, 253, 0, 227, 244, 247, ! 0, 312, 244, 247, 0, 0, 312, 244, 252, 247, ! 0, 156, 244, 253, 0, 0, 254, 0, 255, 0, ! 254, 255, 0, 32, 95, 95, 256, 110, 110, 0, ! 257, 0, 256, 62, 257, 0, 0, 258, 0, 258, ! 95, 3, 110, 0, 258, 95, 3, 62, 201, 110, ! 0, 258, 95, 201, 110, 0, 170, 0, 7, 0, ! 8, 0, 9, 0, 170, 0, 259, 62, 170, 0, ! 0, 67, 261, 0, 207, 0, 61, 111, 0, 61, ! 262, 111, 0, 61, 262, 62, 111, 0, 1, 0, ! 261, 0, 262, 62, 261, 0, 96, 207, 113, 261, ! 0, 170, 65, 261, 0, 262, 62, 170, 65, 261, ! 0, 104, 151, 153, 0, 104, 151, 364, 0, 104, ! 151, 1, 0, 0, 264, 263, 152, 0, 103, 207, ! 109, 0, 103, 1, 109, 0, 0, 266, 265, 0, ! 266, 1, 0, 0, 15, 170, 61, 268, 298, 111, ! 0, 0, 15, 61, 269, 298, 111, 0, 15, 170, ! 0, 15, 327, 0, 47, 322, 0, 0, 0, 0, ! 279, 280, 61, 270, 285, 111, 253, 271, 266, 272, ! 264, 0, 278, 0, 0, 62, 0, 0, 62, 0, ! 38, 0, 275, 7, 0, 275, 8, 0, 275, 9, ! 0, 275, 38, 0, 275, 254, 0, 275, 170, 0, ! 275, 320, 170, 0, 275, 329, 320, 170, 0, 275, ! 329, 170, 0, 275, 185, 0, 275, 320, 185, 0, ! 275, 329, 320, 185, 0, 276, 0, 275, 172, 0, ! 277, 0, 276, 61, 0, 276, 65, 0, 277, 61, ! 0, 277, 65, 0, 275, 172, 61, 0, 275, 172, ! 65, 0, 275, 61, 0, 0, 65, 394, 0, 65, ! 394, 281, 0, 282, 0, 281, 62, 394, 282, 0, ! 283, 0, 284, 394, 283, 0, 322, 0, 308, 0, ! 39, 394, 0, 7, 394, 0, 284, 39, 394, 0, ! 284, 7, 394, 0, 0, 287, 0, 285, 286, 287, ! 0, 285, 286, 0, 39, 65, 0, 288, 0, 287, ! 288, 0, 289, 63, 0, 289, 111, 0, 163, 65, ! 0, 163, 97, 0, 163, 26, 0, 163, 61, 0, ! 63, 0, 120, 288, 0, 140, 288, 0, 140, 230, ! 63, 0, 396, 0, 230, 290, 0, 233, 291, 0, ! 312, 244, 253, 260, 0, 156, 244, 253, 260, 0, ! 65, 207, 0, 1, 0, 233, 162, 244, 253, 260, ! 0, 162, 244, 253, 260, 0, 130, 0, 0, 292, ! 0, 290, 62, 293, 0, 0, 295, 0, 291, 62, ! 297, 0, 294, 0, 295, 0, 296, 0, 297, 0, ! 306, 244, 253, 260, 0, 4, 65, 207, 253, 0, ! 312, 244, 253, 260, 0, 156, 244, 253, 260, 0, ! 3, 65, 207, 253, 0, 65, 207, 253, 0, 306, ! 244, 253, 260, 0, 4, 65, 207, 253, 0, 312, ! 244, 253, 260, 0, 3, 65, 207, 253, 0, 65, ! 207, 253, 0, 299, 274, 0, 274, 0, 300, 0, ! 299, 62, 300, 0, 170, 0, 170, 67, 207, 0, ! 374, 330, 0, 374, 0, 95, 229, 110, 96, 193, ! 113, 0, 0, 302, 9, 0, 9, 0, 303, 9, ! 0, 254, 0, 303, 254, 0, 95, 201, 110, 0, ! 95, 384, 110, 0, 49, 0, 95, 1, 110, 0, ! 306, 0, 254, 306, 0, 83, 303, 305, 0, 73, ! 303, 305, 0, 83, 305, 0, 73, 305, 0, 328, ! 302, 305, 0, 307, 0, 307, 304, 302, 399, 0, ! 307, 96, 193, 113, 0, 307, 96, 113, 0, 95, ! 305, 110, 0, 320, 319, 0, 319, 0, 319, 0, ! 329, 319, 0, 308, 0, 310, 0, 329, 310, 0, ! 320, 319, 0, 312, 0, 254, 312, 0, 83, 303, ! 311, 0, 73, 303, 311, 0, 83, 311, 0, 73, ! 311, 0, 328, 302, 311, 0, 217, 0, 83, 303, ! 311, 0, 73, 303, 311, 0, 83, 313, 0, 73, ! 313, 0, 328, 302, 311, 0, 314, 0, 217, 304, ! 302, 399, 0, 95, 313, 110, 0, 217, 96, 193, ! 113, 0, 217, 96, 113, 0, 316, 0, 329, 316, ! 0, 329, 209, 0, 320, 216, 0, 320, 213, 0, ! 320, 212, 0, 320, 209, 0, 320, 212, 0, 316, ! 0, 329, 316, 0, 239, 95, 201, 110, 0, 239, ! 95, 214, 110, 0, 239, 228, 0, 4, 0, 5, ! 0, 184, 0, 321, 0, 320, 321, 0, 320, 50, ! 326, 56, 0, 320, 3, 56, 0, 320, 59, 56, ! 0, 4, 56, 0, 5, 56, 0, 60, 56, 0, ! 184, 56, 0, 323, 0, 329, 323, 0, 324, 170, ! 0, 324, 184, 0, 324, 326, 0, 324, 50, 326, ! 0, 325, 0, 324, 325, 0, 324, 326, 56, 0, ! 324, 50, 326, 56, 0, 4, 56, 0, 5, 56, ! 0, 184, 56, 0, 59, 56, 0, 3, 56, 0, ! 60, 56, 0, 170, 77, 189, 188, 0, 329, 319, ! 0, 310, 0, 329, 310, 0, 320, 83, 0, 329, ! 320, 83, 0, 56, 0, 83, 302, 330, 0, 83, ! 302, 0, 73, 302, 330, 0, 73, 302, 0, 328, ! 302, 0, 328, 302, 330, 0, 331, 0, 96, 193, ! 113, 0, 331, 96, 193, 113, 0, 333, 0, 254, ! 333, 0, 83, 303, 332, 0, 83, 332, 0, 83, ! 303, 0, 83, 0, 73, 303, 332, 0, 73, 332, ! 0, 73, 303, 0, 73, 0, 328, 302, 0, 328, ! 302, 332, 0, 334, 0, 95, 332, 110, 0, 334, ! 95, 384, 110, 302, 399, 0, 334, 49, 302, 399, ! 0, 334, 96, 193, 113, 0, 334, 96, 113, 0, ! 95, 385, 110, 302, 399, 0, 205, 302, 399, 0, ! 228, 302, 399, 0, 96, 193, 113, 0, 96, 113, ! 0, 348, 0, 336, 0, 335, 348, 0, 335, 336, ! 0, 1, 63, 0, 0, 338, 0, 339, 0, 338, ! 339, 0, 34, 259, 63, 0, 0, 406, 61, 341, ! 199, 0, 340, 0, 0, 0, 16, 344, 195, 345, ! 346, 0, 342, 0, 0, 347, 406, 349, 0, 342, ! 0, 406, 349, 0, 226, 0, 193, 63, 0, 0, ! 343, 17, 350, 346, 0, 343, 0, 0, 0, 18, ! 351, 195, 352, 346, 0, 0, 0, 19, 353, 346, ! 18, 354, 194, 63, 0, 0, 0, 0, 0, 20, ! 355, 95, 377, 356, 196, 63, 357, 379, 110, 358, ! 346, 0, 0, 0, 21, 359, 95, 197, 110, 360, ! 346, 0, 0, 22, 207, 65, 361, 348, 0, 0, ! 22, 207, 13, 207, 65, 362, 348, 0, 0, 23, ! 65, 363, 348, 0, 24, 63, 0, 25, 63, 0, ! 26, 63, 0, 26, 193, 63, 0, 121, 378, 95, ! 223, 110, 63, 0, 121, 378, 95, 223, 65, 380, ! 110, 63, 0, 121, 378, 95, 223, 65, 380, 65, ! 380, 110, 63, 0, 121, 378, 95, 223, 56, 380, ! 110, 63, 0, 121, 378, 95, 223, 65, 380, 65, ! 380, 65, 383, 110, 63, 0, 121, 378, 95, 223, ! 56, 380, 65, 383, 110, 63, 0, 121, 378, 95, ! 223, 65, 380, 56, 383, 110, 63, 0, 27, 83, ! 193, 63, 0, 27, 170, 63, 0, 376, 348, 0, ! 376, 111, 0, 63, 0, 367, 0, 132, 0, 131, ! 0, 128, 0, 0, 0, 97, 365, 153, 366, 370, ! 0, 0, 0, 97, 368, 342, 369, 370, 0, 371, ! 0, 370, 371, 0, 0, 0, 0, 98, 372, 375, ! 373, 342, 0, 234, 0, 303, 0, 95, 13, 110, ! 0, 95, 393, 110, 0, 3, 65, 0, 59, 65, ! 0, 4, 65, 0, 5, 65, 0, 379, 63, 0, ! 226, 0, 61, 199, 0, 0, 9, 0, 0, 193, ! 0, 1, 0, 0, 381, 0, 382, 0, 381, 62, ! 382, 0, 12, 95, 193, 110, 0, 96, 170, 113, ! 12, 95, 193, 110, 0, 223, 0, 383, 62, 223, ! 0, 0, 385, 0, 229, 0, 389, 0, 390, 13, ! 0, 389, 13, 0, 229, 13, 0, 13, 0, 389, ! 65, 0, 229, 65, 0, 0, 67, 387, 388, 0, ! 102, 0, 261, 0, 391, 0, 393, 386, 0, 390, ! 392, 0, 390, 395, 0, 390, 395, 67, 261, 0, ! 389, 62, 0, 229, 62, 0, 231, 227, 0, 234, ! 227, 0, 239, 227, 0, 231, 333, 0, 231, 0, ! 233, 312, 0, 393, 0, 393, 386, 0, 391, 0, ! 229, 0, 0, 0, 312, 0, 3, 397, 3, 398, ! 63, 0, 77, 189, 188, 0, 0, 95, 201, 110, ! 0, 0, 0, 64, 95, 401, 110, 0, 64, 49, ! 0, 229, 0, 1, 0, 400, 0, 401, 62, 400, ! 0, 0, 83, 302, 402, 0, 73, 302, 402, 0, ! 328, 302, 402, 0, 43, 0, 0, 403, 83, 404, ! 0, 403, 84, 404, 0, 403, 85, 404, 0, 403, ! 81, 404, 0, 403, 82, 404, 0, 403, 73, 404, ! 0, 403, 71, 404, 0, 403, 72, 404, 0, 403, ! 91, 404, 0, 403, 62, 404, 0, 403, 76, 404, ! 0, 403, 77, 404, 0, 403, 78, 404, 0, 403, ! 75, 404, 0, 403, 66, 404, 0, 403, 67, 404, ! 0, 403, 79, 404, 0, 403, 80, 404, 0, 403, ! 89, 404, 0, 403, 90, 404, 0, 403, 70, 404, ! 0, 403, 69, 404, 0, 403, 112, 404, 0, 403, ! 68, 65, 404, 0, 403, 74, 404, 0, 403, 93, ! 404, 0, 403, 86, 404, 0, 403, 49, 404, 0, ! 403, 96, 113, 404, 0, 403, 41, 404, 0, 403, ! 40, 404, 0, 403, 41, 96, 113, 404, 0, 403, ! 40, 96, 113, 404, 0, 403, 374, 402, 404, 0, ! 403, 1, 404, 0, 0 }; #endif ! #if YYDEBUG ! /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ ! static const short yyrline[] = ! { ! 0, 454, 457, 465, 465, 469, 473, 475, 478, 483, ! 487, 493, 497, 497, 505, 508, 511, 511, 515, 517, ! 520, 522, 524, 526, 526, 530, 530, 534, 535, 537, ! 538, 542, 542, 554, 557, 559, 563, 566, 568, 572, ! 572, 587, 594, 603, 605, 606, 608, 612, 615, 621, ! 621, 628, 634, 636, 639, 642, 646, 649, 653, 656, ! 660, 665, 675, 677, 679, 681, 683, 697, 700, 704, ! 707, 709, 711, 714, 717, 721, 723, 725, 727, 737, ! 739, 741, 743, 745, 746, 753, 754, 755, 757, 758, ! 761, 763, 766, 768, 769, 772, 774, 780, 780, 791, ! 794, 796, 800, 800, 805, 809, 809, 813, 817, 817, ! 821, 825, 825, 829, 835, 840, 843, 846, 849, 857, ! 860, 863, 865, 867, 869, 875, 884, 887, 889, 891, ! 894, 896, 901, 908, 911, 913, 917, 929, 936, 942, ! 947, 958, 961, 968, 976, 978, 981, 983, 986, 988, ! 991, 995, 997, 998, 999, 1000, 1003, 1005, 1006, 1009, ! 1011, 1012, 1015, 1015, 1020, 1020, 1024, 1024, 1027, 1027, ! 1030, 1030, 1035, 1035, 1041, 1041, 1045, 1045, 1051, 1055, ! 1063, 1067, 1070, 1073, 1075, 1080, 1086, 1096, 1098, 1106, ! 1109, 1112, 1115, 1119, 1122, 1128, 1134, 1135, 1147, 1150, ! 1152, 1154, 1156, 1160, 1163, 1166, 1171, 1175, 1180, 1184, ! 1187, 1188, 1192, 1192, 1215, 1218, 1220, 1221, 1222, 1225, ! 1229, 1232, 1234, 1238, 1241, 1244, 1248, 1251, 1253, 1255, ! 1257, 1260, 1262, 1265, 1269, 1272, 1279, 1282, 1285, 1288, ! 1291, 1296, 1299, 1302, 1306, 1308, 1312, 1316, 1318, 1322, ! 1325, 1330, 1333, 1335, 1345, 1359, 1364, 1370, 1372, 1374, ! 1387, 1390, 1392, 1394, 1396, 1398, 1400, 1402, 1404, 1406, ! 1408, 1410, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, ! 1428, 1430, 1434, 1436, 1438, 1442, 1445, 1447, 1449, 1451, ! 1453, 1455, 1457, 1459, 1461, 1463, 1465, 1467, 1469, 1471, ! 1473, 1475, 1477, 1479, 1481, 1483, 1487, 1489, 1491, 1495, ! 1498, 1500, 1501, 1502, 1503, 1504, 1507, 1520, 1523, 1527, ! 1530, 1532, 1537, 1539, 1540, 1543, 1545, 1553, 1555, 1557, ! 1559, 1563, 1566, 1570, 1574, 1575, 1576, 1580, 1588, 1589, ! 1590, 1600, 1606, 1608, 1611, 1613, 1613, 1629, 1631, 1633, ! 1635, 1637, 1640, 1642, 1644, 1647, 1649, 1660, 1661, 1665, ! 1669, 1673, 1677, 1679, 1683, 1685, 1687, 1695, 1697, 1699, ! 1701, 1705, 1707, 1709, 1711, 1716, 1718, 1720, 1722, 1725, ! 1727, 1729, 1773, 1776, 1780, 1783, 1787, 1790, 1795, 1797, ! 1801, 1809, 1812, 1819, 1825, 1829, 1831, 1836, 1838, 1845, ! 1847, 1851, 1855, 1861, 1865, 1868, 1872, 1875, 1885, 1888, ! 1892, 1896, 1899, 1902, 1905, 1908, 1914, 1920, 1922, 1943, ! 1946, 1951, 1956, 1964, 1974, 1978, 1981, 1984, 1989, 1992, ! 1994, 1996, 2000, 2004, 2008, 2016, 2019, 2021, 2023, 2027, ! 2031, 2046, 2065, 2068, 2070, 2073, 2075, 2079, 2081, 2085, ! 2087, 2091, 2094, 2098, 2098, 2104, 2117, 2117, 2125, 2131, ! 2136, 2141, 2141, 2150, 2157, 2160, 2164, 2167, 2171, 2176, ! 2179, 2183, 2186, 2188, 2190, 2192, 2199, 2201, 2202, 2203, ! 2207, 2210, 2214, 2217, 2224, 2226, 2229, 2232, 2235, 2241, ! 2244, 2247, 2249, 2251, 2255, 2261, 2266, 2272, 2274, 2279, ! 2282, 2286, 2288, 2290, 2294, 2294, 2304, 2304, 2313, 2316, ! 2319, 2325, 2325, 2325, 2325, 2371, 2379, 2381, 2384, 2386, ! 2391, 2393, 2395, 2397, 2399, 2401, 2405, 2411, 2416, 2421, ! 2428, 2434, 2439, 2446, 2453, 2459, 2466, 2474, 2481, 2492, ! 2503, 2511, 2519, 2530, 2533, 2536, 2540, 2542, 2546, 2549, ! 2553, 2557, 2561, 2563, 2567, 2578, 2592, 2593, 2594, 2595, ! 2598, 2607, 2614, 2622, 2624, 2629, 2631, 2633, 2635, 2637, ! 2639, 2642, 2652, 2657, 2661, 2686, 2692, 2694, 2696, 2698, ! 2709, 2714, 2716, 2722, 2725, 2732, 2742, 2745, 2752, 2762, ! 2764, 2767, 2769, 2772, 2776, 2781, 2785, 2788, 2791, 2796, ! 2799, 2803, 2806, 2808, 2812, 2814, 2821, 2823, 2826, 2829, ! 2834, 2838, 2843, 2853, 2856, 2860, 2864, 2867, 2870, 2879, ! 2882, 2884, 2886, 2892, 2894, 2903, 2906, 2908, 2910, 2912, ! 2916, 2919, 2922, 2924, 2926, 2928, 2932, 2935, 2946, 2956, ! 2958, 2959, 2963, 2971, 2973, 2981, 2984, 2986, 2988, 2990, ! 2994, 2997, 3000, 3002, 3004, 3006, 3010, 3013, 3016, 3018, ! 3020, 3022, 3024, 3026, 3030, 3037, 3041, 3046, 3050, 3055, ! 3057, 3061, 3064, 3066, 3070, 3072, 3073, 3076, 3078, 3080, ! 3084, 3087, 3094, 3105, 3111, 3117, 3121, 3123, 3127, 3141, ! 3143, 3145, 3149, 3157, 3170, 3173, 3180, 3193, 3199, 3201, ! 3202, 3203, 3211, 3216, 3225, 3226, 3230, 3233, 3239, 3245, ! 3248, 3250, 3252, 3254, 3258, 3262, 3266, 3269, 3273, 3275, ! 3284, 3287, 3289, 3291, 3293, 3295, 3297, 3299, 3301, 3305, ! 3309, 3313, 3317, 3319, 3321, 3323, 3325, 3327, 3329, 3331, ! 3333, 3341, 3343, 3344, 3345, 3348, 3354, 3356, 3361, 3363, ! 3366, 3377, 3377, 3385, 3390, 3390, 3390, 3401, 3403, 3403, ! 3411, 3413, 3417, 3421, 3423, 3423, 3431, 3434, 3434, 3434, ! 3444, 3444, 3444, 3454, 3454, 3454, 3454, 3454, 3465, 3465, ! 3465, 3472, 3472, 3476, 3476, 3480, 3480, 3484, 3486, 3488, ! 3490, 3492, 3497, 3500, 3503, 3506, 3509, 3512, 3515, 3521, ! 3523, 3525, 3529, 3532, 3534, 3536, 3539, 3543, 3543, 3543, ! 3552, 3552, 3552, 3561, 3563, 3564, 3575, 3575, 3575, 3584, ! 3586, 3589, 3606, 3614, 3617, 3619, 3621, 3625, 3628, 3629, ! 3637, 3640, 3643, 3646, 3647, 3653, 3656, 3659, 3661, 3665, ! 3668, 3672, 3675, 3685, 3690, 3691, 3698, 3701, 3704, 3706, ! 3709, 3711, 3721, 3735, 3735, 3742, 3744, 3748, 3752, 3755, ! 3758, 3760, 3764, 3766, 3773, 3779, 3782, 3786, 3789, 3792, ! 3797, 3801, 3806, 3808, 3811, 3816, 3822, 3838, 3846, 3849, ! 3852, 3855, 3858, 3861, 3863, 3867, 3873, 3877, 3880, 3884, ! 3887, 3889, 3891, 3897, 3910, 3918, 3921, 3923, 3925, 3927, ! 3929, 3931, 3933, 3935, 3937, 3939, 3941, 3943, 3945, 3947, ! 3949, 3951, 3953, 3955, 3957, 3959, 3961, 3963, 3965, 3967, ! 3969, 3971, 3973, 3975, 3977, 3979, 3981, 3983, 3985, 3987, ! 3994 }; #endif ! #if (YYDEBUG) || defined YYERROR_VERBOSE ! /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ ! static const char *const yytname[] = ! { ! "$", "error", "$undefined.", "IDENTIFIER", "tTYPENAME", "SELFNAME", ! "PFUNCNAME", "SCSPEC", "TYPESPEC", "CV_QUALIFIER", "CONSTANT", ! "VAR_FUNC_NAME", "STRING", "ELLIPSIS", "SIZEOF", "ENUM", "IF", "ELSE", ! "WHILE", "DO", "FOR", "SWITCH", "CASE", "DEFAULT", "BREAK", "CONTINUE", ! "RETURN_KEYWORD", "GOTO", "ASM_KEYWORD", "TYPEOF", "ALIGNOF", "SIGOF", ! "ATTRIBUTE", "EXTENSION", "LABEL", "REALPART", "IMAGPART", "VA_ARG", ! "AGGR", "VISSPEC", "DELETE", "NEW", "THIS", "OPERATOR", "CXX_TRUE", ! "CXX_FALSE", "NAMESPACE", "TYPENAME_KEYWORD", "USING", "LEFT_RIGHT", ! "TEMPLATE", "TYPEID", "DYNAMIC_CAST", "STATIC_CAST", "REINTERPRET_CAST", ! "CONST_CAST", "SCOPE", "EXPORT", "EMPTY", "PTYPENAME", "NSNAME", "'{'", ! "','", "';'", "THROW", "':'", "ASSIGN", "'='", "'?'", "OROR", "ANDAND", ! "'|'", "'^'", "'&'", "MIN_MAX", "EQCOMPARE", "ARITHCOMPARE", "'<'", ! "'>'", "LSHIFT", "RSHIFT", "'+'", "'-'", "'*'", "'/'", "'%'", ! "POINTSAT_STAR", "DOT_STAR", "UNARY", "PLUSPLUS", "MINUSMINUS", "'~'", ! "HYPERUNARY", "POINTSAT", "'.'", "'('", "'['", "TRY", "CATCH", ! "EXTERN_LANG_STRING", "ALL", "PRE_PARSED_CLASS_DECL", "DEFARG", ! "DEFARG_MARKER", "PRE_PARSED_FUNCTION_DECL", "TYPENAME_DEFN", ! "IDENTIFIER_DEFN", "PTYPENAME_DEFN", "END_OF_LINE", ! "END_OF_SAVED_INPUT", "')'", "'}'", "'!'", "']'", "program", "extdefs", ! "@1", "extdefs_opt", ".hush_warning", ".warning_ok", "extension", ! "asm_keyword", "lang_extdef", "@2", "extdef", "@3", "@4", "@5", ! "namespace_alias", "@6", "using_decl", "namespace_using_decl", ! "using_directive", "@7", "namespace_qualifier", "any_id", ! "extern_lang_string", "template_parm_header", "@8", ! "template_spec_header", "template_header", "template_parm_list", ! "maybe_identifier", "template_type_parm", "template_template_parm", ! "template_parm", "template_def", "template_extdef", "template_datadef", ! "datadef", "ctor_initializer_opt", "maybe_return_init", ! "eat_saved_input", "function_body", "@9", "fndef", ! "constructor_declarator", "@10", "@11", "@12", "@13", "fn.def1", ! "component_constructor_declarator", "fn.def2", "return_id", ! "return_init", "base_init", ".begin_function_body", "member_init_list", ! "member_init", "identifier", "notype_identifier", "identifier_defn", ! "explicit_instantiation", "@14", "@15", "@16", "@17", "@18", "@19", ! "@20", "@21", "begin_explicit_instantiation", ! "end_explicit_instantiation", "template_type", "apparent_template_type", ! "self_template_type", ".finish_template_type", "template_close_bracket", ! "template_arg_list_opt", "template_arg_list", "template_arg", "unop", ! "expr", "paren_expr_or_null", "paren_cond_or_null", "xcond", ! "condition", "@22", "compstmtend", "nontrivial_exprlist", ! "nonnull_exprlist", "unary_expr", "new_placement", "new_initializer", ! "regcast_or_absdcl", "cast_expr", "expr_no_commas", ! "expr_no_comma_rangle", "notype_unqualified_id", "do_id", "template_id", ! "object_template_id", "unqualified_id", "expr_or_declarator_intern", ! "expr_or_declarator", "notype_template_declarator", ! "direct_notype_declarator", "primary", "@23", "new", "delete", ! "boolean.literal", "string", "nodecls", "object", "decl", "declarator", ! "fcast_or_absdcl", "type_id", "typed_declspecs", "typed_declspecs1", ! "reserved_declspecs", "declmods", "typed_typespecs", ! "reserved_typespecquals", "sizeof", "alignof", "typeof", "typespec", ! "typespecqual_reserved", "initdecls", "notype_initdecls", ! "nomods_initdecls", "maybeasm", "initdcl", "@24", "initdcl0_innards", ! "@25", "initdcl0", "notype_initdcl0", "nomods_initdcl0", "@26", ! "maybe_attribute", "attributes", "attribute", "attribute_list", ! "attrib", "any_word", "identifiers_or_typenames", "maybe_init", "init", ! "initlist", "pending_inline", "pending_inlines", "defarg_again", ! "pending_defargs", "structsp", "@27", "@28", "@29", "@30", "@31", ! "maybecomma", "maybecomma_warn", "aggr", "class_head", ! "class_head_apparent_template", "class_head_decl", "class_head_defn", ! "maybe_base_class_list", "base_class_list", "base_class", ! "base_class.1", "base_class_access_list", "opt.component_decl_list", ! "access_specifier", "component_decl_list", "component_decl", ! "component_decl_1", "components", "notype_components", ! "component_declarator0", "component_declarator", ! "after_type_component_declarator0", "notype_component_declarator0", ! "after_type_component_declarator", "notype_component_declarator", ! "enumlist_opt", "enumlist", "enumerator", "new_type_id", ! "cv_qualifiers", "nonempty_cv_qualifiers", "maybe_parmlist", ! "after_type_declarator_intern", "after_type_declarator", ! "direct_after_type_declarator", "nonnested_type", "complete_type_name", ! "nested_type", "notype_declarator_intern", "notype_declarator", ! "complex_notype_declarator", "complex_direct_notype_declarator", ! "qualified_id", "notype_qualified_id", "overqualified_id", ! "functional_cast", "type_name", "nested_name_specifier", ! "nested_name_specifier_1", "typename_sub", "typename_sub0", ! "typename_sub1", "typename_sub2", "explicit_template_type", ! "complex_type_name", "ptr_to_mem", "global_scope", "new_declarator", ! "direct_new_declarator", "absdcl_intern", "absdcl", ! "direct_abstract_declarator", "stmts", "errstmt", "maybe_label_decls", ! "label_decls", "label_decl", "compstmt_or_stmtexpr", "@32", "compstmt", ! "simple_if", "@33", "@34", "implicitly_scoped_stmt", "@35", "stmt", ! "simple_stmt", "@36", "@37", "@38", "@39", "@40", "@41", "@42", "@43", ! "@44", "@45", "@46", "@47", "@48", "@49", "function_try_block", "@50", ! "@51", "try_block", "@52", "@53", "handler_seq", "handler", "@54", ! "@55", "type_specifier_seq", "handler_args", "label_colon", ! "for.init.statement", "maybe_cv_qualifier", "xexpr", "asm_operands", ! "nonnull_asm_operands", "asm_operand", "asm_clobbers", "parmlist", ! "complex_parmlist", "defarg", "@56", "defarg1", "parms", "parms_comma", ! "named_parm", "full_parm", "parm", "see_typename", "bad_parm", ! "bad_decl", "template_arg_list_ignore", "arg_list_ignore", ! "exception_specification_opt", "ansi_raise_identifier", ! "ansi_raise_identifiers", "conversion_declarator", "operator", ! "unoperator", "operator_name", "save_lineno", 0 }; #endif ! /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ ! static const short yyr1[] = ! { ! 0, 114, 114, 116, 115, 115, 117, 117, 118, 119, ! 120, 121, 123, 122, 124, 124, 125, 124, 124, 124, ! 124, 124, 124, 126, 124, 127, 124, 124, 124, 124, ! 124, 129, 128, 130, 130, 130, 131, 131, 131, 133, ! 132, 134, 134, 135, 135, 135, 135, 136, 136, 138, ! 137, 139, 140, 140, 141, 141, 142, 142, 143, 143, ! 144, 145, 145, 145, 145, 145, 145, 146, 146, 147, ! 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, ! 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, ! 150, 150, 151, 151, 151, 152, 152, 154, 153, 155, ! 155, 155, 157, 156, 156, 158, 156, 156, 159, 156, ! 156, 160, 156, 156, 161, 161, 161, 161, 161, 162, ! 162, 162, 162, 162, 162, 163, 163, 163, 163, 163, ! 163, 163, 164, 165, 165, 165, 166, 167, 168, 168, ! 168, 168, 169, 169, 169, 169, 169, 169, 169, 169, ! 169, 170, 170, 170, 170, 170, 171, 171, 171, 172, ! 172, 172, 174, 173, 175, 173, 176, 173, 177, 173, ! 178, 173, 179, 173, 180, 173, 181, 173, 182, 183, ! 184, 184, 184, 185, 185, 186, 187, 188, 188, 189, ! 189, 190, 190, 191, 191, 191, 191, 191, 192, 192, ! 192, 192, 192, 193, 193, 194, 194, 195, 195, 196, ! 196, 196, 198, 197, 197, 199, 199, 199, 199, 200, ! 200, 200, 200, 201, 201, 202, 202, 202, 202, 202, ! 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, ! 202, 202, 202, 202, 202, 202, 202, 202, 202, 203, ! 203, 204, 204, 204, 204, 205, 205, 206, 206, 206, ! 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, ! 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, ! 207, 207, 207, 207, 207, 208, 208, 208, 208, 208, ! 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, ! 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, ! 209, 209, 209, 209, 209, 209, 210, 211, 211, 212, ! 212, 212, 213, 213, 213, 214, 214, 215, 215, 215, ! 215, 216, 216, 217, 217, 217, 217, 218, 218, 218, ! 218, 218, 218, 218, 218, 219, 218, 218, 218, 218, ! 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, ! 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, ! 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, ! 218, 218, 220, 220, 221, 221, 222, 222, 223, 223, ! 224, 225, 225, 226, 226, 226, 226, 226, 226, 227, ! 227, 228, 228, 229, 229, 229, 229, 229, 230, 230, ! 231, 231, 231, 231, 231, 231, 232, 232, 232, 233, ! 233, 233, 233, 233, 234, 234, 234, 234, 235, 235, ! 235, 235, 236, 237, 238, 239, 239, 239, 239, 239, ! 239, 239, 240, 240, 240, 241, 241, 242, 242, 243, ! 243, 244, 244, 246, 245, 245, 248, 247, 247, 249, ! 250, 252, 251, 251, 253, 253, 254, 254, 255, 256, ! 256, 257, 257, 257, 257, 257, 258, 258, 258, 258, ! 259, 259, 260, 260, 261, 261, 261, 261, 261, 262, ! 262, 262, 262, 262, 263, 263, 263, 264, 264, 265, ! 265, 266, 266, 266, 268, 267, 269, 267, 267, 267, ! 267, 270, 271, 272, 267, 267, 273, 273, 274, 274, ! 275, 275, 275, 275, 275, 275, 276, 276, 276, 276, ! 277, 277, 277, 278, 278, 278, 279, 279, 279, 279, ! 279, 279, 279, 280, 280, 280, 281, 281, 282, 282, ! 283, 283, 284, 284, 284, 284, 285, 285, 285, 285, ! 286, 287, 287, 288, 288, 288, 288, 288, 288, 288, ! 288, 288, 288, 288, 289, 289, 289, 289, 289, 289, ! 289, 289, 289, 290, 290, 290, 291, 291, 291, 292, ! 292, 293, 293, 294, 294, 295, 295, 295, 295, 296, ! 296, 297, 297, 297, 298, 298, 299, 299, 300, 300, ! 301, 301, 301, 302, 302, 303, 303, 303, 303, 304, ! 304, 304, 304, 305, 305, 306, 306, 306, 306, 306, ! 306, 307, 307, 307, 307, 307, 307, 308, 308, 309, ! 309, 309, 310, 311, 311, 312, 312, 312, 312, 312, ! 312, 313, 313, 313, 313, 313, 313, 314, 314, 314, ! 314, 314, 314, 314, 314, 315, 315, 316, 316, 317, ! 317, 318, 318, 318, 319, 319, 319, 320, 320, 320, ! 320, 320, 321, 321, 321, 321, 322, 322, 323, 323, ! 323, 323, 324, 324, 324, 324, 325, 325, 325, 325, ! 325, 325, 326, 327, 327, 327, 328, 328, 329, 330, ! 330, 330, 330, 330, 330, 330, 331, 331, 332, 332, ! 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, ! 333, 334, 334, 334, 334, 334, 334, 334, 334, 334, ! 334, 335, 335, 335, 335, 336, 337, 337, 338, 338, ! 339, 341, 340, 342, 344, 345, 343, 346, 347, 346, ! 348, 348, 349, 349, 350, 349, 349, 351, 352, 349, ! 353, 354, 349, 355, 356, 357, 358, 349, 359, 360, ! 349, 361, 349, 362, 349, 363, 349, 349, 349, 349, ! 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, ! 349, 349, 349, 349, 349, 349, 349, 365, 366, 364, ! 368, 369, 367, 370, 370, 370, 372, 373, 371, 374, ! 374, 375, 375, 376, 376, 376, 376, 377, 377, 377, ! 378, 378, 379, 379, 379, 380, 380, 381, 381, 382, ! 382, 383, 383, 384, 384, 384, 385, 385, 385, 385, ! 385, 385, 385, 387, 386, 388, 388, 389, 389, 389, ! 389, 389, 390, 390, 391, 391, 391, 391, 391, 391, ! 392, 392, 393, 393, 394, 395, 395, 396, 397, 397, ! 398, 398, 399, 399, 399, 400, 400, 401, 401, 402, ! 402, 402, 402, 403, 404, 405, 405, 405, 405, 405, ! 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, ! 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, ! 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, ! 406 }; ! /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ ! static const short yyr2[] = ! { ! 0, 0, 1, 0, 2, 2, 1, 0, 0, 0, ! 1, 1, 0, 2, 2, 1, 0, 3, 1, 5, ! 4, 5, 4, 0, 6, 0, 5, 1, 2, 1, ! 2, 0, 6, 2, 3, 3, 3, 3, 4, 0, ! 5, 2, 3, 1, 1, 2, 2, 1, 2, 0, ! 5, 3, 1, 1, 1, 3, 1, 0, 2, 2, ! 3, 1, 3, 1, 3, 1, 3, 2, 2, 2, ! 1, 1, 5, 4, 2, 2, 3, 3, 2, 2, ! 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, ! 1, 1, 0, 1, 2, 0, 1, 0, 6, 3, ! 3, 3, 0, 8, 5, 0, 9, 6, 0, 8, ! 5, 0, 9, 6, 2, 2, 1, 2, 1, 6, ! 8, 4, 6, 6, 4, 2, 1, 2, 2, 1, ! 2, 1, 2, 2, 4, 2, 2, 0, 0, 1, ! 3, 2, 3, 1, 4, 2, 4, 2, 4, 2, ! 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 1, 1, 0, 6, 0, 6, 0, 5, 0, 5, ! 0, 7, 0, 7, 0, 6, 0, 6, 0, 0, ! 5, 5, 1, 1, 5, 5, 0, 1, 1, 0, ! 1, 1, 3, 1, 1, 2, 1, 3, 1, 1, ! 1, 1, 1, 1, 1, 1, 3, 1, 3, 0, ! 1, 1, 0, 7, 1, 1, 3, 4, 3, 3, ! 3, 3, 3, 1, 1, 1, 2, 2, 2, 2, ! 2, 2, 2, 4, 2, 4, 2, 3, 3, 4, ! 4, 5, 5, 6, 2, 4, 5, 2, 2, 3, ! 3, 3, 1, 3, 2, 3, 4, 1, 2, 5, ! 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 5, 3, 3, 1, 2, 1, 3, 3, 3, 3, ! 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 3, 3, 3, 3, 5, 3, 3, 1, 2, 3, ! 3, 1, 1, 1, 1, 1, 0, 5, 5, 5, ! 5, 5, 1, 1, 1, 1, 2, 1, 2, 2, ! 3, 4, 4, 1, 1, 1, 3, 1, 1, 1, ! 1, 1, 3, 3, 3, 0, 4, 4, 2, 4, ! 2, 6, 4, 2, 2, 1, 4, 1, 7, 7, ! 7, 7, 4, 4, 2, 2, 2, 1, 4, 2, ! 2, 5, 3, 2, 2, 5, 3, 5, 3, 4, ! 6, 2, 1, 2, 1, 2, 1, 1, 1, 2, ! 0, 2, 2, 3, 3, 3, 2, 2, 2, 1, ! 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, ! 2, 2, 3, 3, 3, 4, 1, 2, 2, 1, ! 1, 2, 2, 2, 1, 2, 2, 3, 1, 2, ! 2, 1, 1, 1, 1, 1, 1, 1, 4, 4, ! 4, 4, 1, 1, 1, 1, 3, 1, 3, 1, ! 3, 0, 4, 0, 6, 3, 0, 4, 1, 3, ! 3, 0, 4, 3, 0, 1, 1, 2, 6, 1, ! 3, 0, 1, 4, 6, 4, 1, 1, 1, 1, ! 1, 3, 0, 2, 1, 2, 3, 4, 1, 1, ! 3, 4, 3, 5, 3, 3, 3, 0, 3, 3, ! 3, 0, 2, 2, 0, 6, 0, 5, 2, 2, ! 2, 0, 0, 0, 11, 1, 0, 1, 0, 1, ! 1, 2, 2, 2, 2, 2, 2, 3, 4, 3, ! 2, 3, 4, 1, 2, 1, 2, 2, 2, 2, ! 3, 3, 2, 0, 2, 3, 1, 4, 1, 3, ! 1, 1, 2, 2, 3, 3, 0, 1, 3, 2, ! 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, ! 2, 2, 3, 1, 2, 2, 4, 4, 2, 1, ! 5, 4, 1, 0, 1, 3, 0, 1, 3, 1, ! 1, 1, 1, 4, 4, 4, 4, 4, 3, 4, ! 4, 4, 4, 3, 2, 1, 1, 3, 1, 3, ! 2, 1, 6, 0, 2, 1, 2, 1, 2, 3, ! 3, 1, 3, 1, 2, 3, 3, 2, 2, 3, ! 1, 4, 4, 3, 3, 2, 1, 1, 2, 1, ! 1, 2, 2, 1, 2, 3, 3, 2, 2, 3, ! 1, 3, 3, 2, 2, 3, 1, 4, 3, 4, ! 3, 1, 2, 2, 2, 2, 2, 2, 2, 1, ! 2, 4, 4, 2, 1, 1, 1, 1, 2, 4, ! 3, 3, 2, 2, 2, 2, 1, 2, 2, 2, ! 2, 3, 1, 2, 3, 4, 2, 2, 2, 2, ! 2, 2, 4, 2, 1, 2, 2, 3, 1, 3, ! 2, 3, 2, 2, 3, 1, 3, 4, 1, 2, ! 3, 2, 2, 1, 3, 2, 2, 1, 2, 3, ! 1, 3, 6, 4, 4, 3, 5, 3, 3, 3, ! 2, 1, 1, 2, 2, 2, 0, 1, 1, 2, ! 3, 0, 4, 1, 0, 0, 5, 1, 0, 3, ! 1, 2, 1, 2, 0, 4, 1, 0, 0, 5, ! 0, 0, 7, 0, 0, 0, 0, 12, 0, 0, ! 7, 0, 5, 0, 7, 0, 4, 2, 2, 2, ! 3, 6, 8, 10, 8, 12, 10, 10, 4, 3, ! 2, 2, 1, 1, 1, 1, 1, 0, 0, 5, ! 0, 0, 5, 1, 2, 0, 0, 0, 5, 1, ! 1, 3, 3, 2, 2, 2, 2, 2, 1, 2, ! 0, 1, 0, 1, 1, 0, 1, 1, 3, 4, ! 7, 1, 3, 0, 1, 1, 1, 2, 2, 2, ! 1, 2, 2, 0, 3, 1, 1, 1, 2, 2, ! 2, 4, 2, 2, 2, 2, 2, 2, 1, 2, ! 1, 2, 1, 1, 0, 0, 1, 5, 3, 0, ! 3, 0, 0, 4, 2, 1, 1, 1, 3, 0, ! 3, 3, 3, 1, 0, 3, 3, 3, 3, 3, ! 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, ! 3, 3, 3, 4, 3, 3, 5, 5, 4, 3, ! 0 }; ! /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE ! doesn't specify something else to do. Zero means the default is an ! error. */ ! static const short yydefact[] = ! { ! 3, 12, 12, 5, 0, 4, 0, 313, 674, 675, ! 0, 420, 436, 615, 0, 11, 434, 0, 0, 10, ! 520, 893, 0, 0, 0, 178, 708, 16, 314, 315, ! 88, 0, 0, 874, 0, 47, 0, 0, 13, 27, ! 0, 29, 8, 52, 53, 0, 18, 15, 95, 118, ! 92, 0, 676, 182, 334, 311, 335, 650, 0, 409, ! 0, 408, 0, 424, 0, 449, 617, 466, 435, 0, ! 533, 535, 515, 543, 419, 639, 437, 640, 116, 333, ! 661, 637, 0, 677, 613, 0, 89, 0, 312, 85, ! 87, 86, 189, 0, 682, 189, 683, 189, 316, 178, ! 151, 152, 153, 154, 155, 506, 508, 0, 704, 0, ! 509, 0, 0, 0, 152, 153, 154, 155, 25, 0, ! 0, 0, 0, 0, 0, 0, 510, 686, 0, 692, ! 0, 0, 0, 39, 0, 0, 33, 0, 0, 49, ! 0, 0, 189, 684, 0, 313, 617, 0, 648, 643, ! 0, 0, 0, 647, 0, 0, 0, 0, 334, 0, ! 325, 0, 0, 0, 333, 613, 30, 0, 28, 3, ! 48, 0, 68, 420, 0, 0, 8, 71, 67, 70, ! 95, 0, 0, 0, 435, 96, 14, 0, 464, 0, ! 0, 482, 93, 83, 685, 621, 0, 0, 613, 84, ! 0, 0, 0, 114, 0, 445, 399, 630, 400, 636, ! 0, 613, 422, 421, 82, 117, 410, 0, 447, 423, ! 115, 0, 416, 442, 443, 411, 426, 428, 431, 444, ! 0, 79, 467, 521, 522, 523, 524, 542, 160, 159, ! 161, 526, 534, 183, 530, 525, 0, 0, 536, 537, ! 538, 539, 874, 0, 616, 425, 618, 0, 461, 313, ! 675, 0, 314, 706, 182, 667, 668, 664, 642, 678, ! 0, 313, 315, 663, 641, 662, 638, 0, 894, 894, ! 894, 894, 894, 894, 894, 0, 894, 894, 894, 894, ! 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, ! 894, 894, 894, 894, 894, 894, 894, 894, 0, 894, ! 819, 424, 820, 889, 316, 615, 338, 341, 388, 432, ! 433, 0, 0, 0, 384, 382, 355, 386, 387, 0, ! 0, 0, 0, 0, 314, 307, 0, 0, 199, 198, ! 0, 200, 201, 0, 0, 202, 0, 0, 190, 191, ! 0, 257, 0, 285, 196, 337, 225, 0, 0, 339, ! 340, 0, 193, 406, 0, 0, 424, 407, 669, 367, ! 357, 0, 0, 881, 0, 0, 189, 0, 518, 504, ! 0, 0, 0, 705, 703, 283, 0, 203, 260, 204, ! 0, 0, 0, 471, 3, 23, 31, 700, 696, 697, ! 699, 701, 698, 151, 152, 153, 0, 154, 155, 688, ! 689, 693, 690, 687, 0, 313, 323, 324, 322, 666, ! 665, 35, 34, 51, 0, 168, 0, 0, 424, 166, ! 17, 0, 0, 189, 644, 618, 646, 0, 645, 152, ! 153, 309, 310, 329, 617, 0, 654, 328, 0, 653, ! 0, 336, 314, 315, 0, 0, 0, 327, 326, 658, ! 0, 0, 12, 0, 178, 9, 9, 74, 0, 69, ! 0, 0, 75, 78, 0, 463, 465, 132, 101, 807, ! 99, 390, 100, 135, 0, 0, 133, 94, 0, 850, ! 224, 0, 223, 845, 868, 0, 406, 424, 407, 0, ! 844, 846, 875, 857, 0, 0, 660, 0, 0, 882, ! 617, 0, 628, 623, 0, 627, 0, 0, 0, 0, ! 0, 613, 464, 0, 81, 0, 613, 635, 0, 413, ! 414, 0, 80, 464, 0, 0, 418, 417, 412, 429, ! 430, 451, 450, 189, 540, 541, 151, 154, 527, 531, ! 529, 0, 544, 511, 427, 464, 680, 613, 102, 0, ! 0, 0, 0, 681, 613, 108, 614, 0, 649, 675, ! 707, 182, 929, 0, 925, 0, 924, 922, 904, 909, ! 910, 894, 916, 915, 901, 902, 900, 919, 908, 905, ! 906, 907, 911, 912, 898, 899, 895, 896, 897, 921, ! 913, 914, 903, 920, 894, 917, 426, 613, 613, 0, ! 613, 0, 894, 189, 0, 247, 248, 0, 0, 0, ! 0, 0, 0, 308, 231, 228, 227, 229, 0, 0, ! 0, 0, 0, 337, 0, 930, 0, 226, 187, 188, ! 331, 0, 230, 0, 0, 258, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 348, 0, 350, ! 353, 354, 392, 391, 0, 0, 0, 0, 0, 236, ! 611, 0, 244, 389, 381, 0, 0, 874, 370, 373, ! 374, 0, 0, 401, 727, 723, 0, 0, 613, 613, ! 613, 403, 730, 0, 232, 0, 234, 0, 673, 405, ! 0, 0, 404, 369, 0, 0, 364, 383, 195, 365, ! 385, 670, 0, 366, 0, 0, 186, 186, 0, 176, ! 0, 424, 174, 519, 608, 605, 0, 518, 606, 518, ! 0, 284, 440, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 441, 477, 478, ! 479, 476, 0, 469, 472, 0, 3, 0, 691, 189, ! 694, 0, 43, 44, 0, 57, 0, 0, 0, 61, ! 65, 54, 873, 424, 57, 872, 63, 179, 164, 162, ! 179, 186, 332, 0, 652, 651, 336, 0, 655, 0, ! 20, 22, 95, 9, 9, 77, 76, 0, 137, 0, ! 930, 91, 90, 488, 0, 484, 483, 0, 622, 619, ! 849, 863, 852, 727, 723, 0, 864, 613, 867, 869, ! 0, 0, 865, 0, 866, 620, 848, 862, 851, 847, ! 876, 859, 870, 860, 853, 858, 659, 0, 673, 0, ! 657, 624, 618, 626, 625, 617, 0, 0, 0, 0, ! 0, 0, 613, 634, 0, 459, 458, 446, 633, 0, ! 882, 0, 629, 415, 448, 460, 438, 439, 464, 0, ! 528, 532, 674, 675, 874, 874, 676, 545, 546, 548, ! 874, 551, 550, 0, 0, 462, 882, 843, 189, 189, ! 679, 189, 882, 843, 613, 105, 613, 111, 894, 894, ! 918, 923, 889, 889, 889, 0, 928, 0, 0, 0, ! 0, 0, 0, 424, 0, 0, 0, 344, 0, 342, ! 343, 0, 0, 255, 192, 313, 674, 675, 314, 315, ! 0, 0, 489, 516, 0, 306, 305, 834, 833, 0, ! 303, 302, 300, 301, 299, 298, 297, 295, 296, 293, ! 294, 288, 289, 290, 291, 292, 286, 287, 0, 0, ! 0, 0, 0, 0, 0, 238, 252, 0, 0, 237, ! 613, 613, 0, 613, 610, 715, 0, 0, 0, 0, ! 0, 372, 0, 376, 0, 378, 0, 617, 726, 725, ! 718, 722, 721, 873, 0, 0, 740, 0, 0, 882, ! 402, 882, 728, 613, 843, 0, 0, 0, 727, 723, ! 0, 0, 613, 0, 617, 0, 0, 0, 0, 197, ! 0, 877, 181, 185, 317, 179, 172, 170, 179, 0, ! 507, 519, 604, 0, 222, 221, 220, 219, 282, 281, ! 0, 279, 278, 276, 277, 275, 274, 273, 270, 271, ! 272, 268, 269, 263, 264, 265, 266, 267, 261, 262, ! 471, 0, 0, 26, 0, 0, 695, 0, 40, 46, ! 45, 59, 56, 49, 57, 0, 50, 0, 0, 58, ! 526, 0, 169, 179, 179, 167, 180, 331, 330, 19, ! 21, 73, 95, 452, 808, 150, 156, 143, 157, 158, ! 0, 0, 139, 0, 0, 0, 0, 485, 0, 134, ! 617, 726, 722, 727, 723, 0, 617, 637, 0, 613, ! 728, 0, 727, 723, 0, 337, 0, 669, 0, 871, ! 0, 0, 884, 0, 0, 0, 0, 456, 632, 631, ! 455, 186, 553, 552, 874, 874, 874, 0, 579, 675, ! 0, 569, 0, 0, 0, 582, 0, 131, 126, 0, ! 182, 583, 586, 0, 0, 561, 0, 129, 573, 104, ! 0, 0, 0, 0, 110, 0, 882, 843, 882, 843, ! 927, 926, 891, 890, 892, 318, 356, 0, 362, 363, ! 0, 0, 0, 0, 343, 346, 751, 0, 0, 0, ! 0, 256, 0, 347, 349, 352, 250, 249, 240, 0, ! 239, 254, 0, 0, 712, 710, 0, 713, 0, 245, ! 0, 0, 189, 379, 0, 0, 0, 719, 618, 724, ! 720, 731, 613, 739, 737, 738, 0, 729, 882, 0, ! 735, 0, 233, 235, 671, 672, 727, 723, 0, 368, ! 880, 177, 179, 179, 175, 609, 607, 505, 0, 470, ! 468, 313, 0, 24, 32, 702, 60, 55, 62, 66, ! 64, 165, 163, 72, 815, 0, 141, 0, 145, 0, ! 147, 0, 149, 0, 97, 0, 486, 618, 726, 722, ! 727, 723, 0, 613, 642, 728, 0, 0, 672, 364, ! 365, 670, 366, 861, 855, 856, 854, 886, 885, 887, ! 0, 0, 0, 0, 618, 0, 0, 453, 184, 0, ! 555, 554, 549, 613, 843, 578, 0, 570, 583, 571, ! 464, 464, 567, 568, 565, 566, 613, 843, 313, 674, ! 0, 451, 127, 574, 584, 589, 590, 451, 451, 0, ! 0, 451, 125, 575, 587, 451, 0, 464, 0, 562, ! 563, 564, 464, 613, 320, 319, 321, 613, 107, 0, ! 113, 0, 0, 0, 0, 0, 0, 746, 0, 492, ! 0, 490, 259, 304, 0, 241, 242, 251, 253, 711, ! 709, 716, 714, 0, 246, 0, 0, 371, 375, 377, ! 882, 733, 613, 734, 173, 171, 280, 0, 473, 475, ! 816, 809, 813, 142, 140, 0, 0, 0, 746, 487, ! 726, 722, 0, 728, 343, 0, 883, 617, 457, 0, ! 547, 882, 0, 0, 572, 482, 482, 882, 0, 0, ! 0, 464, 464, 0, 464, 464, 0, 464, 0, 560, ! 512, 0, 482, 882, 882, 613, 613, 351, 0, 0, ! 0, 0, 0, 215, 752, 0, 747, 748, 491, 0, ! 0, 243, 717, 380, 319, 736, 882, 0, 0, 814, ! 144, 146, 148, 98, 727, 723, 0, 618, 0, 888, ! 454, 121, 613, 613, 843, 577, 581, 124, 613, 464, ! 464, 598, 482, 313, 674, 0, 585, 591, 592, 451, ! 451, 482, 482, 0, 482, 588, 501, 576, 103, 109, ! 882, 882, 358, 359, 360, 361, 480, 0, 0, 0, ! 742, 753, 760, 741, 0, 749, 493, 612, 732, 474, ! 0, 817, 617, 882, 882, 0, 882, 597, 594, 596, ! 0, 0, 464, 464, 464, 593, 595, 580, 0, 106, ! 112, 0, 750, 745, 218, 0, 216, 744, 743, 313, ! 674, 675, 754, 767, 770, 773, 778, 0, 0, 0, ! 0, 0, 0, 0, 0, 314, 802, 810, 0, 830, ! 806, 805, 804, 0, 762, 0, 0, 424, 766, 761, ! 803, 930, 0, 0, 930, 119, 122, 613, 123, 464, ! 464, 603, 482, 482, 503, 0, 502, 497, 481, 217, ! 823, 825, 826, 0, 0, 758, 0, 0, 0, 785, ! 787, 788, 789, 0, 0, 0, 0, 0, 0, 0, ! 824, 930, 398, 831, 0, 763, 396, 451, 0, 397, ! 0, 451, 0, 0, 764, 801, 800, 821, 822, 818, ! 882, 602, 600, 599, 601, 0, 0, 514, 207, 0, ! 755, 768, 757, 0, 930, 0, 0, 0, 781, 930, ! 790, 0, 799, 41, 155, 36, 155, 0, 37, 811, ! 0, 394, 395, 0, 0, 0, 393, 758, 120, 500, ! 499, 92, 95, 214, 0, 424, 0, 758, 758, 771, ! 0, 746, 828, 774, 0, 0, 0, 930, 786, 798, ! 42, 38, 815, 0, 765, 0, 498, 208, 451, 756, ! 769, 0, 759, 829, 0, 827, 779, 783, 782, 812, ! 835, 835, 0, 496, 494, 495, 464, 205, 0, 0, ! 211, 0, 210, 758, 930, 0, 0, 0, 836, 837, ! 0, 791, 0, 0, 772, 775, 780, 784, 0, 0, ! 0, 0, 0, 0, 835, 0, 212, 206, 0, 0, ! 0, 841, 0, 794, 838, 0, 0, 792, 0, 0, ! 839, 0, 0, 0, 0, 0, 0, 213, 776, 0, ! 842, 796, 797, 0, 793, 758, 0, 0, 777, 840, ! 795, 0, 0, 0 }; ! static const short yydefgoto[] = ! { ! 1831, 462, 2, 463, 171, 811, 346, 187, 3, 4, ! 38, 141, 776, 394, 39, 777, 1175, 1611, 41, 414, ! 1658, 781, 42, 43, 424, 44, 1176, 788, 1091, 789, ! 790, 791, 46, 178, 179, 47, 820, 190, 186, 480, ! 1438, 48, 49, 907, 1197, 913, 1199, 50, 1178, 1179, ! 191, 192, 821, 481, 1121, 1122, 734, 1123, 242, 51, ! 1104, 1103, 800, 797, 1273, 1272, 1048, 1045, 140, 1102, ! 52, 244, 53, 1042, 640, 347, 348, 349, 350, 632, ! 1769, 1690, 1771, 1724, 1808, 1484, 387, 1031, 351, 678, ! 989, 352, 388, 389, 354, 355, 376, 55, 266, 782, ! 443, 160, 56, 57, 356, 635, 357, 358, 359, 360, ! 822, 361, 1614, 541, 699, 362, 1181, 494, 225, 495, ! 363, 226, 364, 365, 62, 508, 227, 204, 217, 64, ! 522, 542, 1449, 875, 1336, 205, 218, 65, 555, 876, ! 66, 67, 772, 773, 774, 1547, 486, 952, 953, 1722, ! 1687, 1636, 1578, 68, 739, 378, 904, 1536, 1637, 1220, ! 735, 69, 70, 71, 72, 73, 253, 897, 898, 899, ! 900, 1183, 1378, 1184, 1185, 1186, 1363, 1373, 1364, 1526, ! 1365, 1366, 1527, 1528, 736, 737, 738, 679, 1019, 367, ! 198, 520, 513, 207, 75, 76, 77, 148, 149, 163, ! 79, 136, 368, 369, 370, 81, 391, 83, 902, 127, ! 128, 129, 561, 110, 84, 392, 994, 995, 1014, 1010, ! 702, 1549, 1550, 1485, 1486, 1487, 1551, 1397, 1552, 1618, ! 1643, 1727, 1693, 1694, 1553, 1619, 1717, 1644, 1728, 1645, ! 1751, 1646, 1754, 1798, 1825, 1647, 1773, 1737, 1774, 1699, ! 482, 818, 1294, 1620, 1661, 1742, 1431, 1432, 1498, 1624, ! 1726, 1561, 1621, 1733, 1664, 959, 1777, 1778, 1779, 1802, ! 499, 1015, 855, 1151, 1326, 501, 502, 503, 851, 504, ! 154, 853, 1188, 93, 725, 860, 1329, 1330, 612, 87, ! 572, 88, 942 }; ! static const short yypact[] = ! { ! 166, 189,-32768,-32768, 2909,-32768, 58, 121, 405, 440, ! 60, 158,-32768,-32768, 1066,-32768,-32768, 107, 228,-32768, ! -32768,-32768, 1235, 1578, 1102, 254,-32768,-32768, 281, 504, ! -32768, 1072, 1072,-32768, 2487,-32768, 2909, 304,-32768,-32768, ! 351,-32768, 152,-32768,-32768, 4624,-32768,-32768, 315, 911, ! 401, 371, 442,-32768,-32768,-32768,-32768, 529, 2462,-32768, ! 7370,-32768, 409, 3123, 867,-32768, 477,-32768,-32768, 996, ! 577, 724,-32768, 458, 7869,-32768,-32768,-32768, 830,-32768, ! -32768,-32768, 826,-32768,-32768, 2245,-32768, 6505, 449,-32768, ! -32768,-32768, 11743, 533,-32768, 11743,-32768, 11743,-32768,-32768, ! -32768, 405, 440, 281, 495,-32768, 505, 442,-32768, 1885, ! -32768, 331, 11836, 464,-32768,-32768,-32768,-32768,-32768, 94, ! 535, 508, 572, 617, 545, 553,-32768,-32768, 1913,-32768, ! 1588, 405, 440,-32768, 281, 495,-32768, 1376, 3330, 563, ! 13256, 565, 11743,-32768, 11743, 645, 7187, 2200,-32768,-32768, ! 1396, 3508, 2200,-32768, 1697, 5083, 5083, 2487, 607, 618, ! -32768, 529, 327, 620, 632,-32768,-32768, 742,-32768, 649, ! -32768, 6188,-32768,-32768, 254, 5248, 663,-32768,-32768,-32768, ! 315, 1800, 13317, 878, 707,-32768,-32768, 689, 477, 783, ! 162, 407, 729,-32768,-32768,-32768, 9182, 10694,-32768,-32768, ! 6052, 6052, 7434, 830, 893,-32768,-32768, 629,-32768,-32768, ! 1596,-32768,-32768,-32768,-32768,-32768, 3123, 918,-32768, 477, ! 830, 11836,-32768,-32768,-32768, 1297, 3123,-32768, 477,-32768, ! 1800,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 722, 877, 442,-32768, 477, 2005, 1719,-32768,-32768, ! -32768,-32768,-32768, 748,-32768, 2045, 477, 331,-32768, 740, ! 443, 1315, 745,-32768, 196,-32768,-32768,-32768,-32768,-32768, ! 6289,-32768, 495,-32768,-32768,-32768,-32768, 2473,-32768, 730, ! 737,-32768,-32768,-32768,-32768, 785,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 705,-32768, ! -32768, 2045, 7869, 342,-32768, 757,-32768,-32768,-32768,-32768, ! -32768, 12953, 12953, 762,-32768,-32768,-32768,-32768,-32768, 765, ! 806, 822, 824, 836, 1108, 12301, 1833, 12953,-32768,-32768, ! 12953,-32768,-32768, 12953, 9480,-32768, 12953, 364, 865,-32768, ! 12953,-32768, 12394,-32768, 8489, 288, 1023, 3814, 12487,-32768, ! 907, 485,-32768, 991, 13046, 13139, 5389, 5285,-32768, 435, ! -32768, 1469, 2101, 869, 364, 364, 11743, 13256, 973,-32768, ! 904, 1833, 745,-32768,-32768, 12581, 855, 906,-32768, 13413, ! 874, 1819, 2400, 1613, 649,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768, 535, 508, 572, 1833, 617, 545, 909, ! 553,-32768, 933,-32768, 3467, 904, 405, 440,-32768,-32768, ! -32768,-32768,-32768,-32768, 5180,-32768, 1800, 7547, 857,-32768, ! -32768, 364, 588, 11743,-32768, 7187,-32768, 3944,-32768, 948, ! 953,-32768,-32768,-32768, 327, 2200,-32768,-32768, 2200,-32768, ! 929,-32768,-32768,-32768, 327, 327, 327,-32768,-32768,-32768, ! 6289, 86, 931, 935,-32768,-32768,-32768,-32768, 13256,-32768, ! 930, 975,-32768,-32768, 742,-32768, 477,-32768,-32768,-32768, ! -32768, 979,-32768,-32768, 10136, 12581,-32768,-32768, 939,-32768, ! 906, 943, 13413, 383, 2035, 13317, 2035, 2020, 6996, 949, ! -32768, 253, 2838, 1006, 1012, 757,-32768, 950, 498, 74, ! 7877, 6382,-32768,-32768, 6382,-32768, 6600, 6600, 7434, 8192, ! 955,-32768, 477, 1800,-32768, 10787,-32768,-32768, 6649, 1297, ! 3123, 1800,-32768, 477, 978, 983,-32768,-32768, 1297,-32768, ! 477, 1070,-32768, 11743,-32768,-32768, 904, 745, 722,-32768, ! -32768, 2005, 1677,-32768, 2045, 477,-32768,-32768,-32768, 1018, ! 1031, 1058, 1047,-32768,-32768,-32768,-32768, 7187,-32768, 1005, ! -32768, 564,-32768, 1024,-32768, 1029,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768, 2045,-32768,-32768, 685, ! -32768, 640,-32768, 11743, 12581,-32768,-32768, 12581, 11836, 8172, ! 8172, 8172, 8172, 8489,-32768,-32768,-32768,-32768, 1034, 12674, ! 12674, 9480, 1054, 192, 1077,-32768, 1082,-32768,-32768,-32768, ! 1150, 11743,-32768, 9573, 9480,-32768, 12301, 12301, 10229, 12301, ! 12301, 12301, 12301, 12301, 12301, 12301, 12301, 12301, 12301, 12301, ! 12301, 12301, 12301, 12301, 12301, 12301, 12301,-32768, 12581,-32768, ! -32768,-32768,-32768,-32768, 12581, 12581, 12581, 11836, 3924, 597, ! 815, 10880,-32768,-32768,-32768, 1101, 1315, 1169, 567, 603, ! 687, 2587, 640,-32768, 2359, 2359, 3337, 10973, 1085, 1133, ! -32768,-32768, 741, 9480,-32768, 9480,-32768, 11367, 1236,-32768, ! 876, 331,-32768,-32768, 12581, 1315,-32768,-32768, 281,-32768, ! -32768,-32768, 393, 449, 12581, 1132,-32768,-32768, 364,-32768, ! 1800, 2987,-32768,-32768, 1130,-32768, 1098, 1149,-32768, 973, ! 909, 13484,-32768, 10415, 10508, 12581, 12581, 10229, 12581, 12581, ! 12581, 12581, 12581, 12581, 12581, 12581, 12581, 12581, 12581, 12581, ! 12581, 12581, 12581, 12581, 12581, 12581, 12581,-32768,-32768,-32768, ! -32768,-32768, 129,-32768, 1118, 1115, 649, 3467, 1173, 11743, ! -32768, 1168,-32768,-32768, 3330, 1704, 1155, 1196, 613, 1170, ! 1177,-32768,-32768, 4050, 996,-32768, 1179,-32768,-32768,-32768, ! -32768,-32768,-32768, 364,-32768,-32768, 1126, 1138,-32768, 1184, ! -32768,-32768, 315,-32768,-32768,-32768,-32768, 90,-32768, 528, ! -32768,-32768,-32768,-32768, 9368, 13484,-32768, 1140,-32768,-32768, ! -32768,-32768,-32768, 1898, 1898, 4226,-32768,-32768,-32768,-32768, ! 1596, 2245,-32768, 11461,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, 1012, 1192,-32768,-32768,-32768, 11929, 1133, 692, ! -32768,-32768, 7877,-32768,-32768, 8192, 6382, 6382, 6823, 6823, ! 8192, 876,-32768,-32768, 6649,-32768, 1193,-32768,-32768, 1151, ! 74, 7877,-32768, 1297,-32768,-32768,-32768,-32768, 477, 1188, ! 722,-32768, 508, 572,-32768,-32768, 553, 1189,-32768,-32768, ! 137,-32768,-32768, 2177, 6742,-32768, 74, 6934, 11743, 11743, ! -32768, 11743, 74, 6934,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, 1425, 1425, 1425, 1008,-32768, 364, 1159, 13439, ! 1160, 1161, 1194, 5788, 1197, 1201, 1204,-32768, 1164,-32768, ! -32768, 1174, 1222,-32768,-32768, 1221, 363, 469, 392, 866, ! 12581, 1223,-32768, 1225, 1187, 8489, 8489,-32768,-32768, 1234, ! 13312, 8944, 7399, 5868, 5598, 5991, 4656, 3360, 3360, 2388, ! 2388, 1732, 1732, 998, 998, 998,-32768,-32768, 1200, 1203, ! 1202, 1191, 1212, 1214, 8172, 597,-32768, 10136, 12581,-32768, ! -32768,-32768, 12581,-32768,-32768, 1229, 12953, 1213, 1245, 1262, ! 1296,-32768, 12581,-32768, 12581,-32768, 12581, 2708, 2624,-32768, ! -32768, 2624,-32768, 139, 1240, 1243,-32768, 1242, 8172, 74, ! -32768, 74, 3264,-32768, 6934, 11066, 1247, 1249, 11555, 11555, ! 8848, 1251, 12394, 1255, 2119, 4340, 2400, 1304, 1256, 1031, ! 1263,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 12581, ! -32768, 1833,-32768, 1261,-32768, 13484,-32768, 13484, 13484, 13484, ! 1313, 7561, 5576, 8216, 7900, 5890, 4525, 5728, 3691, 3691, ! 3691, 2502, 2502, 1761, 1761, 1049, 1049, 1049,-32768,-32768, ! 1613, 1273, 12767,-32768, 1278, 1321,-32768, 364,-32768,-32768, ! -32768,-32768,-32768,-32768, 1737, 5180,-32768, 8172, 11743,-32768, ! 1112, 12301,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, 315,-32768,-32768,-32768, 535,-32768, 617, 545, ! 12581, 202,-32768, 699, 702, 709, 1329,-32768, 111,-32768, ! 4503, 2134, 2134, 3038, 3038, 4226, 4977, 83, 1596,-32768, ! 3179, 4413, 11649, 11649, 9072, 224, 1284, 356, 3050,-32768, ! 10136, 9669,-32768, 6619, 2666, 2666, 3164,-32768,-32768,-32768, ! 1331,-32768,-32768,-32768,-32768,-32768,-32768, 2093,-32768, 1043, ! 1217,-32768, 12581, 8459, 8037,-32768, 8037, 216, 216, 514, ! 772, 5485, 7528, 79, 7166,-32768, 227, 216,-32768,-32768, ! 1286, 364, 364, 364,-32768, 1294, 74, 6934, 74, 6934, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768, 8172,-32768,-32768, ! 1310, 1312, 1316, 1320, 1126,-32768,-32768, 13347, 10136, 9764, ! 1299,-32768, 12301,-32768,-32768,-32768,-32768,-32768, 616, 1298, ! -32768,-32768, 1308, 229, 601, 601, 1307, 601, 12581,-32768, ! 12953, 1416, 11743,-32768, 1317, 1335, 1338,-32768, 2708,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768, 2708,-32768, 74, 1341, ! -32768, 1339,-32768,-32768,-32768,-32768, 4406, 4406, 4903,-32768, ! -32768,-32768,-32768,-32768,-32768, 13484,-32768,-32768, 12581,-32768, ! -32768, 230, 1343,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 8489,-32768,-32768,-32768, 1356, 1348,-32768, 459,-32768, 12581, ! -32768, 12581,-32768, 12581,-32768, 9857,-32768, 4503, 2134, 2134, ! 4725, 4725, 6322,-32768, 457, 3179, 4503, 1350, 537, 559, ! 749, 751, 311,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 232, 3445, 3445, 1893, 1893, 1893, 10136,-32768,-32768, 1677, ! -32768,-32768,-32768,-32768, 6934, 13484, 240,-32768, 3821,-32768, ! 477, 477,-32768,-32768,-32768,-32768,-32768, 6934, 497, 602, ! 12581, 1070,-32768, 1399,-32768,-32768,-32768, 451, 542, 826, ! 3508, 566, 216, 1401,-32768, 746, 1404, 477, 8341,-32768, ! -32768,-32768, 477,-32768,-32768, 1420,-32768,-32768,-32768, 1367, ! -32768, 1370, 1372, 12581, 12581, 12581, 12581, 75, 10136,-32768, ! 1418,-32768,-32768, 8489, 12581,-32768, 616,-32768,-32768,-32768, ! -32768,-32768,-32768, 1373,-32768, 1440, 364,-32768,-32768,-32768, ! 74,-32768,-32768,-32768,-32768,-32768, 13484, 12581,-32768,-32768, ! -32768, 1356,-32768,-32768,-32768, 1380, 1383, 1385, 75,-32768, ! 3645, 3645, 876, 3660, 753, 6619,-32768, 1893,-32768, 10136, ! -32768, 74, 1386, 775,-32768, 1430, 1430, 74, 1390, 12581, ! 12581, 7042, 477, 6894, 477, 477, 4759, 477, 8334,-32768, ! -32768, 8949, 1430, 74, 74,-32768,-32768,-32768, 1392, 1393, ! 1394, 1397, 1833,-32768,-32768, 8738, 1482,-32768,-32768, 10136, ! 1405,-32768,-32768,-32768,-32768,-32768, 74, 1407, 1427,-32768, ! -32768,-32768,-32768,-32768, 4188, 4188, 3528, 4298, 4298,-32768, ! -32768,-32768,-32768,-32768, 6934,-32768,-32768,-32768,-32768, 7042, ! 7042,-32768, 1430, 549, 902, 12581,-32768,-32768,-32768, 1070, ! 1070, 1430, 1430, 1005, 1430,-32768,-32768,-32768,-32768,-32768, ! 74, 74,-32768,-32768,-32768,-32768,-32768, 1067, 246, 8604, ! -32768,-32768,-32768,-32768, 11177,-32768,-32768,-32768,-32768,-32768, ! 7298,-32768, 4298, 74, 74, 1410, 74,-32768,-32768,-32768, ! 12581, 12581, 7042, 477, 477,-32768,-32768,-32768, 7710,-32768, ! -32768, 1833,-32768,-32768,-32768, 251,-32768,-32768,-32768, 1458, ! 905, 954,-32768,-32768,-32768,-32768,-32768, 12581, 1467, 1470, ! 1475, 12022, 295, 1833, 701, 655,-32768,-32768, 12115, 1531, ! -32768,-32768,-32768, 1480,-32768, 4123, 13210, 5661, 1528,-32768, ! -32768, 1435, 1437, 1439,-32768,-32768,-32768,-32768,-32768, 7042, ! 7042,-32768, 1430, 1430,-32768, 10601,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768, 778, 778, 1489, 1462, 1466, 4801,-32768, ! -32768,-32768,-32768, 1499, 12581, 1500, 1501, 1510, 2271, 2295, ! -32768,-32768,-32768,-32768, 1474,-32768,-32768, 1070, 1084,-32768, ! 1137, 1070, 12208, 1145,-32768,-32768,-32768,-32768,-32768,-32768, ! 74,-32768,-32768,-32768,-32768, 1463, 13369, 1471,-32768, 11836, ! -32768,-32768,-32768, 1556,-32768, 9275, 11836, 12581,-32768,-32768, ! -32768, 1513,-32768,-32768, 1523,-32768, 1510, 2271,-32768,-32768, ! 742,-32768,-32768, 12860, 12860, 9950,-32768, 1489,-32768,-32768, ! -32768, 401, 315,-32768, 1484, 718, 1800, 1489, 1489,-32768, ! 11272, 75,-32768,-32768, 1521, 1486, 13462,-32768,-32768,-32768, ! -32768,-32768, 1356, 175,-32768, 163,-32768,-32768, 1070,-32768, ! -32768, 828,-32768,-32768, 10043,-32768,-32768,-32768,-32768, 1356, ! 64, 64, 1527,-32768,-32768,-32768, 477,-32768, 12581, 1540, ! -32768, 1541,-32768, 1489,-32768, 1511, 1833, 161, 1543,-32768, ! 100,-32768, 1544, 1502,-32768,-32768,-32768,-32768, 12581, 1497, ! 742, 1551, 64, 742, 64, 1560,-32768,-32768, 10322, 1516, ! 1615, 907, 267,-32768,-32768, 349, 239,-32768, 10136, 1519, ! -32768, 1535, 742, 1569, 1573, 742, 1577,-32768,-32768, 12581, ! 907,-32768,-32768, 368,-32768, 1489, 1532, 1580,-32768,-32768, ! -32768, 1649, 1658,-32768 }; ! static const short yypgoto[] = ! { ! -32768, 1661,-32768, -330, 1487, -401, 44, -3, 1662,-32768, ! 1632,-32768,-32768,-32768, -1477,-32768, 280,-32768, -1476,-32768, ! 11, 894, 37, -387,-32768,-32768, 97,-32768, -725,-32768, ! -32768, 579, 36, 1508, 1207, 1515,-32768, -31, -178, -808, ! -32768, -21, 186,-32768,-32768,-32768,-32768,-32768, 510,-32768, ! -32768,-32768,-32768,-32768,-32768, 399, -14,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1598, -759, ! 7802, -180, 28, -681, -247, -70, 1555, -603,-32768, 131, ! -32768, 62,-32768, -1574,-32768, -1370, 39, 1266, -322,-32768, ! -935, 7005, 5257, 6906, 1950, 4998, 1391, -343, -66, -81, ! 834, -134, -76, 119,-32768,-32768,-32768, -340,-32768, -162, ! -32768,-32768, -1524, 61, -349, 4916, 54, 17, -101, 43, ! 59, -204,-32768,-32768,-32768, -1, -165, -168, -166, 0, ! -38, -266,-32768, -397,-32768,-32768,-32768,-32768,-32768, 555, ! 1354, 3136,-32768, 633,-32768,-32768, -1325, -480, 891,-32768, ! -32768,-32768,-32768, 42,-32768,-32768,-32768,-32768,-32768,-32768, ! 980, -390,-32768,-32768,-32768,-32768,-32768,-32768, 379, 552, ! -32768,-32768,-32768, 347, -1068,-32768,-32768,-32768,-32768,-32768, ! -32768, 544,-32768, 260, 992,-32768, 679, 1056, 2999, 81, ! 1536, 2626, 1770,-32768, -516,-32768, 12, 1899, 3865, -136, ! 298, -63, 5586, 1374,-32768, 6554, 2282, 1962, -16, -108, ! -32768, 1622, -58,-32768, 6007, 3657, -69,-32768, 3173, 524, ! -32768,-32768, 203,-32768,-32768, 272, 1124,-32768, -1252,-32768, ! -32768,-32768, -1512,-32768, -1449, 31,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 20,-32768,-32768,-32768,-32768,-32768, 24, -1364,-32768,-32768, ! -56,-32768,-32768,-32768,-32768, -738, -1420,-32768, -24, -1376, ! -762, -173, 919,-32768,-32768,-32768,-32768, -410,-32768, -409, ! -213,-32768, 99,-32768,-32768, 2380, 338,-32768, 92,-32768, ! 5700, -243, -766 }; #define YYLAST 13571 ! static const short yytable[] = ! { ! 106, 37, 469, 63, 826, 461, 267, 126, 119, 1060, ! 1114, 188, 530, 470, 795, 796, 471, 708, 562, 446, ! 449, 59, 413, 500, 180, 374, 108, 375, 458, 719, ! 645, 313, 720, 37, 794, 63, 901, 787, 944, 552, ! 258, 1105, 704, 706, 63, 183, 1043, 60, 36, 719, ! 1230, 554, 720, 59, 1126, 241, 420, 421, 58, 216, ! 537, 539, 59, 61, 775, 812, 549, 1499, 1503, 1099, ! 412, 419, 431, 255, 267, 422, 1775, 1610, 1612, 60, ! 36, 177, 176, 566, 1662, 74, 311, 184, 182, 175, ! 58, 366, 795, 852, 366, 61, 366, 274, 683, 181, ! 1588, 45, 683, 86, 61, 229, 1347, 606, 1349, 1482, ! 264, 366, 147, 152, 409, 529, 1379, 74, 1376, 203, ! 1106, 89, 1735, 383, -879, 538, 74, 726, 727, 723, ! 1515, 1516, -636, 45, 267, 86, 885, 98, 859, 428, ! 441, 366, 45, 366, 1165, 1190, 310, 1537, 708, 723, ! 466, 1195, 830, 161, 180, 395, 1793, 59, 905, 858, ! 1776, 396, 606, 478, 1763, 1794, -1, 90, 312, 91, ! 63, 1732, 1676, 1305, 63, 183, 1166, 430, -636, -636, ! 1772, 216, 533, 427, 801, 802, 1483, 683, 59, -2, ! 1377, 1080, 59, -636, 426, 497, 809, 1569, 92, 61, ! 1113, 831, 112, 1296, 832, 1744, 1575, 1576, 99, 1577, ! 1795, 177, 176, 169, 60, 1749, 1750, 184, 182, 175, ! 366, 74, 1306, -137, -137, 58, 1790, -137, -137, 181, ! 61, 1760, 548, 550, 61, 490, 445, 448, 45, 1081, ! 1761, 667, 203, 386, 15, 564, 215, 560, -451, 943, ! 1738, 170, 74, 1610, 1612, 496, 74, 877, 229, 479, ! 479, 1786, 1259, -136, 1297, 884, 846, 229, 229, 274, ! 86, 1791, 45, -334, 161, 161, 161, 498, 693, -451, ! 689, 511, 514, -451, 40, 1762, 1271, 668, 1758, 1274, ! 1380, 565, 1427, 1405, 1445, 688, 96, 229, 100, 114, ! 115, 680, -327, 1124, 1815, 571, 728, 1683, 1684, 1583, ! 458, 255, 817, 1828, 1583, 847, 40, 97, 848, -334, ! -334, 161, 624, 113, 857, 1787, 425, -451, 507, 1812, ! 271, 139, 164, 10, -327, 8, 9, 667, 1381, 1408, ! 1428, 1780, 1446, 366, 1291, 1292, 131, 132, 778, 1816, ! 1453, 783, 534, 229, 116, 117, 311, 1584, 142, 18, ! -312, 1753, 1639, 803, 537, 539, 255, 740, 215, 1286, ! 21, 891, 1679, 537, 1806, 366, 731, 1813, 1654, 771, ! 446, 449, 720, 668, 274, 458, 452, 453, 314, 539, ! 134, 135, 740, 1692, 59, 1499, 830, 1094, 26, 167, ! 454, 134, 135, 1379, 274, -661, -312, -312, 229, 1709, ! 455, 1812, 1111, 1112, 168, 607, 310, 1805, 33, 94, ! 427, -312, 456, 793, 185, 608, 216, 189, -152, 883, ! 1812, 730, 366, 324, 193, 1389, 61, 1391, 312, 1823, ! 95, 539, 638, 562, 639, 831, 1084, 814, 832, 26, ! -873, -661, -661, 164, 164, 164, 483, -154, 74, 1814, ! 1115, 94, 1116, 892, 893, 1692, -661, 63, 183, 142, ! 229, 1491, 562, 889, 484, 1692, 1692, -399, 1827, 15, ! 1338, 1044, 95, 496, 713, 59, 684, 798, 271, 416, ! 417, 10, 557, 685, 216, 1289, 96, 255, 194, 96, ! 164, 793, 485, 888, 221, 498, -635, 1231, 1117, 18, ! 184, 182, -399, 1424, 1425, 26, -399, 97, 1118, 1119, ! 97, 1692, 181, 252, 490, 96, 314, 61, 21, 1115, ! 714, 1116, 892, 893, -153, 686, 373, 890, 558, 229, ! 1352, 26, 366, 927, 28, 272, 97, 693, -399, 74, ! -336, 143, -635, -635, 1120, 836, 1107, 842, 844, 393, ! 143, 496, 1459, 729, 398, -336, 379, -635, -400, -336, ! 15, 229, 229, 1692, 433, 1353, 687, 1117, 195, 1354, ! 229, 144, 1452, 498, 26, 95, -336, 1118, 1119, -138, ! -138, 397, -130, 857, 15, 1458, 229, 866, 867, -336, ! -336, 401, -336, -400, -336, 131, 132, -400, -313, 402, ! 566, 1355, 366, 916, 1570, 174, 1001, 366, 933, 933, ! 933, 933, 680, 1120, 196, 197, 433, -130, 399, 951, ! 366, -130, -336, -336, 1110, 161, 161, 161, 248, -400, ! 366, 423, 249, 366, 131, 132, 986, -336, 229, 97, ! 641, 901, 1003, 490, -313, -313, 879, 26, 94, 917, ! 134, 135, 1002, -130, 987, 986, 638, 1460, 639, -313, ! 1323, 1325, 999, 400, 990, 1095, 366, 311, 195, 95, ! 1205, 1162, 1163, 987, 991, 795, 796, 1167, 380, 131, ! 132, 1096, 988, 719, 142, 793, 720, 992, 1004, 134, ! 135, 1039, 366, 1089, 366, 794, 497, 490, 787, 1087, ! 645, 988, 1404, 490, 783, 490, 490, -327, 537, 1554, ! 1660, 1090, 433, 274, 196, 525, 223, 224, 451, 606, ! 459, 458, 142, 14, 500, 381, 1005, 310, 1399, 1401, ! 500, 1152, -656, 475, 382, 135, 490, 133, 1298, 930, ! 18, 1300, 1565, 490, 318, 496, 20, 26, 1302, 312, ! -7, 1657, 170, 490, 267, 23, 496, 693, 263, 126, ! 473, 1092, -128, 229, 15, 1008, 1011, 498, 366, 958, ! 1100, 1124, 1006, 1554, 474, 250, 477, 1153, 498, 251, ! 1023, 1046, 487, 723, 1299, 413, 556, 1301, -311, 543, ! -662, 563, -336, 1125, 1303, 1320, 980, -128, 720, 553, ! 951, -128, 997, 857, 164, 164, 164, 433, 604, 131, ! 132, 1356, 142, 901, 1513, 1401, 573, 1688, 1017, 259, ! 8, 260, 10, 575, 793, 229, 1024, 1025, 1191, 1192, ! 1285, 1193, 497, -128, -311, -311, -662, -662, -336, -336, ! 581, 500, 614, 274, 844, 1554, 1448, 617, 15, -311, ! 618, -662, -451, -330, 222, 223, 224, 1357, 159, 21, ! 1514, 26, 14, 1689, 134, 135, 261, 1767, 958, 380, ! 8, 9, 490, 619, 858, 262, 29, 701, 990, 18, ! 709, 712, -451, -451, 496, 20, 490, -451, 991, 620, ! 458, 621, 496, 63, 23, 1322, 793, 366, 366, 263, ! 366, 992, 793, 622, 1131, 1132, 498, 33, 1488, 683, ! 799, 59, 143, 1768, 498, 229, 381, 641, 1730, 230, ! 231, -155, 1180, 1554, 1293, 382, 135, 1764, 544, 15, ! 230, 472, 545, -451, 1384, 1385, 1386, 1182, 1174, 1154, ! 1155, 1339, 1340, 1341, 161, 523, 524, 1734, 94, 263, ! 556, 94, 161, 61, 724, 742, 496, 1571, 743, 1510, ! 1641, 1554, 496, -451, -451, 229, 100, 114, 115, 95, ! 531, 532, 95, 933, 767, 74, 779, 1233, 498, 780, ! 447, 450, 523, 815, 498, 131, 132, 446, 449, 100, ! 101, 102, 458, 233, 234, 235, 446, 449, 1554, 1556, ! 96, 380, 131, 132, 1202, 1203, 1204, 933, 838, 1642, ! 701, 709, 712, 793, 500, 95, 500, 490, 18, 497, ! 97, 97, 116, 117, 236, 733, 159, 531, 816, 806, ! 693, 490, -6, 490, 819, 490, 810, 26, 274, 828, ! 134, 135, 26, 829, 914, 103, 104, 237, 381, 845, ! 1809, 96, 267, 856, 694, 873, 771, 382, 135, 100, ! 101, 102, 669, -872, 695, 145, 131, 132, 10, 854, ! 1092, 13, 97, 496, 665, 666, 696, 697, 886, 496, ! 1177, 570, 1343, 887, 793, 908, 933, 366, 15, 96, ! 915, 238, 239, 240, 18, 498, 131, 132, 909, 1008, ! 1011, 498, 670, 671, 910, 21, 672, 673, 674, 675, ! 97, 490, 26, 1236, 911, 103, 104, 105, 26, 1581, ! 1582, 28, 29, 164, 793, 765, 766, 918, 1344, 1350, ! 1351, 164, 919, 497, 937, 31, 523, 1711, 133, 1382, ! 795, 1623, 933, -878, 496, 32, 1261, 998, 26, 490, ! 274, 134, 135, 33, 939, 1409, 1410, 34, 1412, 1494, ! -194, 500, 1416, 63, -56, 63, 498, 1000, 634, -56, ! 1018, 216, 1020, 63, 500, 142, -194, 940, -194, 543, ! -56, 59, 943, 59, 496, 1041, 793, 1049, 793, 531, ! 1712, 59, 1180, 496, 1180, 1400, 933, 523, 1716, 1050, ! 1180, 1051, 1180, 1082, 1308, 1309, 498, 1182, 1174, 1182, ! 1174, 131, 132, 1308, 1309, 498, 1083, 1182, 1174, 1086, ! 1348, 1088, 1093, 61, 20, 61, -330, 1097, 100, 114, ! 115, 366, 1362, 61, 1098, -613, 1101, 1109, 1108, -613, ! 1129, 1164, 161, 161, 161, 74, 496, 74, 496, 1150, ! 1157, 161, 161, 161, 1158, 74, 1161, 793, 858, 1206, ! 1208, 1209, 1210, 26, 1214, 1211, 134, 135, 498, 1212, ! 498, 1125, 1213, 1216, 1215, 1020, -151, 1219, 1218, 447, ! 807, 1400, 161, 267, 116, 117, 118, 1221, -613, 1222, ! -613, -613, 1226, -613, 536, 223, 224, 380, 8, 9, ! 1223, 793, 14, 1224, -613, 1225, -613, 709, 100, 114, ! 115, 559, 1227, 1462, 1228, 1238, 1240, 496, 1817, 1464, ! 1465, -613, -613, 1462, 1467, 20, 1241, 1465, 490, 1242, ! 490, 500, 490, 793, 23, 1243, -613, 1008, 1011, 498, ! 1251, 447, 450, 1252, 381, 1253, 793, 1262, 21, 1263, ! 1177, 1264, 1177, 382, 135, 1265, 1269, 1361, 1371, 1413, ! 1177, 496, 1277, 1270, 116, 117, 858, 63, 1278, 415, ! 416, 417, 10, 1280, 1284, 146, 146, 570, 162, 1283, ! 1304, 1440, 1441, 498, 1318, 59, 1383, 264, 1337, 259, ! 131, 132, 10, 496, 1387, 1393, 1180, 1394, 1406, 1362, ! 1402, 1395, 1154, 1155, 219, 1396, 496, 228, 1407, 21, ! 1411, 1182, 1174, 245, 1415, 498, 261, 1417, 256, 131, ! 132, 164, 164, 164, 566, 262, 272, 61, 498, 21, ! 164, 164, 164, 1160, 933, 1418, 261, 1668, 1419, 1673, ! 1670, 1422, 1423, 1429, 1430, 262, 29, 709, 1433, 74, ! 1444, 1463, 491, 1468, 447, 938, 490, 33, 1546, 1469, ! 63, 164, 415, 8, 9, 10, -702, 1475, 634, 263, ! 1476, 26, 1477, 1489, 134, 135, 1492, 33, 59, 1493, ! 1500, 1573, 1574, 1501, 571, 1502, 1512, 484, 607, 1180, ! 1518, 435, 1542, 1543, 1544, 793, 435, 1545, 608, 444, ! 444, 162, 21, 793, 1182, 1174, 1482, 1559, 1557, 715, ! 1627, 606, 1560, 1640, 1478, 1479, 1480, 1481, 262, 272, ! 61, 1247, 1649, 1650, 1361, 1490, 219, 634, 1651, 634, ! 1663, 1033, 476, 1665, 1746, 1674, 1675, 1677, 1743, 1678, ! -930, 1609, 74, 1617, 510, 510, 519, 1695, 1247, 793, ! 33, 1696, 1700, 1702, 1177, 496, 1703, 1638, 396, 1710, ! 228, 59, 1719, 496, 1729, 1721, 1739, 446, 449, 1740, ! 540, 120, 121, 122, 1755, 1440, 1441, 498, 1655, 1656, ! 1781, 120, 121, 122, 1747, 498, 1756, 1616, 1608, 259, ! 8, 9, 10, 1784, 1785, 1792, 1788, 1617, 1615, 228, ! 1800, 1796, 1797, 61, 1803, 216, 100, 114, 115, 496, ! 768, 769, 770, 1807, 567, 59, 1810, 1811, 1801, 1818, ! 1819, 1801, 1821, 533, 26, 74, 1822, 123, 124, 21, ! 1824, 498, 1829, 1830, 1705, 1708, 261, 123, 124, 1832, ! 1820, 1616, 1608, 1801, 1247, 262, 29, 1177, 1833, 229, ! 1247, 1, 1615, 468, 5, 228, 256, 61, 166, 159, ! 1707, 1085, 116, 117, 1287, 813, 1667, 1146, 1667, 263, ! 120, 892, 893, 467, 894, 1613, 465, 33, 1725, 74, ! 1745, 1033, 1372, 1741, 1617, 1725, 1434, 377, 444, 432, ! 100, 439, 440, 447, 807, 613, 1691, 403, 404, 405, ! 1766, 490, 59, 1279, 366, 1128, 895, 1052, 1450, 1342, ! 228, 256, 100, 101, 102, 1471, 1374, 1609, 1535, 1617, ! 1276, 1053, 1653, 26, 985, 690, 123, 124, 1616, 1608, ! 100, 114, 115, 526, 233, 234, 235, 59, 310, 1615, ! 411, 827, 1587, 1725, 61, 310, 103, 117, 1555, 941, ! 26, 1752, 1789, 407, 408, 1765, 1759, 229, 1804, 18, ! 312, 1149, 1247, 1616, 1608, 236, 74, 312, 103, 104, ! 1247, 219, 228, 1509, 1615, 1701, 0, 1748, 0, 61, ! 0, 161, 0, 0, 866, 867, 116, 117, 0, 435, ! 0, 0, 435, 145, 8, 9, 10, 0, 162, 162, ! 162, 74, 0, 310, 567, 662, 663, 664, 665, 666, ! 1723, 0, 415, 8, 9, 10, 958, 1723, 206, 0, ! 0, 1247, 161, 161, 161, 312, 100, 114, 115, 0, ! 1247, 0, 0, 21, 762, 763, 764, 765, 766, 219, ! 0, 228, 256, 0, 0, 0, 26, 0, 0, 28, ! 29, 1613, 21, 447, 938, 862, 0, 0, 862, 261, ! 865, 865, 519, 200, 0, 0, 476, 0, 262, 272, ! 928, 0, 881, 201, 540, 1723, 0, 476, 380, 8, ! 9, 33, 116, 117, 0, 202, 0, 8, 9, 1783, ! 0, 145, 8, 9, 10, 1455, 1456, 13, 540, 476, ! 33, 0, 0, 0, 0, 0, 403, 404, 405, 1799, ! 0, 0, 0, 0, 0, 18, 0, 0, 0, 958, ! 18, 153, 1470, 0, 978, 381, 0, 1472, 0, 0, ! 979, 21, 981, 982, 382, 135, 0, 693, 0, 26, ! 1826, 206, 134, 135, 26, 0, 0, 28, 29, 0, ! 540, 0, 0, 406, 0, 0, 1331, 0, 447, 450, ! 164, 833, 407, 408, 0, 0, 1332, 447, 1317, 0, ! 1038, 834, 0, 162, 162, 444, 0, 0, 1333, 33, ! 1040, 0, 0, 835, 697, 0, 0, 0, 444, 0, ! 206, 0, 0, 0, 0, 0, 0, 159, 546, 101, ! 102, 164, 164, 164, 0, 0, 1521, 1522, 0, 1531, ! 1532, 0, 1534, 145, 8, 9, 10, 222, 223, 224, ! 0, 1247, 1247, 0, 0, 14, 0, 0, 145, 8, ! 9, 10, 0, 0, 269, 0, 436, 0, 1007, 1007, ! 1007, 438, 18, 223, 224, 381, 0, 444, 20, 444, ! 14, 1034, 0, 21, 547, 104, 0, 23, 0, 693, ! 0, 269, 0, 0, 1567, 1568, 26, 18, 21, 28, ! 29, 0, 0, 20, 693, 228, 1247, 0, 0, 0, ! 0, 26, 23, 833, 28, 29, 120, 892, 893, 269, ! 153, 447, 807, 834, 716, 8, 9, 10, 833, 0, ! 0, 33, 269, 0, 0, 843, 697, 0, 834, 0, ! 0, 0, 271, 131, 132, 10, 33, 1631, 1632, 1633, ! 835, 697, 0, 0, 0, 0, 0, 145, 8, 9, ! 10, 324, 717, 254, 21, 447, 807, 228, 245, 26, ! 0, 18, 123, 124, 0, 0, 0, 26, 0, 0, ! 718, 135, 21, 0, 0, 0, 18, 0, 693, 568, ! 0, 0, 269, 0, 0, 26, 0, 21, 28, 272, ! 120, 892, 893, 693, 1681, 1682, 0, 1130, 1130, 1136, ! 26, 0, 1266, 28, 29, 0, 206, 1136, 0, 0, ! 0, 0, 1267, 145, 131, 132, 10, 833, 269, 254, ! 33, 162, 0, 0, 1268, 697, 0, 834, 0, 0, ! 862, 862, 865, 865, 519, 33, 0, 0, 881, 835, ! 697, 0, 18, 0, 0, 0, 123, 124, 0, 269, ! 0, 0, 476, 21, 0, 0, 0, 0, 271, 8, ! 9, 10, 0, 0, 1232, 0, 26, 0, 0, 28, ! 29, 0, 0, 0, 206, 0, 206, 206, 1244, 0, ! 1245, 0, 1246, 31, 100, 114, 115, 0, 0, 0, ! 861, 0, 0, 32, 0, 623, 82, 228, 21, 861, ! 0, 33, 0, 206, 0, 34, 109, 0, 100, 114, ! 115, 206, 0, 0, 28, 272, 137, 0, 0, 0, ! 0, 0, 0, 150, 150, 0, 150, 0, 82, 0, ! 0, 1782, 0, 0, 0, 0, 0, 82, 0, 0, ! 116, 1704, 0, 269, 0, 0, 33, 0, 0, 0, ! 210, 0, 82, 0, 804, 0, 0, 805, 1282, 0, ! 0, 246, 0, 269, 116, 1706, 109, 0, 0, 808, ! 0, 0, 1248, 131, 132, 1248, 0, 277, 13, 109, ! 0, 0, 0, 0, 371, 0, 1256, 371, 0, 371, ! 0, 0, 1034, 1034, 1034, 0, 1295, 0, 0, 0, ! 0, 18, 0, 109, 0, 0, 0, 0, 0, 269, ! 0, 0, 0, 716, 8, 9, 10, 0, 693, 0, ! 436, 0, 0, 438, 0, 26, 0, 0, 134, 135, ! 137, 0, 82, 0, 371, 0, 371, 568, 150, 150, ! 0, 0, 694, 437, 150, 0, 0, 150, 150, 150, ! 324, 717, 695, 21, 0, 0, 0, 0, 245, 0, ! 0, 0, 0, 82, 696, 697, 26, 82, 0, 134, ! 135, 0, 0, 210, 82, 145, 8, 9, 10, 660, ! 661, 662, 663, 664, 665, 666, 415, 8, 569, 10, ! 0, 0, 210, 210, 210, 1307, 1307, 1136, 1136, 1136, ! 145, 131, 132, 10, 1316, 0, 1136, 1136, 1136, 0, ! 206, 0, 0, 0, 0, 21, 1146, 0, 1334, 1334, ! 1335, 0, 210, 269, 0, 0, 21, 0, 26, 18, ! 0, 28, 29, 261, 0, 199, 0, 162, 0, 551, ! 21, 0, 262, 272, 0, 200, 219, 0, 0, 109, ! 0, 0, 0, 26, 0, 201, 28, 29, 447, 1317, ! 0, 0, 150, 33, 0, 0, 570, 202, 0, 0, ! 155, 0, 0, 206, 33, 1435, 0, 1436, 0, 1437, ! 156, 269, 0, 0, 0, 0, 0, 0, 33, 0, ! 0, 0, 157, 760, 761, 762, 763, 764, 765, 766, ! 415, 131, 132, 10, 109, 609, 955, 956, 0, 960, ! 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, ! 971, 972, 973, 974, 975, 976, 977, 0, 0, 0, ! 1034, 1034, 1034, 0, 0, 0, 0, 0, 131, 132, ! 21, 0, 861, 254, 0, 861, 0, 261, 0, 109, ! 0, 0, 0, 691, 0, 609, 262, 272, 609, 710, ! 0, 861, 0, 269, 0, 0, 18, 0, 371, 82, ! 0, 0, 1307, 1307, 1136, 1136, 1136, 0, 0, 1316, ! 8, 9, 269, 693, 0, 254, 0, 0, 33, 0, ! 26, 0, 0, 134, 135, 1447, 1447, 1335, 0, 0, ! 0, 0, 0, 1497, 0, 0, 137, 694, 18, 0, ! 0, 0, 0, 0, 476, 476, 109, 695, 210, 109, ! 0, 0, 131, 132, 0, 371, 0, 150, 0, 696, ! 697, 0, 26, 0, 0, 134, 135, 150, 0, 0, ! 150, 476, 0, 153, 0, 0, 476, 0, 0, 1331, ! 18, 0, 150, 0, 0, 0, 0, 0, 0, 1332, ! 82, 0, 0, 0, 0, 0, 0, 693, 0, 0, ! 0, 1333, 0, 0, 26, 804, 805, 134, 135, 0, ! 0, 0, 0, 808, 0, 0, 210, 840, 210, 210, ! 710, 694, 0, 0, 840, 0, 0, 0, 0, 0, ! 0, 695, 210, 210, 1507, 1507, 210, 1508, 210, 210, ! 210, 871, 269, 696, 697, 210, 0, 0, 0, 0, ! 210, 0, 0, 210, 0, 476, 476, 0, 476, 476, ! 0, 476, 0, 0, 0, 371, 512, 515, 0, 0, ! 0, 0, 0, 269, 0, 0, 0, 0, 0, 0, ! 0, 145, 8, 9, 10, 173, 12, 13, 0, 150, ! 0, 849, 0, 14, 0, 0, 0, 0, 1562, 1562, ! 1562, 0, 0, 0, 0, 0, 0, 16, 0, 17, ! 18, 0, 0, 476, 476, 0, 20, 0, 0, 0, ! 0, 21, 0, 0, 0, 23, 0, 269, 0, 0, ! 0, 0, 0, 925, 26, 371, 0, 28, 29, 0, ! 861, 109, 109, 109, 109, 0, 861, 0, 0, 0, ! 6, 31, 7, 8, 9, 10, 11, 12, 13, 0, ! 0, 32, 0, 371, 14, 0, 476, 476, 476, 33, ! 0, 0, 0, 34, 0, 0, 0, 15, 16, 0, ! 17, 18, 19, 0, 0, 0, 0, 20, 0, 0, ! 0, 1367, 21, 0, 0, 22, 23, 24, 0, 25, ! 109, 0, 609, 0, 0, 26, 27, 0, 28, 29, ! 219, 228, 30, 0, 691, 0, 609, 609, 710, 0, ! 0, 0, 31, 476, 476, 0, 0, 0, 0, 1035, ! 0, 0, 32, 1037, 222, 223, 224, 269, 0, 269, ! 33, 0, 14, 0, 34, 0, 0, 0, 35, 0, ! 0, 0, 210, 0, 0, 0, 0, 0, 0, 18, ! 0, 0, 0, 0, 0, 20, 519, 0, 0, 0, ! 436, 438, 0, 0, 23, 0, 0, 0, 0, 568, ! 0, 145, 8, 9, 10, 0, 0, 13, 0, 0, ! 1047, 1290, 0, 1319, 8, 9, 10, 0, 0, 137, ! 0, 371, 0, 0, 0, 0, 137, 865, 865, 865, ! 18, 0, 0, 0, 0, 210, 246, 861, 0, 228, ! 0, 21, 0, 270, 0, 0, 861, 693, 0, 0, ! 324, 717, 0, 21, 26, 0, 0, 28, 29, 0, ! 269, 0, 0, 269, 861, 861, 26, 0, 0, 28, ! 272, 1133, 0, 0, 0, 210, 210, 1138, 1367, 0, ! 476, 1134, 0, 1141, 0, 1138, 0, 0, 0, 33, ! 222, 223, 224, 1135, 697, 0, 0, 863, 14, 0, ! 864, 33, 512, 515, 210, 0, 0, 871, 210, 210, ! 871, 871, 871, 0, 882, 18, 210, 0, 0, 0, ! 0, 20, 0, 210, 460, 0, 0, 0, 8, 9, ! 23, 0, 1403, 566, 0, 0, 0, 0, 0, 0, ! 0, 0, 145, 8, 9, 10, 82, 0, 566, 109, ! 371, 371, 0, 371, 0, 109, 18, 509, 0, 0, ! 0, 0, 232, 0, 609, 609, 609, 804, 805, 0, ! 528, 18, 0, 0, 808, 609, 0, 861, 0, 0, ! 26, 0, 21, 134, 135, 0, 0, 0, 693, 0, ! 0, 0, 0, 1529, 0, 26, 0, 1331, 28, 29, ! 0, 0, 0, 0, 0, 0, 0, 1332, 0, 0, ! 0, 0, 833, 0, 0, 0, 0, 0, 0, 1333, ! 1159, 0, 834, 0, 0, 0, 109, 0, 131, 132, ! 33, 0, 0, 566, 835, 697, 0, 861, 861, 0, ! 0, 0, 232, 0, 0, 0, 1189, 0, 0, 609, ! 609, 0, 1194, 609, 0, 0, 18, 0, 232, 0, ! 109, 0, 0, 0, 609, 0, 109, 0, 0, 0, ! 1035, 1035, 1035, 693, 0, 0, 609, 0, 1141, 0, ! 26, 0, 0, 134, 135, 0, 0, 0, 0, 0, ! 0, 269, 861, 271, 416, 417, 10, 694, 0, 0, ! 0, 8, 9, 0, 173, 12, 13, 695, 0, 0, ! 489, 0, 14, 0, 0, 232, 0, 0, 0, 696, ! 697, 0, 0, 0, 232, 0, 16, 0, 17, 18, ! 0, 0, 0, 21, 0, 20, 0, 109, 0, 109, ! 371, 232, 0, 0, 23, 206, 693, 206, 0, 28, ! 272, 0, 232, 26, 0, 0, 134, 135, 0, 1254, ! 0, 1255, 0, 0, 269, 0, 0, 0, 0, 0, ! 694, 0, 210, 210, 210, 210, 210, 1138, 871, 0, ! 695, 33, 210, 0, 1138, 1138, 1138, 0, 269, 0, ! 1141, 0, 696, 697, 0, 109, 871, 871, 871, 658, ! 659, 660, 661, 662, 663, 664, 665, 666, 0, 8, ! 9, 0, 137, 0, 13, 150, 82, 0, 82, 512, ! 515, 0, 0, 1369, 82, 0, 82, 0, 0, 0, ! 271, 416, 417, 10, 0, 0, 0, 18, 0, 109, ! 0, 109, 0, 0, 0, 0, 0, 0, 0, 109, ! 0, 0, 863, 864, 512, 515, 206, 0, 0, 0, ! 882, 26, 0, 0, 134, 135, 0, 0, 0, 0, ! 21, 271, 131, 132, 10, 0, 609, 609, 1331, 609, ! 874, 0, 0, 26, 371, 880, 28, 272, 1332, 0, ! 609, 0, 8, 9, 0, 173, 12, 13, 609, 0, ! 1333, 489, 0, 14, 0, 0, 0, 0, 609, 609, ! 710, 21, 0, 0, 0, 0, 906, 16, 33, 17, ! 18, 0, 0, 912, 0, 0, 20, 28, 272, 0, ! 0, 232, 0, 0, 0, 23, 1388, 693, 1390, 0, ! 232, 0, 0, 0, 26, 0, 0, 134, 135, 210, ! 210, 210, 871, 871, 1442, 0, 0, 210, 210, 33, ! 0, 1504, 0, 0, 0, 0, 922, 923, 0, 924, ! 0, 1505, 232, 871, 871, 871, 871, 871, 0, 0, ! 0, 0, 0, 1506, 697, 0, 109, 0, 0, 0, ! 1369, 0, 0, 0, 0, 0, 0, 0, 1421, 109, ! 0, 0, 0, 0, 0, 0, 232, 0, 0, 8, ! 9, 0, 1466, 0, 254, 232, 0, 0, 0, 0, ! 82, 85, 0, 0, 8, 9, 0, 0, 0, 566, ! 0, 111, 0, 0, 0, 0, 232, 18, 0, 0, ! 130, 138, 0, 0, 0, 0, 0, 0, 151, 151, ! 0, 151, 18, 85, 693, 0, 0, 0, 1021, 1022, ! 0, 26, 85, 232, 134, 135, 0, 1021, 0, 693, ! 0, 0, 0, 0, 0, 151, 26, 85, 1504, 134, ! 135, 0, 871, 871, 0, 871, 247, 109, 1505, 871, ! 0, 257, 0, 1504, 0, 0, 0, 0, 0, 0, ! 1506, 697, 0, 1505, 257, 210, 0, 0, 0, 372, ! 150, 0, 372, 82, 372, 1506, 697, 863, 864, 512, ! 515, 0, 0, 0, 0, 0, 882, 0, 512, 515, ! 758, 759, 760, 761, 762, 763, 764, 765, 766, 0, ! 863, 864, 882, 0, 0, 0, 871, 871, 1442, 871, ! 871, 0, 0, 0, 0, 0, 109, 85, 0, 372, ! 1495, 372, 0, 151, 151, 0, 0, 0, 0, 151, ! 0, 0, 151, 151, 151, 0, 0, 0, 8, 9, ! 0, 0, 12, 13, 1358, 1359, 9, 10, 85, 14, ! 0, 1511, 85, 0, 0, 0, 1140, 1517, 151, 85, ! 0, 0, 109, 16, 871, 17, 18, 0, 0, 0, ! 0, 0, 20, 1538, 1539, 0, 0, 151, 151, 151, ! 0, 23, 0, 0, 21, 0, 0, 1009, 1012, 78, ! 26, 1156, 0, 134, 135, 676, 1558, 26, 0, 0, ! 28, 29, 0, 0, 1454, 0, 1360, 151, 0, 0, ! 0, 0, 0, 0, 200, 0, 0, 210, 840, 210, ! 0, 78, 0, 0, 201, 0, 0, 0, 0, 677, ! 78, 0, 33, 1196, 0, 1198, 202, 0, 0, 0, ! 1579, 1580, 0, 208, 0, 220, 0, 151, 8, 9, ! 0, 0, 12, 13, 863, 864, 512, 515, 0, 14, ! 0, 882, 0, 1625, 1626, 0, 1628, 415, 131, 132, ! 10, 0, 0, 16, 1138, 17, 18, 512, 515, 0, ! 0, 0, 20, 0, 0, 0, 0, 0, 0, 257, ! 611, 23, 0, 0, 0, 0, 0, 0, 0, 0, ! 26, 0, 0, 134, 135, 0, 0, 21, 0, 1234, ! 1235, 0, 1237, 0, 261, 1138, 1138, 1138, 232, 0, ! 0, 232, 0, 262, 272, 429, 1009, 1012, 210, 0, ! 0, 434, 0, 0, 257, 0, 0, 232, 692, 984, ! 611, 0, 1258, 611, 711, 0, 0, 570, 0, 722, ! 0, 0, 0, 372, 85, 33, 78, 0, 0, 0, ! 78, 0, 0, 0, 0, 0, 208, 220, 0, 722, ! 0, 0, 0, 145, 8, 9, 10, 222, 223, 224, ! 1718, 0, 0, 0, 0, 14, 863, 864, 0, 882, ! 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 257, 18, 151, 257, 0, 0, 0, 20, 0, ! 372, 0, 151, 21, 0, 208, 0, 23, 0, 693, ! 0, 0, 151, 0, 0, 151, 26, 0, 0, 28, ! 29, 0, 0, 0, 0, 0, 0, 151, 0, 0, ! 0, 0, 0, 833, 0, 85, 145, 8, 9, 10, ! 512, 515, 0, 834, 0, 0, 0, 0, 1315, 0, ! 0, 33, 0, 232, 0, 835, 697, 0, 0, 0, ! 0, 151, 841, 151, 151, 711, 0, 0, 0, 841, ! 0, 0, 0, 0, 0, 0, 21, 151, 151, 0, ! 232, 151, 0, 151, 151, 151, 611, 0, 0, 26, ! 151, 1249, 28, 29, 1250, 151, 1666, 0, 151, 0, ! 0, 0, 8, 9, 0, 1257, 200, 13, 0, 0, ! 372, 1009, 1012, 0, 0, 0, 201, 0, 0, 903, ! 0, 0, 0, 0, 33, 0, 0, 0, 202, 0, ! 18, 0, 0, 0, 151, 0, 0, 0, 0, 145, ! 8, 9, 10, 173, 12, 13, 0, 693, 0, 489, ! 0, 14, 732, 0, 26, 0, 0, 134, 135, 0, ! 0, 1420, 0, 0, 0, 16, 0, 17, 18, 0, ! 0, 1504, 0, 0, 20, 0, 232, 0, 0, 21, ! 372, 1505, 232, 23, 0, 693, 257, 257, 257, 257, ! 0, 0, 26, 1506, 697, 28, 29, 0, 0, 0, ! 0, 208, 0, 0, 0, 0, 0, 0, 372, 1133, ! 434, 0, 8, 9, 1249, 1250, 1009, 1012, 0, 1134, ! 0, 0, 1443, 1257, 0, 1009, 1012, 33, 0, 0, ! 0, 1135, 697, 0, 0, 0, 0, 0, 0, 0, ! 18, 0, 0, 78, 0, 257, 0, 611, 0, 512, ! 515, 0, 1451, 415, 8, 9, 10, 693, 0, 0, ! 0, 611, 611, 711, 26, 1457, 0, 134, 135, 208, ! 839, 208, 208, 0, 1036, 0, 0, 850, 0, 0, ! 0, 1504, 0, 0, 0, 434, 0, 0, 0, 722, ! 0, 1505, 1473, 21, 232, 0, 1474, 151, 208, 0, ! 261, 0, 232, 1506, 697, 0, 208, 0, 0, 262, ! 272, 0, 0, 0, 0, 0, 0, 0, 0, 271, ! 131, 132, 10, 0, 0, 13, 415, 8, 9, 10, ! 0, 1496, 0, 263, 0, 0, 0, 0, 0, 0, ! 0, 33, 434, 0, 784, 0, 372, 0, 18, 1009, ! 1012, 0, 130, 232, 0, 0, 0, 0, 0, 21, ! 151, 247, 232, 0, 0, 693, 21, 0, 0, 0, ! 0, 0, 26, 261, 0, 28, 272, 0, 0, 0, ! 232, 232, 262, 272, 1540, 1541, 903, 0, 0, 1266, ! 0, 1249, 1250, 1009, 1012, 0, 0, 0, 1257, 1267, ! 151, 151, 841, 0, 0, 0, 570, 33, 0, 0, ! 1148, 1268, 697, 0, 33, 0, 145, 8, 9, 10, ! 0, 1563, 1564, 0, 0, 0, 0, 1566, 0, 151, ! 0, 0, 611, 151, 151, 611, 611, 611, 0, 0, ! 0, 151, 0, 0, 0, 18, 0, 0, 151, 0, ! 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, ! 0, 0, 693, 0, 0, 0, 0, 0, 0, 26, ! 0, 85, 28, 29, 257, 372, 372, 0, 372, 0, ! 257, 0, 0, 0, 0, 0, 833, 0, 0, 611, ! 611, 611, 0, 232, 0, 0, 834, 0, 0, 0, ! 611, 0, 0, 0, 33, 208, 0, 0, 835, 697, ! 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, ! 764, 765, 766, 1249, 1250, 0, 1257, 0, 0, 0, ! 0, 0, 0, 0, 0, 172, 1680, 145, 8, 9, ! 10, 173, 12, 13, 0, 0, 0, 0, 0, 14, ! 0, 257, 0, 232, 232, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 0, 17, 18, 19, 208, 0, ! 0, 0, 20, 0, 611, 611, 0, 21, 611, 0, ! 0, 23, 0, 0, 174, 257, 0, 1009, 1012, 611, ! 26, 257, 0, 28, 29, 1036, 1036, 1036, 0, 0, ! 0, 611, 0, 722, 0, 0, 0, 31, 232, 0, ! 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, ! 0, 0, 0, 0, 0, 33, 0, 0, 0, 34, ! 0, 0, 0, 35, 0, 0, 0, 434, 271, 8, ! 9, 10, 656, 657, 13, 658, 659, 660, 661, 662, ! 663, 664, 665, 666, 0, 0, 434, 0, 0, 0, ! 0, 0, 257, 0, 257, 372, 0, 18, 0, 0, ! 0, 0, 415, 131, 1533, 10, 0, 0, 21, 1187, ! 0, 0, 0, 0, 693, 0, 0, 0, 0, 0, ! 0, 26, 0, 0, 28, 272, 0, 151, 151, 151, ! 151, 151, 841, 611, 0, 0, 0, 151, 1310, 1148, ! 1148, 1148, 21, 0, 0, 722, 0, 0, 1311, 261, ! 257, 611, 611, 611, 1697, 0, 33, 0, 262, 272, ! 1312, 697, 0, 0, 903, 0, 0, 138, 0, 0, ! 151, 85, 0, 85, 0, 0, 0, 0, 1370, 85, ! 0, 85, 570, 0, 0, 0, 0, 0, 0, 0, ! 33, 0, 0, 0, 257, 0, 257, 0, 0, 0, ! 0, 0, 0, 0, 257, 0, 1698, 745, 746, 747, ! 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, ! 758, 759, 760, 761, 762, 763, 764, 765, 766, 0, ! 0, 611, 611, 0, 611, 0, 0, 0, 0, 372, ! 0, 0, 0, 0, 0, 611, 271, 8, 9, 10, ! 173, 12, 13, 611, 0, 0, 489, 0, 14, 0, ! 0, 0, 0, 611, 611, 711, 0, 0, 0, 0, ! 0, 0, 16, 0, 17, 18, 0, 0, 0, 0, ! 0, 20, 0, 0, 0, 0, 21, 0, 0, 0, ! 23, 0, 693, 0, 903, 0, 0, 0, 0, 26, ! 0, 0, 28, 272, 151, 151, 151, 611, 611, 711, ! 0, 0, 151, 151, 0, 0, 1266, 0, 0, 0, ! 271, 8, 9, 10, 0, 0, 1267, 0, 611, 611, ! 611, 611, 611, 0, 33, 434, 903, 0, 1268, 697, ! 0, 257, 54, 0, 0, 1370, 0, 0, 0, 18, ! 0, 0, 0, 0, 257, 0, 0, 0, 0, 0, ! 21, 0, 0, 0, 0, 0, 693, 0, 390, 54, ! 54, 0, 158, 26, 54, 85, 28, 272, 0, 1187, ! 0, 1187, 0, 54, 0, 0, 1368, 1375, 0, 1187, ! 1310, 0, 0, 0, 0, 0, 54, 0, 54, 0, ! 1311, 0, 0, 0, 0, 0, 0, 0, 33, 0, ! 0, 0, 1312, 697, 0, 0, 0, 0, 0, 0, ! 265, 0, 0, 273, 0, 0, 145, 131, 132, 10, ! 0, 0, 13, 0, 0, 0, 0, 611, 611, 0, ! 611, 0, 257, 0, 611, 0, 0, 0, 0, 0, ! 0, 0, 493, 0, 0, 18, 0, 0, 0, 0, ! 151, 0, 0, 0, 0, 151, 21, 0, 85, 0, ! 0, 0, 0, 0, 0, 418, 418, 535, 54, 26, ! 0, 0, 28, 29, 54, 54, 0, 0, 265, 273, ! 54, 0, 0, 158, 158, 158, 155, 0, 0, 0, ! 457, 611, 611, 711, 611, 611, 156, 0, 0, 54, ! 0, 257, 434, 54, 33, 0, 0, 0, 157, 54, ! 54, 434, 0, 0, 8, 9, 0, 173, 12, 13, ! 0, 0, 0, 0, 0, 14, 0, 0, 54, 54, ! 158, 0, 0, 0, 0, 0, 0, 0, 265, 16, ! 0, 17, 18, 1368, 0, 0, 0, 257, 20, 611, ! 0, 0, 0, 0, 0, 0, 0, 785, 54, 0, ! 786, 0, 0, 0, 0, 0, 26, 0, 0, 134, ! 135, 0, 0, 1187, 0, 0, 0, 0, 0, 0, ! 0, 145, 8, 9, 10, 173, 12, 13, 0, 0, ! 636, 1659, 0, 14, 0, 0, 0, 0, 54, 0, ! 0, 0, 151, 841, 151, 265, 0, 16, 0, 17, ! 18, 19, 0, 0, 0, 0, 20, 0, 0, 8, ! 9, 21, 0, 12, 254, 23, 0, 0, 174, 0, ! 14, 0, 0, 0, 26, 0, 0, 28, 29, 0, ! 0, 0, 0, 0, 16, 0, 17, 18, 0, 0, ! 0, 31, 0, 20, 0, 0, 0, 0, 1530, 1148, ! 0, 32, 23, 1530, 693, 0, 1187, 0, 0, 33, ! 792, 26, 633, 34, 134, 135, 0, 35, 0, 353, ! 0, 0, 353, 0, 353, 0, 0, 0, 694, 418, ! 0, 0, 0, 0, 0, 0, 0, 0, 695, 265, ! 1148, 1148, 1148, 0, 0, 54, 0, 0, 0, 0, ! 696, 697, 0, 151, 0, 0, 0, 0, 0, 265, ! 0, 0, 0, 131, 132, 0, 0, 223, 224, 353, ! 0, 353, 0, 0, 14, 0, 0, 0, 0, 0, ! 0, 0, 418, 0, 0, 0, 0, 0, 792, 0, ! 0, 18, 0, 0, 54, 0, 0, 20, 0, 0, ! 0, 0, 0, 54, 0, 265, 23, 0, 693, 0, ! 0, 0, 457, 54, 0, 26, 54, 0, 134, 135, ! 0, 0, 457, 457, 457, 0, 0, 0, 54, 0, ! 0, 0, 694, 0, 0, 0, 54, 0, 0, 0, ! 0, 0, 695, 0, 0, 0, 0, 0, 0, 0, ! 208, 1671, 208, 0, 707, 697, 0, 0, 1358, 1359, ! 9, 10, 54, 54, 54, 54, 0, 0, 0, 0, ! 54, 0, 0, 0, 0, 0, 0, 0, 54, 54, ! 0, 0, 54, 0, 158, 158, 158, 457, 0, 0, ! 0, 54, 0, 0, 0, 0, 54, 0, 21, 54, ! 0, 0, 0, 0, 931, 932, 934, 935, 936, 0, ! 0, 26, 0, 0, 28, 29, 0, 636, 0, 0, ! 1360, 0, 0, 0, 0, 0, 0, 0, 200, 0, ! 954, 0, 0, 0, 0, 54, 0, 0, 201, 0, ! 0, 0, 0, 0, 0, 0, 33, 0, 615, 616, ! 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 80, 208, 353, 983, 625, 0, 0, 626, 0, 0, ! 627, 0, 0, 637, 0, 0, 0, 642, 0, 0, ! 0, 0, 1013, 0, 0, 682, 0, 80, 80, 1026, ! 80, 1027, 80, 1013, 0, 0, 0, 633, 633, 633, ! 0, 80, 0, 353, 0, 0, 0, 0, 0, 0, ! 0, 0, 633, 0, 80, 0, 80, 750, 751, 752, ! 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, ! 763, 764, 765, 766, 145, 8, 9, 10, 222, 223, ! 224, 275, 654, 655, 656, 657, 14, 658, 659, 660, ! 661, 662, 663, 664, 665, 666, 0, 0, 0, 265, ! 353, 0, 0, 18, 0, 0, 0, 0, 0, 20, ! 0, 633, 0, 633, 21, 633, 0, 0, 23, 0, ! 693, 0, 0, 0, 0, 0, 0, 26, 0, 0, ! 28, 29, 0, 0, 0, 0, 80, 0, 54, 0, ! 0, 0, 80, 80, 200, 0, 0, 275, 80, 0, ! 0, 80, 80, 80, 201, 0, 0, 0, 0, 0, ! 0, 1013, 33, 0, 0, 0, 1672, 80, 0, 1013, ! 0, 80, 0, 0, 0, 0, 0, 80, 80, 0, ! 0, 0, 0, 0, 0, 418, 0, 0, 0, 0, ! 0, 0, 418, 0, 0, 0, 80, 80, 80, 0, ! 0, 54, 131, 132, 0, 0, 223, 224, 0, 0, ! 353, 0, 0, 14, 755, 756, 757, 758, 759, 760, ! 761, 762, 763, 764, 765, 766, 80, 0, 0, 0, ! 18, 0, 0, 493, 0, 0, 20, 0, 0, 493, ! 0, 54, 54, 158, 0, 23, 0, 693, 265, 273, ! 0, 1145, 0, 0, 26, 0, 0, 134, 135, 0, ! 0, 0, 0, 0, 0, 633, 80, 0, 0, 0, ! 54, 694, 0, 457, 54, 54, 457, 457, 457, 0, ! 353, 695, 54, 0, 0, 0, 0, 0, 0, 54, ! 0, 0, 0, 696, 697, 0, 625, 626, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 353, 0, ! 1229, 0, 54, 353, 353, 0, 353, 353, 353, 353, ! 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ! 353, 353, 353, 353, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 954, 0, 0, 0, 0, 0, ! 493, 653, 654, 655, 656, 657, 1013, 658, 659, 660, ! 661, 662, 663, 664, 665, 666, 0, 0, 721, 0, ! 0, 0, 0, 80, 753, 754, 755, 756, 757, 758, ! 759, 760, 761, 762, 763, 764, 765, 766, 721, 574, ! 576, 577, 578, 579, 580, 0, 582, 583, 584, 585, ! 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, ! 596, 597, 598, 599, 600, 601, 602, 603, 0, 605, ! 0, 792, 80, 1288, 0, 0, 0, 0, 0, 0, ! 0, 80, 0, 0, 0, 0, 633, 633, 633, 0, ! 0, 80, 457, 265, 80, 0, 353, 0, 0, 0, ! 0, 165, 0, 0, 0, 0, 80, 0, 0, 0, ! 0, 1013, 0, 0, 80, 145, 8, 9, 10, 0, ! 1013, 13, 0, 0, 0, 211, 655, 656, 657, 1328, ! 658, 659, 660, 661, 662, 663, 664, 665, 666, 0, ! 80, 80, 80, 80, 18, 0, 0, 0, 80, 0, ! 0, 0, 0, 0, 0, 21, 80, 80, 0, 0, ! 80, 0, 80, 80, 80, 0, 0, 0, 26, 80, ! 0, 28, 29, 493, 80, 493, 0, 80, 0, 0, ! 0, 0, 0, 1392, 0, 200, 0, 0, 54, 54, ! 54, 158, 158, 158, 457, 201, 265, 0, 54, 265, ! 1145, 1145, 1145, 33, 0, 0, 273, 202, 0, 0, ! 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, ! 0, 0, 165, 165, 165, 353, 353, 0, 353, 0, ! 0, 158, 54, 0, 54, 0, 0, 0, 0, 54, ! 54, 0, 54, 0, 1013, 0, 0, 0, 211, 6, ! 0, 7, 8, 9, 10, 11, 12, 13, 0, 0, ! 0, 0, 0, 14, 0, 0, 0, 211, 211, 521, ! 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, ! 18, 0, 0, 0, 0, 0, 20, 0, 1013, 0, ! 0, 21, 0, 0, 0, 23, 0, 211, 464, 0, ! 0, 0, 0, 0, 26, 0, 0, 28, 29, 0, ! 0, 30, 0, 1239, 0, 0, 0, 0, 0, 0, ! 493, 31, 0, 0, 457, 457, 457, 0, 0, 0, ! 0, 32, 0, 493, 0, 0, 0, 0, 721, 33, ! 0, 920, 0, 34, 0, 625, 626, 0, 0, 0, ! 0, 0, 145, 131, 132, 10, 0, 0, 566, 0, ! 0, 0, 0, 0, 921, 54, 54, 54, 457, 457, ! 457, 0, 926, 54, 54, 0, 80, 0, 0, 0, ! 610, 18, 0, 0, 0, 271, 8, 9, 10, 173, ! 12, 13, 21, 0, 0, 489, 0, 14, 0, 0, ! 0, 0, 0, 0, 0, 26, 54, 0, 28, 29, ! 0, 16, 0, 17, 18, 353, 0, 0, 353, 0, ! 20, 1328, 31, 0, 0, 21, 0, 265, 273, 23, ! 700, 693, 32, 700, 700, 0, 54, 0, 26, 80, ! 33, 28, 272, 0, 34, 145, 8, 9, 10, 0, ! 0, 254, 0, 0, 0, 1310, 0, 0, 0, 625, ! 626, 0, 0, 0, 0, 1311, 0, 0, 0, 0, ! 0, 0, 0, 33, 18, 0, 0, 1312, 697, 80, ! 80, 80, 1013, 0, 0, 21, 0, 275, 0, 1147, ! 493, 0, 0, 211, 0, 0, 0, 0, 26, 0, ! 0, 28, 29, 0, 0, 0, 0, 0, 80, 0, ! 0, 0, 80, 80, 0, 200, 0, 0, 0, 0, ! 80, 54, 0, 0, 265, 201, 54, 80, 0, 54, ! 0, 0, 0, 33, 0, 0, 792, 202, 0, 353, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 80, 0, 0, 0, 0, 0, 0, 1414, 0, 353, ! 0, 837, 0, 837, 837, 700, 278, 0, 0, 8, ! 9, 0, 0, 12, 13, 0, 0, 211, 211, 0, ! 14, 211, 0, 521, 521, 521, 872, 0, 0, 0, ! 211, 0, 0, 0, 16, 211, 17, 18, 211, 0, ! 0, 0, 0, 20, 0, 279, 280, 0, 0, 0, ! 0, 0, 23, 0, 281, 0, 0, 0, 0, 0, ! 0, 26, 0, 0, 134, 135, 0, 282, 0, 0, ! 0, 283, 284, 285, 286, 287, 288, 289, 290, 291, ! 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, ! 302, 303, 0, 0, 304, 305, 306, 0, 307, 0, ! 0, 308, 0, 145, 8, 9, 10, 0, 0, 13, ! 0, 0, 209, 54, 54, 54, 0, 309, 1200, 1201, ! 1327, 0, 721, 8, 9, 0, 0, 12, 13, 0, ! 0, 636, 18, 0, 14, 0, 268, 0, 0, 276, ! 0, 0, 0, 21, 0, 0, 0, 0, 16, 0, ! 17, 18, 145, 8, 9, 10, 26, 20, 566, 28, ! 29, 0, 0, 268, 0, 384, 23, 0, 0, 0, ! 1145, 0, 0, 516, 0, 26, 0, 0, 134, 135, ! 0, 18, 0, 517, 0, 0, 0, 993, 0, 0, ! 0, 33, 21, 0, 0, 518, 0, 0, 0, 0, ! 0, 700, 700, 700, 0, 26, 0, 0, 28, 29, ! 0, 1145, 1145, 1145, 700, 0, 80, 80, 80, 80, ! 80, 80, 200, 0, 54, 0, 80, 0, 1147, 1147, ! 1147, 0, 201, 0, 1321, 209, 0, 211, 0, 0, ! 33, 0, 0, 1168, 202, 7, 8, 1169, 10, 173, ! 12, 13, 0, 0, 209, 209, 209, 14, 0, 80, ! 80, 0, 80, 0, 527, 0, 0, 80, 80, 0, ! 80, 16, 0, 17, 18, 19, 0, 0, 0, 0, ! 20, -556, 0, 0, 209, 21, 0, 0, 0, 23, ! 1170, 0, 174, 0, 0, 0, 0, 0, 26, 0, ! 837, 28, 29, 0, 0, 1171, 0, 1172, 0, 0, ! 0, 276, 0, 0, 0, 31, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 32, 271, 8, 9, 10, ! 0, 268, 13, 33, 0, 0, 0, 1173, 0, 0, ! 837, 837, 1139, 0, 0, 0, 0, 0, 0, 0, ! 1139, 0, 0, -556, 0, 18, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 637, 21, 0, 0, 211, ! 0, 0, 872, 211, 211, 872, 872, 872, 0, 26, ! 0, 211, 28, 272, 0, 0, 0, 0, 211, 0, ! 0, 0, 0, 80, 80, 80, 868, 1523, 1524, 9, ! 10, 80, 80, 0, 0, 0, 869, 0, 0, 0, ! 0, 0, 0, 0, 33, 0, 0, 0, 870, 0, ! 0, 0, 0, 0, 0, 268, 276, 0, 0, 610, ! 610, 610, 0, 0, 80, 0, 0, 21, 8, 9, ! 700, 173, 12, 13, 0, 268, 276, 489, 0, 14, ! 26, 0, 0, 28, 29, 0, 275, 0, 0, 1525, ! 0, 0, 0, 16, 80, 17, 18, 200, 0, 0, ! 625, 626, 20, 0, 0, 0, 0, 201, 0, 0, ! 209, 23, 0, 0, 0, 33, 0, 0, 0, 202, ! 26, 0, 0, 134, 135, 0, 0, 0, 0, -419, ! 8, 9, -419, -419, 12, 254, 0, 0, 0, 0, ! 0, 14, 0, 0, 700, 700, 0, 0, 700, 0, ! 0, 0, 0, 0, 0, 16, 0, 17, 18, 700, ! 0, 0, 0, 0, 20, 700, 700, 700, 0, -419, ! 0, 700, 0, 23, 0, 693, 0, 0, 209, 80, ! 209, 209, 26, 0, 80, 134, 135, 80, 0, 0, ! 0, 0, 0, 0, 209, 209, 0, 0, 209, 694, ! 209, 209, 209, 209, 18, 0, 0, 209, 0, 695, ! 0, 0, 209, 0, 0, 209, 0, -419, 0, 0, ! 0, 696, 697, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 492, 0, 0, 0, 0, 0, 745, 746, ! 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, ! 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, ! 0, 0, 0, 0, 0, 0, 0, 837, 837, 837, ! 1139, 1139, 1139, 1313, 0, 0, 0, 837, 0, 1139, ! 1139, 1139, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 872, 872, 872, 0, 0, 0, 1168, 0, 7, ! 8, 1169, 10, 173, 12, 13, 0, 0, 0, 0, ! 165, 14, 0, 0, 0, 0, 0, 0, 211, 0, ! 145, 131, 132, 10, 0, 16, 0, 17, 18, 19, ! 0, 80, 80, 80, 20, -557, 0, 0, 0, 21, ! 0, 0, 0, 23, 1170, 0, 174, 0, 0, 18, ! 0, 0, 26, 0, 0, 28, 29, 0, 0, 1171, ! 21, 1172, 0, 0, 0, 0, 0, 0, 0, 31, ! 0, 993, 993, 26, 993, 0, 28, 29, 0, 32, ! 0, 0, 0, 0, 0, 700, 0, 33, 1147, 0, ! 31, 1173, 0, 700, 268, 276, 0, 0, 0, 0, ! 32, 0, 0, 700, 700, 700, 0, -557, 33, 0, ! 0, 0, 34, 0, 209, 0, 0, 0, 0, 0, ! 0, 741, 0, 0, 0, 0, 0, 0, 0, 1147, ! 1147, 1147, 8, 9, 0, 173, 12, 13, 0, 0, ! 0, 1622, 80, 14, 837, 837, 837, 1313, 1313, 1313, ! 0, 0, 837, 837, 0, 0, 0, 16, 0, 17, ! 18, 0, 0, 0, 0, 0, 20, 0, 872, 872, ! 872, 872, 872, 0, 0, 23, 0, 209, 0, 0, ! 0, 0, 0, 0, 26, 211, 0, 134, 135, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 698, 0, ! 0, 698, 698, 145, 8, 9, 10, 212, 12, 213, ! 0, 0, 0, 0, 0, 14, 0, 209, 209, 1137, ! 825, 492, 0, 0, 268, 276, 0, 1137, 0, 16, ! 0, 17, 18, 0, 0, 0, 0, 0, 20, 0, ! 0, 0, 0, 21, 0, 0, 209, 23, 0, 209, ! 209, 209, 209, 209, 209, 527, 26, 0, 209, 28, ! 29, 0, 0, 214, 0, 209, 0, 145, 8, 9, ! 10, 0, 0, 31, 0, 0, 0, 1313, 1313, 0, ! 1313, 0, 0, 32, 872, 0, 0, 276, 0, 0, ! 0, 33, 0, 0, 0, 34, 18, 0, 0, 0, ! 211, 652, 653, 654, 655, 656, 657, 21, 658, 659, ! 660, 661, 662, 663, 664, 665, 666, 0, 0, 0, ! 26, 0, 0, 28, 29, 0, 0, 0, 0, 698, ! 0, 698, 698, 698, 0, 0, 0, 516, 0, 0, ! 0, 1313, 1313, 1313, 1313, 1313, 0, 517, 0, 0, ! 492, 0, 0, 929, 0, 33, 0, 0, 0, 518, ! 0, 1358, 8, 1169, 10, 212, 12, 213, 0, 0, ! 0, 0, 0, 14, 0, 0, 0, 0, 0, 825, ! 0, 8, 9, 0, 212, 12, 213, 16, 0, 17, ! 18, 0, 14, 0, 0, 0, 20, 0, 0, 1313, ! 0, 21, 0, 0, 492, 23, 16, 0, 17, 18, ! 492, 0, 492, 492, 26, 20, 0, 28, 29, 268, ! 276, 268, 0, 1360, 23, 0, 0, 0, 0, 0, ! 0, 31, 0, 26, 0, 0, 134, 135, 0, 0, ! 0, 32, 0, 492, 0, 0, 0, 0, 0, 33, ! 492, 0, 211, 1173, 211, 0, 0, 0, 0, 0, ! 492, 749, 750, 751, 752, 753, 754, 755, 756, 757, ! 758, 759, 760, 761, 762, 763, 764, 765, 766, 1055, ! 1057, 1058, 1059, 0, 1061, 1062, 1063, 1064, 1065, 1066, ! 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, ! 1077, 1078, 1079, 0, 0, 0, 0, 0, 0, 521, ! 0, 0, 0, 0, 209, 209, 209, 209, 209, 1137, ! 209, 0, 1314, 0, 209, 268, 1137, 1137, 1137, 698, ! 698, 698, 276, 0, 0, 0, 0, 0, 209, 209, ! 209, 1634, 1032, -513, -513, -513, -513, -513, -513, -513, ! 521, 521, 521, -513, 0, -513, 0, 0, 0, 0, ! 825, 0, 0, 211, 0, 209, -513, 0, -513, 0, ! 0, 0, -513, 0, 0, 0, 0, 0, -513, 492, ! 0, 0, 0, -513, 0, 0, 0, -513, 0, -513, ! 0, 0, 0, 492, 0, 0, -513, 0, 0, -513, ! -513, -513, -513, -513, 0, -513, -513, -513, -513, -513, ! -513, -513, -513, -513, -513, -513, -513, -513, -513, -513, ! -513, -513, -513, -513, -513, -513, -513, -513, 698, -513, ! -513, -513, 0, -513, -513, -513, -513, -513, 0, 0, ! 0, 0, 0, 1635, -513, 0, 107, 0, 0, -513, ! -513, -513, 0, -513, 0, 125, 107, 0, 0, 0, ! 0, 0, 0, 107, 107, 0, 107, 0, 698, 698, ! 698, 0, 0, 0, 0, 0, 0, 0, 1032, 0, ! 0, 0, 0, 0, 0, 0, 1217, 0, 0, 0, ! 0, 209, 209, 209, 209, 209, 1137, 0, 0, 209, ! 209, 243, 0, 8, 9, 0, 0, 12, 254, 0, ! 145, 8, 9, 10, 14, 209, 209, 209, 209, 209, ! 0, 0, 0, 825, 492, 0, 0, 0, 16, 0, ! 17, 18, 209, 0, 0, 0, 0, 20, 492, 18, ! 492, 0, 492, 0, 0, 0, 23, 0, 0, 0, ! 21, 0, 0, 527, 0, 26, 0, 0, 134, 135, ! 410, 0, 125, 26, 0, 0, 28, 29, 698, 107, ! 107, 0, 0, 0, 0, 0, 0, 0, 107, 107, ! 200, 0, 107, 107, 107, 1275, 442, 107, 107, 107, ! 201, 0, 0, 0, 0, 0, 0, 0, 33, 0, ! 0, 0, 202, 752, 753, 754, 755, 756, 757, 758, ! 759, 760, 761, 762, 763, 764, 765, 766, 492, 0, ! 0, 0, 0, 0, 209, 209, 1314, 209, 0, 0, ! 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 698, 698, 0, 0, 698, 209, 0, 0, ! 0, 0, 0, 0, 0, 0, 492, 698, 0, 0, ! 0, 0, 0, 1032, 1032, 1032, 0, 0, 1168, 698, ! 7, 8, 1169, 10, 173, 12, 13, 0, 243, 107, ! 0, 0, 14, 0, 0, 0, 825, 825, 209, 209, ! 1137, 209, 209, 0, 0, 0, 16, 0, 17, 18, ! 19, 0, 107, 0, 0, 20, 0, 0, 1345, 0, ! 21, 0, 0, 0, 23, 1170, 0, 174, 0, 0, ! 0, 0, 0, 26, 0, 0, 28, 29, 0, 0, ! 1171, 0, 1172, 0, 0, 0, 0, 0, 0, 0, ! 31, 0, 0, 0, 0, 107, 209, 0, 0, 0, ! 32, 0, 0, 0, 825, 825, 0, 0, 33, 0, ! 0, 0, 1173, 0, 0, 698, 698, 698, 698, 698, ! 698, 698, 0, 0, 0, 698, 0, 1032, 1032, 1032, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 107, 0, 107, 0, 0, 107, 209, ! 0, 209, 0, 0, 0, 0, 8, 9, 0, 0, ! 12, 13, 0, 0, 1426, 0, 0, 14, 0, 0, ! 0, 0, 0, 0, 0, 271, 8, 9, 10, 0, ! 0, 16, 0, 17, 18, 492, 0, 492, 0, 492, ! 20, 825, 0, 0, 0, 0, 107, 0, 0, 23, ! 0, 0, 0, 0, 18, 0, 1137, 0, 26, 0, ! 0, 134, 135, 0, 0, 21, 0, 107, 0, 107, ! 0, 0, 825, 0, 0, 0, 0, 107, 26, 0, ! 107, 28, 272, 698, 0, 0, 0, 0, 0, 0, ! 0, 698, 107, 0, 0, 868, 1461, 1137, 1137, 1137, ! 0, 698, 698, 698, 0, 869, 0, 0, 0, 0, ! 209, 0, 0, 33, 0, 0, 0, 870, 751, 752, ! 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, ! 763, 764, 765, 766, 825, 0, 0, 0, 0, 0, ! 0, 0, 698, 698, 698, 698, 698, 698, 0, 0, ! 698, 698, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 492, 0, 0, 0, 1523, 131, 132, ! 10, 0, 1168, 0, 7, 8, 1169, 10, 173, 12, ! 13, 0, 0, 243, 896, 825, 14, 0, 0, 0, ! 0, 0, 0, 0, 0, 1519, 1520, 0, 0, 107, ! 16, 0, 17, 18, 19, 0, 0, 21, 0, 20, ! -559, 0, 0, 0, 21, 0, 0, 0, 23, 1170, ! 26, 174, 0, 28, 29, 825, 0, 26, 0, 1525, ! 28, 29, 0, 0, 1171, 0, 1172, 31, 0, 0, ! 0, 107, 0, 107, 31, 0, 0, 32, 0, 0, ! 0, 0, 0, 0, 32, 33, 0, 0, 0, 34, ! 0, 1572, 33, 0, 0, 0, 1173, 0, 0, 0, ! 0, 0, 0, 0, 0, 698, 698, 0, 698, 0, ! 0, 0, -559, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 145, 131, 1346, 10, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 1629, 1630, 0, 0, ! 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, ! 0, 18, 0, 107, 107, 0, 107, 107, 0, 0, ! 0, 0, 21, 1648, 0, 0, 0, 0, 0, 698, ! 698, 698, 698, 698, 0, 26, 0, 0, 28, 29, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, ! 0, 1686, 156, 0, 0, 0, 0, 0, 0, 0, ! 33, 0, 0, 0, 157, 646, 647, 648, 649, 650, ! 651, 652, 653, 654, 655, 656, 657, 698, 658, 659, ! 660, 661, 662, 663, 664, 665, 666, 0, 492, 107, ! 0, 0, 0, 0, 0, 0, 107, 125, 0, 0, ! 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, ! 0, 0, 0, 1736, 0, 1585, 0, -930, -930, -930, ! -930, -930, -930, -930, -930, -930, -930, 0, -930, -930, ! -930, 896, -930, -930, -930, -930, -930, -930, -930, -930, ! -930, -930, -930, -930, -930, -930, -930, -930, 0, -930, ! -930, -930, -930, 0, -930, -930, -930, -930, -930, -930, ! -930, -930, -930, 0, 0, -930, -930, -930, -930, -930, ! -930, 0, 0, -930, -930, -930, 0, -930, -930, 0, ! 0, 0, 0, 0, -930, 0, 0, -930, 0, 0, ! 0, 0, 0, 0, 0, -930, -930, -930, 0, 0, ! 0, 0, 0, -930, -930, -930, 0, 0, 0, -930, ! 0, -930, 0, 0, 0, 896, 0, 0, 0, 0, ! 0, 0, 0, 0, 825, 1586, -930, 0, 0, 0, ! 0, 0, 0, 0, 107, 107, 107, 107, 0, 0, ! 0, 0, 0, 0, 0, 107, 0, 0, 0, 1548, ! 0, -930, -930, -930, -930, -930, -930, -930, -930, -930, ! -930, 0, -930, -930, -930, 0, -930, -930, -930, -930, ! -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, ! -930, -930, 0, -930, -930, -930, -930, 0, -930, -930, ! -930, -930, -930, -930, -930, -930, -930, 0, 0, -930, ! -930, -930, -930, -930, -930, 0, 0, -930, -930, -930, ! 0, -930, -930, 0, 0, 0, 0, 0, -930, 107, ! 107, -930, 0, 107, 0, 0, 0, 0, 0, -930, ! -930, -930, 0, 0, 107, 0, 0, -930, -930, -930, ! 0, 0, 0, -930, 0, -930, 107, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, ! -930, 271, 8, 9, 10, 173, 12, 315, 316, 317, ! 318, 489, 319, 14, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 18, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 693, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 28, 272, -345, ! 0, 0, 385, 0, 0, 0, 0, 0, 336, 0, ! 0, 1028, 0, 0, 0, 0, 0, 0, 0, 338, ! 339, 1029, 0, 0, 0, 0, 0, 341, 342, 343, ! 0, 0, 0, 1030, 697, 0, 0, 0, 0, 0, ! 1168, 0, 7, 8, 1169, 10, 173, 12, 13, 0, ! 345, 0, 0, 0, 14, 0, 0, 0, 0, 896, ! 0, 0, 107, 0, 0, 107, 0, 0, 16, 0, ! 17, 18, 19, 0, 0, 0, 0, 20, -558, 0, ! 0, 0, 21, 0, 0, 0, 23, 1170, 0, 174, ! 0, 0, 0, 0, 0, 26, 0, 0, 28, 29, ! 0, 0, 1171, 0, 1172, 651, 652, 653, 654, 655, ! 656, 657, 31, 658, 659, 660, 661, 662, 663, 664, ! 665, 666, 32, 0, 0, 0, 107, 107, 0, 107, ! 33, 0, 0, 0, 1173, 0, 0, 0, 0, 0, ! 107, 0, 0, 0, 0, 0, 0, 0, 107, 0, ! -558, 0, 0, 0, 0, 0, 0, 0, 107, 107, ! 0, 0, 0, 628, 0, 145, 8, 9, 10, 173, ! 12, 315, 316, 317, 318, 489, 319, 14, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 896, ! 0, 16, 320, 17, 18, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 693, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 28, 29, -345, 0, 0, 385, 0, 0, 0, ! 0, 896, 336, 0, 0, 1142, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 1143, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 0, 1144, 697, 0, ! 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 488, 345, 271, 8, 9, 10, 173, ! 12, 315, 316, 317, 318, 489, 319, 14, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 320, 17, 18, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 28, 272, 0, 0, 0, 385, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 107, 0, ! 107, 341, 342, 343, 0, 0, 957, 344, 271, 8, ! 9, 10, 173, 12, 315, 316, 317, 318, 0, 319, ! 14, 0, -843, 0, 345, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 320, 17, 18, 19, 0, ! 321, 322, 323, 20, 0, 324, 325, 326, 21, 327, ! 328, 0, 23, 0, 0, 0, 329, 330, 331, 332, ! 333, 26, 0, 0, 28, 272, 1731, 0, -832, 385, ! 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, ! 0, 0, 0, 0, 0, 0, 338, 339, 340, 0, ! 0, 0, 0, 0, 341, 342, 343, 0, 0, 823, ! 344, 945, 946, 947, 10, 0, 12, 505, 316, 317, ! 318, 0, 319, 14, 0, 0, 0, 345, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 0, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 0, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 948, 949, 824, ! 0, 0, 385, 0, 0, 0, 0, 0, 336, 0, ! 0, 337, 0, 0, 0, 0, 0, 0, 0, 338, ! 339, 340, 0, 0, 0, 0, 0, 341, 342, 343, ! 0, 0, 0, 344, 950, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 1127, ! 345, 628, 0, 271, 8, 9, 10, 0, 12, 315, ! 316, 317, 318, 0, 319, 14, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 320, 17, 18, 19, 0, 321, 322, 323, 20, 0, ! 324, 325, 326, 21, 327, 328, 0, 23, 0, 0, ! 0, 329, 330, 331, 332, 333, 26, 0, 0, 28, ! 272, -345, 0, 0, 385, 0, 0, 0, 0, 0, ! 336, 0, 0, 629, 0, 0, 0, 0, 0, 0, ! 0, 338, 339, 630, 0, 0, 0, 0, 0, 341, ! 342, 343, 0, 0, 823, 631, 945, 946, 947, 10, ! 0, 12, 505, 316, 317, 318, 0, 319, 14, 0, ! 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 320, 17, 0, 19, 0, 321, 322, ! 323, 20, 0, 324, 325, 326, 21, 327, 328, 0, ! 23, 0, 0, 0, 329, 330, 331, 332, 333, 26, ! 0, 0, 948, 949, 824, 0, 0, 385, 0, 0, ! 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, ! 0, 0, 0, 0, 338, 339, 340, 0, 0, 0, ! 0, 0, 341, 342, 343, 0, 0, 0, 344, 950, ! 823, 0, 271, 8, 9, 10, 0, 12, 505, 316, ! 317, 318, 0, 319, 14, 345, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 320, ! 17, 0, 19, 0, 321, 322, 323, 20, 0, 324, ! 325, 326, 21, 327, 328, 0, 23, 0, 0, 0, ! 329, 330, 331, 332, 333, 26, 0, 0, 28, 272, ! 824, 0, 0, 385, 0, 0, 0, 0, 0, 336, ! 0, 0, 337, 0, 0, 0, 0, 0, 0, 0, ! 338, 339, 340, 0, 0, 0, 0, 0, 341, 342, ! 343, 0, 0, 0, 344, 823, 0, 945, 946, 947, ! 10, 1324, 12, 505, 316, 317, 318, 0, 319, 14, ! 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 320, 17, 0, 19, 0, 321, ! 322, 323, 20, 0, 324, 325, 326, 21, 327, 328, ! 0, 23, 0, 0, 0, 329, 330, 331, 332, 333, ! 26, 0, 0, 948, 949, 824, 0, 0, 385, 0, ! 0, 0, 0, 0, 336, 0, 0, 337, 0, 0, ! 0, 0, 0, 0, 0, 338, 339, 340, 0, 0, ! 0, 0, 0, 341, 342, 343, 0, 0, 823, 344, ! 945, 946, 947, 10, 0, 12, 505, 316, 317, 318, ! 0, 319, 14, 0, 0, -517, 345, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 320, 17, 0, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 0, 23, 0, 0, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 948, 949, 824, 0, ! 0, 385, 0, 0, 0, 0, 0, 336, 0, 0, ! 337, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 340, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 628, 344, 145, 8, 9, 10, 0, 12, 315, ! 316, 317, 318, 0, 319, 14, 0, 0, 1439, 345, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 320, 17, 18, 19, 0, 321, 322, 323, 20, 0, ! 324, 325, 326, 21, 327, 328, 0, 23, 0, 0, ! 0, 329, 330, 331, 332, 333, 26, 0, 0, 28, ! 29, -345, 0, 0, 385, 0, 0, 0, 0, 0, ! 336, 0, 0, 1713, 0, 0, 0, 0, 0, 0, ! 0, 338, 339, 1714, 0, 0, 0, 0, 0, 341, ! 342, 343, 0, 0, 1770, 1715, 271, 8, 9, 10, ! 0, 12, 315, 316, 317, 318, 0, 319, 14, 0, ! 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 320, 17, 18, 19, 0, 321, 322, ! 323, 20, 0, 324, 325, 326, 21, 327, 328, 0, ! 23, 0, 0, 0, 329, 330, 331, 332, 333, 26, ! 0, 0, 28, 272, 0, 0, -209, 385, 0, 0, ! 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, ! 0, 0, 0, 0, 338, 339, 340, 0, 0, 0, ! 0, 0, 341, 342, 343, 0, 0, 823, 344, 271, ! 8, 9, 10, 0, 12, 505, 316, 317, 318, 0, ! 319, 14, 0, 0, 0, 345, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 0, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 28, 272, 824, 0, 0, ! 385, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 957, 344, 271, 8, 9, 10, 0, 12, 505, 316, ! 317, 318, 0, 319, 14, 0, 0, 0, 345, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 320, ! 17, 0, 19, 0, 321, 322, 323, 20, 0, 324, ! 325, 326, 21, 327, 328, 0, 23, 0, 0, 0, ! 329, 330, 331, 332, 333, 26, 0, 0, 28, 272, ! 0, 0, 0, 385, -832, 0, 0, 0, 0, 336, ! 0, 0, 337, 0, 0, 0, 0, 0, 0, 0, ! 338, 339, 340, 0, 0, 0, 0, 0, 341, 342, ! 343, 0, 0, 957, 344, 271, 8, 9, 10, 0, ! 12, 505, 316, 317, 318, 0, 319, 14, 0, 0, ! 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 320, 17, 0, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 28, 272, 0, 0, 0, 385, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 1054, 344, 271, 8, ! 9, 10, 0, 12, 505, 316, 317, 318, 0, 319, ! 14, 0, -832, 0, 345, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 320, 17, 0, 19, 0, ! 321, 322, 323, 20, 0, 324, 325, 326, 21, 327, ! 328, 0, 23, 0, 0, 0, 329, 330, 331, 332, ! 333, 26, 0, 0, 28, 272, 0, 0, 0, 385, ! 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, ! 0, 0, 0, 0, 0, 0, 338, 339, 340, 0, ! 0, 0, 0, 0, 341, 342, 343, 0, 0, 1056, ! 344, 271, 8, 9, 10, 0, 12, 505, 316, 317, ! 318, 0, 319, 14, 0, 0, 0, 345, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 0, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 0, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 28, 272, 0, ! 0, 0, 385, 0, 0, 0, 0, 0, 336, 0, ! 0, 337, 0, 0, 0, 0, 0, 0, 0, 338, ! 339, 340, 0, 0, 0, 0, 0, 341, 342, 343, ! 0, 0, 1685, 344, 271, 8, 9, 10, 0, 12, ! 505, 316, 317, 318, 0, 319, 14, 0, 0, 0, ! 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 320, 17, 0, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 0, 23, 0, ! 0, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 28, 272, 0, 0, 0, 385, 0, 0, 0, 0, ! 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 340, 0, 0, 0, 0, 0, ! 341, 342, 343, 0, 0, 0, 344, 271, 8, 9, ! 10, 0, 12, 505, 316, 317, 318, 0, 319, 14, ! 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 320, 17, 0, 19, 0, 321, ! 322, 323, 20, 0, 324, 325, 326, 21, 327, 328, ! 0, 23, 0, 0, 0, 329, 330, 331, 332, 333, ! 26, 0, 0, 28, 272, 0, 0, 0, 385, 0, ! 0, 0, 0, 0, 336, 0, 0, 337, 0, 0, ! 0, 0, 0, 0, 0, 338, 339, 340, 0, 0, ! 0, 0, 0, 341, 342, 343, 0, 0, 0, 344, ! 271, 8, 9, 10, 0, 12, 505, 316, 317, 318, ! 0, 319, 14, 0, 0, 0, 345, 506, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 320, 17, 0, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 0, 23, 0, 0, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 28, 272, 0, 0, ! 0, 385, 0, 0, 0, 0, 0, 336, 0, 0, ! 337, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 340, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 0, 344, 271, 8, 9, 10, 0, 12, 505, ! 316, 317, 318, 0, 319, 14, 0, 0, 0, 345, ! 878, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 320, 17, 0, 19, 0, 321, 322, 323, 20, 0, ! 324, 325, 326, 21, 327, 328, 0, 23, 0, 0, ! 0, 329, 330, 331, 332, 333, 26, 0, 0, 28, ! 272, 0, 0, 0, 385, 0, 0, 0, 0, 0, ! 336, 0, 0, 337, 0, 0, 0, 0, 0, 0, ! 0, 338, 339, 340, 0, 0, 0, 0, 0, 341, ! 342, 343, 0, 0, 0, 344, 271, 8, 9, 10, ! 0, 12, 505, 316, 317, 318, 0, 319, 14, 0, ! 0, 0, 345, 996, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 320, 17, 0, 19, 0, 321, 322, ! 323, 20, 0, 324, 325, 326, 21, 327, 328, 0, ! 23, 0, 0, 0, 329, 330, 331, 332, 333, 26, ! 0, 0, 28, 272, 0, 0, 0, 385, 0, 0, ! 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, ! 0, 0, 0, 0, 338, 339, 340, 0, 0, 0, ! 0, 0, 341, 342, 343, 0, 0, 0, 344, 271, ! 8, 9, 10, 0, 12, 505, 316, 317, 318, 0, ! 319, 14, 0, 0, 0, 345, 1016, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 0, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 28, 272, 0, 0, 0, ! 385, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 345, 1260, ! 1589, 1590, 1591, 10, 173, 12, 315, 316, 317, 318, ! 0, 319, 14, 1592, 0, 1593, 1594, 1595, 1596, 1597, ! 1598, 1599, 1600, 1601, 1602, 15, 16, 320, 17, 18, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 1603, 23, 1604, 0, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 1605, 272, 1216, 0, ! 1606, 385, 0, 0, 0, 0, 0, 336, 0, 0, ! 337, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 340, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 0, 344, 0, 1607, 1589, 1590, 1591, 10, 173, ! 12, 315, 316, 317, 318, 0, 319, 14, 1592, 345, ! 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, ! 15, 16, 320, 17, 18, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 1603, 23, ! 1604, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 1605, 272, 0, 0, 1606, 385, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 0, 344, 0, 1607, ! 271, 8, 9, 10, 173, 12, 315, 316, 317, 318, ! 489, 319, 14, 0, 345, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 320, 17, 18, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 0, 23, 0, 693, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 28, 272, 0, 0, ! 0, 385, 0, 0, 0, 0, 0, 336, 0, 0, ! 1028, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 1029, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 0, 1030, 697, 145, 8, 9, 10, 173, 12, ! 315, 316, 317, 318, 489, 319, 14, 0, 0, 345, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 320, 17, 18, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 0, 23, 0, ! 693, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 28, 29, 0, 0, 0, 385, 0, 0, 0, 0, ! 0, 336, 0, 0, 1142, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 1143, 0, 0, 0, 0, 0, ! 341, 342, 343, 0, 0, 0, 1144, 697, 271, 8, ! 9, 10, 0, 12, 315, 316, 317, 318, 0, 319, ! 14, 0, 0, 345, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 320, 17, 18, 19, 0, ! 321, 322, 323, 20, 0, 324, 325, 326, 21, 327, ! 328, 0, 23, 0, 693, 0, 329, 330, 331, 332, ! 333, 26, 0, 0, 28, 272, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 336, 0, 0, 1028, 0, ! 0, 0, 0, 0, 0, 0, 338, 339, 1029, 0, ! 0, 0, 0, 0, 341, 342, 343, 0, 0, 0, ! 1030, 697, 145, 8, 9, 10, 0, 12, 315, 316, ! 317, 318, 0, 319, 14, 0, 0, 345, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 320, ! 17, 18, 19, 0, 321, 322, 323, 20, 0, 324, ! 325, 326, 21, 327, 328, 0, 23, 0, 693, 0, ! 329, 330, 331, 332, 333, 26, 0, 0, 28, 29, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, ! 0, 0, 1142, 0, 0, 0, 0, 0, 0, 0, ! 338, 339, 1143, 0, 0, 0, 0, 0, 341, 342, ! 343, 0, 0, 0, 1144, 697, 271, 8, 9, 10, ! 0, 12, 315, 316, 317, 318, 0, 319, 14, 0, ! 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 320, 17, 18, 19, 0, 321, 322, ! 323, 20, 0, 324, 325, 326, 21, 327, 328, 0, ! 23, 0, 0, 0, 329, 330, 331, 332, 333, 26, ! 0, 0, 334, 272, 0, 0, 0, 335, 0, 0, ! 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, ! 0, 0, 0, 0, 338, 339, 340, 0, 0, 0, ! 0, 0, 341, 342, 343, 0, 0, 0, 344, 271, ! 8, 9, 10, 0, 12, 315, 316, 317, 318, 0, ! 319, 14, 0, 0, 0, 345, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 18, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 28, 272, 0, 0, 0, ! 385, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 0, 344, 271, 8, 9, 10, 0, 12, 505, 316, ! 317, 318, 0, 319, 14, 0, 0, 0, 345, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 320, ! 17, 18, 19, 0, 321, 322, 323, 20, 0, 324, ! 325, 326, 21, 327, 328, 0, 23, 0, 0, 0, ! 329, 330, 331, 332, 333, 26, 0, 0, 28, 272, ! 0, 0, 0, 385, 0, 0, 0, 0, 0, 336, ! 0, 0, 629, 0, 0, 0, 0, 0, 0, 0, ! 338, 339, 630, 0, 0, 0, 0, 0, 341, 342, ! 343, 0, 0, 0, 631, 271, 8, 9, 10, 0, ! 12, 505, 316, 317, 318, 0, 319, 14, 0, 0, ! 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 320, 17, 0, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 28, 272, 0, 0, 1652, 385, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 0, 344, 271, 8, ! 9, 10, 173, 12, 315, 316, 317, 318, 0, 319, ! 14, 0, 0, 0, 345, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 320, 17, 18, 19, 0, ! 321, 322, 323, 20, 0, 324, 325, 326, 21, 327, ! 328, 0, 23, 0, 0, 0, 329, 330, 331, 332, ! 333, 26, 0, 0, 28, 272, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, ! 0, 0, 0, 0, 0, 0, 338, 339, 340, 0, ! 0, 0, 0, 0, 341, 342, 343, 0, 0, 0, ! 344, 145, 8, 9, 10, 0, 12, 505, 316, 317, ! 318, 0, 319, 14, 0, 0, 0, 345, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 18, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 0, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 28, 29, 0, ! 0, 0, 385, 0, 0, 0, 0, 0, 336, 0, ! 0, 1713, 0, 0, 0, 0, 0, 0, 0, 338, ! 339, 1714, 0, 0, 0, 0, 0, 341, 342, 343, ! 0, 0, 0, 1715, 271, 8, 9, 10, 0, 12, ! 505, 316, 317, 318, 0, 319, 14, 0, 0, 0, ! 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 320, 17, 0, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 0, 23, 0, ! 0, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 28, 272, 0, 0, 0, 335, 0, 0, 0, 0, ! 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 340, 0, 0, 0, 0, 0, ! 341, 342, 343, 0, 0, 0, 344, 271, 8, 9, ! 10, 0, 12, 505, 316, 317, 318, 0, 319, 14, ! 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 320, 17, 0, 19, 0, 321, ! 322, 323, 20, 0, 324, 325, 326, 21, 327, 328, ! 0, 23, 0, 0, 0, 329, 330, 331, 332, 333, ! 26, 0, 0, 28, 272, 643, 0, 0, 0, 0, ! 0, 0, 0, 0, 336, 0, 0, 337, 0, 0, ! 0, 0, 0, 0, 0, 338, 339, 340, 0, 0, ! 0, 0, 0, 341, 342, 343, 0, 0, 0, 644, ! 271, 8, 9, 10, 0, 12, 505, 316, 317, 318, ! 0, 319, 14, 0, 0, 0, 345, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 320, 17, 0, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 0, 23, 0, 0, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 28, 272, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, ! 337, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 340, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 0, 344, 681, 271, 8, 9, 10, 0, 12, ! 505, 316, 317, 318, 0, 319, 14, 0, 0, 345, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 320, 17, 0, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 0, 23, 0, ! 0, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 28, 272, 0, 0, 0, 385, 0, 0, 0, 0, ! 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 340, 0, 0, 0, 0, 0, ! 341, 342, 343, 0, 0, 0, 344, 271, 8, 9, ! 10, 0, 12, 505, 316, 317, 318, 0, 319, 14, ! 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 320, 17, 18, 19, 0, 321, ! 322, 323, 20, 0, 324, 325, 326, 21, 327, 328, ! 0, 23, 0, 0, 0, 329, 330, 331, 332, 333, ! 26, 0, 0, 28, 272, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 336, 0, 0, 629, 0, 0, ! 0, 0, 0, 0, 0, 338, 339, 630, 0, 0, ! 0, 0, 0, 341, 342, 343, 0, 0, 0, 631, ! 1281, 8, 9, 10, 0, 12, 505, 316, 317, 318, ! 0, 319, 14, 0, 0, 0, 345, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 320, 17, 0, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 0, 23, 0, 0, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 28, 272, 0, 0, ! 0, 385, 0, 0, 0, 0, 0, 336, 0, 0, ! 337, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 340, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 0, 344, 145, 8, 9, 10, 0, 12, 315, ! 316, 317, 318, 0, 319, 14, 0, 0, 0, 345, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 320, 17, 18, 19, 0, 321, 322, 323, 20, 0, ! 324, 325, 326, 21, 327, 328, 0, 23, 0, 0, ! 0, 329, 330, 331, 332, 333, 26, 0, 0, 28, ! 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 336, 0, 0, 1713, 0, 0, 0, 0, 0, 0, ! 0, 338, 339, 1714, 0, 0, 0, 0, 0, 341, ! 342, 343, 0, 0, 0, 1715, 271, 8, 9, 10, ! 0, 12, 505, 316, 317, 318, 0, 319, 14, 0, ! 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 320, 17, 0, 19, 0, 321, 322, ! 323, 20, 0, 324, 325, 326, 21, 327, 328, 0, ! 23, 0, 0, 0, 329, 330, 331, 332, 333, 26, ! 0, 0, 28, 272, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, ! 0, 0, 0, 0, 338, 339, 340, 0, 0, 0, ! 0, 0, 341, 342, 343, 0, 0, 0, 344, 271, ! 8, 9, 10, 0, 12, 505, 316, 317, 318, 0, ! 319, 14, 0, 0, 0, 345, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 0, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 28, 272, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 0, 703, 271, 8, 9, 10, 0, 12, 505, 316, ! 317, 318, 0, 319, 14, 0, 0, 0, 345, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 320, ! 17, 0, 19, 0, 321, 322, 323, 20, 0, 324, ! 325, 326, 21, 327, 328, 0, 23, 0, 0, 0, ! 329, 330, 331, 332, 333, 26, 0, 0, 28, 272, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, ! 0, 0, 337, 145, 8, 9, 10, 212, 12, 213, ! 338, 339, 340, 0, 0, 14, 0, 0, 341, 342, ! 343, 0, 0, 0, 705, 0, 0, 0, 0, 16, ! 0, 17, 18, 0, 0, 0, 0, 0, 20, 0, ! 0, 345, 0, 21, 0, 0, 0, 23, 0, 145, ! 8, 9, 10, 173, 12, 13, 26, 0, 0, 28, ! 29, 14, 0, 1669, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 31, 0, 16, 0, 17, 18, 0, ! 0, 0, 0, 32, 20, 0, 0, 0, 0, 21, ! 0, 33, 0, 23, 0, 34, 0, 0, 0, 0, ! 0, 0, 26, 0, 0, 28, 29, 0, 0, 0, ! 145, 8, 9, 10, 212, 12, 213, 0, 0, 31, ! 0, 0, 14, 0, 0, 0, 0, 0, 0, 32, ! 0, 0, 0, 0, 0, 0, 16, 33, 17, 18, ! 0, 34, 0, 0, 0, 20, 0, 0, 0, 0, ! 21, 0, 0, 0, 23, 0, 0, 0, 0, 0, ! 0, 0, 0, 26, 0, 0, 28, 29, 0, 0, ! 0, 0, 650, 651, 652, 653, 654, 655, 656, 657, ! 31, 658, 659, 660, 661, 662, 663, 664, 665, 666, ! 32, 0, 0, 0, 0, 0, 0, 0, 33, 0, ! 0, 0, 34, 745, 746, 747, 748, 749, 750, 751, ! 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, ! 762, 763, 764, 765, 766, 745, 746, 747, 748, 749, ! 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, ! 760, 761, 762, 763, 764, 765, 766, 0, 0, 0, ! 1398, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 744, 0, 0, 1720, 745, ! 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, ! 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, ! 766, 1207, 0, 0, 0, 745, 746, 747, 748, 749, ! 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, ! 760, 761, 762, 763, 764, 765, 766, 1757, 745, 746, ! 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, ! 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, ! 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, ! 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, ! 765, 766 }; ! static const short yycheck[] = ! { ! 14, 4, 180, 4, 484, 167, 82, 23, 22, 747, ! 818, 49, 216, 181, 424, 424, 182, 366, 261, 155, ! 156, 4, 130, 196, 45, 95, 14, 97, 162, 372, ! 352, 87, 372, 36, 424, 36, 552, 424, 641, 252, ! 78, 800, 364, 365, 45, 45, 727, 4, 4, 392, ! 985, 255, 392, 36, 820, 69, 137, 138, 4, 60, ! 225, 226, 45, 4, 394, 466, 246, 1431, 1438, 794, ! 128, 137, 142, 74, 150, 138, 12, 1554, 1554, 36, ! 36, 45, 45, 9, 1608, 4, 87, 45, 45, 45, ! 36, 92, 502, 502, 95, 36, 97, 85, 12, 45, ! 1549, 4, 12, 4, 45, 63, 1174, 311, 1176, 34, ! 82, 112, 31, 32, 128, 216, 1184, 36, 39, 58, ! 801, 63, 1696, 111, 3, 226, 45, 374, 375, 372, ! 1455, 1456, 49, 36, 210, 36, 533, 77, 64, 140, ! 154, 142, 45, 144, 7, 907, 87, 1472, 497, 392, ! 171, 913, 13, 34, 175, 61, 56, 140, 555, 508, ! 96, 67, 366, 1, 1, 65, 0, 109, 87, 111, ! 171, 1695, 1621, 62, 175, 175, 39, 141, 95, 96, ! 1754, 182, 220, 140, 431, 432, 111, 12, 171, 0, ! 111, 62, 175, 110, 140, 196, 110, 1522, 77, 140, ! 110, 62, 95, 1, 65, 1717, 1531, 1532, 50, 1534, ! 110, 175, 175, 61, 171, 1727, 1728, 175, 175, 175, ! 221, 140, 111, 61, 61, 171, 65, 65, 65, 175, ! 171, 56, 246, 247, 175, 196, 155, 156, 141, 110, ! 65, 49, 181, 112, 28, 49, 60, 261, 32, 110, ! 1699, 99, 171, 1730, 1730, 196, 175, 523, 216, 97, ! 97, 1773, 1024, 61, 62, 531, 13, 225, 226, 257, ! 171, 110, 175, 49, 155, 156, 157, 196, 49, 63, ! 361, 200, 201, 67, 4, 110, 1045, 95, 1737, 1048, ! 63, 95, 62, 1228, 62, 361, 56, 255, 3, 4, ! 5, 357, 110, 819, 65, 277, 376, 1632, 1633, 63, ! 444, 312, 474, 1825, 63, 62, 36, 77, 65, 95, ! 96, 202, 336, 95, 95, 1774, 140, 111, 197, 62, ! 3, 77, 34, 6, 110, 4, 5, 49, 111, 110, ! 110, 1761, 110, 344, 1103, 1104, 4, 5, 406, 110, ! 110, 414, 221, 311, 59, 60, 357, 111, 77, 32, ! 49, 1731, 111, 433, 529, 530, 367, 381, 182, 1094, ! 43, 551, 1624, 538, 1794, 376, 377, 110, 83, 393, ! 516, 517, 722, 95, 372, 519, 59, 60, 77, 554, ! 59, 60, 406, 1645, 377, 1759, 13, 787, 56, 95, ! 73, 59, 60, 1471, 392, 49, 95, 96, 366, 1661, ! 83, 62, 813, 814, 63, 73, 357, 1793, 91, 56, ! 377, 110, 95, 424, 109, 83, 427, 26, 65, 530, ! 62, 377, 433, 40, 63, 1197, 377, 1199, 357, 1815, ! 77, 606, 78, 686, 80, 62, 776, 468, 65, 56, ! 67, 95, 96, 155, 156, 157, 49, 65, 377, 110, ! 1, 56, 3, 4, 5, 1717, 110, 468, 468, 77, ! 428, 1406, 715, 543, 67, 1727, 1728, 26, 110, 28, ! 1161, 728, 77, 424, 49, 468, 1, 426, 3, 4, ! 5, 6, 49, 8, 495, 1098, 56, 498, 56, 56, ! 202, 502, 95, 541, 95, 424, 49, 987, 49, 32, ! 468, 468, 61, 1272, 1273, 56, 65, 77, 59, 60, ! 77, 1773, 468, 65, 485, 56, 77, 468, 43, 1, ! 95, 3, 4, 5, 65, 50, 3, 551, 95, 497, ! 26, 56, 543, 613, 59, 60, 77, 49, 97, 468, ! 13, 56, 95, 96, 95, 494, 803, 496, 497, 95, ! 56, 502, 65, 377, 56, 28, 61, 110, 26, 32, ! 28, 529, 530, 1825, 77, 61, 91, 49, 49, 65, ! 538, 77, 1344, 502, 56, 77, 49, 59, 60, 61, ! 62, 56, 26, 95, 28, 1357, 554, 516, 517, 62, ! 63, 56, 65, 61, 67, 4, 5, 65, 49, 56, ! 9, 97, 613, 49, 65, 50, 49, 618, 619, 620, ! 621, 622, 678, 95, 95, 96, 77, 61, 56, 643, ! 631, 65, 95, 96, 812, 516, 517, 518, 61, 97, ! 641, 78, 65, 644, 4, 5, 49, 110, 606, 77, ! 62, 1167, 49, 614, 95, 96, 525, 56, 56, 95, ! 59, 60, 95, 97, 67, 49, 78, 65, 80, 110, ! 1150, 1151, 686, 56, 73, 62, 677, 678, 49, 77, ! 927, 894, 895, 67, 83, 1095, 1095, 900, 3, 4, ! 5, 78, 95, 1036, 77, 696, 1036, 96, 95, 59, ! 60, 715, 703, 784, 705, 1095, 707, 668, 1095, 779, ! 1032, 95, 96, 674, 777, 676, 677, 110, 883, 1485, ! 65, 784, 77, 711, 95, 96, 8, 9, 110, 933, ! 110, 865, 77, 15, 907, 50, 49, 678, 1218, 1219, ! 913, 49, 110, 188, 59, 60, 707, 46, 49, 618, ! 32, 49, 1514, 714, 12, 696, 38, 56, 49, 678, ! 111, 60, 99, 724, 840, 47, 707, 49, 83, 785, ! 63, 785, 26, 731, 28, 694, 695, 696, 779, 648, ! 794, 1297, 95, 1549, 95, 61, 3, 95, 707, 65, ! 49, 730, 63, 1036, 95, 903, 56, 95, 49, 77, ! 49, 56, 49, 819, 95, 1148, 675, 61, 1148, 61, ! 824, 65, 681, 95, 516, 517, 518, 77, 113, 4, ! 5, 49, 77, 1339, 49, 1305, 96, 49, 697, 3, ! 4, 5, 6, 96, 835, 793, 95, 96, 908, 909, ! 1087, 911, 843, 97, 95, 96, 95, 96, 95, 96, ! 65, 1024, 95, 841, 793, 1621, 1336, 95, 28, 110, ! 95, 110, 32, 110, 7, 8, 9, 95, 34, 43, ! 95, 56, 15, 95, 59, 60, 50, 49, 747, 3, ! 4, 5, 843, 77, 1233, 59, 60, 363, 73, 32, ! 366, 367, 62, 63, 835, 38, 857, 67, 83, 77, ! 1034, 77, 843, 904, 47, 1148, 907, 908, 909, 83, ! 911, 96, 913, 77, 833, 834, 835, 91, 1398, 12, ! 63, 904, 56, 95, 843, 883, 50, 62, 1694, 62, ! 63, 65, 904, 1699, 1112, 59, 60, 1745, 61, 28, ! 62, 63, 65, 32, 1191, 1192, 1193, 904, 904, 868, ! 869, 1164, 1165, 1166, 835, 62, 63, 1695, 56, 83, ! 56, 56, 843, 904, 95, 110, 907, 65, 62, 1449, ! 65, 1737, 913, 62, 63, 933, 3, 4, 5, 77, ! 62, 63, 77, 984, 110, 904, 77, 988, 907, 56, ! 156, 157, 62, 63, 913, 4, 5, 1133, 1134, 3, ! 4, 5, 1136, 7, 8, 9, 1142, 1143, 1774, 1489, ! 56, 3, 4, 5, 922, 923, 924, 1018, 494, 65, ! 496, 497, 498, 1024, 1197, 77, 1199, 988, 32, 1030, ! 77, 77, 59, 60, 38, 62, 202, 62, 63, 110, ! 49, 1002, 111, 1004, 65, 1006, 111, 56, 1036, 110, ! 59, 60, 56, 110, 49, 59, 60, 61, 50, 110, ! 1798, 56, 1138, 113, 73, 110, 1080, 59, 60, 3, ! 4, 5, 49, 67, 83, 3, 4, 5, 6, 67, ! 1094, 9, 77, 1024, 86, 87, 95, 96, 110, 1030, ! 904, 83, 49, 110, 1095, 77, 1097, 1098, 28, 56, ! 95, 105, 106, 107, 32, 1024, 4, 5, 77, 1028, ! 1029, 1030, 89, 90, 56, 43, 93, 94, 95, 96, ! 77, 1082, 56, 992, 77, 59, 60, 61, 56, 62, ! 63, 59, 60, 835, 1135, 86, 87, 113, 95, 1177, ! 1178, 843, 113, 1144, 110, 73, 62, 63, 46, 1187, ! 1560, 1560, 1153, 3, 1095, 83, 1025, 56, 56, 1120, ! 1148, 59, 60, 91, 110, 1234, 1235, 95, 1237, 1416, ! 62, 1344, 1242, 1174, 62, 1176, 1095, 8, 344, 67, ! 95, 1182, 49, 1184, 1357, 77, 78, 110, 80, 77, ! 78, 1174, 110, 1176, 1135, 63, 1197, 67, 1199, 62, ! 63, 1184, 1174, 1144, 1176, 1219, 1207, 62, 63, 111, ! 1182, 62, 1184, 95, 1133, 1134, 1135, 1174, 1174, 1176, ! 1176, 4, 5, 1142, 1143, 1144, 111, 1184, 1184, 56, ! 1176, 63, 77, 1174, 38, 1176, 110, 67, 3, 4, ! 5, 1242, 1181, 1184, 67, 9, 67, 63, 110, 13, ! 110, 62, 1133, 1134, 1135, 1174, 1197, 1176, 1199, 67, ! 67, 1142, 1143, 1144, 113, 1184, 78, 1268, 1617, 110, ! 110, 110, 78, 56, 110, 78, 59, 60, 1197, 78, ! 1199, 1297, 78, 61, 110, 49, 65, 62, 65, 455, ! 456, 1305, 1173, 1369, 59, 60, 61, 110, 62, 65, ! 64, 65, 111, 67, 7, 8, 9, 3, 4, 5, ! 110, 1312, 15, 110, 78, 113, 80, 793, 3, 4, ! 5, 6, 110, 1361, 110, 96, 113, 1268, 1808, 1367, ! 1368, 95, 96, 1371, 1372, 38, 91, 1375, 1299, 77, ! 1301, 1514, 1303, 1344, 47, 49, 110, 1266, 1267, 1268, ! 110, 517, 518, 110, 50, 113, 1357, 110, 43, 110, ! 1174, 110, 1176, 59, 60, 110, 110, 1181, 1182, 1238, ! 1184, 1312, 111, 110, 59, 60, 1725, 1378, 65, 3, ! 4, 5, 6, 110, 63, 31, 32, 83, 34, 111, ! 61, 1310, 1311, 1312, 110, 1378, 110, 1369, 67, 3, ! 4, 5, 6, 1344, 110, 95, 1378, 95, 110, 1348, ! 111, 95, 1331, 1332, 60, 95, 1357, 63, 110, 43, ! 113, 1378, 1378, 69, 8, 1344, 50, 110, 74, 4, ! 5, 1133, 1134, 1135, 9, 59, 60, 1378, 1357, 43, ! 1142, 1143, 1144, 888, 1445, 110, 50, 1615, 110, 1617, ! 1616, 110, 113, 110, 98, 59, 60, 933, 110, 1378, ! 110, 62, 196, 62, 630, 631, 1427, 91, 1482, 65, ! 1471, 1173, 3, 4, 5, 6, 56, 110, 644, 83, ! 110, 56, 110, 65, 59, 60, 113, 91, 1471, 49, ! 110, 1529, 1530, 110, 1466, 110, 110, 67, 73, 1471, ! 110, 147, 110, 110, 110, 1506, 152, 110, 83, 155, ! 156, 157, 43, 1514, 1471, 1471, 34, 110, 113, 50, ! 110, 1725, 95, 65, 1393, 1394, 1395, 1396, 59, 60, ! 1471, 1007, 65, 63, 1348, 1404, 182, 703, 63, 705, ! 9, 707, 188, 63, 1722, 17, 111, 110, 1710, 110, ! 61, 1554, 1471, 1554, 200, 201, 202, 95, 1034, 1560, ! 91, 95, 63, 63, 1378, 1506, 56, 1581, 67, 95, ! 216, 1554, 109, 1514, 18, 104, 63, 1713, 1714, 56, ! 226, 3, 4, 5, 63, 1504, 1505, 1506, 1602, 1603, ! 63, 3, 4, 5, 110, 1514, 110, 1554, 1554, 3, ! 4, 5, 6, 63, 63, 62, 95, 1608, 1554, 255, ! 113, 67, 110, 1554, 63, 1616, 3, 4, 5, 1560, ! 7, 8, 9, 63, 270, 1608, 110, 12, 1790, 110, ! 95, 1793, 63, 1671, 56, 1554, 63, 59, 60, 43, ! 63, 1560, 110, 63, 1658, 1659, 50, 59, 60, 0, ! 1812, 1608, 1608, 1815, 1130, 59, 60, 1471, 0, 1617, ! 1136, 0, 1608, 176, 2, 311, 312, 1608, 36, 835, ! 1659, 777, 59, 60, 1095, 468, 1615, 843, 1617, 83, ! 3, 4, 5, 175, 7, 1554, 171, 91, 1689, 1608, ! 1721, 857, 1182, 1707, 1695, 1696, 1297, 99, 344, 144, ! 3, 4, 5, 869, 870, 314, 1644, 3, 4, 5, ! 1748, 1672, 1695, 1080, 1715, 824, 39, 737, 1339, 1167, ! 366, 367, 3, 4, 5, 1378, 1182, 1730, 1468, 1730, ! 1051, 739, 1601, 56, 678, 361, 59, 60, 1695, 1695, ! 3, 4, 5, 207, 7, 8, 9, 1730, 1689, 1695, ! 128, 485, 1549, 1754, 1695, 1696, 59, 60, 1486, 635, ! 56, 1730, 1776, 59, 60, 1745, 1742, 1725, 1792, 32, ! 1689, 852, 1248, 1730, 1730, 38, 1695, 1696, 59, 60, ! 1256, 427, 428, 1445, 1730, 1654, -1, 1726, -1, 1730, ! -1, 1672, -1, -1, 1713, 1714, 59, 60, -1, 445, ! -1, -1, 448, 3, 4, 5, 6, -1, 454, 455, ! 456, 1730, -1, 1754, 460, 83, 84, 85, 86, 87, ! 1689, -1, 3, 4, 5, 6, 1695, 1696, 58, -1, ! -1, 1307, 1713, 1714, 1715, 1754, 3, 4, 5, -1, ! 1316, -1, -1, 43, 83, 84, 85, 86, 87, 495, ! -1, 497, 498, -1, -1, -1, 56, -1, -1, 59, ! 60, 1730, 43, 1029, 1030, 511, -1, -1, 514, 50, ! 516, 517, 518, 73, -1, -1, 522, -1, 59, 60, ! 614, -1, 528, 83, 530, 1754, -1, 533, 3, 4, ! 5, 91, 59, 60, -1, 95, -1, 4, 5, 1768, ! -1, 3, 4, 5, 6, 1350, 1351, 9, 554, 555, ! 91, -1, -1, -1, -1, -1, 3, 4, 5, 1788, ! -1, -1, -1, -1, -1, 32, -1, -1, -1, 1798, ! 32, 32, 1377, -1, 668, 50, -1, 1382, -1, -1, ! 674, 43, 676, 677, 59, 60, -1, 49, -1, 56, ! 1819, 181, 59, 60, 56, -1, -1, 59, 60, -1, ! 606, -1, -1, 50, -1, -1, 73, -1, 1134, 1135, ! 1672, 73, 59, 60, -1, -1, 83, 1143, 1144, -1, ! 714, 83, -1, 629, 630, 631, -1, -1, 95, 91, ! 724, -1, -1, 95, 96, -1, -1, -1, 644, -1, ! 230, -1, -1, -1, -1, -1, -1, 1173, 3, 4, ! 5, 1713, 1714, 1715, -1, -1, 1461, 1462, -1, 1464, ! 1465, -1, 1467, 3, 4, 5, 6, 7, 8, 9, ! -1, 1507, 1508, -1, -1, 15, -1, -1, 3, 4, ! 5, 6, -1, -1, 82, -1, 147, -1, 694, 695, ! 696, 152, 32, 8, 9, 50, -1, 703, 38, 705, ! 15, 707, -1, 43, 59, 60, -1, 47, -1, 49, ! -1, 109, -1, -1, 1519, 1520, 56, 32, 43, 59, ! 60, -1, -1, 38, 49, 731, 1562, -1, -1, -1, ! -1, 56, 47, 73, 59, 60, 3, 4, 5, 137, ! 201, 1267, 1268, 83, 3, 4, 5, 6, 73, -1, ! -1, 91, 150, -1, -1, 95, 96, -1, 83, -1, ! -1, -1, 3, 4, 5, 6, 91, 1572, 1573, 1574, ! 95, 96, -1, -1, -1, -1, -1, 3, 4, 5, ! 6, 40, 41, 9, 43, 1311, 1312, 793, 794, 56, ! -1, 32, 59, 60, -1, -1, -1, 56, -1, -1, ! 59, 60, 43, -1, -1, -1, 32, -1, 49, 270, ! -1, -1, 210, -1, -1, 56, -1, 43, 59, 60, ! 3, 4, 5, 49, 1629, 1630, -1, 833, 834, 835, ! 56, -1, 73, 59, 60, -1, 426, 843, -1, -1, ! -1, -1, 83, 3, 4, 5, 6, 73, 246, 9, ! 91, 857, -1, -1, 95, 96, -1, 83, -1, -1, ! 866, 867, 868, 869, 870, 91, -1, -1, 874, 95, ! 96, -1, 32, -1, -1, -1, 59, 60, -1, 277, ! -1, -1, 888, 43, -1, -1, -1, -1, 3, 4, ! 5, 6, -1, -1, 988, -1, 56, -1, -1, 59, ! 60, -1, -1, -1, 494, -1, 496, 497, 1002, -1, ! 1004, -1, 1006, 73, 3, 4, 5, -1, -1, -1, ! 510, -1, -1, 83, -1, 335, 4, 933, 43, 519, ! -1, 91, -1, 523, -1, 95, 14, -1, 3, 4, ! 5, 531, -1, -1, 59, 60, 24, -1, -1, -1, ! -1, -1, -1, 31, 32, -1, 34, -1, 36, -1, ! -1, 1766, -1, -1, -1, -1, -1, 45, -1, -1, ! 59, 60, -1, 371, -1, -1, 91, -1, -1, -1, ! 58, -1, 60, -1, 445, -1, -1, 448, 1082, -1, ! -1, 69, -1, 391, 59, 60, 74, -1, -1, 460, ! -1, -1, 1008, 4, 5, 1011, -1, 85, 9, 87, ! -1, -1, -1, -1, 92, -1, 1022, 95, -1, 97, ! -1, -1, 1028, 1029, 1030, -1, 1120, -1, -1, -1, ! -1, 32, -1, 111, -1, -1, -1, -1, -1, 437, ! -1, -1, -1, 3, 4, 5, 6, -1, 49, -1, ! 511, -1, -1, 514, -1, 56, -1, -1, 59, 60, ! 138, -1, 140, -1, 142, -1, 144, 528, 146, 147, ! -1, -1, 73, 151, 152, -1, -1, 155, 156, 157, ! 40, 41, 83, 43, -1, -1, -1, -1, 1094, -1, ! -1, -1, -1, 171, 95, 96, 56, 175, -1, 59, ! 60, -1, -1, 181, 182, 3, 4, 5, 6, 81, ! 82, 83, 84, 85, 86, 87, 3, 4, 5, 6, ! -1, -1, 200, 201, 202, 1131, 1132, 1133, 1134, 1135, ! 3, 4, 5, 6, 1140, -1, 1142, 1143, 1144, -1, ! 730, -1, -1, -1, -1, 43, 1672, -1, 1154, 1155, ! 1156, -1, 230, 551, -1, -1, 43, -1, 56, 32, ! -1, 59, 60, 50, -1, 63, -1, 1173, -1, 247, ! 43, -1, 59, 60, -1, 73, 1182, -1, -1, 257, ! -1, -1, -1, 56, -1, 83, 59, 60, 1714, 1715, ! -1, -1, 270, 91, -1, -1, 83, 95, -1, -1, ! 73, -1, -1, 793, 91, 1299, -1, 1301, -1, 1303, ! 83, 609, -1, -1, -1, -1, -1, -1, 91, -1, ! -1, -1, 95, 81, 82, 83, 84, 85, 86, 87, ! 3, 4, 5, 6, 312, 313, 646, 647, -1, 649, ! 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, ! 660, 661, 662, 663, 664, 665, 666, -1, -1, -1, ! 1266, 1267, 1268, -1, -1, -1, -1, -1, 4, 5, ! 43, -1, 862, 9, -1, 865, -1, 50, -1, 357, ! -1, -1, -1, 361, -1, 363, 59, 60, 366, 367, ! -1, 881, -1, 691, -1, -1, 32, -1, 376, 377, ! -1, -1, 1308, 1309, 1310, 1311, 1312, -1, -1, 1315, ! 4, 5, 710, 49, -1, 9, -1, -1, 91, -1, ! 56, -1, -1, 59, 60, 1331, 1332, 1333, -1, -1, ! -1, -1, -1, 1427, -1, -1, 414, 73, 32, -1, ! -1, -1, -1, -1, 1350, 1351, 424, 83, 426, 427, ! -1, -1, 4, 5, -1, 433, -1, 435, -1, 95, ! 96, -1, 56, -1, -1, 59, 60, 445, -1, -1, ! 448, 1377, -1, 834, -1, -1, 1382, -1, -1, 73, ! 32, -1, 460, -1, -1, -1, -1, -1, -1, 83, ! 468, -1, -1, -1, -1, -1, -1, 49, -1, -1, ! -1, 95, -1, -1, 56, 866, 867, 59, 60, -1, ! -1, -1, -1, 874, -1, -1, 494, 495, 496, 497, ! 498, 73, -1, -1, 502, -1, -1, -1, -1, -1, ! -1, 83, 510, 511, 1440, 1441, 514, 1443, 516, 517, ! 518, 519, 840, 95, 96, 523, -1, -1, -1, -1, ! 528, -1, -1, 531, -1, 1461, 1462, -1, 1464, 1465, ! -1, 1467, -1, -1, -1, 543, 200, 201, -1, -1, ! -1, -1, -1, 871, -1, -1, -1, -1, -1, -1, ! -1, 3, 4, 5, 6, 7, 8, 9, -1, 567, ! -1, 13, -1, 15, -1, -1, -1, -1, 1504, 1505, ! 1506, -1, -1, -1, -1, -1, -1, 29, -1, 31, ! 32, -1, -1, 1519, 1520, -1, 38, -1, -1, -1, ! -1, 43, -1, -1, -1, 47, -1, 925, -1, -1, ! -1, -1, -1, 611, 56, 613, -1, 59, 60, -1, ! 1130, 619, 620, 621, 622, -1, 1136, -1, -1, -1, ! 1, 73, 3, 4, 5, 6, 7, 8, 9, -1, ! -1, 83, -1, 641, 15, -1, 1572, 1573, 1574, 91, ! -1, -1, -1, 95, -1, -1, -1, 28, 29, -1, ! 31, 32, 33, -1, -1, -1, -1, 38, -1, -1, ! -1, 1181, 43, -1, -1, 46, 47, 48, -1, 50, ! 678, -1, 680, -1, -1, 56, 57, -1, 59, 60, ! 1616, 1617, 63, -1, 692, -1, 694, 695, 696, -1, ! -1, -1, 73, 1629, 1630, -1, -1, -1, -1, 707, ! -1, -1, 83, 711, 7, 8, 9, 1035, -1, 1037, ! 91, -1, 15, -1, 95, -1, -1, -1, 99, -1, ! -1, -1, 730, -1, -1, -1, -1, -1, -1, 32, ! -1, -1, -1, -1, -1, 38, 1672, -1, -1, -1, ! 1131, 1132, -1, -1, 47, -1, -1, -1, -1, 1140, ! -1, 3, 4, 5, 6, -1, -1, 9, -1, -1, ! 63, 1101, -1, 3, 4, 5, 6, -1, -1, 777, ! -1, 779, -1, -1, -1, -1, 784, 1713, 1714, 1715, ! 32, -1, -1, -1, -1, 793, 794, 1307, -1, 1725, ! -1, 43, -1, 84, -1, -1, 1316, 49, -1, -1, ! 40, 41, -1, 43, 56, -1, -1, 59, 60, -1, ! 1138, -1, -1, 1141, 1334, 1335, 56, -1, -1, 59, ! 60, 73, -1, -1, -1, 833, 834, 835, 1348, -1, ! 1766, 83, -1, 841, -1, 843, -1, -1, -1, 91, ! 7, 8, 9, 95, 96, -1, -1, 511, 15, -1, ! 514, 91, 516, 517, 862, -1, -1, 865, 866, 867, ! 868, 869, 870, -1, 528, 32, 874, -1, -1, -1, ! -1, 38, -1, 881, 165, -1, -1, -1, 4, 5, ! 47, -1, 1222, 9, -1, -1, -1, -1, -1, -1, ! -1, -1, 3, 4, 5, 6, 904, -1, 9, 907, ! 908, 909, -1, 911, -1, 913, 32, 198, -1, -1, ! -1, -1, 66, -1, 922, 923, 924, 1308, 1309, -1, ! 211, 32, -1, -1, 1315, 933, -1, 1447, -1, -1, ! 56, -1, 43, 59, 60, -1, -1, -1, 49, -1, ! -1, -1, -1, 1463, -1, 56, -1, 73, 59, 60, ! -1, -1, -1, -1, -1, -1, -1, 83, -1, -1, ! -1, -1, 73, -1, -1, -1, -1, -1, -1, 95, ! 880, -1, 83, -1, -1, -1, 984, -1, 4, 5, ! 91, -1, -1, 9, 95, 96, -1, 1507, 1508, -1, ! -1, -1, 146, -1, -1, -1, 906, -1, -1, 1007, ! 1008, -1, 912, 1011, -1, -1, 32, -1, 162, -1, ! 1018, -1, -1, -1, 1022, -1, 1024, -1, -1, -1, ! 1028, 1029, 1030, 49, -1, -1, 1034, -1, 1036, -1, ! 56, -1, -1, 59, 60, -1, -1, -1, -1, -1, ! -1, 1369, 1562, 3, 4, 5, 6, 73, -1, -1, ! -1, 4, 5, -1, 7, 8, 9, 83, -1, -1, ! 13, -1, 15, -1, -1, 219, -1, -1, -1, 95, ! 96, -1, -1, -1, 228, -1, 29, -1, 31, 32, ! -1, -1, -1, 43, -1, 38, -1, 1095, -1, 1097, ! 1098, 245, -1, -1, 47, 1615, 49, 1617, -1, 59, ! 60, -1, 256, 56, -1, -1, 59, 60, -1, 1019, ! -1, 1021, -1, -1, 1442, -1, -1, -1, -1, -1, ! 73, -1, 1130, 1131, 1132, 1133, 1134, 1135, 1136, -1, ! 83, 91, 1140, -1, 1142, 1143, 1144, -1, 1466, -1, ! 1148, -1, 95, 96, -1, 1153, 1154, 1155, 1156, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, -1, 4, ! 5, -1, 1170, -1, 9, 1173, 1174, -1, 1176, 833, ! 834, -1, -1, 1181, 1182, -1, 1184, -1, -1, -1, ! 3, 4, 5, 6, -1, -1, -1, 32, -1, 1197, ! -1, 1199, -1, -1, -1, -1, -1, -1, -1, 1207, ! -1, -1, 866, 867, 868, 869, 1726, -1, -1, -1, ! 874, 56, -1, -1, 59, 60, -1, -1, -1, -1, ! 43, 3, 4, 5, 6, -1, 1234, 1235, 73, 1237, ! 521, -1, -1, 56, 1242, 526, 59, 60, 83, -1, ! 1248, -1, 4, 5, -1, 7, 8, 9, 1256, -1, ! 95, 13, -1, 15, -1, -1, -1, -1, 1266, 1267, ! 1268, 43, -1, -1, -1, -1, 557, 29, 91, 31, ! 32, -1, -1, 564, -1, -1, 38, 59, 60, -1, ! -1, 435, -1, -1, -1, 47, 1196, 49, 1198, -1, ! 444, -1, -1, -1, 56, -1, -1, 59, 60, 1307, ! 1308, 1309, 1310, 1311, 1312, -1, -1, 1315, 1316, 91, ! -1, 73, -1, -1, -1, -1, 607, 608, -1, 610, ! -1, 83, 476, 1331, 1332, 1333, 1334, 1335, -1, -1, ! -1, -1, -1, 95, 96, -1, 1344, -1, -1, -1, ! 1348, -1, -1, -1, -1, -1, -1, -1, 1258, 1357, ! -1, -1, -1, -1, -1, -1, 510, -1, -1, 4, ! 5, -1, 1370, -1, 9, 519, -1, -1, -1, -1, ! 1378, 4, -1, -1, 4, 5, -1, -1, -1, 9, ! -1, 14, -1, -1, -1, -1, 540, 32, -1, -1, ! 23, 24, -1, -1, -1, -1, -1, -1, 31, 32, ! -1, 34, 32, 36, 49, -1, -1, -1, 699, 700, ! -1, 56, 45, 567, 59, 60, -1, 708, -1, 49, ! -1, -1, -1, -1, -1, 58, 56, 60, 73, 59, ! 60, -1, 1440, 1441, -1, 1443, 69, 1445, 83, 1447, ! -1, 74, -1, 73, -1, -1, -1, -1, -1, -1, ! 95, 96, -1, 83, 87, 1463, -1, -1, -1, 92, ! 1468, -1, 95, 1471, 97, 95, 96, 1131, 1132, 1133, ! 1134, -1, -1, -1, -1, -1, 1140, -1, 1142, 1143, ! 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, ! 1154, 1155, 1156, -1, -1, -1, 1504, 1505, 1506, 1507, ! 1508, -1, -1, -1, -1, -1, 1514, 140, -1, 142, ! 1420, 144, -1, 146, 147, -1, -1, -1, -1, 152, ! -1, -1, 155, 156, 157, -1, -1, -1, 4, 5, ! -1, -1, 8, 9, 3, 4, 5, 6, 171, 15, ! -1, 1451, 175, -1, -1, -1, 837, 1457, 181, 182, ! -1, -1, 1560, 29, 1562, 31, 32, -1, -1, -1, ! -1, -1, 38, 1473, 1474, -1, -1, 200, 201, 202, ! -1, 47, -1, -1, 43, -1, -1, 694, 695, 4, ! 56, 872, -1, 59, 60, 61, 1496, 56, -1, -1, ! 59, 60, -1, -1, 63, -1, 65, 230, -1, -1, ! -1, -1, -1, -1, 73, -1, -1, 1615, 1616, 1617, ! -1, 36, -1, -1, 83, -1, -1, -1, -1, 95, ! 45, -1, 91, 914, -1, 916, 95, -1, -1, -1, ! 1540, 1541, -1, 58, -1, 60, -1, 270, 4, 5, ! -1, -1, 8, 9, 1308, 1309, 1310, 1311, -1, 15, ! -1, 1315, -1, 1563, 1564, -1, 1566, 3, 4, 5, ! 6, -1, -1, 29, 1672, 31, 32, 1331, 1332, -1, ! -1, -1, 38, -1, -1, -1, -1, -1, -1, 312, ! 313, 47, -1, -1, -1, -1, -1, -1, -1, -1, ! 56, -1, -1, 59, 60, -1, -1, 43, -1, 990, ! 991, -1, 993, -1, 50, 1713, 1714, 1715, 862, -1, ! -1, 865, -1, 59, 60, 140, 833, 834, 1726, -1, ! -1, 146, -1, -1, 357, -1, -1, 881, 361, 95, ! 363, -1, 1023, 366, 367, -1, -1, 83, -1, 372, ! -1, -1, -1, 376, 377, 91, 171, -1, -1, -1, ! 175, -1, -1, -1, -1, -1, 181, 182, -1, 392, ! -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, ! 1680, -1, -1, -1, -1, 15, 1440, 1441, -1, 1443, ! -1, 414, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 424, 32, 426, 427, -1, -1, -1, 38, -1, ! 433, -1, 435, 43, -1, 230, -1, 47, -1, 49, ! -1, -1, 445, -1, -1, 448, 56, -1, -1, 59, ! 60, -1, -1, -1, -1, -1, -1, 460, -1, -1, ! -1, -1, -1, 73, -1, 468, 3, 4, 5, 6, ! 1504, 1505, -1, 83, -1, -1, -1, -1, 1139, -1, ! -1, 91, -1, 1007, -1, 95, 96, -1, -1, -1, ! -1, 494, 495, 496, 497, 498, -1, -1, -1, 502, ! -1, -1, -1, -1, -1, -1, 43, 510, 511, -1, ! 1034, 514, -1, 516, 517, 518, 519, -1, -1, 56, ! 523, 1008, 59, 60, 1011, 528, 63, -1, 531, -1, ! -1, -1, 4, 5, -1, 1022, 73, 9, -1, -1, ! 543, 1028, 1029, -1, -1, -1, 83, -1, -1, 552, ! -1, -1, -1, -1, 91, -1, -1, -1, 95, -1, ! 32, -1, -1, -1, 567, -1, -1, -1, -1, 3, ! 4, 5, 6, 7, 8, 9, -1, 49, -1, 13, ! -1, 15, 377, -1, 56, -1, -1, 59, 60, -1, ! -1, 1252, -1, -1, -1, 29, -1, 31, 32, -1, ! -1, 73, -1, -1, 38, -1, 1130, -1, -1, 43, ! 613, 83, 1136, 47, -1, 49, 619, 620, 621, 622, ! -1, -1, 56, 95, 96, 59, 60, -1, -1, -1, ! -1, 426, -1, -1, -1, -1, -1, -1, 641, 73, ! 435, -1, 4, 5, 1131, 1132, 1133, 1134, -1, 83, ! -1, -1, 1313, 1140, -1, 1142, 1143, 91, -1, -1, ! -1, 95, 96, -1, -1, -1, -1, -1, -1, -1, ! 32, -1, -1, 468, -1, 678, -1, 680, -1, 1713, ! 1714, -1, 1343, 3, 4, 5, 6, 49, -1, -1, ! -1, 694, 695, 696, 56, 1356, -1, 59, 60, 494, ! 495, 496, 497, -1, 707, -1, -1, 502, -1, -1, ! -1, 73, -1, -1, -1, 510, -1, -1, -1, 722, ! -1, 83, 1383, 43, 1248, -1, 1387, 730, 523, -1, ! 50, -1, 1256, 95, 96, -1, 531, -1, -1, 59, ! 60, -1, -1, -1, -1, -1, -1, -1, -1, 3, ! 4, 5, 6, -1, -1, 9, 3, 4, 5, 6, ! -1, 1422, -1, 83, -1, -1, -1, -1, -1, -1, ! -1, 91, 567, -1, 777, -1, 779, -1, 32, 1266, ! 1267, -1, 785, 1307, -1, -1, -1, -1, -1, 43, ! 793, 794, 1316, -1, -1, 49, 43, -1, -1, -1, ! -1, -1, 56, 50, -1, 59, 60, -1, -1, -1, ! 1334, 1335, 59, 60, 1475, 1476, 819, -1, -1, 73, ! -1, 1308, 1309, 1310, 1311, -1, -1, -1, 1315, 83, ! 833, 834, 835, -1, -1, -1, 83, 91, -1, -1, ! 843, 95, 96, -1, 91, -1, 3, 4, 5, 6, ! -1, 1512, 1513, -1, -1, -1, -1, 1518, -1, 862, ! -1, -1, 865, 866, 867, 868, 869, 870, -1, -1, ! -1, 874, -1, -1, -1, 32, -1, -1, 881, -1, ! -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, ! -1, -1, 49, -1, -1, -1, -1, -1, -1, 56, ! -1, 904, 59, 60, 907, 908, 909, -1, 911, -1, ! 913, -1, -1, -1, -1, -1, 73, -1, -1, 922, ! 923, 924, -1, 1447, -1, -1, 83, -1, -1, -1, ! 933, -1, -1, -1, 91, 730, -1, -1, 95, 96, ! 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, ! 85, 86, 87, 1440, 1441, -1, 1443, -1, -1, -1, ! -1, -1, -1, -1, -1, 1, 1627, 3, 4, 5, ! 6, 7, 8, 9, -1, -1, -1, -1, -1, 15, ! -1, 984, -1, 1507, 1508, -1, -1, -1, -1, -1, ! -1, -1, -1, 29, -1, 31, 32, 33, 793, -1, ! -1, -1, 38, -1, 1007, 1008, -1, 43, 1011, -1, ! -1, 47, -1, -1, 50, 1018, -1, 1504, 1505, 1022, ! 56, 1024, -1, 59, 60, 1028, 1029, 1030, -1, -1, ! -1, 1034, -1, 1036, -1, -1, -1, 73, 1562, -1, ! -1, -1, -1, -1, -1, -1, -1, 83, -1, -1, ! -1, -1, -1, -1, -1, 91, -1, -1, -1, 95, ! -1, -1, -1, 99, -1, -1, -1, 862, 3, 4, ! 5, 6, 76, 77, 9, 79, 80, 81, 82, 83, ! 84, 85, 86, 87, -1, -1, 881, -1, -1, -1, ! -1, -1, 1095, -1, 1097, 1098, -1, 32, -1, -1, ! -1, -1, 3, 4, 5, 6, -1, -1, 43, 904, ! -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, ! -1, 56, -1, -1, 59, 60, -1, 1130, 1131, 1132, ! 1133, 1134, 1135, 1136, -1, -1, -1, 1140, 73, 1142, ! 1143, 1144, 43, -1, -1, 1148, -1, -1, 83, 50, ! 1153, 1154, 1155, 1156, 13, -1, 91, -1, 59, 60, ! 95, 96, -1, -1, 1167, -1, -1, 1170, -1, -1, ! 1173, 1174, -1, 1176, -1, -1, -1, -1, 1181, 1182, ! -1, 1184, 83, -1, -1, -1, -1, -1, -1, -1, ! 91, -1, -1, -1, 1197, -1, 1199, -1, -1, -1, ! -1, -1, -1, -1, 1207, -1, 65, 66, 67, 68, ! 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, ! 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, ! -1, 1234, 1235, -1, 1237, -1, -1, -1, -1, 1242, ! -1, -1, -1, -1, -1, 1248, 3, 4, 5, 6, ! 7, 8, 9, 1256, -1, -1, 13, -1, 15, -1, ! -1, -1, -1, 1266, 1267, 1268, -1, -1, -1, -1, ! -1, -1, 29, -1, 31, 32, -1, -1, -1, -1, ! -1, 38, -1, -1, -1, -1, 43, -1, -1, -1, ! 47, -1, 49, -1, 1297, -1, -1, -1, -1, 56, ! -1, -1, 59, 60, 1307, 1308, 1309, 1310, 1311, 1312, ! -1, -1, 1315, 1316, -1, -1, 73, -1, -1, -1, ! 3, 4, 5, 6, -1, -1, 83, -1, 1331, 1332, ! 1333, 1334, 1335, -1, 91, 1130, 1339, -1, 95, 96, ! -1, 1344, 4, -1, -1, 1348, -1, -1, -1, 32, ! -1, -1, -1, -1, 1357, -1, -1, -1, -1, -1, ! 43, -1, -1, -1, -1, -1, 49, -1, 112, 31, ! 32, -1, 34, 56, 36, 1378, 59, 60, -1, 1174, ! -1, 1176, -1, 45, -1, -1, 1181, 1182, -1, 1184, ! 73, -1, -1, -1, -1, -1, 58, -1, 60, -1, ! 83, -1, -1, -1, -1, -1, -1, -1, 91, -1, ! -1, -1, 95, 96, -1, -1, -1, -1, -1, -1, ! 82, -1, -1, 85, -1, -1, 3, 4, 5, 6, ! -1, -1, 9, -1, -1, -1, -1, 1440, 1441, -1, ! 1443, -1, 1445, -1, 1447, -1, -1, -1, -1, -1, ! -1, -1, 196, -1, -1, 32, -1, -1, -1, -1, ! 1463, -1, -1, -1, -1, 1468, 43, -1, 1471, -1, ! -1, -1, -1, -1, -1, 137, 138, 221, 140, 56, ! -1, -1, 59, 60, 146, 147, -1, -1, 150, 151, ! 152, -1, -1, 155, 156, 157, 73, -1, -1, -1, ! 162, 1504, 1505, 1506, 1507, 1508, 83, -1, -1, 171, ! -1, 1514, 1307, 175, 91, -1, -1, -1, 95, 181, ! 182, 1316, -1, -1, 4, 5, -1, 7, 8, 9, ! -1, -1, -1, -1, -1, 15, -1, -1, 200, 201, ! 202, -1, -1, -1, -1, -1, -1, -1, 210, 29, ! -1, 31, 32, 1348, -1, -1, -1, 1560, 38, 1562, ! -1, -1, -1, -1, -1, -1, -1, 47, 230, -1, ! 50, -1, -1, -1, -1, -1, 56, -1, -1, 59, ! 60, -1, -1, 1378, -1, -1, -1, -1, -1, -1, ! -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, ! 344, 1604, -1, 15, -1, -1, -1, -1, 270, -1, ! -1, -1, 1615, 1616, 1617, 277, -1, 29, -1, 31, ! 32, 33, -1, -1, -1, -1, 38, -1, -1, 4, ! 5, 43, -1, 8, 9, 47, -1, -1, 50, -1, ! 15, -1, -1, -1, 56, -1, -1, 59, 60, -1, ! -1, -1, -1, -1, 29, -1, 31, 32, -1, -1, ! -1, 73, -1, 38, -1, -1, -1, -1, 1463, 1672, ! -1, 83, 47, 1468, 49, -1, 1471, -1, -1, 91, ! 424, 56, 344, 95, 59, 60, -1, 99, -1, 92, ! -1, -1, 95, -1, 97, -1, -1, -1, 73, 361, ! -1, -1, -1, -1, -1, -1, -1, -1, 83, 371, ! 1713, 1714, 1715, -1, -1, 377, -1, -1, -1, -1, ! 95, 96, -1, 1726, -1, -1, -1, -1, -1, 391, ! -1, -1, -1, 4, 5, -1, -1, 8, 9, 142, ! -1, 144, -1, -1, 15, -1, -1, -1, -1, -1, ! -1, -1, 414, -1, -1, -1, -1, -1, 502, -1, ! -1, 32, -1, -1, 426, -1, -1, 38, -1, -1, ! -1, -1, -1, 435, -1, 437, 47, -1, 49, -1, ! -1, -1, 444, 445, -1, 56, 448, -1, 59, 60, ! -1, -1, 454, 455, 456, -1, -1, -1, 460, -1, ! -1, -1, 73, -1, -1, -1, 468, -1, -1, -1, ! -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, ! 1615, 1616, 1617, -1, 95, 96, -1, -1, 3, 4, ! 5, 6, 494, 495, 496, 497, -1, -1, -1, -1, ! 502, -1, -1, -1, -1, -1, -1, -1, 510, 511, ! -1, -1, 514, -1, 516, 517, 518, 519, -1, -1, ! -1, 523, -1, -1, -1, -1, 528, -1, 43, 531, ! -1, -1, -1, -1, 618, 619, 620, 621, 622, -1, ! -1, 56, -1, -1, 59, 60, -1, 631, -1, -1, ! 65, -1, -1, -1, -1, -1, -1, -1, 73, -1, ! 644, -1, -1, -1, -1, 567, -1, -1, 83, -1, ! -1, -1, -1, -1, -1, -1, 91, -1, 321, 322, ! 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 4, 1726, 335, 677, 337, -1, -1, 340, -1, -1, ! 343, -1, -1, 346, -1, -1, -1, 350, -1, -1, ! -1, -1, 696, -1, -1, 358, -1, 31, 32, 703, ! 34, 705, 36, 707, -1, -1, -1, 629, 630, 631, ! -1, 45, -1, 376, -1, -1, -1, -1, -1, -1, ! -1, -1, 644, -1, 58, -1, 60, 71, 72, 73, ! 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ! 84, 85, 86, 87, 3, 4, 5, 6, 7, 8, ! 9, 85, 74, 75, 76, 77, 15, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, -1, -1, -1, 691, ! 433, -1, -1, 32, -1, -1, -1, -1, -1, 38, ! -1, 703, -1, 705, 43, 707, -1, -1, 47, -1, ! 49, -1, -1, -1, -1, -1, -1, 56, -1, -1, ! 59, 60, -1, -1, -1, -1, 140, -1, 730, -1, ! -1, -1, 146, 147, 73, -1, -1, 151, 152, -1, ! -1, 155, 156, 157, 83, -1, -1, -1, -1, -1, ! -1, 835, 91, -1, -1, -1, 95, 171, -1, 843, ! -1, 175, -1, -1, -1, -1, -1, 181, 182, -1, ! -1, -1, -1, -1, -1, 777, -1, -1, -1, -1, ! -1, -1, 784, -1, -1, -1, 200, 201, 202, -1, ! -1, 793, 4, 5, -1, -1, 8, 9, -1, -1, ! 543, -1, -1, 15, 76, 77, 78, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, 230, -1, -1, -1, ! 32, -1, -1, 907, -1, -1, 38, -1, -1, 913, ! -1, 833, 834, 835, -1, 47, -1, 49, 840, 841, ! -1, 843, -1, -1, 56, -1, -1, 59, 60, -1, ! -1, -1, -1, -1, -1, 857, 270, -1, -1, -1, ! 862, 73, -1, 865, 866, 867, 868, 869, 870, -1, ! 613, 83, 874, -1, -1, -1, -1, -1, -1, 881, ! -1, -1, -1, 95, 96, -1, 629, 630, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 641, -1, ! 984, -1, 904, 646, 647, -1, 649, 650, 651, 652, ! 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, ! 663, 664, 665, 666, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 1018, -1, -1, -1, -1, -1, ! 1024, 73, 74, 75, 76, 77, 1030, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, -1, -1, 372, -1, ! -1, -1, -1, 377, 74, 75, 76, 77, 78, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, 392, 279, ! 280, 281, 282, 283, 284, -1, 286, 287, 288, 289, ! 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, ! 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, ! -1, 1095, 426, 1097, -1, -1, -1, -1, -1, -1, ! -1, 435, -1, -1, -1, -1, 1028, 1029, 1030, -1, ! -1, 445, 1034, 1035, 448, -1, 779, -1, -1, -1, ! -1, 34, -1, -1, -1, -1, 460, -1, -1, -1, ! -1, 1135, -1, -1, 468, 3, 4, 5, 6, -1, ! 1144, 9, -1, -1, -1, 58, 75, 76, 77, 1153, ! 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, ! 494, 495, 496, 497, 32, -1, -1, -1, 502, -1, ! -1, -1, -1, -1, -1, 43, 510, 511, -1, -1, ! 514, -1, 516, 517, 518, -1, -1, -1, 56, 523, ! -1, 59, 60, 1197, 528, 1199, -1, 531, -1, -1, ! -1, -1, -1, 1207, -1, 73, -1, -1, 1130, 1131, ! 1132, 1133, 1134, 1135, 1136, 83, 1138, -1, 1140, 1141, ! 1142, 1143, 1144, 91, -1, -1, 1148, 95, -1, -1, ! -1, -1, -1, 567, -1, -1, -1, -1, -1, -1, ! -1, -1, 155, 156, 157, 908, 909, -1, 911, -1, ! -1, 1173, 1174, -1, 1176, -1, -1, -1, -1, 1181, ! 1182, -1, 1184, -1, 1268, -1, -1, -1, 181, 1, ! -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, ! -1, -1, -1, 15, -1, -1, -1, 200, 201, 202, ! -1, -1, -1, -1, -1, -1, -1, 29, -1, 31, ! 32, -1, -1, -1, -1, -1, 38, -1, 1312, -1, ! -1, 43, -1, -1, -1, 47, -1, 230, 50, -1, ! -1, -1, -1, -1, 56, -1, -1, 59, 60, -1, ! -1, 63, -1, 996, -1, -1, -1, -1, -1, -1, ! 1344, 73, -1, -1, 1266, 1267, 1268, -1, -1, -1, ! -1, 83, -1, 1357, -1, -1, -1, -1, 692, 91, ! -1, 581, -1, 95, -1, 1028, 1029, -1, -1, -1, ! -1, -1, 3, 4, 5, 6, -1, -1, 9, -1, ! -1, -1, -1, -1, 604, 1307, 1308, 1309, 1310, 1311, ! 1312, -1, 612, 1315, 1316, -1, 730, -1, -1, -1, ! 313, 32, -1, -1, -1, 3, 4, 5, 6, 7, ! 8, 9, 43, -1, -1, 13, -1, 15, -1, -1, ! -1, -1, -1, -1, -1, 56, 1348, -1, 59, 60, ! -1, 29, -1, 31, 32, 1098, -1, -1, 1101, -1, ! 38, 1445, 73, -1, -1, 43, -1, 1369, 1370, 47, ! 363, 49, 83, 366, 367, -1, 1378, -1, 56, 793, ! 91, 59, 60, -1, 95, 3, 4, 5, 6, -1, ! -1, 9, -1, -1, -1, 73, -1, -1, -1, 1142, ! 1143, -1, -1, -1, -1, 83, -1, -1, -1, -1, ! -1, -1, -1, 91, 32, -1, -1, 95, 96, 833, ! 834, 835, 1506, -1, -1, 43, -1, 841, -1, 843, ! 1514, -1, -1, 426, -1, -1, -1, -1, 56, -1, ! -1, 59, 60, -1, -1, -1, -1, -1, 862, -1, ! -1, -1, 866, 867, -1, 73, -1, -1, -1, -1, ! 874, 1463, -1, -1, 1466, 83, 1468, 881, -1, 1471, ! -1, -1, -1, 91, -1, -1, 1560, 95, -1, 1222, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 904, -1, -1, -1, -1, -1, -1, 1240, -1, 1242, ! -1, 494, -1, 496, 497, 498, 1, -1, -1, 4, ! 5, -1, -1, 8, 9, -1, -1, 510, 511, -1, ! 15, 514, -1, 516, 517, 518, 519, -1, -1, -1, ! 523, -1, -1, -1, 29, 528, 31, 32, 531, -1, ! -1, -1, -1, 38, -1, 40, 41, -1, -1, -1, ! -1, -1, 47, -1, 49, -1, -1, -1, -1, -1, ! -1, 56, -1, -1, 59, 60, -1, 62, -1, -1, ! -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, ! 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, ! 85, 86, -1, -1, 89, 90, 91, -1, 93, -1, ! -1, 96, -1, 3, 4, 5, 6, -1, -1, 9, ! -1, -1, 58, 1615, 1616, 1617, -1, 112, 918, 919, ! 1, -1, 1036, 4, 5, -1, -1, 8, 9, -1, ! -1, 1715, 32, -1, 15, -1, 82, -1, -1, 85, ! -1, -1, -1, 43, -1, -1, -1, -1, 29, -1, ! 31, 32, 3, 4, 5, 6, 56, 38, 9, 59, ! 60, -1, -1, 109, -1, 111, 47, -1, -1, -1, ! 1672, -1, -1, 73, -1, 56, -1, -1, 59, 60, ! -1, 32, -1, 83, -1, -1, -1, 680, -1, -1, ! -1, 91, 43, -1, -1, 95, -1, -1, -1, -1, ! -1, 694, 695, 696, -1, 56, -1, -1, 59, 60, ! -1, 1713, 1714, 1715, 707, -1, 1130, 1131, 1132, 1133, ! 1134, 1135, 73, -1, 1726, -1, 1140, -1, 1142, 1143, ! 1144, -1, 83, -1, 1148, 181, -1, 730, -1, -1, ! 91, -1, -1, 1, 95, 3, 4, 5, 6, 7, ! 8, 9, -1, -1, 200, 201, 202, 15, -1, 1173, ! 1174, -1, 1176, -1, 210, -1, -1, 1181, 1182, -1, ! 1184, 29, -1, 31, 32, 33, -1, -1, -1, -1, ! 38, 39, -1, -1, 230, 43, -1, -1, -1, 47, ! 48, -1, 50, -1, -1, -1, -1, -1, 56, -1, ! 793, 59, 60, -1, -1, 63, -1, 65, -1, -1, ! -1, 257, -1, -1, -1, 73, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 83, 3, 4, 5, 6, ! -1, 277, 9, 91, -1, -1, -1, 95, -1, -1, ! 833, 834, 835, -1, -1, -1, -1, -1, -1, -1, ! 843, -1, -1, 111, -1, 32, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 1608, 43, -1, -1, 862, ! -1, -1, 865, 866, 867, 868, 869, 870, -1, 56, ! -1, 874, 59, 60, -1, -1, -1, -1, 881, -1, ! -1, -1, -1, 1307, 1308, 1309, 73, 3, 4, 5, ! 6, 1315, 1316, -1, -1, -1, 83, -1, -1, -1, ! -1, -1, -1, -1, 91, -1, -1, -1, 95, -1, ! -1, -1, -1, -1, -1, 371, 372, -1, -1, 922, ! 923, 924, -1, -1, 1348, -1, -1, 43, 4, 5, ! 933, 7, 8, 9, -1, 391, 392, 13, -1, 15, ! 56, -1, -1, 59, 60, -1, 1370, -1, -1, 65, ! -1, -1, -1, 29, 1378, 31, 32, 73, -1, -1, ! 1713, 1714, 38, -1, -1, -1, -1, 83, -1, -1, ! 426, 47, -1, -1, -1, 91, -1, -1, -1, 95, ! 56, -1, -1, 59, 60, -1, -1, -1, -1, 3, ! 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, ! -1, 15, -1, -1, 1007, 1008, -1, -1, 1011, -1, ! -1, -1, -1, -1, -1, 29, -1, 31, 32, 1022, ! -1, -1, -1, -1, 38, 1028, 1029, 1030, -1, 43, ! -1, 1034, -1, 47, -1, 49, -1, -1, 494, 1463, ! 496, 497, 56, -1, 1468, 59, 60, 1471, -1, -1, ! -1, -1, -1, -1, 510, 511, -1, -1, 514, 73, ! 516, 517, 518, 519, 32, -1, -1, 523, -1, 83, ! -1, -1, 528, -1, -1, 531, -1, 91, -1, -1, ! -1, 95, 96, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 196, -1, -1, -1, -1, -1, 66, 67, ! 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ! 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ! -1, -1, -1, -1, -1, -1, -1, 1130, 1131, 1132, ! 1133, 1134, 1135, 1136, -1, -1, -1, 1140, -1, 1142, ! 1143, 1144, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 1154, 1155, 1156, -1, -1, -1, 1, -1, 3, ! 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, ! 1173, 15, -1, -1, -1, -1, -1, -1, 1181, -1, ! 3, 4, 5, 6, -1, 29, -1, 31, 32, 33, ! -1, 1615, 1616, 1617, 38, 39, -1, -1, -1, 43, ! -1, -1, -1, 47, 48, -1, 50, -1, -1, 32, ! -1, -1, 56, -1, -1, 59, 60, -1, -1, 63, ! 43, 65, -1, -1, -1, -1, -1, -1, -1, 73, ! -1, 1234, 1235, 56, 1237, -1, 59, 60, -1, 83, ! -1, -1, -1, -1, -1, 1248, -1, 91, 1672, -1, ! 73, 95, -1, 1256, 710, 711, -1, -1, -1, -1, ! 83, -1, -1, 1266, 1267, 1268, -1, 111, 91, -1, ! -1, -1, 95, -1, 730, -1, -1, -1, -1, -1, ! -1, 385, -1, -1, -1, -1, -1, -1, -1, 1713, ! 1714, 1715, 4, 5, -1, 7, 8, 9, -1, -1, ! -1, 13, 1726, 15, 1307, 1308, 1309, 1310, 1311, 1312, ! -1, -1, 1315, 1316, -1, -1, -1, 29, -1, 31, ! 32, -1, -1, -1, -1, -1, 38, -1, 1331, 1332, ! 1333, 1334, 1335, -1, -1, 47, -1, 793, -1, -1, ! -1, -1, -1, -1, 56, 1348, -1, 59, 60, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 363, -1, ! -1, 366, 367, 3, 4, 5, 6, 7, 8, 9, ! -1, -1, -1, -1, -1, 15, -1, 833, 834, 835, ! 484, 485, -1, -1, 840, 841, -1, 843, -1, 29, ! -1, 31, 32, -1, -1, -1, -1, -1, 38, -1, ! -1, -1, -1, 43, -1, -1, 862, 47, -1, 865, ! 866, 867, 868, 869, 870, 871, 56, -1, 874, 59, ! 60, -1, -1, 63, -1, 881, -1, 3, 4, 5, ! 6, -1, -1, 73, -1, -1, -1, 1440, 1441, -1, ! 1443, -1, -1, 83, 1447, -1, -1, 903, -1, -1, ! -1, 91, -1, -1, -1, 95, 32, -1, -1, -1, ! 1463, 72, 73, 74, 75, 76, 77, 43, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, -1, -1, -1, ! 56, -1, -1, 59, 60, -1, -1, -1, -1, 494, ! -1, 496, 497, 498, -1, -1, -1, 73, -1, -1, ! -1, 1504, 1505, 1506, 1507, 1508, -1, 83, -1, -1, ! 614, -1, -1, 617, -1, 91, -1, -1, -1, 95, ! -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, ! -1, -1, -1, 15, -1, -1, -1, -1, -1, 643, ! -1, 4, 5, -1, 7, 8, 9, 29, -1, 31, ! 32, -1, 15, -1, -1, -1, 38, -1, -1, 1562, ! -1, 43, -1, -1, 668, 47, 29, -1, 31, 32, ! 674, -1, 676, 677, 56, 38, -1, 59, 60, 1035, ! 1036, 1037, -1, 65, 47, -1, -1, -1, -1, -1, ! -1, 73, -1, 56, -1, -1, 59, 60, -1, -1, ! -1, 83, -1, 707, -1, -1, -1, -1, -1, 91, ! 714, -1, 1615, 95, 1617, -1, -1, -1, -1, -1, ! 724, 70, 71, 72, 73, 74, 75, 76, 77, 78, ! 79, 80, 81, 82, 83, 84, 85, 86, 87, 743, ! 744, 745, 746, -1, 748, 749, 750, 751, 752, 753, ! 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, ! 764, 765, 766, -1, -1, -1, -1, -1, -1, 1672, ! -1, -1, -1, -1, 1130, 1131, 1132, 1133, 1134, 1135, ! 1136, -1, 1138, -1, 1140, 1141, 1142, 1143, 1144, 694, ! 695, 696, 1148, -1, -1, -1, -1, -1, 1154, 1155, ! 1156, 1, 707, 3, 4, 5, 6, 7, 8, 9, ! 1713, 1714, 1715, 13, -1, 15, -1, -1, -1, -1, ! 824, -1, -1, 1726, -1, 1181, 26, -1, 28, -1, ! -1, -1, 32, -1, -1, -1, -1, -1, 38, 843, ! -1, -1, -1, 43, -1, -1, -1, 47, -1, 49, ! -1, -1, -1, 857, -1, -1, 56, -1, -1, 59, ! 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, ! 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, 793, 89, ! 90, 91, -1, 93, 94, 95, 96, 97, -1, -1, ! -1, -1, -1, 103, 104, -1, 14, -1, -1, 109, ! 110, 111, -1, 113, -1, 23, 24, -1, -1, -1, ! -1, -1, -1, 31, 32, -1, 34, -1, 833, 834, ! 835, -1, -1, -1, -1, -1, -1, -1, 843, -1, ! -1, -1, -1, -1, -1, -1, 950, -1, -1, -1, ! -1, 1307, 1308, 1309, 1310, 1311, 1312, -1, -1, 1315, ! 1316, 69, -1, 4, 5, -1, -1, 8, 9, -1, ! 3, 4, 5, 6, 15, 1331, 1332, 1333, 1334, 1335, ! -1, -1, -1, 987, 988, -1, -1, -1, 29, -1, ! 31, 32, 1348, -1, -1, -1, -1, 38, 1002, 32, ! 1004, -1, 1006, -1, -1, -1, 47, -1, -1, -1, ! 43, -1, -1, 1369, -1, 56, -1, -1, 59, 60, ! 128, -1, 130, 56, -1, -1, 59, 60, 933, 137, ! 138, -1, -1, -1, -1, -1, -1, -1, 146, 147, ! 73, -1, 150, 151, 152, 1049, 154, 155, 156, 157, ! 83, -1, -1, -1, -1, -1, -1, -1, 91, -1, ! -1, -1, 95, 73, 74, 75, 76, 77, 78, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, 1082, -1, ! -1, -1, -1, -1, 1440, 1441, 1442, 1443, -1, -1, ! -1, 1447, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 1007, 1008, -1, -1, 1011, 1463, -1, -1, ! -1, -1, -1, -1, -1, -1, 1120, 1022, -1, -1, ! -1, -1, -1, 1028, 1029, 1030, -1, -1, 1, 1034, ! 3, 4, 5, 6, 7, 8, 9, -1, 246, 247, ! -1, -1, 15, -1, -1, -1, 1150, 1151, 1504, 1505, ! 1506, 1507, 1508, -1, -1, -1, 29, -1, 31, 32, ! 33, -1, 270, -1, -1, 38, -1, -1, 1172, -1, ! 43, -1, -1, -1, 47, 48, -1, 50, -1, -1, ! -1, -1, -1, 56, -1, -1, 59, 60, -1, -1, ! 63, -1, 65, -1, -1, -1, -1, -1, -1, -1, ! 73, -1, -1, -1, -1, 313, 1562, -1, -1, -1, ! 83, -1, -1, -1, 1218, 1219, -1, -1, 91, -1, ! -1, -1, 95, -1, -1, 1130, 1131, 1132, 1133, 1134, ! 1135, 1136, -1, -1, -1, 1140, -1, 1142, 1143, 1144, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 361, -1, 363, -1, -1, 366, 1615, ! -1, 1617, -1, -1, -1, -1, 4, 5, -1, -1, ! 8, 9, -1, -1, 1278, -1, -1, 15, -1, -1, ! -1, -1, -1, -1, -1, 3, 4, 5, 6, -1, ! -1, 29, -1, 31, 32, 1299, -1, 1301, -1, 1303, ! 38, 1305, -1, -1, -1, -1, 414, -1, -1, 47, ! -1, -1, -1, -1, 32, -1, 1672, -1, 56, -1, ! -1, 59, 60, -1, -1, 43, -1, 435, -1, 437, ! -1, -1, 1336, -1, -1, -1, -1, 445, 56, -1, ! 448, 59, 60, 1248, -1, -1, -1, -1, -1, -1, ! -1, 1256, 460, -1, -1, 73, 1360, 1713, 1714, 1715, ! -1, 1266, 1267, 1268, -1, 83, -1, -1, -1, -1, ! 1726, -1, -1, 91, -1, -1, -1, 95, 72, 73, ! 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ! 84, 85, 86, 87, 1398, -1, -1, -1, -1, -1, ! -1, -1, 1307, 1308, 1309, 1310, 1311, 1312, -1, -1, ! 1315, 1316, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 1427, -1, -1, -1, 3, 4, 5, ! 6, -1, 1, -1, 3, 4, 5, 6, 7, 8, ! 9, -1, -1, 551, 552, 1449, 15, -1, -1, -1, ! -1, -1, -1, -1, -1, 1459, 1460, -1, -1, 567, ! 29, -1, 31, 32, 33, -1, -1, 43, -1, 38, ! 39, -1, -1, -1, 43, -1, -1, -1, 47, 48, ! 56, 50, -1, 59, 60, 1489, -1, 56, -1, 65, ! 59, 60, -1, -1, 63, -1, 65, 73, -1, -1, ! -1, 609, -1, 611, 73, -1, -1, 83, -1, -1, ! -1, -1, -1, -1, 83, 91, -1, -1, -1, 95, ! -1, 1525, 91, -1, -1, -1, 95, -1, -1, -1, ! -1, -1, -1, -1, -1, 1440, 1441, -1, 1443, -1, ! -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 3, 4, 5, 6, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 1570, 1571, -1, -1, ! -1, -1, 680, -1, -1, -1, -1, -1, -1, -1, ! -1, 32, -1, 691, 692, -1, 694, 695, -1, -1, ! -1, -1, 43, 1597, -1, -1, -1, -1, -1, 1504, ! 1505, 1506, 1507, 1508, -1, 56, -1, -1, 59, 60, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, ! -1, 1635, 83, -1, -1, -1, -1, -1, -1, -1, ! 91, -1, -1, -1, 95, 66, 67, 68, 69, 70, ! 71, 72, 73, 74, 75, 76, 77, 1562, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, -1, 1672, 777, ! -1, -1, -1, -1, -1, -1, 784, 785, -1, -1, ! -1, -1, -1, -1, -1, -1, 794, -1, -1, -1, ! -1, -1, -1, 1697, -1, 1, -1, 3, 4, 5, ! 6, 7, 8, 9, 10, 11, 12, -1, 14, 15, ! 16, 819, 18, 19, 20, 21, 22, 23, 24, 25, ! 26, 27, 28, 29, 30, 31, 32, 33, -1, 35, ! 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, ! 46, 47, 48, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, 61, -1, 63, 64, -1, ! -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, ! -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, ! -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, ! -1, 97, -1, -1, -1, 903, -1, -1, -1, -1, ! -1, -1, -1, -1, 1808, 111, 112, -1, -1, -1, ! -1, -1, -1, -1, 922, 923, 924, 925, -1, -1, ! -1, -1, -1, -1, -1, 933, -1, -1, -1, 1, ! -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, ! 12, -1, 14, 15, 16, -1, 18, 19, 20, 21, ! 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, ! 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, ! 42, 43, 44, 45, 46, 47, 48, -1, -1, 51, ! 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, ! -1, 63, 64, -1, -1, -1, -1, -1, 70, 1007, ! 1008, 73, -1, 1011, -1, -1, -1, -1, -1, 81, ! 82, 83, -1, -1, 1022, -1, -1, 89, 90, 91, ! -1, -1, -1, 95, -1, 97, 1034, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, ! 112, 3, 4, 5, 6, 7, 8, 9, 10, 11, ! 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, ! 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, ! 42, 43, 44, 45, -1, 47, -1, 49, -1, 51, ! 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, ! -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, ! 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, ! -1, -1, -1, 95, 96, -1, -1, -1, -1, -1, ! 1, -1, 3, 4, 5, 6, 7, 8, 9, -1, ! 112, -1, -1, -1, 15, -1, -1, -1, -1, 1167, ! -1, -1, 1170, -1, -1, 1173, -1, -1, 29, -1, ! 31, 32, 33, -1, -1, -1, -1, 38, 39, -1, ! -1, -1, 43, -1, -1, -1, 47, 48, -1, 50, ! -1, -1, -1, -1, -1, 56, -1, -1, 59, 60, ! -1, -1, 63, -1, 65, 71, 72, 73, 74, 75, ! 76, 77, 73, 79, 80, 81, 82, 83, 84, 85, ! 86, 87, 83, -1, -1, -1, 1234, 1235, -1, 1237, ! 91, -1, -1, -1, 95, -1, -1, -1, -1, -1, ! 1248, -1, -1, -1, -1, -1, -1, -1, 1256, -1, ! 111, -1, -1, -1, -1, -1, -1, -1, 1266, 1267, ! -1, -1, -1, 1, -1, 3, 4, 5, 6, 7, ! 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 1297, ! -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, ! 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, ! -1, 49, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, 61, -1, -1, 64, -1, -1, -1, ! -1, 1339, 70, -1, -1, 73, -1, -1, -1, -1, ! -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, ! -1, 89, 90, 91, -1, -1, -1, 95, 96, -1, ! -1, -1, 1370, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 1, 112, 3, 4, 5, 6, 7, ! 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, ! 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, ! -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, -1, -1, -1, 64, -1, -1, -1, ! -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, ! -1, -1, -1, 81, 82, 83, -1, -1, 1466, -1, ! 1468, 89, 90, 91, -1, -1, 1, 95, 3, 4, ! 5, 6, 7, 8, 9, 10, 11, 12, -1, 14, ! 15, -1, 110, -1, 112, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, ! 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, ! 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, ! 55, 56, -1, -1, 59, 60, 61, -1, 63, 64, ! -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, ! -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, ! -1, -1, -1, -1, 89, 90, 91, -1, -1, 1, ! 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, ! 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, ! -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, ! 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, ! 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, ! -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, ! 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, ! -1, -1, -1, 95, 96, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, ! 112, 1, -1, 3, 4, 5, 6, -1, 8, 9, ! 10, 11, 12, -1, 14, 15, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, ! 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, ! 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, ! -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, ! 60, 61, -1, -1, 64, -1, -1, -1, -1, -1, ! 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, ! -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, ! 90, 91, -1, -1, 1, 95, 3, 4, 5, 6, ! -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, ! -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, ! 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, ! 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, 61, -1, -1, 64, -1, -1, ! -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, ! -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, ! -1, -1, 89, 90, 91, -1, -1, -1, 95, 96, ! 1, -1, 3, 4, 5, 6, -1, 8, 9, 10, ! 11, 12, -1, 14, 15, 112, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, ! 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, ! 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, ! 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, ! 61, -1, -1, 64, -1, -1, -1, -1, -1, 70, ! -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, ! 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, ! 91, -1, -1, -1, 95, 1, -1, 3, 4, 5, ! 6, 102, 8, 9, 10, 11, 12, -1, 14, 15, ! -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, ! 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, ! -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, 61, -1, -1, 64, -1, ! -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, ! -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, ! -1, -1, -1, 89, 90, 91, -1, -1, 1, 95, ! 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, ! -1, 14, 15, -1, -1, 111, 112, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, ! 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, ! 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, ! 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, ! -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, ! 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, ! 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, 1, 95, 3, 4, 5, 6, -1, 8, 9, ! 10, 11, 12, -1, 14, 15, -1, -1, 111, 112, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, ! 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, ! 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, ! -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, ! 60, 61, -1, -1, 64, -1, -1, -1, -1, -1, ! 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, ! -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, ! 90, 91, -1, -1, 1, 95, 3, 4, 5, 6, ! -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, ! -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, ! 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, ! 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, -1, -1, 63, 64, -1, -1, ! -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, ! -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, ! -1, -1, 89, 90, 91, -1, -1, 1, 95, 3, ! 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, ! 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, ! -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, ! 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, ! 54, 55, 56, -1, -1, 59, 60, 61, -1, -1, ! 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, ! -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, ! -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, ! 1, 95, 3, 4, 5, 6, -1, 8, 9, 10, ! 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, ! 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, ! 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, ! 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, ! -1, -1, -1, 64, 65, -1, -1, -1, -1, 70, ! -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, ! 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, ! 91, -1, -1, 1, 95, 3, 4, 5, 6, -1, ! 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, ! -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, ! 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, ! -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, -1, -1, -1, 64, -1, -1, -1, ! -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, ! -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, ! -1, 89, 90, 91, -1, -1, 1, 95, 3, 4, ! 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, ! 15, -1, 110, -1, 112, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, ! 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, ! 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, ! 55, 56, -1, -1, 59, 60, -1, -1, -1, 64, ! -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, ! -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, ! -1, -1, -1, -1, 89, 90, 91, -1, -1, 1, ! 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, ! 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, ! -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, ! 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, ! 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, ! -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, ! 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, ! -1, -1, 1, 95, 3, 4, 5, 6, -1, 8, ! 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, ! 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, ! -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, ! -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, -1, -1, -1, 64, -1, -1, -1, -1, ! -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, ! 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, ! 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, ! -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, ! 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, ! -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, -1, -1, -1, 64, -1, ! -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, ! -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, ! -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, ! 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, ! -1, 14, 15, -1, -1, -1, 112, 113, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, ! 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, ! 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, ! 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, ! -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, ! 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, ! 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, 3, 4, 5, 6, -1, 8, 9, ! 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, ! 113, -1, -1, -1, -1, -1, -1, -1, -1, 29, ! 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, ! 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, ! -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, ! 60, -1, -1, -1, 64, -1, -1, -1, -1, -1, ! 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, ! -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, ! 90, 91, -1, -1, -1, 95, 3, 4, 5, 6, ! -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, ! -1, -1, 112, 113, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, ! 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, ! 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, -1, -1, -1, 64, -1, -1, ! -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, ! -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, ! -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, ! 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, ! 14, 15, -1, -1, -1, 112, 113, -1, -1, -1, ! -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, ! -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, ! 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, ! 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, ! 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, ! -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, ! -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, ! -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 112, 113, ! 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ! -1, 14, 15, 16, -1, 18, 19, 20, 21, 22, ! 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, ! 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, ! 43, 44, 45, 46, 47, 48, -1, -1, 51, 52, ! 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, ! 63, 64, -1, -1, -1, -1, -1, 70, -1, -1, ! 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, ! 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, -1, 97, 3, 4, 5, 6, 7, ! 8, 9, 10, 11, 12, -1, 14, 15, 16, 112, ! 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, ! 28, 29, 30, 31, 32, 33, -1, 35, 36, 37, ! 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, ! 48, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, -1, -1, 63, 64, -1, -1, -1, ! -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, ! -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, ! -1, 89, 90, 91, -1, -1, -1, 95, -1, 97, ! 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ! 13, 14, 15, -1, 112, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, ! 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, ! 43, 44, 45, -1, 47, -1, 49, -1, 51, 52, ! 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, ! -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, ! 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, ! 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, 96, 3, 4, 5, 6, 7, 8, ! 9, 10, 11, 12, 13, 14, 15, -1, -1, 112, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, ! -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, ! 49, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, -1, -1, -1, 64, -1, -1, -1, -1, ! -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, ! 89, 90, 91, -1, -1, -1, 95, 96, 3, 4, ! 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, ! 15, -1, -1, 112, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, ! 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, ! 45, -1, 47, -1, 49, -1, 51, 52, 53, 54, ! 55, 56, -1, -1, 59, 60, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, ! -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, ! -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, ! 95, 96, 3, 4, 5, 6, -1, 8, 9, 10, ! 11, 12, -1, 14, 15, -1, -1, 112, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, ! 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, ! 41, 42, 43, 44, 45, -1, 47, -1, 49, -1, ! 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, ! -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, ! 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, ! 91, -1, -1, -1, 95, 96, 3, 4, 5, 6, ! -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, ! -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, ! 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, ! 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, -1, -1, -1, 64, -1, -1, ! -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, ! -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, ! -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, ! 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, ! 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, ! -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, ! 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, ! 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, ! 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, ! -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, ! -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, ! -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, ! 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, ! 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, ! 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, ! 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, ! -1, -1, -1, 64, -1, -1, -1, -1, -1, 70, ! -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, ! 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, ! 91, -1, -1, -1, 95, 3, 4, 5, 6, -1, ! 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, ! -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, ! 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, ! -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, -1, -1, 63, 64, -1, -1, -1, ! -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, ! -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, ! -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, ! 5, 6, 7, 8, 9, 10, 11, 12, -1, 14, ! 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, ! 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, ! 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, ! 55, 56, -1, -1, 59, 60, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, ! -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, ! -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, ! 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, ! 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, ! 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, ! 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, ! 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, ! -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, ! 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, ! -1, -1, -1, 95, 3, 4, 5, 6, -1, 8, ! 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, ! 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, ! -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, ! -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, -1, -1, -1, 64, -1, -1, -1, -1, ! -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, ! 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, ! 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, ! -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, ! 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, ! -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, 61, -1, -1, -1, -1, ! -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, ! -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, ! -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, ! 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, ! -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, ! 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, ! 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, ! 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, ! 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, ! 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, 96, 3, 4, 5, 6, -1, 8, ! 9, 10, 11, 12, -1, 14, 15, -1, -1, 112, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, ! -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, ! -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, -1, -1, -1, 64, -1, -1, -1, -1, ! -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, ! 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, ! 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, ! -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, ! 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, ! -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, ! -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, ! -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, ! 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, ! -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, ! 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, ! 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, ! 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, ! -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, ! 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, ! 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, 3, 4, 5, 6, -1, 8, 9, ! 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, ! 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, ! 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, ! -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, ! 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, ! -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, ! 90, 91, -1, -1, -1, 95, 3, 4, 5, 6, ! -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, ! -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, ! 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, ! 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, ! -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, ! -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, ! 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, ! 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, ! -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, ! 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, ! 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 70, -1, -1, 73, ! -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, ! -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, ! -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, ! 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, ! 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, ! 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, ! 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, ! -1, -1, 73, 3, 4, 5, 6, 7, 8, 9, ! 81, 82, 83, -1, -1, 15, -1, -1, 89, 90, ! 91, -1, -1, -1, 95, -1, -1, -1, -1, 29, ! -1, 31, 32, -1, -1, -1, -1, -1, 38, -1, ! -1, 112, -1, 43, -1, -1, -1, 47, -1, 3, ! 4, 5, 6, 7, 8, 9, 56, -1, -1, 59, ! 60, 15, -1, 63, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 73, -1, 29, -1, 31, 32, -1, ! -1, -1, -1, 83, 38, -1, -1, -1, -1, 43, ! -1, 91, -1, 47, -1, 95, -1, -1, -1, -1, ! -1, -1, 56, -1, -1, 59, 60, -1, -1, -1, ! 3, 4, 5, 6, 7, 8, 9, -1, -1, 73, ! -1, -1, 15, -1, -1, -1, -1, -1, -1, 83, ! -1, -1, -1, -1, -1, -1, 29, 91, 31, 32, ! -1, 95, -1, -1, -1, 38, -1, -1, -1, -1, ! 43, -1, -1, -1, 47, -1, -1, -1, -1, -1, ! -1, -1, -1, 56, -1, -1, 59, 60, -1, -1, ! -1, -1, 70, 71, 72, 73, 74, 75, 76, 77, ! 73, 79, 80, 81, 82, 83, 84, 85, 86, 87, ! 83, -1, -1, -1, -1, -1, -1, -1, 91, -1, ! -1, -1, 95, 66, 67, 68, 69, 70, 71, 72, ! 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, ! 83, 84, 85, 86, 87, 66, 67, 68, 69, 70, ! 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, -1, -1, -1, ! 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 62, -1, -1, 109, 66, ! 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ! 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, ! 87, 62, -1, -1, -1, 66, 67, 68, 69, 70, ! 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, 65, 66, 67, ! 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ! 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ! 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ! 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ! 86, 87 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ ! #line 3 "/usr/share/bison/bison.simple" /* Skeleton output parser for bison, ! ! Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software ! Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by *************** static const short yycheck[] = { 14, *** 4334,4395 **** This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ ! /* This is the parser code that is written into each bison parser ! when the %semantic_parser declaration is not specified in the grammar. ! It was written by Richard Stallman by simplifying the hairy parser ! used when %semantic_parser is specified. */ ! #ifndef YYSTACK_USE_ALLOCA ! #ifdef alloca ! #define YYSTACK_USE_ALLOCA ! #else /* alloca not defined */ ! #ifdef __GNUC__ ! #define YYSTACK_USE_ALLOCA ! #define alloca __builtin_alloca ! #else /* not GNU C. */ ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) ! #define YYSTACK_USE_ALLOCA ! #include ! #else /* not sparc */ ! /* We think this test detects Watcom and Microsoft C. */ ! /* This used to test MSDOS, but that is a bad idea ! since that symbol is in the user namespace. */ ! #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) ! #if 0 /* No need for malloc.h, which pollutes the namespace; ! instead, just don't use alloca. */ ! #include ! #endif ! #else /* not MSDOS, or __TURBOC__ */ ! #if defined(_AIX) ! /* I don't know what this was needed for, but it pollutes the namespace. ! So I turned it off. rms, 2 May 1997. */ ! /* #include */ ! #pragma alloca ! #define YYSTACK_USE_ALLOCA ! #else /* not MSDOS, or __TURBOC__, or _AIX */ ! #if 0 ! #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, ! and on HPUX 10. Eventually we can turn this on. */ ! #define YYSTACK_USE_ALLOCA ! #define alloca __builtin_alloca ! #endif /* __hpux */ ! #endif ! #endif /* not _AIX */ ! #endif /* not MSDOS, or __TURBOC__ */ ! #endif /* not sparc */ ! #endif /* not GNU C */ ! #endif /* alloca not defined */ ! #endif /* YYSTACK_USE_ALLOCA not defined */ ! #ifdef YYSTACK_USE_ALLOCA ! #define YYSTACK_ALLOC alloca #else ! #define YYSTACK_ALLOC malloc #endif ! /* Note: there must be only one dollar sign in this file. ! It is replaced by the list of actions, each action ! as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) --- 4385,4512 ---- This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ ! /* This is the parser code that is written into each bison parser when ! the %semantic_parser declaration is not specified in the grammar. ! It was written by Richard Stallman by simplifying the hairy parser ! used when %semantic_parser is specified. */ ! /* All symbols defined below should begin with yy or YY, to avoid ! infringing on user name space. This should be done even for local ! variables, as they might otherwise be expanded by user macros. ! There are some unavoidable exceptions within include files to ! define necessary library symbols; they are noted "INFRINGES ON ! USER NAME SPACE" below. */ ! #ifdef __cplusplus ! # define YYSTD(x) std::x #else ! # define YYSTD(x) x #endif ! #ifndef YYPARSE_RETURN_TYPE ! #define YYPARSE_RETURN_TYPE int ! #endif ! ! #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE) ! ! /* The parser invokes alloca or malloc; define the necessary symbols. */ ! ! # if YYSTACK_USE_ALLOCA ! # define YYSTACK_ALLOC alloca ! # else ! # ifndef YYSTACK_USE_ALLOCA ! # if defined (alloca) || defined (_ALLOCA_H) ! # define YYSTACK_ALLOC alloca ! # else ! # ifdef __GNUC__ ! # define YYSTACK_ALLOC __builtin_alloca ! # endif ! # endif ! # endif ! # endif ! ! # ifdef YYSTACK_ALLOC ! /* Pacify GCC's `empty if-body' warning. */ ! # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) ! # else ! # ifdef __cplusplus ! # include /* INFRINGES ON USER NAME SPACE */ ! # define YYSIZE_T std::size_t ! # else ! # ifdef __STDC__ ! # include /* INFRINGES ON USER NAME SPACE */ ! # define YYSIZE_T size_t ! # endif ! # endif ! # define YYSTACK_ALLOC YYSTD (malloc) ! # define YYSTACK_FREE YYSTD (free) ! # endif ! ! /* A type that is properly aligned for any stack member. */ ! union yyalloc ! { ! short yyss; ! YYSTYPE yyvs; ! # if YYLSP_NEEDED ! YYLTYPE yyls; ! # endif ! }; ! ! /* The size of the maximum gap between one aligned stack and the next. */ ! # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) ! ! /* The size of an array large to enough to hold all stacks, each with ! N elements. */ ! # if YYLSP_NEEDED ! # define YYSTACK_BYTES(N) \ ! ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ ! + 2 * YYSTACK_GAP_MAX) ! # else ! # define YYSTACK_BYTES(N) \ ! ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ ! + YYSTACK_GAP_MAX) ! # endif ! ! /* Relocate the TYPE STACK from its old location to the new one. The ! local variables YYSIZE and YYSTACKSIZE give the old and new number of ! elements in the stack, and YYPTR gives the new location of the ! stack. Advance YYPTR to a properly aligned location for the next ! stack. */ ! # define YYSTACK_RELOCATE(Type, Stack) \ ! do \ ! { \ ! YYSIZE_T yynewbytes; \ ! yymemcpy ((char *) yyptr, (char *) (Stack), \ ! yysize * (YYSIZE_T) sizeof (Type)); \ ! Stack = &yyptr->Stack; \ ! yynewbytes = yystacksize * sizeof (Type) + YYSTACK_GAP_MAX; \ ! yyptr += yynewbytes / sizeof (*yyptr); \ ! } \ ! while (0) ! ! #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ ! ! ! #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) ! # define YYSIZE_T __SIZE_TYPE__ ! #endif ! #if ! defined (YYSIZE_T) && defined (size_t) ! # define YYSIZE_T size_t ! #endif ! #if ! defined (YYSIZE_T) ! # ifdef __cplusplus ! # include /* INFRINGES ON USER NAME SPACE */ ! # define YYSIZE_T std::size_t ! # else ! # ifdef __STDC__ ! # include /* INFRINGES ON USER NAME SPACE */ ! # define YYSIZE_T size_t ! # endif ! # endif ! #endif ! #if ! defined (YYSIZE_T) ! # define YYSIZE_T unsigned int ! #endif #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) *************** static const short yycheck[] = { 14, *** 4398,4528 **** #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrlab1 ! /* Like YYERROR except do call yyerror. ! This remains here temporarily to ease the ! transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) ! #define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ ! { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ ! { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 - #ifndef YYPURE - #define YYLEX yylex() - #endif ! #ifdef YYPURE ! #ifdef YYLSP_NEEDED ! #ifdef YYLEX_PARAM ! #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) ! #else ! #define YYLEX yylex(&yylval, &yylloc) ! #endif ! #else /* not YYLSP_NEEDED */ ! #ifdef YYLEX_PARAM ! #define YYLEX yylex(&yylval, YYLEX_PARAM) ! #else ! #define YYLEX yylex(&yylval) ! #endif ! #endif /* not YYLSP_NEEDED */ #endif - /* If nonreentrant, generate the variables here */ ! #ifndef YYPURE ! int yychar; /* the lookahead symbol */ ! YYSTYPE yylval; /* the semantic value of the */ ! /* lookahead symbol */ - #ifdef YYLSP_NEEDED - YYLTYPE yylloc; /* location data for the lookahead */ - /* symbol */ - #endif ! int yynerrs; /* number of parse errors so far */ ! #endif /* not YYPURE */ ! #if YYDEBUG != 0 ! int yydebug; /* nonzero means print parse trace */ ! /* Since this is uninitialized, it does not stop multiple parsers ! from coexisting. */ ! #endif ! /* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH ! #define YYINITDEPTH 200 #endif ! /* YYMAXDEPTH is the maximum size the stacks can grow to ! (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 ! #undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH ! #define YYMAXDEPTH 10000 #endif ! /* Define __yy_memcpy. Note that the size argument ! should be passed with type unsigned int, because that is what the non-GCC ! definitions require. With GCC, __builtin_memcpy takes an arg ! of type size_t, but it can handle unsigned int. */ ! ! #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ ! #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) ! #else /* not GNU C or C++ */ ! #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void ! __yy_memcpy (to, from, count) ! char *to; ! char *from; ! unsigned int count; { ! register char *f = from; ! register char *t = to; ! register int i = count; ! while (i-- > 0) ! *t++ = *f++; } ! #else /* __cplusplus */ ! /* This is the most reliable way to avoid incompatibilities ! in available built-in functions on various systems. */ ! static void ! __yy_memcpy (char *to, char *from, unsigned int count) { ! register char *t = to; ! register char *f = from; ! register int i = count; ! while (i-- > 0) ! *t++ = *f++; } ! #endif #endif ! #line 217 "/usr/lib/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. --- 4515,4708 ---- #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrlab1 ! /* Like YYERROR except do call yyerror. This remains here temporarily ! to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) ! #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ ! { \ ! yychar = (Token); \ ! yylval = (Value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ ! { \ ! yyerror ("syntax error: cannot back up"); \ ! YYERROR; \ ! } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 ! /* YYLLOC_DEFAULT -- Compute the default location (before the actions ! are run). ! ! When YYLLOC_DEFAULT is run, CURRENT is set the location of the ! first token. By default, to implement support for ranges, extend ! its range to the last symbol. */ ! ! #ifndef YYLLOC_DEFAULT ! # define YYLLOC_DEFAULT(Current, Rhs, N) \ ! Current.last_line = Rhs[N].last_line; \ ! Current.last_column = Rhs[N].last_column; #endif ! /* YYLEX -- calling `yylex' with the right arguments. */ ! #if YYPURE ! # if YYLSP_NEEDED ! # ifdef YYLEX_PARAM ! # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) ! # else ! # define YYLEX yylex (&yylval, &yylloc) ! # endif ! # else /* !YYLSP_NEEDED */ ! # ifdef YYLEX_PARAM ! # define YYLEX yylex (&yylval, YYLEX_PARAM) ! # else ! # define YYLEX yylex (&yylval) ! # endif ! # endif /* !YYLSP_NEEDED */ ! #else /* !YYPURE */ ! # define YYLEX yylex () ! #endif /* !YYPURE */ ! /* Enable debugging if requested. */ ! #if YYDEBUG ! # ifndef YYFPRINTF ! # ifdef __cplusplus ! # include /* INFRINGES ON USER NAME SPACE */ ! # else ! # include /* INFRINGES ON USER NAME SPACE */ ! # endif ! # define YYFPRINTF YYSTD (fprintf) ! # endif ! # define YYDPRINTF(Args) \ ! do { \ ! if (yydebug) \ ! YYFPRINTF Args; \ ! } while (0) ! /* Nonzero means print parse trace. [The following comment makes no ! sense to me. Could someone clarify it? --akim] Since this is ! uninitialized, it does not stop multiple parsers from coexisting. ! */ ! int yydebug; ! #else /* !YYDEBUG */ ! # define YYDPRINTF(Args) ! #endif /* !YYDEBUG */ + /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH ! # define YYINITDEPTH 200 #endif ! /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only ! if the built-in stack extension method is used). ! ! Do not make this value too large; the results are undefined if ! SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) ! evaluated with infinite-precision integer arithmetic. */ #if YYMAXDEPTH == 0 ! # undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH ! # define YYMAXDEPTH 10000 #endif ! #if ! defined (yyoverflow) && ! defined (yymemcpy) ! # if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ ! # define yymemcpy __builtin_memcpy ! # else /* not GNU C or C++ */ /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void ! # if defined (__STDC__) || defined (__cplusplus) ! yymemcpy (char *yyto, const char *yyfrom, YYSIZE_T yycount) ! # else ! yymemcpy (yyto, yyfrom, yycount) ! char *yyto; ! const char *yyfrom; ! YYSIZE_T yycount; ! # endif { ! register const char *yyf = yyfrom; ! register char *yyt = yyto; ! register YYSIZE_T yyi = yycount; ! while (yyi-- != 0) ! *yyt++ = *yyf++; } + # endif + #endif ! #ifdef YYERROR_VERBOSE ! # ifndef yystrlen ! # if defined (__GLIBC__) && defined (_STRING_H) ! # define yystrlen strlen ! # else ! /* Return the length of YYSTR. */ ! static YYSIZE_T ! # if defined (__STDC__) || defined (__cplusplus) ! yystrlen (const char *yystr) ! # else ! yystrlen (yystr) ! const char *yystr; ! # endif { ! register const char *yys = yystr; ! while (*yys++ != '\0') ! continue; ! ! return yys - yystr - 1; } + # endif + # endif ! # ifndef yystpcpy ! # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) ! # define yystpcpy stpcpy ! # else ! /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in ! YYDEST. */ ! static char * ! # if defined (__STDC__) || defined (__cplusplus) ! yystpcpy (char *yydest, const char *yysrc) ! # else ! yystpcpy (yydest, yysrc) ! char *yydest; ! const char *yysrc; ! # endif ! { ! register char *yyd = yydest; ! register const char *yys = yysrc; ! ! while ((*yyd++ = *yys++) != '\0') ! continue; ! ! return yyd - 1; ! } ! # endif ! # endif #endif ! #line 345 "/usr/share/bison/bison.simple" ! /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. *************** __yy_memcpy (char *to, char *from, unsig *** 4531,4606 **** to the proper pointer type. */ #ifdef YYPARSE_PARAM ! #ifdef __cplusplus ! #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM ! #define YYPARSE_PARAM_DECL ! #else /* not __cplusplus */ ! #define YYPARSE_PARAM_ARG YYPARSE_PARAM ! #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; ! #endif /* not __cplusplus */ ! #else /* not YYPARSE_PARAM */ ! #define YYPARSE_PARAM_ARG ! #define YYPARSE_PARAM_DECL ! #endif /* not YYPARSE_PARAM */ /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ ! #ifdef YYPARSE_PARAM ! int yyparse (void *); ! #else ! int yyparse (void); #endif #endif ! int ! yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { register int yystate; register int yyn; ! register short *yyssp; ! register YYSTYPE *yyvsp; ! int yyerrstatus; /* number of tokens to shift before error messages enabled */ ! int yychar1 = 0; /* lookahead token as an internal (translated) token number */ ! short yyssa[YYINITDEPTH]; /* the state stack */ ! YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ ! short *yyss = yyssa; /* refer to the stacks thru separate pointers */ ! YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ ! #ifdef YYLSP_NEEDED ! YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; ! #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else ! #define YYPOPSTACK (yyvsp--, yyssp--) #endif ! int yystacksize = YYINITDEPTH; ! int yyfree_stacks = 0; - #ifdef YYPURE - int yychar; - YYSTYPE yylval; - int yynerrs; - #ifdef YYLSP_NEEDED - YYLTYPE yylloc; - #endif - #endif ! YYSTYPE yyval; /* the variable used to return */ ! /* semantic values from the action */ ! /* routines */ int yylen; ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Starting parse\n"); ! #endif yystate = 0; yyerrstatus = 0; --- 4711,4831 ---- to the proper pointer type. */ #ifdef YYPARSE_PARAM ! # ifdef __cplusplus ! # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM ! # define YYPARSE_PARAM_DECL ! # else /* !__cplusplus */ ! # define YYPARSE_PARAM_ARG YYPARSE_PARAM ! # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; ! # endif /* !__cplusplus */ ! #else /* !YYPARSE_PARAM */ ! # define YYPARSE_PARAM_ARG ! # define YYPARSE_PARAM_DECL ! #endif /* !YYPARSE_PARAM */ /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ ! # ifdef YYPARSE_PARAM ! YYPARSE_RETURN_TYPE yyparse (void *); ! # else ! YYPARSE_RETURN_TYPE yyparse (void); ! # endif #endif + + /* YY_DECL_VARIABLES -- depending whether we use a pure parser, + variables are global, or local to YYPARSE. */ + + #define YY_DECL_NON_LSP_VARIABLES \ + /* The lookahead symbol. */ \ + int yychar; \ + \ + /* The semantic value of the lookahead symbol. */ \ + YYSTYPE yylval; \ + \ + /* Number of parse errors so far. */ \ + int yynerrs; + + #if YYLSP_NEEDED + # define YY_DECL_VARIABLES \ + YY_DECL_NON_LSP_VARIABLES \ + \ + /* Location data for the lookahead symbol. */ \ + YYLTYPE yylloc; + #else + # define YY_DECL_VARIABLES \ + YY_DECL_NON_LSP_VARIABLES #endif ! ! /* If nonreentrant, generate the variables here. */ ! ! #if !YYPURE ! YY_DECL_VARIABLES ! #endif /* !YYPURE */ ! ! YYPARSE_RETURN_TYPE ! yyparse (YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { + /* If reentrant, generate the variables here. */ + #if YYPURE + YY_DECL_VARIABLES + #endif /* !YYPURE */ + register int yystate; register int yyn; ! int yyresult; ! /* Number of tokens to shift before error messages enabled. */ ! int yyerrstatus; ! /* Lookahead token as an internal (translated) token number. */ ! int yychar1 = 0; ! /* Three stacks and their tools: ! `yyss': related to states, ! `yyvs': related to semantic values, ! `yyls': related to locations. ! Refer to the stacks thru separate pointers, to allow yyoverflow ! to reallocate them elsewhere. */ ! /* The state stack. */ ! short yyssa[YYINITDEPTH]; ! short *yyss = yyssa; ! register short *yyssp; ! ! /* The semantic value stack. */ ! YYSTYPE yyvsa[YYINITDEPTH]; ! YYSTYPE *yyvs = yyvsa; ! register YYSTYPE *yyvsp; ! ! #if YYLSP_NEEDED ! /* The location stack. */ ! YYLTYPE yylsa[YYINITDEPTH]; YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; + #endif ! #if YYLSP_NEEDED ! # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else ! # define YYPOPSTACK (yyvsp--, yyssp--) #endif ! YYSIZE_T yystacksize = YYINITDEPTH; ! /* The variables used to return semantic value and location from the ! action routines. */ ! YYSTYPE yyval; ! #if YYLSP_NEEDED ! YYLTYPE yyloc; ! #endif + /* When reducing, the number of symbols on the RHS of the reduced + rule. */ int yylen; ! YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; *************** yyparse(YYPARSE_PARAM_ARG) *** 4612,4721 **** so that they stay on the same level as the state stack. The wasted elements are never initialized. */ ! yyssp = yyss - 1; yyvsp = yyvs; ! #ifdef YYLSP_NEEDED yylsp = yyls; #endif ! /* Push a new state, which is found in yystate . */ ! /* In all cases, when you get here, the value and location stacks ! have just been pushed. so pushing a state here evens the stacks. */ ! yynewstate: ! *++yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { - /* Give user a chance to reallocate the stack */ - /* Use copies of these so that the &'s don't force the real ones into memory. */ - YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; - #ifdef YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - #endif - /* Get the current used size of the three stacks, in elements. */ ! int size = yyssp - yyss + 1; #ifdef yyoverflow ! /* Each stack pointer address is followed by the size of ! the data in use in that stack, in bytes. */ ! #ifdef YYLSP_NEEDED ! /* This used to be a conditional around just the two extra args, ! but that might be undefined if yyoverflow is a macro. */ ! yyoverflow("parser stack overflow", ! &yyss1, size * sizeof (*yyssp), ! &yyvs1, size * sizeof (*yyvsp), ! &yyls1, size * sizeof (*yylsp), ! &yystacksize); ! #else ! yyoverflow("parser stack overflow", ! &yyss1, size * sizeof (*yyssp), ! &yyvs1, size * sizeof (*yyvsp), ! &yystacksize); ! #endif ! yyss = yyss1; yyvs = yyvs1; ! #ifdef YYLSP_NEEDED ! yyls = yyls1; ! #endif #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) ! { ! yyerror("parser stack overflow"); ! if (yyfree_stacks) ! { ! free (yyss); ! free (yyvs); ! #ifdef YYLSP_NEEDED ! free (yyls); ! #endif ! } ! return 2; ! } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; ! #ifndef YYSTACK_USE_ALLOCA ! yyfree_stacks = 1; ! #endif ! yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); ! __yy_memcpy ((char *)yyss, (char *)yyss1, ! size * (unsigned int) sizeof (*yyssp)); ! yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); ! __yy_memcpy ((char *)yyvs, (char *)yyvs1, ! size * (unsigned int) sizeof (*yyvsp)); ! #ifdef YYLSP_NEEDED ! yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); ! __yy_memcpy ((char *)yyls, (char *)yyls1, ! size * (unsigned int) sizeof (*yylsp)); ! #endif #endif /* no yyoverflow */ ! yyssp = yyss + size - 1; ! yyvsp = yyvs + size - 1; ! #ifdef YYLSP_NEEDED ! yylsp = yyls + size - 1; #endif ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Stack size increased to %d\n", yystacksize); ! #endif if (yyssp >= yyss + yystacksize - 1) YYABORT; } ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Entering state %d\n", yystate); ! #endif goto yybackup; ! yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ --- 4837,4942 ---- so that they stay on the same level as the state stack. The wasted elements are never initialized. */ ! yyssp = yyss; yyvsp = yyvs; ! #if YYLSP_NEEDED yylsp = yyls; #endif + goto yysetstate; ! /*------------------------------------------------------------. ! | yynewstate -- Push a new state, which is found in yystate. | ! `------------------------------------------------------------*/ ! yynewstate: ! /* In all cases, when you get here, the value and location stacks ! have just been pushed. so pushing a state here evens the stacks. ! */ ! yyssp++; ! yysetstate: ! *yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { /* Get the current used size of the three stacks, in elements. */ ! YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow ! { ! /* Give user a chance to reallocate the stack. Use copies of ! these so that the &'s don't force the real ones into ! memory. */ ! YYSTYPE *yyvs1 = yyvs; ! short *yyss1 = yyss; ! /* Each stack pointer address is followed by the size of the ! data in use in that stack, in bytes. */ ! # if YYLSP_NEEDED ! YYLTYPE *yyls1 = yyls; ! /* This used to be a conditional around just the two extra args, ! but that might be undefined if yyoverflow is a macro. */ ! yyoverflow ("parser stack overflow", ! &yyss1, yysize * sizeof (*yyssp), ! &yyvs1, yysize * sizeof (*yyvsp), ! &yyls1, yysize * sizeof (*yylsp), ! &yystacksize); ! yyls = yyls1; ! # else ! yyoverflow ("parser stack overflow", ! &yyss1, yysize * sizeof (*yyssp), ! &yyvs1, yysize * sizeof (*yyvsp), ! &yystacksize); ! # endif ! yyss = yyss1; ! yyvs = yyvs1; ! } #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) ! goto yyoverflowlab; yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; ! ! { ! short *yyss1 = yyss; ! union yyalloc *yyptr = ! (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); ! if (! yyptr) ! goto yyoverflowlab; ! YYSTACK_RELOCATE (short, yyss); ! YYSTACK_RELOCATE (YYSTYPE, yyvs); ! # if YYLSP_NEEDED ! YYSTACK_RELOCATE (YYLTYPE, yyls); ! # endif ! # undef YYSTACK_RELOCATE ! if (yyss1 != yyssa) ! YYSTACK_FREE (yyss1); ! } #endif /* no yyoverflow */ ! yyssp = yyss + yysize - 1; ! yyvsp = yyvs + yysize - 1; ! #if YYLSP_NEEDED ! yylsp = yyls + yysize - 1; #endif ! YYDPRINTF ((stderr, "Stack size increased to %lu\n", ! (unsigned long int) yystacksize)); if (yyssp >= yyss + yystacksize - 1) YYABORT; } ! YYDPRINTF ((stderr, "Entering state %d\n", yystate)); goto yybackup; ! ! ! /*-----------. ! | yybackup. | ! `-----------*/ ! yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ *************** yynewstate: *** 4734,4743 **** if (yychar == YYEMPTY) { ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Reading a token: "); ! #endif yychar = YYLEX; } --- 4955,4961 ---- if (yychar == YYEMPTY) { ! YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } *************** yynewstate: *** 4748,4772 **** yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Now at end of input.\n"); ! #endif } else { ! yychar1 = YYTRANSLATE(yychar); ! #if YYDEBUG != 0 if (yydebug) { ! fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); ! /* Give the individual parser a way to print the precise meaning ! of a token, for further debugging info. */ ! #ifdef YYPRINT YYPRINT (stderr, yychar, yylval); ! #endif ! fprintf (stderr, ")\n"); } #endif } --- 4966,4990 ---- yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ ! YYDPRINTF ((stderr, "Now at end of input.\n")); } else { ! yychar1 = YYTRANSLATE (yychar); ! #if YYDEBUG ! /* We have to keep this `#if YYDEBUG', since we use variables ! which are defined only if `YYDEBUG' is set. */ if (yydebug) { ! YYFPRINTF (stderr, "Next token is %d (%s", ! yychar, yytname[yychar1]); ! /* Give the individual parser a way to print the precise ! meaning of a token, for further debugging info. */ ! # ifdef YYPRINT YYPRINT (stderr, yychar, yylval); ! # endif ! YYFPRINTF (stderr, ")\n"); } #endif } *************** yynewstate: *** 4798,4853 **** YYACCEPT; /* Shift the lookahead token. */ ! ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); ! #endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; ! #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif ! /* count tokens shifted since error; after three, turn off error status. */ ! if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; - /* Do the default action for the current state. */ - yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; ! /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; - if (yylen > 0) - yyval = yyvsp[1-yylen]; /* implement default value of the action */ ! #if YYDEBUG != 0 if (yydebug) { ! int i; ! fprintf (stderr, "Reducing via rule %d (line %d), ", ! yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ ! for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) ! fprintf (stderr, "%s ", yytname[yyrhs[i]]); ! fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif - switch (yyn) { case 1: --- 5016,5093 ---- YYACCEPT; /* Shift the lookahead token. */ ! YYDPRINTF ((stderr, "Shifting token %d (%s), ", ! yychar, yytname[yychar1])); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; ! #if YYLSP_NEEDED *++yylsp = yylloc; #endif ! /* Count tokens shifted since error; after three, turn off error ! status. */ ! if (yyerrstatus) ! yyerrstatus--; yystate = yyn; goto yynewstate; + /*-----------------------------------------------------------. + | yydefault -- do the default action for the current state. | + `-----------------------------------------------------------*/ + yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; + goto yyreduce; ! ! /*-----------------------------. ! | yyreduce -- Do a reduction. | ! `-----------------------------*/ yyreduce: + /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; ! /* If YYLEN is nonzero, implement the default value of the action: ! `$$ = $1'. ! ! Otherwise, the following line sets YYVAL to the semantic value of ! the lookahead token. This behavior is undocumented and Bison ! users should not rely upon it. Assigning to YYVAL ! unconditionally makes the parser a bit smaller, and it avoids a ! GCC warning that YYVAL may be used uninitialized. */ ! yyval = yyvsp[1-yylen]; ! ! #if YYLSP_NEEDED ! /* Similarly for the default location. Let the user run additional ! commands if for instance locations are ranges. */ ! yyloc = yylsp[1-yylen]; ! YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); ! #endif ! ! #if YYDEBUG ! /* We have to keep this `#if YYDEBUG', since we use variables which ! are defined only if `YYDEBUG' is set. */ if (yydebug) { ! int yyi; ! YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", ! yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ ! for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) ! YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); ! YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif switch (yyn) { case 1: *************** case 542: *** 7190,7240 **** current_aggr = yyvsp[-1].ttype; yyval.ftype.t = TYPE_MAIN_DECL (xref_tag (yyvsp[-1].ttype, make_anon_name (), 0)); yyval.ftype.new_type_flag = 0; yyungetc ('{', 1); ; break;} case 543: ! #line 2530 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 544: ! #line 2532 "parse.y" { error ("no bases given following `:'"); yyval.ttype = NULL_TREE; ; break;} case 545: ! #line 2535 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 547: ! #line 2541 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 548: ! #line 2546 "parse.y" { yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype); ; break;} case 549: ! #line 2548 "parse.y" { yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 550: ! #line 2553 "parse.y" { if (!TYPE_P (yyval.ttype)) yyval.ttype = error_mark_node; ; break;} case 551: ! #line 2556 "parse.y" { yyval.ttype = TREE_TYPE (yyval.ttype); ; break;} case 553: ! #line 2562 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) error ("`%D' access", yyvsp[-1].ttype); yyval.ttype = access_default_virtual_node; ; break;} case 554: ! #line 2566 "parse.y" { if (yyvsp[-2].ttype != access_default_virtual_node) error ("multiple access specifiers"); --- 7430,7482 ---- current_aggr = yyvsp[-1].ttype; yyval.ftype.t = TYPE_MAIN_DECL (xref_tag (yyvsp[-1].ttype, make_anon_name (), 0)); yyval.ftype.new_type_flag = 0; + CLASSTYPE_DECLARED_CLASS (TREE_TYPE (yyval.ftype.t)) + = yyvsp[-1].ttype == class_type_node; yyungetc ('{', 1); ; break;} case 543: ! #line 2532 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 544: ! #line 2534 "parse.y" { error ("no bases given following `:'"); yyval.ttype = NULL_TREE; ; break;} case 545: ! #line 2537 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 547: ! #line 2543 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 548: ! #line 2548 "parse.y" { yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype); ; break;} case 549: ! #line 2550 "parse.y" { yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 550: ! #line 2555 "parse.y" { if (!TYPE_P (yyval.ttype)) yyval.ttype = error_mark_node; ; break;} case 551: ! #line 2558 "parse.y" { yyval.ttype = TREE_TYPE (yyval.ttype); ; break;} case 553: ! #line 2564 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) error ("`%D' access", yyvsp[-1].ttype); yyval.ttype = access_default_virtual_node; ; break;} case 554: ! #line 2568 "parse.y" { if (yyvsp[-2].ttype != access_default_virtual_node) error ("multiple access specifiers"); *************** case 554: *** 7247,7253 **** ; break;} case 555: ! #line 2577 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) error ("`%D' access", yyvsp[-1].ttype); else if (yyval.ttype == access_public_node) --- 7489,7495 ---- ; break;} case 555: ! #line 2579 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) error ("`%D' access", yyvsp[-1].ttype); else if (yyval.ttype == access_public_node) *************** case 555: *** 7261,7273 **** ; break;} case 560: ! #line 2598 "parse.y" { current_access_specifier = yyvsp[-1].ttype; ; break;} case 561: ! #line 2607 "parse.y" { finish_member_declaration (yyvsp[0].ttype); current_aggr = NULL_TREE; --- 7503,7515 ---- ; break;} case 560: ! #line 2600 "parse.y" { current_access_specifier = yyvsp[-1].ttype; ; break;} case 561: ! #line 2609 "parse.y" { finish_member_declaration (yyvsp[0].ttype); current_aggr = NULL_TREE; *************** case 561: *** 7275,7281 **** ; break;} case 562: ! #line 2613 "parse.y" { finish_member_declaration (yyvsp[0].ttype); current_aggr = NULL_TREE; --- 7517,7523 ---- ; break;} case 562: ! #line 2615 "parse.y" { finish_member_declaration (yyvsp[0].ttype); current_aggr = NULL_TREE; *************** case 562: *** 7283,7319 **** ; break;} case 564: ! #line 2623 "parse.y" { error ("missing ';' before right brace"); yyungetc ('}', 0); ; break;} case 565: ! #line 2628 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 566: ! #line 2630 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 567: ! #line 2632 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 568: ! #line 2634 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 569: ! #line 2636 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 570: ! #line 2638 "parse.y" { yyval.ttype = yyvsp[0].ttype; pedantic = yyvsp[-1].itype; ; break;} case 571: ! #line 2641 "parse.y" { if (yyvsp[0].ttype) yyval.ttype = finish_member_template_decl (yyvsp[0].ttype); --- 7525,7561 ---- ; break;} case 564: ! #line 2625 "parse.y" { error ("missing ';' before right brace"); yyungetc ('}', 0); ; break;} case 565: ! #line 2630 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 566: ! #line 2632 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 567: ! #line 2634 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 568: ! #line 2636 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 569: ! #line 2638 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 570: ! #line 2640 "parse.y" { yyval.ttype = yyvsp[0].ttype; pedantic = yyvsp[-1].itype; ; break;} case 571: ! #line 2643 "parse.y" { if (yyvsp[0].ttype) yyval.ttype = finish_member_template_decl (yyvsp[0].ttype); *************** case 571: *** 7325,7342 **** ; break;} case 572: ! #line 2651 "parse.y" { yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t); finish_template_decl (yyvsp[-2].ttype); ; break;} case 573: ! #line 2656 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 574: ! #line 2664 "parse.y" { /* Most of the productions for component_decl only allow the creation of one new member, so we call --- 7567,7584 ---- ; break;} case 572: ! #line 2653 "parse.y" { yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t); finish_template_decl (yyvsp[-2].ttype); ; break;} case 573: ! #line 2658 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 574: ! #line 2666 "parse.y" { /* Most of the productions for component_decl only allow the creation of one new member, so we call *************** case 574: *** 7359,7365 **** ; break;} case 575: ! #line 2685 "parse.y" { if (!yyvsp[0].itype) grok_x_components (yyvsp[-1].ftype.t); --- 7601,7607 ---- ; break;} case 575: ! #line 2687 "parse.y" { if (!yyvsp[0].itype) grok_x_components (yyvsp[-1].ftype.t); *************** case 575: *** 7367,7408 **** ; break;} case 576: ! #line 2691 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 577: ! #line 2693 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 578: ! #line 2695 "parse.y" { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; break;} case 579: ! #line 2697 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 580: ! #line 2708 "parse.y" { tree specs, attrs; split_specs_attrs (yyvsp[-4].ftype.t, &specs, &attrs); yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype, chainon (yyvsp[-1].ttype, attrs)); ; break;} case 581: ! #line 2713 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 582: ! #line 2715 "parse.y" { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ; break;} case 583: ! #line 2722 "parse.y" { yyval.itype = 0; ; break;} case 584: ! #line 2724 "parse.y" { if (PROCESSING_REAL_TEMPLATE_DECL_P ()) yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype); --- 7609,7650 ---- ; break;} case 576: ! #line 2693 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 577: ! #line 2695 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 578: ! #line 2697 "parse.y" { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; break;} case 579: ! #line 2699 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 580: ! #line 2710 "parse.y" { tree specs, attrs; split_specs_attrs (yyvsp[-4].ftype.t, &specs, &attrs); yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype, chainon (yyvsp[-1].ttype, attrs)); ; break;} case 581: ! #line 2715 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 582: ! #line 2717 "parse.y" { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ; break;} case 583: ! #line 2724 "parse.y" { yyval.itype = 0; ; break;} case 584: ! #line 2726 "parse.y" { if (PROCESSING_REAL_TEMPLATE_DECL_P ()) yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype); *************** case 584: *** 7411,7417 **** ; break;} case 585: ! #line 2731 "parse.y" { check_multiple_declarators (); if (PROCESSING_REAL_TEMPLATE_DECL_P ()) --- 7653,7659 ---- ; break;} case 585: ! #line 2733 "parse.y" { check_multiple_declarators (); if (PROCESSING_REAL_TEMPLATE_DECL_P ()) *************** case 585: *** 7421,7431 **** ; break;} case 586: ! #line 2742 "parse.y" { yyval.itype = 0; ; break;} case 587: ! #line 2744 "parse.y" { if (PROCESSING_REAL_TEMPLATE_DECL_P ()) yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype); --- 7663,7673 ---- ; break;} case 586: ! #line 2744 "parse.y" { yyval.itype = 0; ; break;} case 587: ! #line 2746 "parse.y" { if (PROCESSING_REAL_TEMPLATE_DECL_P ()) yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype); *************** case 587: *** 7434,7440 **** ; break;} case 588: ! #line 2751 "parse.y" { check_multiple_declarators (); if (PROCESSING_REAL_TEMPLATE_DECL_P ()) --- 7676,7682 ---- ; break;} case 588: ! #line 2753 "parse.y" { check_multiple_declarators (); if (PROCESSING_REAL_TEMPLATE_DECL_P ()) *************** case 588: *** 7444,7518 **** ; break;} case 593: ! #line 2772 "parse.y" { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 594: ! #line 2775 "parse.y" { yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 595: ! #line 2781 "parse.y" { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 596: ! #line 2784 "parse.y" { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 597: ! #line 2787 "parse.y" { yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 598: ! #line 2790 "parse.y" { yyval.ttype = parse_bitfield0 (NULL_TREE, yyvsp[-3].ftype.t, yyvsp[-3].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 599: ! #line 2796 "parse.y" { yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 600: ! #line 2798 "parse.y" { yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 601: ! #line 2803 "parse.y" { yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 602: ! #line 2805 "parse.y" { yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 603: ! #line 2807 "parse.y" { yyval.ttype = parse_bitfield (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 608: ! #line 2826 "parse.y" { build_enumerator (yyvsp[0].ttype, NULL_TREE, current_enum_type); ; break;} case 609: ! #line 2828 "parse.y" { build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype, current_enum_type); ; break;} case 610: ! #line 2834 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 611: ! #line 2837 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 612: ! #line 2842 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids array dimensions with parenthesized type in new"); --- 7686,7760 ---- ; break;} case 593: ! #line 2774 "parse.y" { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 594: ! #line 2777 "parse.y" { yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 595: ! #line 2783 "parse.y" { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 596: ! #line 2786 "parse.y" { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 597: ! #line 2789 "parse.y" { yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 598: ! #line 2792 "parse.y" { yyval.ttype = parse_bitfield0 (NULL_TREE, yyvsp[-3].ftype.t, yyvsp[-3].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 599: ! #line 2798 "parse.y" { yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 600: ! #line 2800 "parse.y" { yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 601: ! #line 2805 "parse.y" { yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 602: ! #line 2807 "parse.y" { yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 603: ! #line 2809 "parse.y" { yyval.ttype = parse_bitfield (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 608: ! #line 2828 "parse.y" { build_enumerator (yyvsp[0].ttype, NULL_TREE, current_enum_type); ; break;} case 609: ! #line 2830 "parse.y" { build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype, current_enum_type); ; break;} case 610: ! #line 2836 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 611: ! #line 2839 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 612: ! #line 2844 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids array dimensions with parenthesized type in new"); *************** case 612: *** 7522,7572 **** ; break;} case 613: ! #line 2853 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 614: ! #line 2855 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 615: ! #line 2860 "parse.y" { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); yyval.ftype.new_type_flag = 0; ; break;} case 616: ! #line 2863 "parse.y" { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 617: ! #line 2866 "parse.y" { yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); yyval.ftype.new_type_flag = 0; ; break;} case 618: ! #line 2869 "parse.y" { yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 619: ! #line 2879 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 620: ! #line 2881 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 621: ! #line 2883 "parse.y" { yyval.ttype = empty_parms (); ; break;} case 622: ! #line 2885 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 624: ! #line 2893 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ --- 7764,7814 ---- ; break;} case 613: ! #line 2855 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 614: ! #line 2857 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 615: ! #line 2862 "parse.y" { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); yyval.ftype.new_type_flag = 0; ; break;} case 616: ! #line 2865 "parse.y" { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 617: ! #line 2868 "parse.y" { yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); yyval.ftype.new_type_flag = 0; ; break;} case 618: ! #line 2871 "parse.y" { yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 619: ! #line 2881 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 620: ! #line 2883 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 621: ! #line 2885 "parse.y" { yyval.ttype = empty_parms (); ; break;} case 622: ! #line 2887 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 624: ! #line 2895 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ *************** case 624: *** 7574,7624 **** ; break;} case 625: ! #line 2903 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 626: ! #line 2905 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 627: ! #line 2907 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 628: ! #line 2909 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 629: ! #line 2911 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 631: ! #line 2919 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 632: ! #line 2921 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 633: ! #line 2923 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 634: ! #line 2925 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 635: ! #line 2927 "parse.y" { push_nested_class (yyvsp[-1].ttype, 3); yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ; break;} case 637: ! #line 2935 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) { --- 7816,7866 ---- ; break;} case 625: ! #line 2905 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 626: ! #line 2907 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 627: ! #line 2909 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 628: ! #line 2911 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 629: ! #line 2913 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 631: ! #line 2921 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 632: ! #line 2923 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 633: ! #line 2925 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 634: ! #line 2927 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 635: ! #line 2929 "parse.y" { push_nested_class (yyvsp[-1].ttype, 3); yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ; break;} case 637: ! #line 2937 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) { *************** case 637: *** 7630,7636 **** ; break;} case 638: ! #line 2945 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); --- 7872,7878 ---- ; break;} case 638: ! #line 2947 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); *************** case 638: *** 7640,7654 **** ; break;} case 641: ! #line 2958 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 642: ! #line 2963 "parse.y" { yyval.ttype = get_type_decl (yyvsp[0].ttype); ; break;} case 644: ! #line 2972 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ --- 7882,7896 ---- ; break;} case 641: ! #line 2960 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 642: ! #line 2965 "parse.y" { yyval.ttype = get_type_decl (yyvsp[0].ttype); ; break;} case 644: ! #line 2974 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ *************** case 644: *** 7656,7798 **** ; break;} case 645: ! #line 2981 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 646: ! #line 2983 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 647: ! #line 2985 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 648: ! #line 2987 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 649: ! #line 2989 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 651: ! #line 2997 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 652: ! #line 2999 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 653: ! #line 3001 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 654: ! #line 3003 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 655: ! #line 3005 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 657: ! #line 3013 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 658: ! #line 3015 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 659: ! #line 3017 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 660: ! #line 3019 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 661: ! #line 3021 "parse.y" { enter_scope_of (yyvsp[0].ttype); ; break;} case 662: ! #line 3023 "parse.y" { enter_scope_of (yyvsp[0].ttype); yyval.ttype = yyvsp[0].ttype;; break;} case 663: ! #line 3025 "parse.y" { yyval.ttype = build_nt (SCOPE_REF, global_namespace, yyvsp[0].ttype); enter_scope_of (yyval.ttype); ; break;} case 664: ! #line 3029 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); enter_scope_of (yyval.ttype); ; break;} case 665: ! #line 3037 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 666: ! #line 3040 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 667: ! #line 3046 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 668: ! #line 3049 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 670: ! #line 3056 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 671: ! #line 3061 "parse.y" { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} case 672: ! #line 3063 "parse.y" { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} case 673: ! #line 3065 "parse.y" { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 678: ! #line 3077 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 679: ! #line 3079 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, tf_error); ; break;} case 680: ! #line 3083 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ; break;} case 681: ! #line 3086 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ; break;} case 682: ! #line 3094 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) { --- 7898,8040 ---- ; break;} case 645: ! #line 2983 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 646: ! #line 2985 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 647: ! #line 2987 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 648: ! #line 2989 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 649: ! #line 2991 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 651: ! #line 2999 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 652: ! #line 3001 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 653: ! #line 3003 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 654: ! #line 3005 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 655: ! #line 3007 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 657: ! #line 3015 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 658: ! #line 3017 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 659: ! #line 3019 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 660: ! #line 3021 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 661: ! #line 3023 "parse.y" { enter_scope_of (yyvsp[0].ttype); ; break;} case 662: ! #line 3025 "parse.y" { enter_scope_of (yyvsp[0].ttype); yyval.ttype = yyvsp[0].ttype;; break;} case 663: ! #line 3027 "parse.y" { yyval.ttype = build_nt (SCOPE_REF, global_namespace, yyvsp[0].ttype); enter_scope_of (yyval.ttype); ; break;} case 664: ! #line 3031 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); enter_scope_of (yyval.ttype); ; break;} case 665: ! #line 3039 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 666: ! #line 3042 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 667: ! #line 3048 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 668: ! #line 3051 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 670: ! #line 3058 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 671: ! #line 3063 "parse.y" { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} case 672: ! #line 3065 "parse.y" { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} case 673: ! #line 3067 "parse.y" { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 678: ! #line 3079 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 679: ! #line 3081 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, tf_error); ; break;} case 680: ! #line 3085 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ; break;} case 681: ! #line 3088 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ; break;} case 682: ! #line 3096 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) { *************** case 682: *** 7804,7810 **** ; break;} case 683: ! #line 3104 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; --- 8046,8052 ---- ; break;} case 683: ! #line 3106 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; *************** case 683: *** 7812,7818 **** ; break;} case 684: ! #line 3110 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; --- 8054,8060 ---- ; break;} case 684: ! #line 3112 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; *************** case 684: *** 7820,7834 **** ; break;} case 685: ! #line 3116 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ; break;} case 687: ! #line 3122 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 688: ! #line 3127 "parse.y" { if (TYPE_P (yyvsp[-1].ttype)) yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error); --- 8062,8076 ---- ; break;} case 685: ! #line 3118 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ; break;} case 687: ! #line 3124 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 688: ! #line 3129 "parse.y" { if (TYPE_P (yyvsp[-1].ttype)) yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error); *************** case 688: *** 7843,7861 **** ; break;} case 689: ! #line 3140 "parse.y" { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ; break;} case 690: ! #line 3142 "parse.y" { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error); ; break;} case 691: ! #line 3144 "parse.y" { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype, tf_error); ; break;} case 692: ! #line 3149 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) error ("`%T' is not a class or namespace", yyvsp[0].ttype); --- 8085,8103 ---- ; break;} case 689: ! #line 3142 "parse.y" { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ; break;} case 690: ! #line 3144 "parse.y" { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error); ; break;} case 691: ! #line 3146 "parse.y" { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype, tf_error); ; break;} case 692: ! #line 3151 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) error ("`%T' is not a class or namespace", yyvsp[0].ttype); *************** case 692: *** 7864,7870 **** ; break;} case 693: ! #line 3156 "parse.y" { if (TYPE_P (yyvsp[-1].ttype)) yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error); --- 8106,8112 ---- ; break;} case 693: ! #line 3158 "parse.y" { if (TYPE_P (yyvsp[-1].ttype)) yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error); *************** case 693: *** 7879,7895 **** ; break;} case 694: ! #line 3169 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ; break;} case 695: ! #line 3172 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, tf_error); ; break;} case 696: ! #line 3180 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != TYPE_DECL) yyval.ttype = lastiddecl; --- 8121,8137 ---- ; break;} case 694: ! #line 3171 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ; break;} case 695: ! #line 3174 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, tf_error); ; break;} case 696: ! #line 3182 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != TYPE_DECL) yyval.ttype = lastiddecl; *************** case 696: *** 7903,7909 **** ; break;} case 697: ! #line 3192 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != TYPE_DECL) yyval.ttype = lastiddecl; --- 8145,8151 ---- ; break;} case 697: ! #line 3194 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != TYPE_DECL) yyval.ttype = lastiddecl; *************** case 697: *** 7911,7921 **** ; break;} case 698: ! #line 3198 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ; break;} case 701: ! #line 3202 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; --- 8153,8163 ---- ; break;} case 698: ! #line 3200 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ; break;} case 701: ! #line 3204 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; *************** case 701: *** 7923,7933 **** ; break;} case 702: ! #line 3211 "parse.y" { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 703: ! #line 3216 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); --- 8165,8175 ---- ; break;} case 702: ! #line 3213 "parse.y" { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 703: ! #line 3218 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); *************** case 703: *** 7937,7995 **** ; break;} case 705: ! #line 3225 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 706: ! #line 3230 "parse.y" { got_scope = NULL_TREE; ; break;} case 707: ! #line 3232 "parse.y" { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ; break;} case 708: ! #line 3239 "parse.y" { got_scope = void_type_node; ; break;} case 709: ! #line 3245 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 710: ! #line 3247 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 711: ! #line 3249 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 712: ! #line 3251 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 713: ! #line 3253 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} case 714: ! #line 3257 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 716: ! #line 3266 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} case 717: ! #line 3268 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 719: ! #line 3274 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ --- 8179,8237 ---- ; break;} case 705: ! #line 3227 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 706: ! #line 3232 "parse.y" { got_scope = NULL_TREE; ; break;} case 707: ! #line 3234 "parse.y" { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ; break;} case 708: ! #line 3241 "parse.y" { got_scope = void_type_node; ; break;} case 709: ! #line 3247 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 710: ! #line 3249 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 711: ! #line 3251 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 712: ! #line 3253 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 713: ! #line 3255 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} case 714: ! #line 3259 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 716: ! #line 3268 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} case 717: ! #line 3270 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 719: ! #line 3276 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ *************** case 719: *** 7997,8092 **** ; break;} case 720: ! #line 3284 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 721: ! #line 3286 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 722: ! #line 3288 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} case 723: ! #line 3290 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ; break;} case 724: ! #line 3292 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 725: ! #line 3294 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 726: ! #line 3296 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} case 727: ! #line 3298 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ; break;} case 728: ! #line 3300 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} case 729: ! #line 3304 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 731: ! #line 3313 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 732: ! #line 3316 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 733: ! #line 3318 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 734: ! #line 3320 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 735: ! #line 3322 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 736: ! #line 3324 "parse.y" { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 737: ! #line 3326 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 738: ! #line 3328 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 739: ! #line 3330 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} case 740: ! #line 3332 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ; break;} case 747: ! #line 3355 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids label declarations"); ; break;} case 750: ! #line 3366 "parse.y" { while (yyvsp[-1].ttype) { --- 8239,8334 ---- ; break;} case 720: ! #line 3286 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 721: ! #line 3288 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 722: ! #line 3290 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} case 723: ! #line 3292 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ; break;} case 724: ! #line 3294 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 725: ! #line 3296 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 726: ! #line 3298 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} case 727: ! #line 3300 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ; break;} case 728: ! #line 3302 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} case 729: ! #line 3306 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 731: ! #line 3315 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 732: ! #line 3318 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 733: ! #line 3320 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 734: ! #line 3322 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 735: ! #line 3324 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 736: ! #line 3326 "parse.y" { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 737: ! #line 3328 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 738: ! #line 3330 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 739: ! #line 3332 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} case 740: ! #line 3334 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ; break;} case 747: ! #line 3357 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids label declarations"); ; break;} case 750: ! #line 3368 "parse.y" { while (yyvsp[-1].ttype) { *************** case 750: *** 8096,8156 **** ; break;} case 751: ! #line 3377 "parse.y" { yyval.ttype = begin_compound_stmt (0); ; break;} case 752: ! #line 3379 "parse.y" { STMT_LINENO (yyvsp[-1].ttype) = yyvsp[-3].itype; finish_compound_stmt (0, yyvsp[-1].ttype); ; break;} case 753: ! #line 3385 "parse.y" { last_expr_type = NULL_TREE; ; break;} case 754: ! #line 3390 "parse.y" { yyval.ttype = begin_if_stmt (); cond_stmt_keyword = "if"; ; break;} case 755: ! #line 3393 "parse.y" { finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 756: ! #line 3395 "parse.y" { yyval.ttype = yyvsp[-3].ttype; finish_then_clause (yyvsp[-3].ttype); ; break;} case 758: ! #line 3402 "parse.y" { yyval.ttype = begin_compound_stmt (0); ; break;} case 759: ! #line 3404 "parse.y" { STMT_LINENO (yyvsp[-2].ttype) = yyvsp[-1].itype; if (yyvsp[0].ttype) STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].itype; finish_compound_stmt (0, yyvsp[-2].ttype); ; break;} case 761: ! #line 3412 "parse.y" { if (yyvsp[0].ttype) STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].itype; ; break;} case 762: ! #line 3417 "parse.y" { finish_stmt (); yyval.ttype = NULL_TREE; ; break;} case 763: ! #line 3420 "parse.y" { yyval.ttype = finish_expr_stmt (yyvsp[-1].ttype); ; break;} case 764: ! #line 3422 "parse.y" { begin_else_clause (); ; break;} case 765: ! #line 3424 "parse.y" { yyval.ttype = yyvsp[-3].ttype; finish_else_clause (yyvsp[-3].ttype); --- 8338,8398 ---- ; break;} case 751: ! #line 3379 "parse.y" { yyval.ttype = begin_compound_stmt (0); ; break;} case 752: ! #line 3381 "parse.y" { STMT_LINENO (yyvsp[-1].ttype) = yyvsp[-3].itype; finish_compound_stmt (0, yyvsp[-1].ttype); ; break;} case 753: ! #line 3387 "parse.y" { last_expr_type = NULL_TREE; ; break;} case 754: ! #line 3392 "parse.y" { yyval.ttype = begin_if_stmt (); cond_stmt_keyword = "if"; ; break;} case 755: ! #line 3395 "parse.y" { finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 756: ! #line 3397 "parse.y" { yyval.ttype = yyvsp[-3].ttype; finish_then_clause (yyvsp[-3].ttype); ; break;} case 758: ! #line 3404 "parse.y" { yyval.ttype = begin_compound_stmt (0); ; break;} case 759: ! #line 3406 "parse.y" { STMT_LINENO (yyvsp[-2].ttype) = yyvsp[-1].itype; if (yyvsp[0].ttype) STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].itype; finish_compound_stmt (0, yyvsp[-2].ttype); ; break;} case 761: ! #line 3414 "parse.y" { if (yyvsp[0].ttype) STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].itype; ; break;} case 762: ! #line 3419 "parse.y" { finish_stmt (); yyval.ttype = NULL_TREE; ; break;} case 763: ! #line 3422 "parse.y" { yyval.ttype = finish_expr_stmt (yyvsp[-1].ttype); ; break;} case 764: ! #line 3424 "parse.y" { begin_else_clause (); ; break;} case 765: ! #line 3426 "parse.y" { yyval.ttype = yyvsp[-3].ttype; finish_else_clause (yyvsp[-3].ttype); *************** case 765: *** 8158,8305 **** ; break;} case 766: ! #line 3430 "parse.y" { yyval.ttype = yyvsp[0].ttype; finish_if_stmt (); ; break;} case 767: ! #line 3433 "parse.y" { yyval.ttype = begin_while_stmt (); cond_stmt_keyword = "while"; ; break;} case 768: ! #line 3438 "parse.y" { finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 769: ! #line 3440 "parse.y" { yyval.ttype = yyvsp[-3].ttype; finish_while_stmt (yyvsp[-3].ttype); ; break;} case 770: ! #line 3443 "parse.y" { yyval.ttype = begin_do_stmt (); ; break;} case 771: ! #line 3445 "parse.y" { finish_do_body (yyvsp[-2].ttype); cond_stmt_keyword = "do"; ; break;} case 772: ! #line 3450 "parse.y" { yyval.ttype = yyvsp[-5].ttype; finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ; break;} case 773: ! #line 3453 "parse.y" { yyval.ttype = begin_for_stmt (); ; break;} case 774: ! #line 3455 "parse.y" { finish_for_init_stmt (yyvsp[-2].ttype); ; break;} case 775: ! #line 3457 "parse.y" { finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ; break;} case 776: ! #line 3459 "parse.y" { finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ; break;} case 777: ! #line 3461 "parse.y" { yyval.ttype = yyvsp[-10].ttype; finish_for_stmt (yyvsp[-10].ttype); ; break;} case 778: ! #line 3464 "parse.y" { yyval.ttype = begin_switch_stmt (); ; break;} case 779: ! #line 3466 "parse.y" { finish_switch_cond (yyvsp[-1].ttype, yyvsp[-3].ttype); ; break;} case 780: ! #line 3468 "parse.y" { yyval.ttype = yyvsp[-5].ttype; finish_switch_stmt (yyvsp[-5].ttype); ; break;} case 781: ! #line 3471 "parse.y" { yyval.ttype = finish_case_label (yyvsp[-1].ttype, NULL_TREE); ; break;} case 782: ! #line 3473 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 783: ! #line 3475 "parse.y" { yyval.ttype = finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 784: ! #line 3477 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 785: ! #line 3479 "parse.y" { yyval.ttype = finish_case_label (NULL_TREE, NULL_TREE); ; break;} case 786: ! #line 3481 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 787: ! #line 3483 "parse.y" { yyval.ttype = finish_break_stmt (); ; break;} case 788: ! #line 3485 "parse.y" { yyval.ttype = finish_continue_stmt (); ; break;} case 789: ! #line 3487 "parse.y" { yyval.ttype = finish_return_stmt (NULL_TREE); ; break;} case 790: ! #line 3489 "parse.y" { yyval.ttype = finish_return_stmt (yyvsp[-1].ttype); ; break;} case 791: ! #line 3491 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, NULL_TREE); ASM_INPUT_P (yyval.ttype) = 1; ; break;} case 792: ! #line 3496 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE); ; break;} case 793: ! #line 3500 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 794: ! #line 3502 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype, NULL_TREE); ; break;} case 795: ! #line 3506 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ; break;} case 796: ! #line 3509 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, NULL_TREE, yyvsp[-4].ttype, yyvsp[-2].ttype); ; break;} case 797: ! #line 3512 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype); ; break;} case 798: ! #line 3514 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids computed gotos"); --- 8400,8547 ---- ; break;} case 766: ! #line 3432 "parse.y" { yyval.ttype = yyvsp[0].ttype; finish_if_stmt (); ; break;} case 767: ! #line 3435 "parse.y" { yyval.ttype = begin_while_stmt (); cond_stmt_keyword = "while"; ; break;} case 768: ! #line 3440 "parse.y" { finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 769: ! #line 3442 "parse.y" { yyval.ttype = yyvsp[-3].ttype; finish_while_stmt (yyvsp[-3].ttype); ; break;} case 770: ! #line 3445 "parse.y" { yyval.ttype = begin_do_stmt (); ; break;} case 771: ! #line 3447 "parse.y" { finish_do_body (yyvsp[-2].ttype); cond_stmt_keyword = "do"; ; break;} case 772: ! #line 3452 "parse.y" { yyval.ttype = yyvsp[-5].ttype; finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ; break;} case 773: ! #line 3455 "parse.y" { yyval.ttype = begin_for_stmt (); ; break;} case 774: ! #line 3457 "parse.y" { finish_for_init_stmt (yyvsp[-2].ttype); ; break;} case 775: ! #line 3459 "parse.y" { finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ; break;} case 776: ! #line 3461 "parse.y" { finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ; break;} case 777: ! #line 3463 "parse.y" { yyval.ttype = yyvsp[-10].ttype; finish_for_stmt (yyvsp[-10].ttype); ; break;} case 778: ! #line 3466 "parse.y" { yyval.ttype = begin_switch_stmt (); ; break;} case 779: ! #line 3468 "parse.y" { finish_switch_cond (yyvsp[-1].ttype, yyvsp[-3].ttype); ; break;} case 780: ! #line 3470 "parse.y" { yyval.ttype = yyvsp[-5].ttype; finish_switch_stmt (yyvsp[-5].ttype); ; break;} case 781: ! #line 3473 "parse.y" { yyval.ttype = finish_case_label (yyvsp[-1].ttype, NULL_TREE); ; break;} case 782: ! #line 3475 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 783: ! #line 3477 "parse.y" { yyval.ttype = finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 784: ! #line 3479 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 785: ! #line 3481 "parse.y" { yyval.ttype = finish_case_label (NULL_TREE, NULL_TREE); ; break;} case 786: ! #line 3483 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 787: ! #line 3485 "parse.y" { yyval.ttype = finish_break_stmt (); ; break;} case 788: ! #line 3487 "parse.y" { yyval.ttype = finish_continue_stmt (); ; break;} case 789: ! #line 3489 "parse.y" { yyval.ttype = finish_return_stmt (NULL_TREE); ; break;} case 790: ! #line 3491 "parse.y" { yyval.ttype = finish_return_stmt (yyvsp[-1].ttype); ; break;} case 791: ! #line 3493 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, NULL_TREE); ASM_INPUT_P (yyval.ttype) = 1; ; break;} case 792: ! #line 3498 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE); ; break;} case 793: ! #line 3502 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 794: ! #line 3504 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype, NULL_TREE); ; break;} case 795: ! #line 3508 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ; break;} case 796: ! #line 3511 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, NULL_TREE, yyvsp[-4].ttype, yyvsp[-2].ttype); ; break;} case 797: ! #line 3514 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype); ; break;} case 798: ! #line 3516 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids computed gotos"); *************** case 798: *** 8307,8373 **** ; break;} case 799: ! #line 3520 "parse.y" { yyval.ttype = finish_goto_stmt (yyvsp[-1].ttype); ; break;} case 800: ! #line 3522 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 801: ! #line 3524 "parse.y" { error ("label must be followed by statement"); yyungetc ('}', 0); yyval.ttype = NULL_TREE; ; break;} case 802: ! #line 3528 "parse.y" { finish_stmt (); yyval.ttype = NULL_TREE; ; break;} case 803: ! #line 3531 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 804: ! #line 3533 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 805: ! #line 3535 "parse.y" { do_local_using_decl (yyvsp[0].ttype); yyval.ttype = NULL_TREE; ; break;} case 806: ! #line 3538 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 807: ! #line 3543 "parse.y" { yyval.ttype = begin_function_try_block (); ; break;} case 808: ! #line 3545 "parse.y" { finish_function_try_block (yyvsp[-1].ttype); ; break;} case 809: ! #line 3547 "parse.y" { finish_function_handler_sequence (yyvsp[-3].ttype); ; break;} case 810: ! #line 3552 "parse.y" { yyval.ttype = begin_try_block (); ; break;} case 811: ! #line 3554 "parse.y" { finish_try_block (yyvsp[-1].ttype); ; break;} case 812: ! #line 3556 "parse.y" { finish_handler_sequence (yyvsp[-3].ttype); ; break;} case 815: ! #line 3563 "parse.y" { /* Generate a fake handler block to avoid later aborts. */ tree fake_handler = begin_handler (); finish_handler_parms (NULL_TREE, fake_handler); --- 8549,8615 ---- ; break;} case 799: ! #line 3522 "parse.y" { yyval.ttype = finish_goto_stmt (yyvsp[-1].ttype); ; break;} case 800: ! #line 3524 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 801: ! #line 3526 "parse.y" { error ("label must be followed by statement"); yyungetc ('}', 0); yyval.ttype = NULL_TREE; ; break;} case 802: ! #line 3530 "parse.y" { finish_stmt (); yyval.ttype = NULL_TREE; ; break;} case 803: ! #line 3533 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 804: ! #line 3535 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 805: ! #line 3537 "parse.y" { do_local_using_decl (yyvsp[0].ttype); yyval.ttype = NULL_TREE; ; break;} case 806: ! #line 3540 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 807: ! #line 3545 "parse.y" { yyval.ttype = begin_function_try_block (); ; break;} case 808: ! #line 3547 "parse.y" { finish_function_try_block (yyvsp[-1].ttype); ; break;} case 809: ! #line 3549 "parse.y" { finish_function_handler_sequence (yyvsp[-3].ttype); ; break;} case 810: ! #line 3554 "parse.y" { yyval.ttype = begin_try_block (); ; break;} case 811: ! #line 3556 "parse.y" { finish_try_block (yyvsp[-1].ttype); ; break;} case 812: ! #line 3558 "parse.y" { finish_handler_sequence (yyvsp[-3].ttype); ; break;} case 815: ! #line 3565 "parse.y" { /* Generate a fake handler block to avoid later aborts. */ tree fake_handler = begin_handler (); finish_handler_parms (NULL_TREE, fake_handler); *************** case 815: *** 8378,8400 **** ; break;} case 816: ! #line 3575 "parse.y" { yyval.ttype = begin_handler (); ; break;} case 817: ! #line 3577 "parse.y" { finish_handler_parms (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 818: ! #line 3579 "parse.y" { finish_handler (yyvsp[-3].ttype); ; break;} case 821: ! #line 3589 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 822: ! #line 3605 "parse.y" { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype); yyval.ttype = start_handler_parms (TREE_PURPOSE (yyvsp[-1].ftype.t), --- 8620,8642 ---- ; break;} case 816: ! #line 3577 "parse.y" { yyval.ttype = begin_handler (); ; break;} case 817: ! #line 3579 "parse.y" { finish_handler_parms (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 818: ! #line 3581 "parse.y" { finish_handler (yyvsp[-3].ttype); ; break;} case 821: ! #line 3591 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 822: ! #line 3607 "parse.y" { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype); yyval.ttype = start_handler_parms (TREE_PURPOSE (yyvsp[-1].ftype.t), *************** case 822: *** 8402,8502 **** ; break;} case 823: ! #line 3614 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} case 824: ! #line 3616 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} case 825: ! #line 3618 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} case 826: ! #line 3620 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} case 827: ! #line 3625 "parse.y" { finish_expr_stmt (yyvsp[-1].ttype); ; break;} case 829: ! #line 3628 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids compound statements inside for initializations"); ; break;} case 830: ! #line 3637 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 832: ! #line 3643 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 834: ! #line 3646 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 835: ! #line 3653 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 838: ! #line 3660 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 839: ! #line 3665 "parse.y" { yyval.ttype = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} case 840: ! #line 3667 "parse.y" { yyval.ttype = build_tree_list (build_tree_list (yyvsp[-5].ttype, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} case 841: ! #line 3672 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE);; break;} case 842: ! #line 3674 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; break;} case 843: ! #line 3685 "parse.y" { yyval.ttype = empty_parms(); ; break;} case 845: ! #line 3690 "parse.y" { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0); check_for_new_type ("inside parameter list", yyvsp[0].ftype); ; break;} case 846: ! #line 3698 "parse.y" { yyval.ttype = finish_parmlist (yyval.ttype, 0); ; break;} case 847: ! #line 3700 "parse.y" { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ; break;} case 848: ! #line 3703 "parse.y" { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ; break;} case 849: ! #line 3705 "parse.y" { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 1); ; break;} case 850: ! #line 3708 "parse.y" { yyval.ttype = finish_parmlist (NULL_TREE, 1); ; break;} case 851: ! #line 3710 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right --- 8644,8744 ---- ; break;} case 823: ! #line 3616 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} case 824: ! #line 3618 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} case 825: ! #line 3620 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} case 826: ! #line 3622 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} case 827: ! #line 3627 "parse.y" { finish_expr_stmt (yyvsp[-1].ttype); ; break;} case 829: ! #line 3630 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids compound statements inside for initializations"); ; break;} case 830: ! #line 3639 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 832: ! #line 3645 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 834: ! #line 3648 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 835: ! #line 3655 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 838: ! #line 3662 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 839: ! #line 3667 "parse.y" { yyval.ttype = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} case 840: ! #line 3669 "parse.y" { yyval.ttype = build_tree_list (build_tree_list (yyvsp[-5].ttype, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} case 841: ! #line 3674 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE);; break;} case 842: ! #line 3676 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; break;} case 843: ! #line 3687 "parse.y" { yyval.ttype = empty_parms(); ; break;} case 845: ! #line 3692 "parse.y" { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0); check_for_new_type ("inside parameter list", yyvsp[0].ftype); ; break;} case 846: ! #line 3700 "parse.y" { yyval.ttype = finish_parmlist (yyval.ttype, 0); ; break;} case 847: ! #line 3702 "parse.y" { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ; break;} case 848: ! #line 3705 "parse.y" { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ; break;} case 849: ! #line 3707 "parse.y" { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 1); ; break;} case 850: ! #line 3710 "parse.y" { yyval.ttype = finish_parmlist (NULL_TREE, 1); ; break;} case 851: ! #line 3712 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right *************** case 851: *** 8508,8514 **** ; break;} case 852: ! #line 3720 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right --- 8750,8756 ---- ; break;} case 852: ! #line 3722 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right *************** case 852: *** 8521,8621 **** ; break;} case 853: ! #line 3735 "parse.y" { maybe_snarf_defarg (); ; break;} case 854: ! #line 3737 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 857: ! #line 3748 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} case 858: ! #line 3751 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ; break;} case 859: ! #line 3754 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ; break;} case 860: ! #line 3757 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 861: ! #line 3759 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ; break;} case 863: ! #line 3765 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ; break;} case 864: ! #line 3775 "parse.y" { yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 865: ! #line 3778 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 866: ! #line 3781 "parse.y" { yyval.ftype.t = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 867: ! #line 3785 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 868: ! #line 3788 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 869: ! #line 3791 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = 0; ; break;} case 870: ! #line 3797 "parse.y" { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 871: ! #line 3800 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 874: ! #line 3811 "parse.y" { see_typename (); ; break;} case 875: ! #line 3816 "parse.y" { error ("type specifier omitted for parameter"); yyval.ttype = build_tree_list (integer_type_node, NULL_TREE); ; break;} case 876: ! #line 3821 "parse.y" { if (TREE_CODE (yyval.ttype) == SCOPE_REF) { if (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == BOUND_TEMPLATE_TEMPLATE_PARM) ! error ("`%E' is not a type, use `typename %E' to make it one", yyval.ttype); else error ("no type `%D' in `%T'", TREE_OPERAND (yyval.ttype, 1), TREE_OPERAND (yyval.ttype, 0)); } --- 8763,8863 ---- ; break;} case 853: ! #line 3737 "parse.y" { maybe_snarf_defarg (); ; break;} case 854: ! #line 3739 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 857: ! #line 3750 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} case 858: ! #line 3753 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ; break;} case 859: ! #line 3756 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ; break;} case 860: ! #line 3759 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 861: ! #line 3761 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ; break;} case 863: ! #line 3767 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ; break;} case 864: ! #line 3777 "parse.y" { yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 865: ! #line 3780 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 866: ! #line 3783 "parse.y" { yyval.ftype.t = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 867: ! #line 3787 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 868: ! #line 3790 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 869: ! #line 3793 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = 0; ; break;} case 870: ! #line 3799 "parse.y" { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 871: ! #line 3802 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 874: ! #line 3813 "parse.y" { see_typename (); ; break;} case 875: ! #line 3818 "parse.y" { error ("type specifier omitted for parameter"); yyval.ttype = build_tree_list (integer_type_node, NULL_TREE); ; break;} case 876: ! #line 3823 "parse.y" { if (TREE_CODE (yyval.ttype) == SCOPE_REF) { if (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == BOUND_TEMPLATE_TEMPLATE_PARM) ! error ("`%E' is not a type, use `typename %E' to make it one", yyval.ttype, yyval.ttype); else error ("no type `%D' in `%T'", TREE_OPERAND (yyval.ttype, 1), TREE_OPERAND (yyval.ttype, 0)); } *************** case 876: *** 8625,8695 **** ; break;} case 877: ! #line 3838 "parse.y" { error("'%D' is used as a type, but is not defined as a type.", yyvsp[-4].ttype); yyvsp[-2].ttype = error_mark_node; ; break;} case 878: ! #line 3846 "parse.y" { ; break;} case 880: ! #line 3852 "parse.y" { ; break;} case 882: ! #line 3858 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 883: ! #line 3860 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 884: ! #line 3862 "parse.y" { yyval.ttype = empty_except_spec; ; break;} case 885: ! #line 3867 "parse.y" { check_for_new_type ("exception specifier", yyvsp[0].ftype); yyval.ttype = groktypename (yyvsp[0].ftype.t); ; break;} case 886: ! #line 3872 "parse.y" { yyval.ttype = error_mark_node; ; break;} case 887: ! #line 3877 "parse.y" { yyval.ttype = add_exception_specifier (NULL_TREE, yyvsp[0].ttype, 1); ; break;} case 888: ! #line 3879 "parse.y" { yyval.ttype = add_exception_specifier (yyvsp[-2].ttype, yyvsp[0].ttype, 1); ; break;} case 889: ! #line 3884 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 890: ! #line 3886 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 891: ! #line 3888 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 892: ! #line 3890 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 893: ! #line 3897 "parse.y" { saved_scopes = tree_cons (got_scope, got_object, saved_scopes); TREE_LANG_FLAG_0 (saved_scopes) = looking_for_typename; --- 8867,8937 ---- ; break;} case 877: ! #line 3840 "parse.y" { error("'%D' is used as a type, but is not defined as a type.", yyvsp[-4].ttype); yyvsp[-2].ttype = error_mark_node; ; break;} case 878: ! #line 3848 "parse.y" { ; break;} case 880: ! #line 3854 "parse.y" { ; break;} case 882: ! #line 3860 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 883: ! #line 3862 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 884: ! #line 3864 "parse.y" { yyval.ttype = empty_except_spec; ; break;} case 885: ! #line 3869 "parse.y" { check_for_new_type ("exception specifier", yyvsp[0].ftype); yyval.ttype = groktypename (yyvsp[0].ftype.t); ; break;} case 886: ! #line 3874 "parse.y" { yyval.ttype = error_mark_node; ; break;} case 887: ! #line 3879 "parse.y" { yyval.ttype = add_exception_specifier (NULL_TREE, yyvsp[0].ttype, 1); ; break;} case 888: ! #line 3881 "parse.y" { yyval.ttype = add_exception_specifier (yyvsp[-2].ttype, yyvsp[0].ttype, 1); ; break;} case 889: ! #line 3886 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 890: ! #line 3888 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 891: ! #line 3890 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 892: ! #line 3892 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 893: ! #line 3899 "parse.y" { saved_scopes = tree_cons (got_scope, got_object, saved_scopes); TREE_LANG_FLAG_0 (saved_scopes) = looking_for_typename; *************** case 893: *** 8701,8707 **** ; break;} case 894: ! #line 3909 "parse.y" { got_scope = TREE_PURPOSE (saved_scopes); got_object = TREE_VALUE (saved_scopes); looking_for_typename = TREE_LANG_FLAG_0 (saved_scopes); --- 8943,8949 ---- ; break;} case 894: ! #line 3911 "parse.y" { got_scope = TREE_PURPOSE (saved_scopes); got_object = TREE_VALUE (saved_scopes); looking_for_typename = TREE_LANG_FLAG_0 (saved_scopes); *************** case 894: *** 8709,8903 **** ; break;} case 895: ! #line 3918 "parse.y" { yyval.ttype = frob_opname (ansi_opname (MULT_EXPR)); ; break;} case 896: ! #line 3920 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUNC_DIV_EXPR)); ; break;} case 897: ! #line 3922 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUNC_MOD_EXPR)); ; break;} case 898: ! #line 3924 "parse.y" { yyval.ttype = frob_opname (ansi_opname (PLUS_EXPR)); ; break;} case 899: ! #line 3926 "parse.y" { yyval.ttype = frob_opname (ansi_opname (MINUS_EXPR)); ; break;} case 900: ! #line 3928 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_AND_EXPR)); ; break;} case 901: ! #line 3930 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_IOR_EXPR)); ; break;} case 902: ! #line 3932 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_XOR_EXPR)); ; break;} case 903: ! #line 3934 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_NOT_EXPR)); ; break;} case 904: ! #line 3936 "parse.y" { yyval.ttype = frob_opname (ansi_opname (COMPOUND_EXPR)); ; break;} case 905: ! #line 3938 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} case 906: ! #line 3940 "parse.y" { yyval.ttype = frob_opname (ansi_opname (LT_EXPR)); ; break;} case 907: ! #line 3942 "parse.y" { yyval.ttype = frob_opname (ansi_opname (GT_EXPR)); ; break;} case 908: ! #line 3944 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} case 909: ! #line 3946 "parse.y" { yyval.ttype = frob_opname (ansi_assopname (yyvsp[-1].code)); ; break;} case 910: ! #line 3948 "parse.y" { yyval.ttype = frob_opname (ansi_assopname (NOP_EXPR)); ; break;} case 911: ! #line 3950 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} case 912: ! #line 3952 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} case 913: ! #line 3954 "parse.y" { yyval.ttype = frob_opname (ansi_opname (POSTINCREMENT_EXPR)); ; break;} case 914: ! #line 3956 "parse.y" { yyval.ttype = frob_opname (ansi_opname (PREDECREMENT_EXPR)); ; break;} case 915: ! #line 3958 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUTH_ANDIF_EXPR)); ; break;} case 916: ! #line 3960 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUTH_ORIF_EXPR)); ; break;} case 917: ! #line 3962 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUTH_NOT_EXPR)); ; break;} case 918: ! #line 3964 "parse.y" { yyval.ttype = frob_opname (ansi_opname (COND_EXPR)); ; break;} case 919: ! #line 3966 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} case 920: ! #line 3968 "parse.y" { yyval.ttype = frob_opname (ansi_opname (COMPONENT_REF)); ; break;} case 921: ! #line 3970 "parse.y" { yyval.ttype = frob_opname (ansi_opname (MEMBER_REF)); ; break;} case 922: ! #line 3972 "parse.y" { yyval.ttype = frob_opname (ansi_opname (CALL_EXPR)); ; break;} case 923: ! #line 3974 "parse.y" { yyval.ttype = frob_opname (ansi_opname (ARRAY_REF)); ; break;} case 924: ! #line 3976 "parse.y" { yyval.ttype = frob_opname (ansi_opname (NEW_EXPR)); ; break;} case 925: ! #line 3978 "parse.y" { yyval.ttype = frob_opname (ansi_opname (DELETE_EXPR)); ; break;} case 926: ! #line 3980 "parse.y" { yyval.ttype = frob_opname (ansi_opname (VEC_NEW_EXPR)); ; break;} case 927: ! #line 3982 "parse.y" { yyval.ttype = frob_opname (ansi_opname (VEC_DELETE_EXPR)); ; break;} case 928: ! #line 3984 "parse.y" { yyval.ttype = frob_opname (grokoptypename (yyvsp[-2].ftype.t, yyvsp[-1].ttype)); ; break;} case 929: ! #line 3986 "parse.y" { yyval.ttype = frob_opname (ansi_opname (ERROR_MARK)); ; break;} case 930: ! #line 3993 "parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.itype = lineno; ; break;} } ! /* the action file gets copied in in place of this dollarsign */ ! #line 543 "/usr/lib/bison.simple" yyvsp -= yylen; yyssp -= yylen; ! #ifdef YYLSP_NEEDED yylsp -= yylen; #endif ! #if YYDEBUG != 0 if (yydebug) { ! short *ssp1 = yyss - 1; ! fprintf (stderr, "state stack now"); ! while (ssp1 != yyssp) ! fprintf (stderr, " %d", *++ssp1); ! fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; ! ! #ifdef YYLSP_NEEDED ! yylsp++; ! if (yylen == 0) ! { ! yylsp->first_line = yylloc.first_line; ! yylsp->first_column = yylloc.first_column; ! yylsp->last_line = (yylsp-1)->last_line; ! yylsp->last_column = (yylsp-1)->last_column; ! yylsp->text = 0; ! } ! else ! { ! yylsp->last_line = (yylsp+yylen-1)->last_line; ! yylsp->last_column = (yylsp+yylen-1)->last_column; ! } #endif ! /* Now "shift" the result of the reduction. ! Determine what state that goes to, ! based on the state we popped back to ! and the rule number reduced by. */ yyn = yyr1[yyn]; --- 8951,9131 ---- ; break;} case 895: ! #line 3920 "parse.y" { yyval.ttype = frob_opname (ansi_opname (MULT_EXPR)); ; break;} case 896: ! #line 3922 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUNC_DIV_EXPR)); ; break;} case 897: ! #line 3924 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUNC_MOD_EXPR)); ; break;} case 898: ! #line 3926 "parse.y" { yyval.ttype = frob_opname (ansi_opname (PLUS_EXPR)); ; break;} case 899: ! #line 3928 "parse.y" { yyval.ttype = frob_opname (ansi_opname (MINUS_EXPR)); ; break;} case 900: ! #line 3930 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_AND_EXPR)); ; break;} case 901: ! #line 3932 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_IOR_EXPR)); ; break;} case 902: ! #line 3934 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_XOR_EXPR)); ; break;} case 903: ! #line 3936 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_NOT_EXPR)); ; break;} case 904: ! #line 3938 "parse.y" { yyval.ttype = frob_opname (ansi_opname (COMPOUND_EXPR)); ; break;} case 905: ! #line 3940 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} case 906: ! #line 3942 "parse.y" { yyval.ttype = frob_opname (ansi_opname (LT_EXPR)); ; break;} case 907: ! #line 3944 "parse.y" { yyval.ttype = frob_opname (ansi_opname (GT_EXPR)); ; break;} case 908: ! #line 3946 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} case 909: ! #line 3948 "parse.y" { yyval.ttype = frob_opname (ansi_assopname (yyvsp[-1].code)); ; break;} case 910: ! #line 3950 "parse.y" { yyval.ttype = frob_opname (ansi_assopname (NOP_EXPR)); ; break;} case 911: ! #line 3952 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} case 912: ! #line 3954 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} case 913: ! #line 3956 "parse.y" { yyval.ttype = frob_opname (ansi_opname (POSTINCREMENT_EXPR)); ; break;} case 914: ! #line 3958 "parse.y" { yyval.ttype = frob_opname (ansi_opname (PREDECREMENT_EXPR)); ; break;} case 915: ! #line 3960 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUTH_ANDIF_EXPR)); ; break;} case 916: ! #line 3962 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUTH_ORIF_EXPR)); ; break;} case 917: ! #line 3964 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUTH_NOT_EXPR)); ; break;} case 918: ! #line 3966 "parse.y" { yyval.ttype = frob_opname (ansi_opname (COND_EXPR)); ; break;} case 919: ! #line 3968 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} case 920: ! #line 3970 "parse.y" { yyval.ttype = frob_opname (ansi_opname (COMPONENT_REF)); ; break;} case 921: ! #line 3972 "parse.y" { yyval.ttype = frob_opname (ansi_opname (MEMBER_REF)); ; break;} case 922: ! #line 3974 "parse.y" { yyval.ttype = frob_opname (ansi_opname (CALL_EXPR)); ; break;} case 923: ! #line 3976 "parse.y" { yyval.ttype = frob_opname (ansi_opname (ARRAY_REF)); ; break;} case 924: ! #line 3978 "parse.y" { yyval.ttype = frob_opname (ansi_opname (NEW_EXPR)); ; break;} case 925: ! #line 3980 "parse.y" { yyval.ttype = frob_opname (ansi_opname (DELETE_EXPR)); ; break;} case 926: ! #line 3982 "parse.y" { yyval.ttype = frob_opname (ansi_opname (VEC_NEW_EXPR)); ; break;} case 927: ! #line 3984 "parse.y" { yyval.ttype = frob_opname (ansi_opname (VEC_DELETE_EXPR)); ; break;} case 928: ! #line 3986 "parse.y" { yyval.ttype = frob_opname (grokoptypename (yyvsp[-2].ftype.t, yyvsp[-1].ttype)); ; break;} case 929: ! #line 3988 "parse.y" { yyval.ttype = frob_opname (ansi_opname (ERROR_MARK)); ; break;} case 930: ! #line 3995 "parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.itype = lineno; ; break;} } ! ! #line 731 "/usr/share/bison/bison.simple" ! yyvsp -= yylen; yyssp -= yylen; ! #if YYLSP_NEEDED yylsp -= yylen; #endif ! #if YYDEBUG if (yydebug) { ! short *yyssp1 = yyss - 1; ! YYFPRINTF (stderr, "state stack now"); ! while (yyssp1 != yyssp) ! YYFPRINTF (stderr, " %d", *++yyssp1); ! YYFPRINTF (stderr, "\n"); } #endif *++yyvsp = yyval; ! #if YYLSP_NEEDED ! *++yylsp = yyloc; #endif ! /* Now `shift' the result of the reduction. Determine what state ! that goes to, based on the state we popped back to and the rule ! number reduced by. */ yyn = yyr1[yyn]; *************** case 930: *** 8909,8918 **** goto yynewstate; - yyerrlab: /* here on detecting error */ ! if (! yyerrstatus) ! /* If not already recovering from an error, report this error. */ { ++yynerrs; --- 9137,9149 ---- goto yynewstate; ! /*------------------------------------. ! | yyerrlab -- here on detecting error | ! `------------------------------------*/ ! yyerrlab: ! /* If not already recovering from an error, report this error. */ ! if (!yyerrstatus) { ++yynerrs; *************** yyerrlab: /* here on detecting error * *** 8921,9022 **** if (yyn > YYFLAG && yyn < YYLAST) { ! int size = 0; ! char *msg; ! int x, count; ! count = 0; ! /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ ! for (x = (yyn < 0 ? -yyn : 0); ! x < (sizeof(yytname) / sizeof(char *)); x++) ! if (yycheck[x + yyn] == x) ! size += strlen(yytname[x]) + 15, count++; ! msg = (char *) malloc(size + 15); ! if (msg != 0) { ! strcpy(msg, "parse error"); ! if (count < 5) { ! count = 0; ! for (x = (yyn < 0 ? -yyn : 0); ! x < (sizeof(yytname) / sizeof(char *)); x++) ! if (yycheck[x + yyn] == x) { ! strcat(msg, count == 0 ? ", expecting `" : " or `"); ! strcat(msg, yytname[x]); ! strcat(msg, "'"); ! count++; } } ! yyerror(msg); ! free(msg); } else ! yyerror ("parse error; also virtual memory exceeded"); } else ! #endif /* YYERROR_VERBOSE */ ! yyerror("parse error"); } - goto yyerrlab1; - yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { ! /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; ! ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); ! #endif ! yychar = YYEMPTY; } ! /* Else will try to reuse lookahead token ! after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; - yyerrdefault: /* current state does not do anything special for the error token. */ #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ ! yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ ! if (yyn) goto yydefault; #endif - yyerrpop: /* pop the current state because it cannot handle the error token */ ! if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; ! #ifdef YYLSP_NEEDED yylsp--; #endif ! #if YYDEBUG != 0 if (yydebug) { ! short *ssp1 = yyss - 1; ! fprintf (stderr, "Error: state stack now"); ! while (ssp1 != yyssp) ! fprintf (stderr, " %d", *++ssp1); ! fprintf (stderr, "\n"); } #endif yyerrhandle: - yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; --- 9152,9272 ---- if (yyn > YYFLAG && yyn < YYLAST) { ! YYSIZE_T yysize = 0; ! char *yymsg; ! int yyx, yycount; ! yycount = 0; ! /* Start YYX at -YYN if negative to avoid negative indexes in ! YYCHECK. */ ! for (yyx = yyn < 0 ? -yyn : 0; ! yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) ! if (yycheck[yyx + yyn] == yyx) ! yysize += yystrlen (yytname[yyx]) + 15, yycount++; ! yysize += yystrlen ("parse error, unexpected ") + 1; ! yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); ! yymsg = (char *) YYSTACK_ALLOC (yysize); ! if (yymsg != 0) { ! char *yyp = yystpcpy (yymsg, "parse error, unexpected "); ! yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); ! if (yycount < 5) { ! yycount = 0; ! for (yyx = yyn < 0 ? -yyn : 0; ! yyx < (int) (sizeof (yytname) / sizeof (char *)); ! yyx++) ! if (yycheck[yyx + yyn] == yyx) { ! const char *yyq = ! yycount ? ", expecting " : " or "; ! yyp = yystpcpy (yyp, yyq); ! yyp = yystpcpy (yyp, yytname[yyx]); ! yycount++; } } ! yyerror (yymsg); ! YYSTACK_FREE (yymsg); } else ! yyerror ("parse error; also virtual memory exhausted"); } else ! #endif /* defined (YYERROR_VERBOSE) */ ! yyerror ("parse error"); } goto yyerrlab1; + + /*--------------------------------------------------. + | yyerrlab1 -- error raised explicitly by an action | + `--------------------------------------------------*/ + yyerrlab1: if (yyerrstatus == 3) { ! /* If just tried and failed to reuse lookahead token after an ! error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; ! YYDPRINTF ((stderr, "Discarding token %d (%s).\n", ! yychar, yytname[yychar1])); yychar = YYEMPTY; } ! /* Else will try to reuse lookahead token after shifting the error ! token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; + /*-------------------------------------------------------------------. + | yyerrdefault -- current state does not do anything special for the | + | error token. | + `-------------------------------------------------------------------*/ + yyerrdefault: #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ ! ! /* If its default is to accept any token, ok. Otherwise pop it. */ ! yyn = yydefact[yystate]; ! if (yyn) ! goto yydefault; #endif ! /*---------------------------------------------------------------. ! | yyerrpop -- pop the current state because it cannot handle the | ! | error token | ! `---------------------------------------------------------------*/ ! yyerrpop: ! if (yyssp == yyss) ! YYABORT; yyvsp--; yystate = *--yyssp; ! #if YYLSP_NEEDED yylsp--; #endif ! #if YYDEBUG if (yydebug) { ! short *yyssp1 = yyss - 1; ! YYFPRINTF (stderr, "Error: state stack now"); ! while (yyssp1 != yyssp) ! YYFPRINTF (stderr, " %d", *++yyssp1); ! YYFPRINTF (stderr, "\n"); } #endif + /*--------------. + | yyerrhandle. | + `--------------*/ yyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; *************** yyerrhandle: *** 9039,9082 **** if (yyn == YYFINAL) YYACCEPT; ! #if YYDEBUG != 0 ! if (yydebug) ! fprintf(stderr, "Shifting error token, "); ! #endif *++yyvsp = yylval; ! #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; - yyacceptlab: - /* YYACCEPT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); - #ifdef YYLSP_NEEDED - free (yyls); - #endif - } - return 0; ! yyabortlab: ! /* YYABORT comes here. */ ! if (yyfree_stacks) ! { ! free (yyss); ! free (yyvs); ! #ifdef YYLSP_NEEDED ! free (yyls); #endif ! } ! return 1; } ! #line 3997 "parse.y" #ifdef SPEW_DEBUG --- 9289,9335 ---- if (yyn == YYFINAL) YYACCEPT; ! YYDPRINTF ((stderr, "Shifting error token, ")); *++yyvsp = yylval; ! #if YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; ! /*-------------------------------------. ! | yyacceptlab -- YYACCEPT comes here. | ! `-------------------------------------*/ ! yyacceptlab: ! yyresult = 0; ! goto yyreturn; ! ! /*-----------------------------------. ! | yyabortlab -- YYABORT comes here. | ! `-----------------------------------*/ ! yyabortlab: ! yyresult = 1; ! goto yyreturn; ! ! /*---------------------------------------------. ! | yyoverflowab -- parser overflow comes here. | ! `---------------------------------------------*/ ! yyoverflowlab: ! yyerror ("parser stack overflow"); ! yyresult = 2; ! /* Fall through. */ ! ! yyreturn: ! #ifndef yyoverflow ! if (yyss != yyssa) ! YYSTACK_FREE (yyss); #endif ! return yyresult; } ! #line 3999 "parse.y" #ifdef SPEW_DEBUG diff -Nrc3pad gcc-3.2.1/gcc/cp/parse.h gcc-3.2.2/gcc/cp/parse.h *** gcc-3.2.1/gcc/cp/parse.h Tue Nov 19 18:27:03 2002 --- gcc-3.2.2/gcc/cp/parse.h Wed Feb 5 03:19:13 2003 *************** *** 1,3 **** --- 1,7 ---- + #ifndef BISON_P13971_H + # define BISON_P13971_H + + #ifndef YYSTYPE typedef union { long itype; tree ttype; *************** typedef union { *** 5,99 **** enum tree_code code; flagged_type_tree ftype; struct unparsed_text *pi; ! } YYSTYPE; ! #define IDENTIFIER 257 ! #define tTYPENAME 258 ! #define SELFNAME 259 ! #define PFUNCNAME 260 ! #define SCSPEC 261 ! #define TYPESPEC 262 ! #define CV_QUALIFIER 263 ! #define CONSTANT 264 ! #define VAR_FUNC_NAME 265 ! #define STRING 266 ! #define ELLIPSIS 267 ! #define SIZEOF 268 ! #define ENUM 269 ! #define IF 270 ! #define ELSE 271 ! #define WHILE 272 ! #define DO 273 ! #define FOR 274 ! #define SWITCH 275 ! #define CASE 276 ! #define DEFAULT 277 ! #define BREAK 278 ! #define CONTINUE 279 ! #define RETURN_KEYWORD 280 ! #define GOTO 281 ! #define ASM_KEYWORD 282 ! #define TYPEOF 283 ! #define ALIGNOF 284 ! #define SIGOF 285 ! #define ATTRIBUTE 286 ! #define EXTENSION 287 ! #define LABEL 288 ! #define REALPART 289 ! #define IMAGPART 290 ! #define VA_ARG 291 ! #define AGGR 292 ! #define VISSPEC 293 ! #define DELETE 294 ! #define NEW 295 ! #define THIS 296 ! #define OPERATOR 297 ! #define CXX_TRUE 298 ! #define CXX_FALSE 299 ! #define NAMESPACE 300 ! #define TYPENAME_KEYWORD 301 ! #define USING 302 ! #define LEFT_RIGHT 303 ! #define TEMPLATE 304 ! #define TYPEID 305 ! #define DYNAMIC_CAST 306 ! #define STATIC_CAST 307 ! #define REINTERPRET_CAST 308 ! #define CONST_CAST 309 ! #define SCOPE 310 ! #define EXPORT 311 ! #define EMPTY 312 ! #define PTYPENAME 313 ! #define NSNAME 314 ! #define THROW 315 ! #define ASSIGN 316 ! #define OROR 317 ! #define ANDAND 318 ! #define MIN_MAX 319 ! #define EQCOMPARE 320 ! #define ARITHCOMPARE 321 ! #define LSHIFT 322 ! #define RSHIFT 323 ! #define POINTSAT_STAR 324 ! #define DOT_STAR 325 ! #define UNARY 326 ! #define PLUSPLUS 327 ! #define MINUSMINUS 328 ! #define HYPERUNARY 329 ! #define POINTSAT 330 ! #define TRY 331 ! #define CATCH 332 ! #define EXTERN_LANG_STRING 333 ! #define ALL 334 ! #define PRE_PARSED_CLASS_DECL 335 ! #define DEFARG 336 ! #define DEFARG_MARKER 337 ! #define PRE_PARSED_FUNCTION_DECL 338 ! #define TYPENAME_DEFN 339 ! #define IDENTIFIER_DEFN 340 ! #define PTYPENAME_DEFN 341 ! #define END_OF_LINE 342 ! #define END_OF_SAVED_INPUT 343 extern YYSTYPE yylval; #define YYEMPTY -2 --- 9,107 ---- enum tree_code code; flagged_type_tree ftype; struct unparsed_text *pi; ! } yystype; ! # define YYSTYPE yystype ! #endif ! # define IDENTIFIER 257 ! # define tTYPENAME 258 ! # define SELFNAME 259 ! # define PFUNCNAME 260 ! # define SCSPEC 261 ! # define TYPESPEC 262 ! # define CV_QUALIFIER 263 ! # define CONSTANT 264 ! # define VAR_FUNC_NAME 265 ! # define STRING 266 ! # define ELLIPSIS 267 ! # define SIZEOF 268 ! # define ENUM 269 ! # define IF 270 ! # define ELSE 271 ! # define WHILE 272 ! # define DO 273 ! # define FOR 274 ! # define SWITCH 275 ! # define CASE 276 ! # define DEFAULT 277 ! # define BREAK 278 ! # define CONTINUE 279 ! # define RETURN_KEYWORD 280 ! # define GOTO 281 ! # define ASM_KEYWORD 282 ! # define TYPEOF 283 ! # define ALIGNOF 284 ! # define SIGOF 285 ! # define ATTRIBUTE 286 ! # define EXTENSION 287 ! # define LABEL 288 ! # define REALPART 289 ! # define IMAGPART 290 ! # define VA_ARG 291 ! # define AGGR 292 ! # define VISSPEC 293 ! # define DELETE 294 ! # define NEW 295 ! # define THIS 296 ! # define OPERATOR 297 ! # define CXX_TRUE 298 ! # define CXX_FALSE 299 ! # define NAMESPACE 300 ! # define TYPENAME_KEYWORD 301 ! # define USING 302 ! # define LEFT_RIGHT 303 ! # define TEMPLATE 304 ! # define TYPEID 305 ! # define DYNAMIC_CAST 306 ! # define STATIC_CAST 307 ! # define REINTERPRET_CAST 308 ! # define CONST_CAST 309 ! # define SCOPE 310 ! # define EXPORT 311 ! # define EMPTY 312 ! # define PTYPENAME 313 ! # define NSNAME 314 ! # define THROW 315 ! # define ASSIGN 316 ! # define OROR 317 ! # define ANDAND 318 ! # define MIN_MAX 319 ! # define EQCOMPARE 320 ! # define ARITHCOMPARE 321 ! # define LSHIFT 322 ! # define RSHIFT 323 ! # define POINTSAT_STAR 324 ! # define DOT_STAR 325 ! # define UNARY 326 ! # define PLUSPLUS 327 ! # define MINUSMINUS 328 ! # define HYPERUNARY 329 ! # define POINTSAT 330 ! # define TRY 331 ! # define CATCH 332 ! # define EXTERN_LANG_STRING 333 ! # define ALL 334 ! # define PRE_PARSED_CLASS_DECL 335 ! # define DEFARG 336 ! # define DEFARG_MARKER 337 ! # define PRE_PARSED_FUNCTION_DECL 338 ! # define TYPENAME_DEFN 339 ! # define IDENTIFIER_DEFN 340 ! # define PTYPENAME_DEFN 341 ! # define END_OF_LINE 342 ! # define END_OF_SAVED_INPUT 343 extern YYSTYPE yylval; + + #endif /* not BISON_P13971_H */ #define YYEMPTY -2 diff -Nrc3pad gcc-3.2.1/gcc/cp/parse.y gcc-3.2.2/gcc/cp/parse.y *** gcc-3.2.1/gcc/cp/parse.y Mon Oct 21 18:38:39 2002 --- gcc-3.2.2/gcc/cp/parse.y Wed Dec 18 15:03:01 2002 *************** class_head_defn: *** 2521,2526 **** --- 2521,2528 ---- current_aggr = $1; $$.t = TYPE_MAIN_DECL (xref_tag ($1, make_anon_name (), 0)); $$.new_type_flag = 0; + CLASSTYPE_DECLARED_CLASS (TREE_TYPE ($$.t)) + = $1 == class_type_node; yyungetc ('{', 1); } ; *************** bad_parm: *** 3823,3829 **** { if (TREE_CODE (TREE_OPERAND ($$, 0)) == TEMPLATE_TYPE_PARM || TREE_CODE (TREE_OPERAND ($$, 0)) == BOUND_TEMPLATE_TEMPLATE_PARM) ! error ("`%E' is not a type, use `typename %E' to make it one", $$); else error ("no type `%D' in `%T'", TREE_OPERAND ($$, 1), TREE_OPERAND ($$, 0)); } --- 3825,3831 ---- { if (TREE_CODE (TREE_OPERAND ($$, 0)) == TEMPLATE_TYPE_PARM || TREE_CODE (TREE_OPERAND ($$, 0)) == BOUND_TEMPLATE_TEMPLATE_PARM) ! error ("`%E' is not a type, use `typename %E' to make it one", $$, $$); else error ("no type `%D' in `%T'", TREE_OPERAND ($$, 1), TREE_OPERAND ($$, 0)); } diff -Nrc3pad gcc-3.2.1/gcc/cp/pt.c gcc-3.2.2/gcc/cp/pt.c *** gcc-3.2.1/gcc/cp/pt.c Fri Oct 11 22:42:18 2002 --- gcc-3.2.2/gcc/cp/pt.c Thu Dec 26 12:58:03 2002 *************** convert_template_argument (parm, arg, ar *** 3303,3319 **** && TREE_CODE (DECL_TEMPLATE_RESULT (arg)) == TYPE_DECL) || TREE_CODE (arg) == TEMPLATE_TEMPLATE_PARM || TREE_CODE (arg) == UNBOUND_CLASS_TEMPLATE); ! else if (CLASSTYPE_TEMPLATE_INFO (arg) && !CLASSTYPE_USE_TEMPLATE (arg) ! && PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (arg))) ! { ! if (is_base_of_enclosing_class (arg, current_class_type)) ! /* This is a template name used within the scope of the ! template. It could be the template, or it could be the ! instantiation. Choose whichever makes sense. */ ! is_tmpl_type = requires_tmpl_type; ! else ! is_tmpl_type = 1; ! } else /* It is a non-template class, or a specialization of a template class, or a non-template member of a template class. */ --- 3303,3314 ---- && TREE_CODE (DECL_TEMPLATE_RESULT (arg)) == TYPE_DECL) || TREE_CODE (arg) == TEMPLATE_TEMPLATE_PARM || TREE_CODE (arg) == UNBOUND_CLASS_TEMPLATE); ! else if (CLASSTYPE_IS_TEMPLATE (arg) ! && is_base_of_enclosing_class (arg, current_class_type)) ! /* This is a template name used within the scope of the ! template. It could be the template, or it could be the ! instantiation. Choose whichever makes sense. */ ! is_tmpl_type = requires_tmpl_type; else /* It is a non-template class, or a specialization of a template class, or a non-template member of a template class. */ *************** tsubst_copy (t, args, complain, in_decl) *** 7148,7156 **** { tree base = tsubst_copy (TREE_OPERAND (name, 0), args, complain, in_decl); ! name = TREE_OPERAND (name, 1); ! name = tsubst_copy (TREE_OPERAND (name, 0), args, ! complain, in_decl); name = build1 (BIT_NOT_EXPR, NULL_TREE, name); name = build_nt (SCOPE_REF, base, name); } --- 7143,7152 ---- { tree base = tsubst_copy (TREE_OPERAND (name, 0), args, complain, in_decl); ! name = TREE_OPERAND (TREE_OPERAND (name, 1), 0); ! if (TREE_CODE (name) == TYPE_DECL) ! name = TREE_TYPE (name); ! name = tsubst_copy (name, args, complain, in_decl); name = build1 (BIT_NOT_EXPR, NULL_TREE, name); name = build_nt (SCOPE_REF, base, name); } *************** check_cv_quals_for_unify (strict, arg, p *** 8562,8570 **** { /* If the cvr quals of parm will not unify with ARG, they'll be ignored in instantiation, so we have to do the same here. */ ! if (TREE_CODE (arg) == REFERENCE_TYPE ! || TREE_CODE (arg) == FUNCTION_TYPE ! || TREE_CODE (arg) == METHOD_TYPE) parm_quals &= ~(TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE); if (!POINTER_TYPE_P (arg) && TREE_CODE (arg) != TEMPLATE_TYPE_PARM) --- 8558,8564 ---- { /* If the cvr quals of parm will not unify with ARG, they'll be ignored in instantiation, so we have to do the same here. */ ! if (TREE_CODE (arg) == REFERENCE_TYPE) parm_quals &= ~(TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE); if (!POINTER_TYPE_P (arg) && TREE_CODE (arg) != TEMPLATE_TYPE_PARM) *************** unify (tparms, targs, parm, arg, strict) *** 8789,8809 **** return 0; else if (targ) return 1; - } ! /* Make sure that ARG is not a variable-sized array. (Note that ! were talking about variable-sized arrays (like `int[n]'), ! rather than arrays of unknown size (like `int[]').) We'll ! get very confused by such a type since the bound of the array ! will not be computable in an instantiation. Besides, such ! types are not allowed in ISO C++, so we can do as we please ! here. */ ! if (TREE_CODE (arg) == ARRAY_TYPE ! && !uses_template_parms (arg) ! && TYPE_DOMAIN (arg) ! && (TREE_CODE (TYPE_MAX_VALUE (TYPE_DOMAIN (arg))) ! != INTEGER_CST)) ! return 1; TREE_VEC_ELT (targs, idx) = arg; return 0; --- 8783,8799 ---- return 0; else if (targ) return 1; ! /* Make sure that ARG is not a variable-sized array. (Note ! that were talking about variable-sized arrays (like ! `int[n]'), rather than arrays of unknown size (like ! `int[]').) We'll get very confused by such a type since ! the bound of the array will not be computable in an ! instantiation. Besides, such types are not allowed in ! ISO C++, so we can do as we please here. */ ! if (variably_modified_type_p (arg)) ! return 1; ! } TREE_VEC_ELT (targs, idx) = arg; return 0; diff -Nrc3pad gcc-3.2.1/gcc/cp/rtti.c gcc-3.2.2/gcc/cp/rtti.c *** gcc-3.2.1/gcc/cp/rtti.c Mon Nov 11 12:42:13 2002 --- gcc-3.2.2/gcc/cp/rtti.c Sun Dec 1 20:40:36 2002 *************** get_tinfo_decl (type) *** 327,332 **** --- 327,341 ---- type = build_function_type (TREE_TYPE (type), TREE_CHAIN (TYPE_ARG_TYPES (type))); + /* For a class type, the variable is cached in the type node + itself. */ + if (CLASS_TYPE_P (type)) + { + d = CLASSTYPE_TYPEINFO_VAR (TYPE_MAIN_VARIANT (type)); + if (d) + return d; + } + name = mangle_typeinfo_for_type (type); d = IDENTIFIER_GLOBAL_VALUE (name); *************** get_tinfo_decl (type) *** 346,351 **** --- 355,363 ---- pushdecl_top_level (d); + if (CLASS_TYPE_P (type)) + CLASSTYPE_TYPEINFO_VAR (TYPE_MAIN_VARIANT (type)) = d; + /* Remember the type it is for. */ TREE_TYPE (name) = type; } diff -Nrc3pad gcc-3.2.1/gcc/cp/search.c gcc-3.2.2/gcc/cp/search.c *** gcc-3.2.1/gcc/cp/search.c Fri Aug 23 12:00:42 2002 --- gcc-3.2.2/gcc/cp/search.c Tue Jan 21 19:00:29 2003 *************** *** 1,7 **** /* Breadth-first and depth-first routines for searching multiple-inheritance lattice for GNU C++. Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2002 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. --- 1,7 ---- /* Breadth-first and depth-first routines for searching multiple-inheritance lattice for GNU C++. Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2002, 2003 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. *************** lookup_fnfields (xbasetype, name, protec *** 1513,1518 **** --- 1513,1582 ---- return rval; } + /* Try to find NAME inside a nested class. */ + + tree + lookup_nested_field (name, complain) + tree name; + int complain; + { + register tree t; + + tree id = NULL_TREE; + if (TYPE_MAIN_DECL (current_class_type)) + { + /* Climb our way up the nested ladder, seeing if we're trying to + modify a field in an enclosing class. If so, we should only + be able to modify if it's static. */ + for (t = TYPE_MAIN_DECL (current_class_type); + t && DECL_CONTEXT (t); + t = TYPE_MAIN_DECL (DECL_CONTEXT (t))) + { + if (TREE_CODE (DECL_CONTEXT (t)) != RECORD_TYPE) + break; + + /* N.B.: lookup_field will do the access checking for us */ + id = lookup_field (DECL_CONTEXT (t), name, complain, 0); + if (id == error_mark_node) + { + id = NULL_TREE; + continue; + } + + if (id != NULL_TREE) + { + if (TREE_CODE (id) == FIELD_DECL + && ! TREE_STATIC (id) + && TREE_TYPE (id) != error_mark_node) + { + if (complain) + { + /* At parse time, we don't want to give this error, since + we won't have enough state to make this kind of + decision properly. But there are times (e.g., with + enums in nested classes) when we do need to call + this fn at parse time. So, in those cases, we pass + complain as a 0 and just return a NULL_TREE. */ + error ("assignment to non-static member `%D' of enclosing class `%T'", + id, DECL_CONTEXT (t)); + /* Mark this for do_identifier(). It would otherwise + claim that the variable was undeclared. */ + TREE_TYPE (id) = error_mark_node; + } + else + { + id = NULL_TREE; + continue; + } + } + break; + } + } + } + + return id; + } + /* TYPE is a class type. Return the index of the fields within the method vector with name NAME, or -1 is no such field exists. */ diff -Nrc3pad gcc-3.2.1/gcc/cp/semantics.c gcc-3.2.2/gcc/cp/semantics.c *** gcc-3.2.1/gcc/cp/semantics.c Tue Oct 29 21:12:36 2002 --- gcc-3.2.2/gcc/cp/semantics.c Thu Jan 23 00:30:23 2003 *************** tree *** 2079,2098 **** finish_typeof (expr) tree expr; { if (processing_template_decl) { ! tree t; ! ! t = make_aggr_type (TYPEOF_TYPE); ! TYPE_FIELDS (t) = expr; ! return t; } if (TREE_CODE (expr) == OFFSET_REF) expr = resolve_offset_ref (expr); ! return TREE_TYPE (expr); } /* Compute the value of the `sizeof' operator. */ --- 2079,2106 ---- finish_typeof (expr) tree expr; { + tree type; + if (processing_template_decl) { ! type = make_aggr_type (TYPEOF_TYPE); ! TYPE_FIELDS (type) = expr; ! return type; } if (TREE_CODE (expr) == OFFSET_REF) expr = resolve_offset_ref (expr); ! type = TREE_TYPE (expr); ! ! if (!type || type == unknown_type_node) ! { ! error ("type of `%E' is unknown", expr); ! return error_mark_node; ! } ! ! return type; } /* Compute the value of the `sizeof' operator. */ diff -Nrc3pad gcc-3.2.1/gcc/cp/tree.c gcc-3.2.2/gcc/cp/tree.c *** gcc-3.2.1/gcc/cp/tree.c Fri Oct 25 22:11:16 2002 --- gcc-3.2.2/gcc/cp/tree.c Thu Dec 26 12:58:04 2002 *************** cp_build_qualified_type_real (type, type *** 536,541 **** --- 536,546 ---- { tree result; int bad_quals = TYPE_UNQUALIFIED; + /* We keep bad function qualifiers separate, so that we can decide + whether to implement DR 295 or not. DR 295 break existing code, + unfortunately. Remove this variable to implement the defect + report. */ + int bad_func_quals = TYPE_UNQUALIFIED; if (type == error_mark_node) return type; *************** cp_build_qualified_type_real (type, type *** 551,556 **** --- 556,563 ---- || TREE_CODE (type) == METHOD_TYPE)) { bad_quals |= type_quals & (TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE); + if (TREE_CODE (type) != REFERENCE_TYPE) + bad_func_quals |= type_quals & (TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE); type_quals &= ~(TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE); } *************** cp_build_qualified_type_real (type, type *** 569,589 **** /*OK*/; else if (!(complain & (tf_error | tf_ignore_bad_quals))) return error_mark_node; else { if (complain & tf_ignore_bad_quals) /* We're not going to warn about constifying things that can't be constified. */ bad_quals &= ~TYPE_QUAL_CONST; if (bad_quals) { tree bad_type = build_qualified_type (ptr_type_node, bad_quals); ! if (!(complain & tf_ignore_bad_quals)) error ("`%V' qualifiers cannot be applied to `%T'", bad_type, type); - else if (complain & tf_warning) - warning ("ignoring `%V' qualifiers on `%T'", bad_type, type); } } --- 576,598 ---- /*OK*/; else if (!(complain & (tf_error | tf_ignore_bad_quals))) return error_mark_node; + else if (bad_func_quals && !(complain & tf_error)) + return error_mark_node; else { if (complain & tf_ignore_bad_quals) /* We're not going to warn about constifying things that can't be constified. */ bad_quals &= ~TYPE_QUAL_CONST; + bad_quals |= bad_func_quals; if (bad_quals) { tree bad_type = build_qualified_type (ptr_type_node, bad_quals); ! if (!(complain & tf_ignore_bad_quals) ! || bad_func_quals) error ("`%V' qualifiers cannot be applied to `%T'", bad_type, type); } } diff -Nrc3pad gcc-3.2.1/gcc/cp/typeck.c gcc-3.2.2/gcc/cp/typeck.c *** gcc-3.2.1/gcc/cp/typeck.c Fri Nov 1 13:12:24 2002 --- gcc-3.2.2/gcc/cp/typeck.c Sun Dec 1 18:19:12 2002 *************** c_sizeof (type) *** 1544,1550 **** TYPE_IS_SIZETYPE means that certain things (like overflow) will never happen. However, this node should really have type `size_t', which is just a typedef for an ordinary integer type. */ ! size = fold (build1 (NOP_EXPR, c_size_type_node, size)); my_friendly_assert (!TYPE_IS_SIZETYPE (TREE_TYPE (size)), 20001021); return size; --- 1544,1550 ---- TYPE_IS_SIZETYPE means that certain things (like overflow) will never happen. However, this node should really have type `size_t', which is just a typedef for an ordinary integer type. */ ! size = fold (build1 (NOP_EXPR, size_type_node, size)); my_friendly_assert (!TYPE_IS_SIZETYPE (TREE_TYPE (size)), 20001021); return size; *************** c_sizeof_nowarn (type) *** 1613,1619 **** TYPE_IS_SIZETYPE means that certain things (like overflow) will never happen. However, this node should really have type `size_t', which is just a typedef for an ordinary integer type. */ ! size = fold (build1 (NOP_EXPR, c_size_type_node, size)); my_friendly_assert (!TYPE_IS_SIZETYPE (TREE_TYPE (size)), 20001021); return size; --- 1613,1619 ---- TYPE_IS_SIZETYPE means that certain things (like overflow) will never happen. However, this node should really have type `size_t', which is just a typedef for an ordinary integer type. */ ! size = fold (build1 (NOP_EXPR, size_type_node, size)); my_friendly_assert (!TYPE_IS_SIZETYPE (TREE_TYPE (size)), 20001021); return size; *************** convert_for_assignment (type, rhs, errty *** 6195,6202 **** /* Simplify the RHS if possible. */ if (TREE_CODE (rhs) == CONST_DECL) rhs = DECL_INITIAL (rhs); ! else if (coder != ARRAY_TYPE) ! rhs = decl_constant_value (rhs); /* [expr.ass] --- 6195,6210 ---- /* Simplify the RHS if possible. */ if (TREE_CODE (rhs) == CONST_DECL) rhs = DECL_INITIAL (rhs); ! ! /* We do not use decl_constant_value here because of this case: ! ! const char* const s = "s"; ! ! The conversion rules for a string literal are more lax than for a ! variable; in particular, a string literal can be converted to a ! "char *" but the variable "s" cannot be converted in the same ! way. If the conversion is allowed, the optimization should be ! performed while creating the converted expression. */ /* [expr.ass] diff -Nrc3pad gcc-3.2.1/libstdc++-v3/ChangeLog gcc-3.2.2/libstdc++-v3/ChangeLog *** gcc-3.2.1/libstdc++-v3/ChangeLog Tue Nov 19 17:50:09 2002 --- gcc-3.2.2/libstdc++-v3/ChangeLog Wed Feb 5 03:02:02 2003 *************** *** 1,12 **** ! 2002-11-19 Release Manager ! * GCC 3.2.1 Released. ! 2002-11-19 Release Manager ! * GCC 3.2.1 Released. ! 2002-11-18 Release Manager * GCC 3.2.1 Released. --- 1,305 ---- ! 2003-02-05 Release Manager ! * GCC 3.2.2 Released. ! 2003-01-28 Christian Cornelssen ! * include/Makefile.am (install-data-local): Prepend ! $(DESTDIR) to destination paths in all (un)installation ! commands. Use ${c_base_builddir} and ${std_builddir} ! as destination subdirectories to achieve consistency with ! preceding mkinstalldirs commands. No effect because both ! variables contain "." only. ! * include/Makefile.in: Regenerate. ! 2003-01-28 Nathan Sidwell ! ! PR c++/9433 ! * libsupc++/tinfo.cc (__vmi_class_type_info::__do_dyncast): Cope ! with bases which are very ambiguous. ! ! 2003-01-27 Alexandre Oliva ! ! * acinclude.m4 (glibcpp_toolexeclibdir): Instead of ! $(MULTISUBDIR), use `$CC -print-multi-os-directory`, unless ! version_specific_libs is enabled. ! * aclocal.m4, configure: Rebuilt. ! ! 2003-01-23 Phil Edwards ! ! Bulk documentation merge (copy) from trunk. ! * docs/doxygen/TODO, docs/doxygen/run_doxygen, ! docs/doxygen/stdheader.cc, docs/doxygen/style.css, ! docs/doxygen/tables.html, docs/doxygen/user.cfg.in, ! docs/html/configopts.html, docs/html/debug.html, ! docs/html/documentation.html, docs/html/explanations.html, ! docs/html/install.html, docs/html/17_intro/contribute.html, ! docs/html/17_intro/howto.html, docs/html/17_intro/license.html, ! docs/html/17_intro/porting.html, docs/html/17_intro/porting.texi, ! docs/html/18_support/howto.html, docs/html/19_diagnostics/howto.html, ! docs/html/20_util/howto.html, docs/html/21_strings/howto.html, ! docs/html/22_locale/codecvt.html, docs/html/22_locale/ctype.html, ! docs/html/22_locale/howto.html, docs/html/22_locale/locale.html, ! docs/html/22_locale/messages.html, docs/html/24_iterators/howto.html, ! docs/html/25_algorithms/howto.html, docs/html/26_numerics/howto.html, ! docs/html/27_io/howto.html, docs/html/ext/lwg-active.html, ! docs/html/ext/lwg-defects.html, docs/html/ext/sgiexts.html, ! docs/html/faq/index.html, docs/html/faq/index.txt: Merge from trunk. ! ! 2003-01-23 Petur Runolfsson ! ! PR libstdc++/9322 ! * include/std/std_streambuf.h ! (basic_streambuf::basic_streambuf, ! basic_streambuf::~basic_streambuf, ! basic_streambuf::getloc, basic_streambuf::imbue): ! Remove _M_buf_locale_init use. ! * include/bits/fstream.tcc (basic_filebuf::imbue): Likewise ! * testsuite/27_io/filebuf_virtuals.cc (test08): Add. ! * testsuite/27_io/streambuf_members.cc (test08): Add. ! * testsuite/27_io/stringbuf_virtuals.cc (test08): Add. ! ! 2003-01-23 Benjamin Kosnik ! ! * config/linker-map.gnu: Synch with 3_3-branch. ! ! 2003-01-10 Benjamin Kosnik ! Sysoltsev Slawa ! ! PR libstdc++/9269 ! * include/std/std_fstream.h (basic_filebuf::uflow): Declare. ! (basic_filebuf::underflow): Declare. ! Move definitions. ! ! 2003-01-07 Benjamin Kosnik ! ! PR libstdc++/8707 ! * Makefile.am (distclean-multi): Fix. ! * Makefile.in: Regenerate. ! ! 2003-01-06 Benjamin Kosnik ! ! * include/bits/locale_facets.h (messages): Move ctor, dtor ! definitions to.. ! (__timepunct): Same. ! * config/locale/gnu/messages_members.h (messages): Add dtor, ctor ! definitions. Conditionalize for GNU systems. ! * config/locale/generic/messages_members.h (messages): Add dtor, ctor ! definitions. ! * config/locale/gnu/time_members.h (messages): New. Add dtor, ctor ! definitions. Conditionalize for GNU systems. ! * config/locale/generic/time_members.h (messages): New. Add dtor, ctor ! definitions. ! * include/bits/localefwd.h (locale::facet::_S_c_name): Add. ! * src/locale.cc: Define. ! * src/localename.cc (locale::_Impl::_Impl(facet**, size_t, bool): ! Use it. ! * config/locale/gnu/time_members.h: Use it. ! * config/locale/gnu/messages_members.h: Use it. ! * config/linker-map.gnu: Add locale::facets details. ! * include/Makefile.am (target_headers_extra): Add time_members.h. ! * include/Makefile.in: Regenerate. ! * acinclude.m4: Export CTIME_H. ! * aclocal.m4: Regenerate. ! * configure: Regnerate. ! ! 2003-01-06 Paolo Carlini ! ! * src/codecvt.cc ! (codecvt::do_in, do_out): ! Tweak parameters to avoid unused parameter warnings. ! ! 2003-01-06 Paolo Carlini ! ! PR libstdc++/9151 ! * include/bits/locale_facets.cc (num_put::_M_convert_float): ! Limit __prec to digits10 + 2, not digits10 + 1, taking into ! account the possibility of %{g,G} conversion specifiers ! inside _S_format_float. ! * testsuite/27_io/ostream_inserter_arith.cc (test06): Add. ! ! 2003-01-06 Kaveh R. Ghazi ! ! * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): ! Additionally handle files one level deeper in glob patterns. ! * testsuite/libstdc++-v3.dg/dg.exp: Likewise. ! ! * testsuite/27_io/istream_extractor_arith.cc: Delete, split... ! * testsuite/27_io/istream_extractor_arith/01.cc, ! testsuite/27_io/istream_extractor_arith/02.cc, ! testsuite/27_io/istream_extractor_arith/03.cc, ! testsuite/27_io/istream_extractor_arith/06.cc, ! testsuite/27_io/istream_extractor_arith/07.cc, ! testsuite/27_io/istream_extractor_arith/08.cc, ! testsuite/27_io/istream_extractor_arith/09.cc, ! testsuite/27_io/istream_extractor_arith/10.cc, ! testsuite/27_io/istream_extractor_arith/11.cc, ! testsuite/27_io/istream_extractor_arith/12.cc, ! testsuite/27_io/istream_extractor_arith/13.cc: ... to new files. ! * testsuite/27_io/istream_extractor_arith/12.cc: Add XFAIL for ! sparc*-*-solaris2*. ! ! 2003-01-05 Paolo Carlini ! ! PR libstdc++/9168 ! * src/codecvt.cc ! (codecvt::do_in, do_out): ! Implement the resolution of DR19 (TC). ! * testsuite/22_locale/codecvt_members_char_char.cc ! (test01): Tweak. ! ! 2002-12-18 Kaveh R. Ghazi ! ! * testsuite/23_containers/vector_capacity.cc (test03): Move ... ! * testsuite/23_containers/vector_resize.cc: ...here as a new file. ! Pass in -lmalloc for irix6. ! * testsuite/27_io/ios_base_storage.cc: Pass in -lmalloc for irix6. ! ! 2002-12-11 Paolo Carlini ! ! PR libstdc++/8887 ! * config/locale/generic/time_members.cc ! (__timepunct::_M_initialize_timepunct): Fix typos ! in _M_date_format and _M_date_era_format string literals. ! ! 2002-12-07 Gabriel Dos Reis ! ! * include/bits/slice_array.h (slice_array<>::operator=): Fix typo. ! ! 2002-12-05 Benjamin Kosnik ! ! * config/linker-map.gnu: Put _S_force_new into GLIBCPP_3.2.2. ! * testsuite/abi_check.cc: Add GLIBCPP_3.2.2. ! ! 2002-12-05 Benjamin Kosnik ! Gabriel Dos Reis ! ! PR libstdc++/8230 ! * include/bits/stl_alloc.h: Use builtin_expect for the most ! obvious limit checks. ! (__default_alloc_template::allocate): Check for null, throw ! bad_alloc. ! * testsuite/20_util/allocator_members.cc (test02): Add. ! * testsuite/23_containers/vector_capacity.cc (test03): Add. ! ! 2002-12-05 Loren J. Rittle ! Brad Spencer ! (provided alternate patch and improvements) ! ! PR libstdc++/8708 ! * docs/html/23_containers/howto.html (GLIBCPP_FORCE_NEW): Document ! new environment variable which replaces all uses of __USE_MALLOC ! macro. ! * docs/html/ext/howto.html (GLIBCPP_FORCE_NEW): Likewise. ! (__mem_interface): Remove all references to old internal typedef. ! * include/backward/alloc.h (__USE_MALLOC): Remove it and all ! guarded code. ! * include/bits/c++config (__USE_MALLOC): Update related error ! message and comment. ! * include/bits/stl_alloc.h (__USE_MALLOC): Remove it and all ! guarded code. Update all related comments. ! (__mem_interface): Unconditionally replace it with __new_alloc. ! However, leave the typedef around in case anyone used it. ! (__default_alloc_template<>::_S_force_new): New class static. ! (__default_alloc_template<>::allocate, deallocate): Add ! run-time controlled feature similar to what __USE_MALLOC code ! path had provided. ! * src/stl-inst.cc (__USE_MALLOC): Remove it and all ! guarded code. ! * testsuite/21_strings/capacity.cc: Remove reference to __USE_MALLOC. ! Add documentation on GLIBCPP_FORCE_NEW environment variable. ! * testsuite/ext/allocators.cc: Likewise. ! ! 2002-12-05 Paolo Carlini ! Nathan Myers ! ! PR libstdc++/8790 ! * src/localename.cc ! (locale::_Impl::_Impl(const char*, size_t)): ! Avoid strtok for thread safety. ! ! 2002-12-04 Loren J. Rittle ! ! PR libstdc++/7445 ! * src/locale.cc (std::locale::classic()): Weaken locking protocol. ! ! 2002-12-03 Phil Edwards ! ! * include/bits/streambuf.tcc (basic_streambuf::sputbackc): Prefix ! "this->" to call to pbackfail. ! ! 2002-12-02 Benjamin Kosnik ! Jonathan Lennox ! ! * include/bits/streambuf.tcc (__copy_streambufs): ! Revert previous fix for the interactive half of ! libstdc++/6745, use _M_buf_size_opt to set dynamically ! the correct buffer size. ! ! 2002-12-02 Jonathan Lennox ! ! * include/bits/streambuf.tcc (__copy_streambufs): verify ! __sbin->gptr() + __bufsize < __sbin->egptr() before using. ! * testsuite/27_io/ostream_inserter_other.cc (test_buffer_4): Add. ! (test05): Use test_buffer_4. Delete unused ostringstream ! variables. ! ! 2002-12-02 Paolo Carlini ! ! PR libstdc++/6745 (continued) ! * include/bits/streambuf.tcc (__copy_streambufs): ! Deal with interactive input by using isatty as in the ! fix for libstdc++/8399. ! ! 2002-12-02 Rainer Orth ! ! * src/ios.cc [_GLIBCPP_HAVE_UNISTD_H]: Include unistd.h. ! ! 2002-12-02 Paolo Carlini ! Loren J. Rittle ! ! PR libstdc++/8399 ! * acinclude.m4 ! (GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1): New macro to ! check for unistd.h functions. ! (GLIBCPP_CHECK_UNISTD_SUPPORT): New macro, check for isatty ! in unistd.h. ! * configure.in: Call here. ! * src/ios.cc (ios_base::Init::_S_ios_create(bool)): ! Use _GLIBCPP_HAVE_ISATTY: ifdef, in case of interactive ! input __in_size = 1 even when sync_with_stdio is false; ! otherwise fall back to __in_size = 1. ! * aclocal.m4: Regenerate. ! * config.h.in: Regenerate. ! * configure: Regenerate. ! ! 2002-12-02 Benjamin Kosnik ! ! * acconfig.h (HAVE_DRAND48): Add. ! (HAVE_GETPAGESIZE): Add. ! (HAVE_SETENV): Add. ! (HAVE_SIGSETJMP): Add. ! * config.h.in: Regenerate. ! * configure: Regenerate. ! ! 2002-12-02 Benjamin Kosnik ! ! PR libstdc++/8230 ! * include/bits/stl_vector.h (vector::reserve): Throw length_error if ! requested size is bigger than max_size(). ! * include/bits/stl_bvector.h (vector::reserve): Same. ! * testsuite/23_containers/vector_capacity.cc (test02): Add. ! ! 2002-12-02 Benjamin Kosnik ! ! * configure.in (libtool_VERSION): Update to 5:2:0. ! * configure: Regenerate. ! ! 2002-11-26 David Edelsohn ! ! * testsuite/abi_check.cc: Remove guards kludge. ! ! 2002-11-19 Release Manager * GCC 3.2.1 Released. *************** *** 22,28 **** 2002-11-06 David Edelsohn ! PR 8362 * testsuite/abi_check.cc: Add guards to prevent -mpower ICE. 2002-11-05 Jonathan Wakely --- 315,321 ---- 2002-11-06 David Edelsohn ! PR libstdc++/8362 * testsuite/abi_check.cc: Add guards to prevent -mpower ICE. 2002-11-05 Jonathan Wakely diff -Nrc3pad gcc-3.2.1/libstdc++-v3/Makefile.am gcc-3.2.2/libstdc++-v3/Makefile.am *** gcc-3.2.1/libstdc++-v3/Makefile.am Tue Oct 22 21:50:47 2002 --- gcc-3.2.2/libstdc++-v3/Makefile.am Tue Jan 7 17:32:09 2003 *************** *** 1,6 **** ## Makefile for the toplevel directory of the GNU C++ Standard library. ## ! ## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 ## Free Software Foundation, Inc. ## ## This file is part of the libstdc++ version 3 distribution. --- 1,6 ---- ## Makefile for the toplevel directory of the GNU C++ Standard library. ## ! ## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 ## Free Software Foundation, Inc. ## ## This file is part of the libstdc++ version 3 distribution. *************** doxygen-man: *** 88,94 **** # Multilib support. MAKEOVERRIDES= ! # Multilib variables. MULTISRCTOP = MULTIBUILDTOP = MULTIDIRS = --- 88,94 ---- # Multilib support. MAKEOVERRIDES= ! # Multilib support variables. MULTISRCTOP = MULTIBUILDTOP = MULTIDIRS = *************** MULTISUBDIR = *** 96,111 **** MULTIDO = true MULTICLEAN = true ! # Multilib Makefile bits. .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \ maintainer-clean-multi ! all-am: all-multi ! install-am: install-multi ! mostlyclean-am: mostlyclean-multi ! clean-am: clean-multi ! distclean-am: distclean-multi ! maintainer-clean-am: maintainer-clean-multi all-multi: : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do --- 96,111 ---- MULTIDO = true MULTICLEAN = true ! # Multilib support. .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \ maintainer-clean-multi ! all-recursive: all-multi ! install-recursive: install-multi ! mostlyclean-recursive: mostlyclean-multi ! clean-recursive: clean-multi ! distclean-recursive: distclean-multi ! maintainer-clean-recursive: maintainer-clean-multi all-multi: : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do diff -Nrc3pad gcc-3.2.1/libstdc++-v3/Makefile.in gcc-3.2.2/libstdc++-v3/Makefile.in *** gcc-3.2.1/libstdc++-v3/Makefile.in Tue Oct 22 21:50:47 2002 --- gcc-3.2.2/libstdc++-v3/Makefile.in Tue Jan 7 17:32:09 2003 *************** CMESSAGES_H = @CMESSAGES_H@ *** 76,81 **** --- 76,82 ---- CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ CSTDIO_H = @CSTDIO_H@ + CTIME_H = @CTIME_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ *************** baseline_file = @baseline_file@ *** 146,152 **** # Multilib support. MAKEOVERRIDES = ! # Multilib variables. MULTISRCTOP = MULTIBUILDTOP = MULTIDIRS = --- 147,153 ---- # Multilib support. MAKEOVERRIDES = ! # Multilib support variables. MULTISRCTOP = MULTIBUILDTOP = MULTIDIRS = *************** doxygen-man: *** 519,534 **** .PHONY: doxygen doxygen-maint doxygen-man ! # Multilib Makefile bits. .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \ maintainer-clean-multi ! all-am: all-multi ! install-am: install-multi ! mostlyclean-am: mostlyclean-multi ! clean-am: clean-multi ! distclean-am: distclean-multi ! maintainer-clean-am: maintainer-clean-multi all-multi: : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do --- 520,535 ---- .PHONY: doxygen doxygen-maint doxygen-man ! # Multilib support. .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \ maintainer-clean-multi ! all-recursive: all-multi ! install-recursive: install-multi ! mostlyclean-recursive: mostlyclean-multi ! clean-recursive: clean-multi ! distclean-recursive: distclean-multi ! maintainer-clean-recursive: maintainer-clean-multi all-multi: : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do diff -Nrc3pad gcc-3.2.1/libstdc++-v3/acconfig.h gcc-3.2.2/libstdc++-v3/acconfig.h *** gcc-3.2.1/libstdc++-v3/acconfig.h Thu Oct 17 02:03:17 2002 --- gcc-3.2.2/libstdc++-v3/acconfig.h Mon Dec 2 21:20:07 2002 *************** *** 13,21 **** // Define if GCC supports weak symbols. #undef _GLIBCPP_SUPPORTS_WEAK - // Define if gthr-default.h exists (meaning that threading support is enabled). - #undef HAVE_GTHR_DEFAULT - // Include I/O support for 'long long' and 'unsigned long long'. #undef _GLIBCPP_USE_LONG_LONG --- 13,18 ---- *************** *** 37,49 **** // Define to use concept checking code from the boost libraries. #undef _GLIBCPP_CONCEPT_CHECKS ! // Define if you have the atan2f function. #undef _GLIBCPP_HAVE_ATAN2F ! // Define if you have the atan2l function. #undef _GLIBCPP_HAVE_ATAN2L ! // Define if you have the copysignf function. #undef _GLIBCPP_HAVE_COPYSIGNF // Define to use symbol versioning in the shared library. --- 34,46 ---- // Define to use concept checking code from the boost libraries. #undef _GLIBCPP_CONCEPT_CHECKS ! // Define if the atan2f function exists. #undef _GLIBCPP_HAVE_ATAN2F ! // Define if the atan2l function exists. #undef _GLIBCPP_HAVE_ATAN2L ! // Define if the copysignf function exists. #undef _GLIBCPP_HAVE_COPYSIGNF // Define to use symbol versioning in the shared library. *************** *** 60,65 **** --- 57,77 ---- #define _GLIBCPP_ASM_SYMVER(cur, old, version) #endif + // Define if gthr-default.h exists (meaning that threading support is enabled). + #undef HAVE_GTHR_DEFAULT + + // Define if drand48 exists. + #undef HAVE_DRAND48 + + // Define if getpagesize exists. + #undef HAVE_GETPAGESIZE + + // Define if setenv exists. + #undef HAVE_SETENV + + // Define if sigsetjmp exists. + #undef HAVE_SIGSETJMP + // Define if mbstate_t exists in wchar.h. #undef HAVE_MBSTATE_T diff -Nrc3pad gcc-3.2.1/libstdc++-v3/acinclude.m4 gcc-3.2.2/libstdc++-v3/acinclude.m4 *** gcc-3.2.1/libstdc++-v3/acinclude.m4 Thu Oct 17 02:03:17 2002 --- gcc-3.2.2/libstdc++-v3/acinclude.m4 Mon Jan 27 17:30:41 2003 *************** AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_L *** 594,599 **** --- 594,626 ---- fi ]) + dnl + dnl Check to see if the (unistd function) argument passed is + dnl 1) declared when using the c++ compiler + dnl 2) has "C" linkage + dnl + dnl argument 1 is name of function to check + dnl + dnl ASSUMES argument is a function with ONE parameter + dnl + dnl GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1 + AC_DEFUN(GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1, [ + AC_MSG_CHECKING([for $1 declaration]) + if test x${glibcpp_cv_func_$1_use+set} != xset; then + AC_CACHE_VAL(glibcpp_cv_func_$1_use, [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([#include ], + [ $1(0);], + [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no]) + AC_LANG_RESTORE + ]) + fi + AC_MSG_RESULT($glibcpp_cv_func_$1_use) + if test x$glibcpp_cv_func_$1_use = x"yes"; then + AC_CHECK_FUNCS($1) + fi + ]) dnl dnl Because the builtins are picky picky picky about the arguments they take, *************** AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_SUPP *** 707,713 **** dnl ! dnl Check to see what the underlying c library dnl These checks need to do two things: dnl 1) make sure the name is declared when using the c++ compiler dnl 2) make sure the name has "C" linkage --- 734,740 ---- dnl ! dnl Check to see what the underlying c library is like dnl These checks need to do two things: dnl 1) make sure the name is declared when using the c++ compiler dnl 2) make sure the name has "C" linkage *************** AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [ *** 730,735 **** --- 757,781 ---- CXXFLAGS="$ac_save_CXXFLAGS" ]) + dnl + dnl Check to see what the underlying c library is like + dnl These checks need to do two things: + dnl 1) make sure the name is declared when using the c++ compiler + dnl 2) make sure the name has "C" linkage + dnl This might seem like overkill but experience has shown that it's not... + dnl + dnl Define HAVE_ISATTY if "isatty" is declared and links + dnl + dnl GLIBCPP_CHECK_UNISTD_SUPPORT + AC_DEFUN(GLIBCPP_CHECK_UNISTD_SUPPORT, [ + ac_test_CXXFLAGS="${CXXFLAGS+set}" + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS='-fno-builtins -D_GNU_SOURCE' + + GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1(isatty) + + CXXFLAGS="$ac_save_CXXFLAGS" + ]) dnl dnl Check to see what the underlying c library or math library is like. *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1185,1190 **** --- 1231,1237 ---- CMESSAGES_CC=config/locale/generic/messages_members.cc CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc + CTIME_H=config/locale/generic/time_members.h CTIME_CC=config/locale/generic/time_members.cc CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1219,1224 **** --- 1266,1272 ---- CMESSAGES_CC=config/locale/gnu/messages_members.cc CMONEY_CC=config/locale/gnu/monetary_members.cc CNUMERIC_CC=config/locale/gnu/numeric_members.cc + CTIME_H=config/locale/gnu/time_members.h CTIME_CC=config/locale/gnu/time_members.cc CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h ;; *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1235,1240 **** --- 1283,1289 ---- CMESSAGES_CC=config/locale/ieee_1003.1-2001/messages_members.cc CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc + CTIME_H=config/locale/generic/time_members.h CTIME_CC=config/locale/generic/time_members.cc CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1256,1261 **** --- 1305,1311 ---- AC_SUBST(CLOCALE_H) AC_SUBST(CCODECVT_H) AC_SUBST(CMESSAGES_H) + AC_SUBST(CTIME_H) AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc) AC_LINK_FILES($CCODECVT_CC, src/codecvt_members.cc) AC_LINK_FILES($CCOLLATE_CC, src/collate_members.cc) *************** if test x"$glibcpp_toolexecdir" = x"no"; *** 1885,1895 **** if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)' ! glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)' else glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' ! glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)' fi fi AC_MSG_CHECKING([for install location]) --- 1935,1946 ---- if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)' ! glibcpp_toolexeclibdir='$(toolexecdir)/lib' else glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' ! glibcpp_toolexeclibdir='$(libdir)' fi + glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory` fi AC_MSG_CHECKING([for install location]) diff -Nrc3pad gcc-3.2.1/libstdc++-v3/aclocal.m4 gcc-3.2.2/libstdc++-v3/aclocal.m4 *** gcc-3.2.1/libstdc++-v3/aclocal.m4 Thu Oct 17 02:03:17 2002 --- gcc-3.2.2/libstdc++-v3/aclocal.m4 Mon Jan 27 17:30:42 2003 *************** *** 1,4 **** ! dnl aclocal.m4 generated automatically by aclocal 1.4-p5 dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation --- 1,4 ---- ! dnl aclocal.m4 generated automatically by aclocal 1.4-p6 dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation *************** AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_L *** 606,611 **** --- 606,638 ---- fi ]) + dnl + dnl Check to see if the (unistd function) argument passed is + dnl 1) declared when using the c++ compiler + dnl 2) has "C" linkage + dnl + dnl argument 1 is name of function to check + dnl + dnl ASSUMES argument is a function with ONE parameter + dnl + dnl GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1 + AC_DEFUN(GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1, [ + AC_MSG_CHECKING([for $1 declaration]) + if test x${glibcpp_cv_func_$1_use+set} != xset; then + AC_CACHE_VAL(glibcpp_cv_func_$1_use, [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([#include ], + [ $1(0);], + [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no]) + AC_LANG_RESTORE + ]) + fi + AC_MSG_RESULT($glibcpp_cv_func_$1_use) + if test x$glibcpp_cv_func_$1_use = x"yes"; then + AC_CHECK_FUNCS($1) + fi + ]) dnl dnl Because the builtins are picky picky picky about the arguments they take, *************** AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_SUPP *** 719,725 **** dnl ! dnl Check to see what the underlying c library dnl These checks need to do two things: dnl 1) make sure the name is declared when using the c++ compiler dnl 2) make sure the name has "C" linkage --- 746,752 ---- dnl ! dnl Check to see what the underlying c library is like dnl These checks need to do two things: dnl 1) make sure the name is declared when using the c++ compiler dnl 2) make sure the name has "C" linkage *************** AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [ *** 742,747 **** --- 769,793 ---- CXXFLAGS="$ac_save_CXXFLAGS" ]) + dnl + dnl Check to see what the underlying c library is like + dnl These checks need to do two things: + dnl 1) make sure the name is declared when using the c++ compiler + dnl 2) make sure the name has "C" linkage + dnl This might seem like overkill but experience has shown that it's not... + dnl + dnl Define HAVE_ISATTY if "isatty" is declared and links + dnl + dnl GLIBCPP_CHECK_UNISTD_SUPPORT + AC_DEFUN(GLIBCPP_CHECK_UNISTD_SUPPORT, [ + ac_test_CXXFLAGS="${CXXFLAGS+set}" + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS='-fno-builtins -D_GNU_SOURCE' + + GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1(isatty) + + CXXFLAGS="$ac_save_CXXFLAGS" + ]) dnl dnl Check to see what the underlying c library or math library is like. *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1197,1202 **** --- 1243,1249 ---- CMESSAGES_CC=config/locale/generic/messages_members.cc CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc + CTIME_H=config/locale/generic/time_members.h CTIME_CC=config/locale/generic/time_members.cc CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1231,1236 **** --- 1278,1284 ---- CMESSAGES_CC=config/locale/gnu/messages_members.cc CMONEY_CC=config/locale/gnu/monetary_members.cc CNUMERIC_CC=config/locale/gnu/numeric_members.cc + CTIME_H=config/locale/gnu/time_members.h CTIME_CC=config/locale/gnu/time_members.cc CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h ;; *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1247,1252 **** --- 1295,1301 ---- CMESSAGES_CC=config/locale/ieee_1003.1-2001/messages_members.cc CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc + CTIME_H=config/locale/generic/time_members.h CTIME_CC=config/locale/generic/time_members.cc CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1268,1273 **** --- 1317,1323 ---- AC_SUBST(CLOCALE_H) AC_SUBST(CCODECVT_H) AC_SUBST(CMESSAGES_H) + AC_SUBST(CTIME_H) AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc) AC_LINK_FILES($CCODECVT_CC, src/codecvt_members.cc) AC_LINK_FILES($CCOLLATE_CC, src/collate_members.cc) *************** if test x"$glibcpp_toolexecdir" = x"no"; *** 1897,1907 **** if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)' ! glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)' else glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' ! glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)' fi fi AC_MSG_CHECKING([for install location]) --- 1947,1958 ---- if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)' ! glibcpp_toolexeclibdir='$(toolexecdir)/lib' else glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' ! glibcpp_toolexeclibdir='$(libdir)' fi + glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory` fi AC_MSG_CHECKING([for install location]) *************** AC_MSG_RESULT($enable_symvers) *** 2224,2230 **** ]) ! # isc-posix.m4 serial 1 (gettext-0.10.40) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General --- 2275,2281 ---- ]) ! # isc-posix.m4 serial 2 (gettext-0.11.2) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General *************** dnl Public License, this file may be dis *** 2232,2237 **** --- 2283,2290 ---- dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. + # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. + # This test replaces the one in autoconf. # Currently this macro should have the same name as the autoconf macro # because gettext's gettext.m4 (distributed in the automake package) *************** dnl Usage: *** 2292,2298 **** dnl AM_INIT_AUTOMAKE(package,version, [no-define]) AC_DEFUN([AM_INIT_AUTOMAKE], ! [AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) VERSION=[$2] --- 2345,2352 ---- dnl AM_INIT_AUTOMAKE(package,version, [no-define]) AC_DEFUN([AM_INIT_AUTOMAKE], ! [AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl ! AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) VERSION=[$2] *************** AC_REQUIRE([AM_SANITY_CHECK]) *** 2308,2320 **** AC_REQUIRE([AC_ARG_PROGRAM]) dnl FIXME This is truly gross. missing_dir=`cd $ac_aux_dir && pwd` ! AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) ! AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) AC_REQUIRE([AC_PROG_MAKE_SET])]) # # Check to make sure that the build environment is sane. # --- 2362,2403 ---- AC_REQUIRE([AC_ARG_PROGRAM]) dnl FIXME This is truly gross. missing_dir=`cd $ac_aux_dir && pwd` ! AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) ! AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) AC_REQUIRE([AC_PROG_MAKE_SET])]) + # Copyright 2002 Free Software Foundation, Inc. + + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 2, or (at your option) + # any later version. + + # This program is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + # GNU General Public License for more details. + + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software + # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + + # AM_AUTOMAKE_VERSION(VERSION) + # ---------------------------- + # Automake X.Y traces this macro to ensure aclocal.m4 has been + # generated from the m4 files accompanying Automake X.Y. + AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) + + # AM_SET_CURRENT_AUTOMAKE_VERSION + # ------------------------------- + # Call AM_AUTOMAKE_VERSION so it can be traced. + # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. + AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], + [AM_AUTOMAKE_VERSION([1.4-p6])]) + # # Check to make sure that the build environment is sane. # diff -Nrc3pad gcc-3.2.1/libstdc++-v3/config/linker-map.gnu gcc-3.2.2/libstdc++-v3/config/linker-map.gnu *** gcc-3.2.1/libstdc++-v3/config/linker-map.gnu Sun Nov 17 05:14:01 2002 --- gcc-3.2.2/libstdc++-v3/config/linker-map.gnu Thu Jan 23 17:17:53 2003 *************** *** 1,6 **** ## Linker script for GNU ld 2.11.94+ only. ## ! ## Copyright (C) 2002 Free Software Foundation, Inc. ## ## This file is part of the libstdc++ version 3 distribution. ## --- 1,6 ---- ## Linker script for GNU ld 2.11.94+ only. ## ! ## Copyright (C) 2002, 2003 Free Software Foundation, Inc. ## ## This file is part of the libstdc++ version 3 distribution. ## *************** GLIBCPP_3.2 { *** 50,56 **** std::[A-Zd-k]*; std::length_error*; std::logic_error*; ! std::locale::[A-Za-z]*; std::locale::_[A-Ra-z]*; std::locale::_S_classic; std::locale::_S_global; --- 50,63 ---- std::[A-Zd-k]*; std::length_error*; std::logic_error*; ! std::locale::[A-Za-e]*; ! std::locale::facet::[A-Za-z]*; ! std::locale::facet::_M*; ! std::locale::facet::_S_c_locale; ! std::locale::facet::_S_clone_c_locale*; ! std::locale::facet::_S_create_c_locale*; ! std::locale::facet::_S_destroy_c_locale*; ! std::locale::[A-Zg-z]*; std::locale::_[A-Ra-z]*; std::locale::_S_classic; std::locale::_S_global; *************** GLIBCPP_3.2 { *** 99,104 **** --- 106,114 ---- # std::locale destructors _ZNSt6localeD*; + + # std::locale::facet destructors + _ZNSt6locale5facetD*; # std::codecvt members. _ZNKSt7codecvtIcc11__mbstate_tE*; *************** GLIBCPP_3.2.1 { *** 204,211 **** _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_; _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_; - _ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE; - # stub functions from libmath sinf; sinl; --- 214,219 ---- *************** GLIBCPP_3.2.1 { *** 242,252 **** } GLIBCPP_3.2; # Symbols in the support library (libsupc++) have their own tag. CXXABI_1.2 { global: ! __cxa_*; __gxx_personality_v0; __gxx_personality_sj0; __dynamic_cast; --- 250,290 ---- } GLIBCPP_3.2; + GLIBCPP_3.2.2 { + + _ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE; + + } GLIBCPP_3.2.1; + + # Symbols in the support library (libsupc++) have their own tag. CXXABI_1.2 { global: ! __cxa_allocate_exception; ! __cxa_bad_cast; ! __cxa_bad_typeid; ! __cxa_begin_catch; ! __cxa_call_unexpected; ! __cxa_current_exception_type; ! __cxa_demangle; ! __cxa_end_catch; ! __cxa_free_exception; ! __cxa_get_globals; ! __cxa_get_globals_fast; ! __cxa_pure_virtual; ! __cxa_rethrow; ! __cxa_throw; ! __cxa_vec_cctor; ! __cxa_vec_cleanup; ! __cxa_vec_ctor; ! __cxa_vec_delete2; ! __cxa_vec_delete3; ! __cxa_vec_delete; ! __cxa_vec_dtor; ! __cxa_vec_new2; ! __cxa_vec_new3; ! __cxa_vec_new; __gxx_personality_v0; __gxx_personality_sj0; __dynamic_cast; *************** CXXABI_1.2 { *** 254,259 **** --- 292,317 ---- # __gnu_cxx::_verbose_terminate_handler() _ZN9__gnu_cxx27__verbose_terminate_handlerEv; + # XXX Should not be exported. + __cxa_dyn_string_append_char; + __cxa_dyn_string_append_cstr; + __cxa_dyn_string_append; + __cxa_dyn_string_clear; + __cxa_dyn_string_copy_cstr; + __cxa_dyn_string_copy; + __cxa_dyn_string_delete; + __cxa_dyn_string_eq; + __cxa_dyn_string_init; + __cxa_dyn_string_insert_char; + __cxa_dyn_string_insert_cstr; + __cxa_dyn_string_insert; + __cxa_dyn_string_new; + __cxa_dyn_string_prepend_cstr; + __cxa_dyn_string_prepend; + __cxa_dyn_string_release; + __cxa_dyn_string_resize; + __cxa_dyn_string_substring; + local: *; }; diff -Nrc3pad gcc-3.2.1/libstdc++-v3/config/locale/generic/messages_members.h gcc-3.2.2/libstdc++-v3/config/locale/generic/messages_members.h *** gcc-3.2.1/libstdc++-v3/config/locale/generic/messages_members.h Mon Mar 11 21:12:52 2002 --- gcc-3.2.2/libstdc++-v3/config/locale/generic/messages_members.h Tue Jan 7 03:43:59 2003 *************** *** 1,6 **** // std::messages implementation details, generic version -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // std::messages implementation details, generic version -*- C++ -*- ! // Copyright (C) 2001, 2003 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 35,40 **** --- 35,50 ---- // Non-virtual member functions. template + messages<_CharT>::messages(size_t __refs) + : locale::facet(__refs) + { _M_c_locale_messages = _S_c_locale; } + + template + messages<_CharT>::messages(__c_locale __cloc, const char*, size_t __refs) + : locale::facet(__refs) + { _M_c_locale_messages = _S_c_locale; } + + template typename messages<_CharT>::catalog messages<_CharT>::open(const basic_string& __s, const locale& __loc, const char*) const *************** *** 42,47 **** --- 52,61 ---- // Virtual member functions. template + messages<_CharT>::~messages() + { _S_destroy_c_locale(_M_c_locale_messages); } + + template typename messages<_CharT>::catalog messages<_CharT>::do_open(const basic_string&, const locale&) const { return 0; } *************** *** 56,58 **** --- 70,81 ---- void messages<_CharT>::do_close(catalog) const { } + + // messages_byname + template + messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) + : messages<_CharT>(__refs) + { + _S_destroy_c_locale(_M_c_locale_messages); + _S_create_c_locale(_M_c_locale_messages, __s); + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/config/locale/generic/time_members.cc gcc-3.2.2/libstdc++-v3/config/locale/generic/time_members.cc *** gcc-3.2.1/libstdc++-v3/config/locale/generic/time_members.cc Thu Oct 17 02:04:14 2002 --- gcc-3.2.2/libstdc++-v3/config/locale/generic/time_members.cc Tue Jan 7 03:43:59 2003 *************** *** 1,4 **** ! // std::time_get, std::time_put implementation, GNU version -*- C++ -*- // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // --- 1,4 ---- ! // std::time_get, std::time_put implementation, generic version -*- C++ -*- // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // *************** namespace std *** 56,63 **** __timepunct::_M_initialize_timepunct(__c_locale) { // "C" locale ! _M_date_format = "%m/%d/%Y"; ! _M_date_era_format = "%m/%d/%Y"; _M_time_format = "%H:%M:%S"; _M_time_era_format = "%H:%M:%S"; _M_date_time_format = ""; --- 56,63 ---- __timepunct::_M_initialize_timepunct(__c_locale) { // "C" locale ! _M_date_format = "%m/%d/%y"; ! _M_date_era_format = "%m/%d/%y"; _M_time_format = "%H:%M:%S"; _M_time_era_format = "%H:%M:%S"; _M_date_time_format = ""; diff -Nrc3pad gcc-3.2.1/libstdc++-v3/config/locale/generic/time_members.h gcc-3.2.2/libstdc++-v3/config/locale/generic/time_members.h *** gcc-3.2.1/libstdc++-v3/config/locale/generic/time_members.h Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/config/locale/generic/time_members.h Tue Jan 7 03:45:21 2003 *************** *** 0 **** --- 1,61 ---- + // std::time_get, std::time_put implementation, generic version -*- C++ -*- + + // Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: 22.2.5.1.2 - time_get functions + // ISO C++ 14882: 22.2.5.3.2 - time_put functions + // + + // Written by Benjamin Kosnik + + template + __timepunct<_CharT>::__timepunct(size_t __refs) + : locale::facet(__refs) + { + _M_name_timepunct = _S_c_name; + _M_initialize_timepunct(); + } + + template + __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, + size_t __refs) + : locale::facet(__refs) + { + _M_name_timepunct = new char[strlen(__s) + 1]; + strcpy(_M_name_timepunct, __s); + _M_initialize_timepunct(__cloc); + } + + template + __timepunct<_CharT>::~__timepunct() + { + if (_S_c_name != _M_name_timepunct) + delete [] _M_name_timepunct; + _S_destroy_c_locale(_M_c_locale_timepunct); + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/config/locale/gnu/messages_members.h gcc-3.2.2/libstdc++-v3/config/locale/gnu/messages_members.h *** gcc-3.2.1/libstdc++-v3/config/locale/gnu/messages_members.h Thu Sep 5 07:45:11 2002 --- gcc-3.2.2/libstdc++-v3/config/locale/gnu/messages_members.h Tue Jan 7 03:43:59 2003 *************** *** 1,6 **** // std::messages implementation details, GNU version -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // std::messages implementation details, GNU version -*- C++ -*- ! // Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 28,40 **** // the GNU General Public License. // ! // ISO C++ 14882: 22.2.7.1.2 messages virtual functions // // Written by Benjamin Kosnik // Non-virtual member functions. template typename messages<_CharT>::catalog messages<_CharT>::open(const basic_string& __s, const locale& __loc, const char* __dir) const --- 28,62 ---- // the GNU General Public License. // ! // ISO C++ 14882: 22.2.7.1.2 messages functions // // Written by Benjamin Kosnik // Non-virtual member functions. template + messages<_CharT>::messages(size_t __refs) + : locale::facet(__refs) + { + #if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)) + _M_name_messages = _S_c_name; + #endif + _M_c_locale_messages = _S_c_locale; + } + + template + messages<_CharT>::messages(__c_locale __cloc, + const char* __s, size_t __refs) + : locale::facet(__refs) + { + #if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)) + _M_name_messages = new char[strlen(__s) + 1]; + strcpy(_M_name_messages, __s); + #endif + _M_c_locale_messages = _S_clone_c_locale(__cloc); + } + + template typename messages<_CharT>::catalog messages<_CharT>::open(const basic_string& __s, const locale& __loc, const char* __dir) const *************** *** 43,48 **** --- 65,81 ---- return this->do_open(__s, __loc); } + // Virtual member functions. + template + messages<_CharT>::~messages() + { + #if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)) + if (_S_c_name != _M_name_messages) + delete [] _M_name_messages; + #endif + _S_destroy_c_locale(_M_c_locale_messages); + } + template typename messages<_CharT>::catalog messages<_CharT>::do_open(const basic_string& __s, *************** *** 58,60 **** --- 91,108 ---- void messages<_CharT>::do_close(catalog) const { } + + // messages_byname + template + messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) + : messages<_CharT>(__refs) + { + #if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)) + if (_S_c_name != _M_name_messages) + delete [] _M_name_messages; + _M_name_messages = new char[strlen(__s) + 1]; + strcpy(_M_name_messages, __s); + #endif + _S_destroy_c_locale(_M_c_locale_messages); + _S_create_c_locale(_M_c_locale_messages, __s); + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/config/locale/gnu/time_members.h gcc-3.2.2/libstdc++-v3/config/locale/gnu/time_members.h *** gcc-3.2.1/libstdc++-v3/config/locale/gnu/time_members.h Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/config/locale/gnu/time_members.h Tue Jan 7 03:45:22 2003 *************** *** 0 **** --- 1,67 ---- + // std::time_get, std::time_put implementation, GNU version -*- C++ -*- + + // Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: 22.2.5.1.2 - time_get functions + // ISO C++ 14882: 22.2.5.3.2 - time_put functions + // + + // Written by Benjamin Kosnik + + template + __timepunct<_CharT>::__timepunct(size_t __refs) + : locale::facet(__refs) + { + #if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)) + _M_name_timepunct = _S_c_name; + #endif + _M_initialize_timepunct(); + } + + template + __timepunct<_CharT>::__timepunct(__c_locale __cloc, + const char* __s, size_t __refs) + : locale::facet(__refs) + { + #if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)) + _M_name_timepunct = new char[strlen(__s) + 1]; + strcpy(_M_name_timepunct, __s); + #endif + _M_initialize_timepunct(__cloc); + } + + template + __timepunct<_CharT>::~__timepunct() + { + #if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)) + if (_S_c_name != _M_name_timepunct) + delete [] _M_name_timepunct; + #endif + _S_destroy_c_locale(_M_c_locale_timepunct); + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/config.h.in gcc-3.2.2/libstdc++-v3/config.h.in *** gcc-3.2.1/libstdc++-v3/config.h.in Thu Oct 17 02:03:18 2002 --- gcc-3.2.2/libstdc++-v3/config.h.in Tue Jan 7 03:43:12 2003 *************** *** 6,14 **** // Define if GCC supports weak symbols. #undef _GLIBCPP_SUPPORTS_WEAK - // Define if gthr-default.h exists (meaning that threading support is enabled). - #undef HAVE_GTHR_DEFAULT - // Include I/O support for 'long long' and 'unsigned long long'. #undef _GLIBCPP_USE_LONG_LONG --- 6,11 ---- *************** *** 38,43 **** --- 35,43 ---- #define _GLIBCPP_ASM_SYMVER(cur, old, version) #endif + // Define if gthr-default.h exists (meaning that threading support is enabled). + #undef HAVE_GTHR_DEFAULT + // Define if mbstate_t exists in wchar.h. #undef HAVE_MBSTATE_T *************** *** 449,454 **** --- 449,457 ---- /* Define if you have the iconv_open function. */ #undef HAVE_ICONV_OPEN + /* Define if you have the isatty function. */ + #undef HAVE_ISATTY + /* Define if you have the isinf function. */ #undef HAVE_ISINF diff -Nrc3pad gcc-3.2.1/libstdc++-v3/configure gcc-3.2.2/libstdc++-v3/configure *** gcc-3.2.1/libstdc++-v3/configure Mon Oct 21 19:34:40 2002 --- gcc-3.2.2/libstdc++-v3/configure Mon Jan 27 17:30:42 2003 *************** ORIGINAL_LD_FOR_MULTILIBS=$LD *** 588,594 **** PACKAGE=libstdc++ # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=5:1:0 --- 588,594 ---- PACKAGE=libstdc++ # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=5:2:0 *************** test "$ac_cv_mingw32" = yes && MINGW32=y *** 830,836 **** ! for ac_prog in mawk gawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 --- 830,836 ---- ! for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 *************** else *** 1458,1464 **** if { (eval echo configure:1459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in ! *.$ac_ext | *.c | *.o | *.obj) ;; *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; esac done --- 1458,1464 ---- if { (eval echo configure:1459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in ! *.c | *.o | *.obj) ;; *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; esac done *************** ac_exeext=$EXEEXT *** 1491,1498 **** echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 ! echo "configure:1496: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile --- 1491,1499 ---- + am__api_version="1.4" echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 ! echo "configure:1497: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile *************** test "$program_suffix" != NONE && *** 1549,1555 **** test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:1553: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1550,1556 ---- test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:1554: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** EOF *** 1594,1614 **** missing_dir=`cd $ac_aux_dir && pwd` ! echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 ! echo "configure:1599: checking for working aclocal" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. ! if (aclocal --version) < /dev/null > /dev/null 2>&1; then ! ACLOCAL=aclocal echo "$ac_t""found" 1>&6 else ! ACLOCAL="$missing_dir/missing aclocal" echo "$ac_t""missing" 1>&6 fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 ! echo "configure:1612: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. --- 1595,1615 ---- missing_dir=`cd $ac_aux_dir && pwd` ! echo $ac_n "checking for working aclocal-${am__api_version}""... $ac_c" 1>&6 ! echo "configure:1600: checking for working aclocal-${am__api_version}" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. ! if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then ! ACLOCAL=aclocal-${am__api_version} echo "$ac_t""found" 1>&6 else ! ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" echo "$ac_t""missing" 1>&6 fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 ! echo "configure:1613: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. *************** else *** 1620,1640 **** echo "$ac_t""missing" 1>&6 fi ! echo $ac_n "checking for working automake""... $ac_c" 1>&6 ! echo "configure:1625: checking for working automake" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. ! if (automake --version) < /dev/null > /dev/null 2>&1; then ! AUTOMAKE=automake echo "$ac_t""found" 1>&6 else ! AUTOMAKE="$missing_dir/missing automake" echo "$ac_t""missing" 1>&6 fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 ! echo "configure:1638: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. --- 1621,1641 ---- echo "$ac_t""missing" 1>&6 fi ! echo $ac_n "checking for working automake-${am__api_version}""... $ac_c" 1>&6 ! echo "configure:1626: checking for working automake-${am__api_version}" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. ! if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then ! AUTOMAKE=automake-${am__api_version} echo "$ac_t""found" 1>&6 else ! AUTOMAKE="$missing_dir/missing automake-${am__api_version}" echo "$ac_t""missing" 1>&6 fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 ! echo "configure:1639: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. *************** else *** 1647,1653 **** fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 ! echo "configure:1651: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. --- 1648,1654 ---- fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 ! echo "configure:1652: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. *************** ac_prog=ld *** 1746,1752 **** if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 ! echo "configure:1750: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw --- 1747,1753 ---- if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 ! echo "configure:1751: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw *************** echo "configure:1750: checking for ld us *** 1776,1785 **** esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1780: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1783: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1777,1786 ---- esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1781: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1784: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 1814,1820 **** fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 ! echo "configure:1818: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1815,1821 ---- fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 ! echo "configure:1819: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** with_gnu_ld=$lt_cv_prog_gnu_ld *** 1831,1837 **** echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1835: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1832,1838 ---- echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1836: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** reload_flag=$lt_cv_ld_reload_flag *** 1843,1849 **** test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1847: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1844,1850 ---- test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1848: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** NM="$lt_cv_path_NM" *** 1881,1887 **** echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1885: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1882,1888 ---- echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1886: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** file_magic_cmd=$lt_cv_file_magic_cmd *** 2045,2057 **** deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:2049: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext ! if { (eval echo configure:2055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; --- 2046,2058 ---- deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:2050: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext ! if { (eval echo configure:2056: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; *************** case $deplibs_check_method in *** 2075,2081 **** file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ! echo "configure:2079: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2076,2082 ---- file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ! echo "configure:2080: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2137,2143 **** if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 ! echo "configure:2141: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2138,2144 ---- if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 ! echo "configure:2142: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** esac *** 2208,2214 **** # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2212: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2209,2215 ---- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2213: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 2240,2246 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2244: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2241,2247 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2245: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2275,2281 **** # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2279: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2276,2282 ---- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2280: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 2307,2313 **** # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2311: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2308,2314 ---- # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2312: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** test x"$pic_mode" = xno && libtool_flags *** 2374,2381 **** case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2378 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2379: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" --- 2375,2382 ---- case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2379 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2380: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" *************** case $host in *** 2396,2402 **** SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2400: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2397,2403 ---- SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2401: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CC-cc} -o conftest${ac_exeext *** 2409,2422 **** cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else --- 2410,2423 ---- cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else *************** echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 *** 2446,2452 **** esac echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 ! echo "configure:2450: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2447,2453 ---- esac echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 ! echo "configure:2451: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 2459,2470 **** cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2468: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2460,2471 ---- cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2469: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** exec 5>>./config.log *** 2602,2608 **** # Check for c++ or library specific bits that don't require linking. #GLIBCPP_CHECK_COMPILER_VERSION echo $ac_n "checking for GNU make""... $ac_c" 1>&6 ! echo "configure:2606: checking for GNU make" >&5 if eval "test \"`echo '$''{'_cv_gnu_make_command'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2603,2609 ---- # Check for c++ or library specific bits that don't require linking. #GLIBCPP_CHECK_COMPILER_VERSION echo $ac_n "checking for GNU make""... $ac_c" 1>&6 ! echo "configure:2607: checking for GNU make" >&5 if eval "test \"`echo '$''{'_cv_gnu_make_command'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** esac *** 2650,2656 **** echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:2654: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= --- 2651,2657 ---- echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:2655: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= *************** else *** 2665,2677 **** # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2675: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2666,2678 ---- # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2676: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 2682,2694 **** rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2692: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2683,2695 ---- rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2693: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 2699,2711 **** rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2709: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2700,2712 ---- rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2710: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** echo "$ac_t""$CPP" 1>&6 *** 2731,2737 **** echo $ac_n "checking for cstdio to use""... $ac_c" 1>&6 ! echo "configure:2735: checking for cstdio to use" >&5 # Check whether --enable-cstdio or --disable-cstdio was given. if test "${enable_cstdio+set}" = set; then enableval="$enable_cstdio" --- 2732,2738 ---- echo $ac_n "checking for cstdio to use""... $ac_c" 1>&6 ! echo "configure:2736: checking for cstdio to use" >&5 # Check whether --enable-cstdio or --disable-cstdio was given. if test "${enable_cstdio+set}" = set; then enableval="$enable_cstdio" *************** fi *** 2755,2771 **** # see if we are on a system with libio native (ie, linux) ac_safe=`echo "libio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libio.h""... $ac_c" 1>&6 ! echo "configure:2759: checking for libio.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2769: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 2756,2772 ---- # see if we are on a system with libio native (ie, linux) ac_safe=`echo "libio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libio.h""... $ac_c" 1>&6 ! echo "configure:2760: checking for libio.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2770: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 2795,2803 **** case "$target" in *-*-linux*) echo $ac_n "checking for glibc version >= 2.2""... $ac_c" 1>&6 ! echo "configure:2799: checking for glibc version >= 2.2" >&5 cat > conftest.$ac_ext < --- 2796,2804 ---- case "$target" in *-*-linux*) echo $ac_n "checking for glibc version >= 2.2""... $ac_c" 1>&6 ! echo "configure:2800: checking for glibc version >= 2.2" >&5 cat > conftest.$ac_ext < *************** fi *** 2911,2917 **** echo $ac_n "checking for clocale to use""... $ac_c" 1>&6 ! echo "configure:2915: checking for clocale to use" >&5 # Check whether --enable-clocale or --disable-clocale was given. if test "${enable_clocale+set}" = set; then enableval="$enable_clocale" --- 2912,2918 ---- echo $ac_n "checking for clocale to use""... $ac_c" 1>&6 ! echo "configure:2916: checking for clocale to use" >&5 # Check whether --enable-clocale or --disable-clocale was given. if test "${enable_clocale+set}" = set; then enableval="$enable_clocale" *************** fi *** 2929,2935 **** case x${target_os} in xlinux* | xgnu*) cat > conftest.$ac_ext < --- 2930,2936 ---- case x${target_os} in xlinux* | xgnu*) cat > conftest.$ac_ext < *************** rm -f conftest* *** 2955,2961 **** enable_clocale_flag=generic else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then enable_clocale_flag=gnu else --- 2983,2989 ---- } EOF ! if { (eval echo configure:2987: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then enable_clocale_flag=gnu else *************** fi *** 3028,3033 **** --- 3029,3035 ---- CMESSAGES_CC=config/locale/generic/messages_members.cc CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc + CTIME_H=config/locale/generic/time_members.h CTIME_CC=config/locale/generic/time_members.cc CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; *************** fi *** 3043,3049 **** # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3047: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_check_msgfmt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3045,3051 ---- # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3049: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_check_msgfmt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3091,3096 **** --- 3093,3099 ---- CMESSAGES_CC=config/locale/gnu/messages_members.cc CMONEY_CC=config/locale/gnu/monetary_members.cc CNUMERIC_CC=config/locale/gnu/numeric_members.cc + CTIME_H=config/locale/gnu/time_members.h CTIME_CC=config/locale/gnu/time_members.cc CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h ;; *************** fi *** 3107,3112 **** --- 3110,3116 ---- CMESSAGES_CC=config/locale/ieee_1003.1-2001/messages_members.cc CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc + CTIME_H=config/locale/generic/time_members.h CTIME_CC=config/locale/generic/time_members.cc CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; *************** fi *** 3131,3136 **** --- 3135,3141 ---- + # AC_LINK_FILES($CCTYPE_CHAR_CC, src/ctype_members_char.cc) *************** cross_compiling=$ac_cv_prog_cxx_cross *** 3176,3191 **** # Check for the existence of functions used if C99 is enabled. ac_c99_math=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3180: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { fpclassify(0.0); ; return 0; } EOF ! if { (eval echo configure:3189: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3181,3196 ---- # Check for the existence of functions used if C99 is enabled. ac_c99_math=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3185: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { fpclassify(0.0); ; return 0; } EOF ! if { (eval echo configure:3194: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3195,3208 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isfinite(0.0); ; return 0; } EOF ! if { (eval echo configure:3206: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3200,3213 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isfinite(0.0); ; return 0; } EOF ! if { (eval echo configure:3211: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3212,3225 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isinf(0.0); ; return 0; } EOF ! if { (eval echo configure:3223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3217,3230 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isinf(0.0); ; return 0; } EOF ! if { (eval echo configure:3228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3229,3242 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnan(0.0); ; return 0; } EOF ! if { (eval echo configure:3240: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3234,3247 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnan(0.0); ; return 0; } EOF ! if { (eval echo configure:3245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3246,3259 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnormal(0.0); ; return 0; } EOF ! if { (eval echo configure:3257: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3251,3264 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnormal(0.0); ; return 0; } EOF ! if { (eval echo configure:3262: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3263,3276 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { signbit(0.0); ; return 0; } EOF ! if { (eval echo configure:3274: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3268,3281 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { signbit(0.0); ; return 0; } EOF ! if { (eval echo configure:3279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3280,3293 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3291: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3285,3298 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3296: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3297,3310 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreaterequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3308: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3302,3315 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreaterequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3313: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3314,3327 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isless(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3325: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3319,3332 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isless(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3331,3344 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3342: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3336,3349 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3348,3361 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3359: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3353,3366 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3364: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3365,3378 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isunordered(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3370,3383 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isunordered(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3386,3401 **** # Check for the existence in of vscanf, et. al. ac_c99_stdio=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3390: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { snprintf("12", 0, "%i"); ; return 0; } EOF ! if { (eval echo configure:3399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3391,3406 ---- # Check for the existence in of vscanf, et. al. ac_c99_stdio=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3395: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { snprintf("12", 0, "%i"); ; return 0; } EOF ! if { (eval echo configure:3404: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3405,3411 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3410,3416 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3416,3422 **** ; return 0; } EOF ! if { (eval echo configure:3420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3421,3427 ---- ; return 0; } EOF ! if { (eval echo configure:3425: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3426,3432 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3431,3437 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3437,3443 **** ; return 0; } EOF ! if { (eval echo configure:3441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3442,3448 ---- ; return 0; } EOF ! if { (eval echo configure:3446: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3447,3453 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3452,3458 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3458,3464 **** ; return 0; } EOF ! if { (eval echo configure:3462: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3463,3469 ---- ; return 0; } EOF ! if { (eval echo configure:3467: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3468,3474 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3473,3479 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3479,3485 **** ; return 0; } EOF ! if { (eval echo configure:3483: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3484,3490 ---- ; return 0; } EOF ! if { (eval echo configure:3488: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3493,3512 **** # Check for the existence in of lldiv_t, et. al. ac_c99_stdlib=yes; echo $ac_n "checking for lldiv_t declaration""... $ac_c" 1>&6 ! echo "configure:3497: checking for lldiv_t declaration" >&5 if eval "test \"`echo '$''{'ac_c99_lldiv_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { lldiv_t mydivt; ; return 0; } EOF ! if { (eval echo configure:3510: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_c99_lldiv_t=yes else --- 3498,3517 ---- # Check for the existence in of lldiv_t, et. al. ac_c99_stdlib=yes; echo $ac_n "checking for lldiv_t declaration""... $ac_c" 1>&6 ! echo "configure:3502: checking for lldiv_t declaration" >&5 if eval "test \"`echo '$''{'ac_c99_lldiv_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { lldiv_t mydivt; ; return 0; } EOF ! if { (eval echo configure:3515: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_c99_lldiv_t=yes else *************** fi *** 3522,3537 **** echo "$ac_t""$ac_c99_lldiv_t" 1>&6 echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3526: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { char* tmp; strtof("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3535: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3527,3542 ---- echo "$ac_t""$ac_c99_lldiv_t" 1>&6 echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3531: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { char* tmp; strtof("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3540: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3541,3554 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtold("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3546,3559 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtold("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3558,3571 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { llabs(10); ; return 0; } EOF ! if { (eval echo configure:3569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3563,3576 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { llabs(10); ; return 0; } EOF ! if { (eval echo configure:3574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3575,3588 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { lldiv(10,1); ; return 0; } EOF ! if { (eval echo configure:3586: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3580,3593 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { lldiv(10,1); ; return 0; } EOF ! if { (eval echo configure:3591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3592,3605 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { atoll("10"); ; return 0; } EOF ! if { (eval echo configure:3603: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3597,3610 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { atoll("10"); ; return 0; } EOF ! if { (eval echo configure:3608: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3609,3622 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { _Exit(0); ; return 0; } EOF ! if { (eval echo configure:3620: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3614,3627 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { _Exit(0); ; return 0; } EOF ! if { (eval echo configure:3625: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3634,3649 **** # XXX the wchar.h checks should be rolled into the general C99 bits. ac_c99_wchar=yes; echo $ac_n "checking for additional ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3638: checking for additional ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { wcstold(L"10.0", NULL); ; return 0; } EOF ! if { (eval echo configure:3647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3639,3654 ---- # XXX the wchar.h checks should be rolled into the general C99 bits. ac_c99_wchar=yes; echo $ac_n "checking for additional ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3643: checking for additional ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { wcstold(L"10.0", NULL); ; return 0; } EOF ! if { (eval echo configure:3652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3653,3666 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoll(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3664: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3658,3671 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoll(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3669: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3670,3683 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoull(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3681: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3675,3688 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoull(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3686: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3689,3695 **** echo "$ac_t""$ac_c99_wchar" 1>&6 echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6 ! echo "configure:3693: checking for enabled ISO C99 support" >&5 if test x"$ac_c99_math" = x"no" || test x"$ac_c99_stdio" = x"no" || test x"$ac_c99_stdlib" = x"no" || --- 3694,3700 ---- echo "$ac_t""$ac_c99_wchar" 1>&6 echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6 ! echo "configure:3698: checking for enabled ISO C99 support" >&5 if test x"$ac_c99_math" = x"no" || test x"$ac_c99_stdio" = x"no" || test x"$ac_c99_stdlib" = x"no" || *************** cross_compiling=$ac_cv_prog_cxx_cross *** 3737,3753 **** echo $ac_n "checking for enabled long long I/O support""... $ac_c" 1>&6 ! echo "configure:3741: checking for enabled long long I/O support" >&5 # iostreams require strtoll, strtoull to compile cat > conftest.$ac_ext < int main() { char* tmp; strtoll("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3751: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3742,3758 ---- echo $ac_n "checking for enabled long long I/O support""... $ac_c" 1>&6 ! echo "configure:3746: checking for enabled long long I/O support" >&5 # iostreams require strtoll, strtoull to compile cat > conftest.$ac_ext < int main() { char* tmp; strtoll("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3757,3770 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtoull("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3762,3775 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtoull("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** cross_compiling=$ac_cv_prog_cc_cross *** 3792,3798 **** echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6 ! echo "configure:3796: checking for c header strategy to use" >&5 # Check whether --enable-cheaders or --disable-cheaders was given. if test "${enable_cheaders+set}" = set; then enableval="$enable_cheaders" --- 3797,3803 ---- echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6 ! echo "configure:3801: checking for c header strategy to use" >&5 # Check whether --enable-cheaders or --disable-cheaders was given. if test "${enable_cheaders+set}" = set; then enableval="$enable_cheaders" *************** fi *** 3859,3865 **** echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6 ! echo "configure:3863: checking for thread model used by GCC" >&5 target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'` echo "$ac_t""$target_thread_file" 1>&6 --- 3864,3870 ---- echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6 ! echo "configure:3868: checking for thread model used by GCC" >&5 target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'` echo "$ac_t""$target_thread_file" 1>&6 *************** EXTRA_CXX_FLAGS="$enable_cxx_flags" *** 3912,3918 **** echo $ac_n "checking for exception model to use""... $ac_c" 1>&6 ! echo "configure:3916: checking for exception model to use" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. --- 3917,3923 ---- echo $ac_n "checking for exception model to use""... $ac_c" 1>&6 ! echo "configure:3921: checking for exception model to use" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. *************** if test "${enable_sjlj_exceptions+set}" *** 3927,3933 **** : else cat > conftest.$ac_ext << EOF ! #line 3931 "configure" struct S { ~S(); }; void bar(); void foo() --- 3932,3938 ---- : else cat > conftest.$ac_ext << EOF ! #line 3936 "configure" struct S { ~S(); }; void bar(); void foo() *************** void foo() *** 3938,3944 **** EOF old_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-S -fexceptions" ! if { (eval echo configure:3942: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then enable_sjlj_exceptions=yes elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then --- 3943,3949 ---- EOF old_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-S -fexceptions" ! if { (eval echo configure:3947: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then enable_sjlj_exceptions=yes elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then *************** cross_compiling=$ac_cv_prog_cc_cross *** 3971,3977 **** echo $ac_n "checking for use of libunwind""... $ac_c" 1>&6 ! echo "configure:3975: checking for use of libunwind" >&5 # Check whether --enable-libunwind-exceptions or --disable-libunwind-exceptions was given. if test "${enable_libunwind_exceptions+set}" = set; then enableval="$enable_libunwind_exceptions" --- 3976,3982 ---- echo $ac_n "checking for use of libunwind""... $ac_c" 1>&6 ! echo "configure:3980: checking for use of libunwind" >&5 # Check whether --enable-libunwind-exceptions or --disable-libunwind-exceptions was given. if test "${enable_libunwind_exceptions+set}" = set; then enableval="$enable_libunwind_exceptions" *************** for ac_hdr in string.h stdlib.h *** 4012,4028 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4016: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4026: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4017,4033 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4021: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4031: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** if test -n "$with_cross_host" || test x" *** 4089,4105 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4093: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4103: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4094,4110 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4098: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4108: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 4177,4188 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:4181: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:4186: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 4198,4204 ---- } EOF ! if { (eval echo configure:4202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 4227,4233 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:4231: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4232,4238 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:4236: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 4235,4248 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 4240,4253 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 4272,4283 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4276: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4281: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4305,4311 ---- ; return 0; } EOF ! if { (eval echo configure:4309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4329,4340 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4333: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4338: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4362,4368 ---- ; return 0; } EOF ! if { (eval echo configure:4366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4385,4396 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4389: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4394: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4418,4424 ---- ; return 0; } EOF ! if { (eval echo configure:4422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4443,4454 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4447: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4452: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4476,4482 ---- ; return 0; } EOF ! if { (eval echo configure:4480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4503,4518 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:4507: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:4516: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 4508,4523 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:4512: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:4521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 4534,4550 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4538: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4548: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4539,4555 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4543: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4553: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 4575,4591 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4579: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4580,4596 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4584: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4594: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 4618,4633 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:4622: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:4631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 4623,4638 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:4627: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:4636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 4640,4648 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:4644: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 4645,4653 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:4649: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 4651,4657 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:4655: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 4656,4662 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:4660: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 4667,4678 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4671: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4676: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4700,4706 ---- ; return 0; } EOF ! if { (eval echo configure:4704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4730,4741 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4734: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4739: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4763,4769 ---- ; return 0; } EOF ! if { (eval echo configure:4767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4786,4792 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4790: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 4791,4797 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4795: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:4790: checking for ISO C *** 4798,4814 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:4802: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4812: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4803,4819 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:4807: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 4832,4848 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:4836: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4846: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4837,4853 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:4841: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4851: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 4866,4872 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:4870: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4871,4877 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:4875: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 4874,4880 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 4890,4896 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:4894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 4911,4922 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4915: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4920: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4944,4950 ---- ; return 0; } EOF ! if { (eval echo configure:4948: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4969,4975 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4973: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 4974,4980 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4978: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:4973: checking for XPG2 *** 4980,4986 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:4984: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 4985,4991 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:4989: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 5039,5055 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5043: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5044,5060 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5048: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5058: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 5127,5138 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:5131: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:5136: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 5148,5154 ---- } EOF ! if { (eval echo configure:5152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 5177,5183 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:5181: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5182,5188 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:5186: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 5185,5198 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 5190,5203 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 5222,5233 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5226: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5231: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5255,5261 ---- ; return 0; } EOF ! if { (eval echo configure:5259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5279,5290 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5283: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5288: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5312,5318 ---- ; return 0; } EOF ! if { (eval echo configure:5316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5335,5346 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5339: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5344: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5368,5374 ---- ; return 0; } EOF ! if { (eval echo configure:5372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5393,5404 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5397: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5402: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5426,5432 ---- ; return 0; } EOF ! if { (eval echo configure:5430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5453,5468 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:5457: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:5466: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 5458,5473 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:5462: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:5471: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 5484,5500 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5488: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5498: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5489,5505 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5493: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5503: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 5525,5541 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5529: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5530,5546 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5534: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5544: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 5568,5583 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:5572: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:5581: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 5573,5588 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:5577: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:5586: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 5590,5598 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:5594: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 5595,5603 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:5599: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 5601,5607 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:5605: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 5606,5612 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:5610: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 5617,5628 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5621: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5626: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5650,5656 ---- ; return 0; } EOF ! if { (eval echo configure:5654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5680,5691 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5684: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5689: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5713,5719 ---- ; return 0; } EOF ! if { (eval echo configure:5717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5736,5742 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5740: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 5741,5747 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5745: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:5740: checking for ISO C *** 5748,5764 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:5752: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5762: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5753,5769 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:5757: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5767: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 5782,5798 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:5786: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5796: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5787,5803 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:5791: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5801: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 5816,5822 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:5820: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5821,5827 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:5825: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 5824,5830 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 5840,5846 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:5844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 5861,5872 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5865: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5870: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5894,5900 ---- ; return 0; } EOF ! if { (eval echo configure:5898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5919,5925 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5923: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 5924,5930 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5928: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:5923: checking for XPG2 *** 5930,5936 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:5934: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 5935,5941 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:5939: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 5983,5999 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5987: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5997: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5988,6004 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5992: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6002: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 6071,6082 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:6075: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:6080: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 6092,6098 ---- } EOF ! if { (eval echo configure:6096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 6121,6127 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:6125: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6126,6132 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:6130: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 6129,6142 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 6134,6147 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 6166,6177 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6170: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6175: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6199,6205 ---- ; return 0; } EOF ! if { (eval echo configure:6203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6223,6234 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6227: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6232: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6256,6262 ---- ; return 0; } EOF ! if { (eval echo configure:6260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6279,6290 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6283: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6288: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6312,6318 ---- ; return 0; } EOF ! if { (eval echo configure:6316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6337,6348 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6341: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6346: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6370,6376 ---- ; return 0; } EOF ! if { (eval echo configure:6374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6397,6412 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:6401: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:6410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 6402,6417 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:6406: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:6415: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 6428,6444 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6432: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6442: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6433,6449 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6437: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6447: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 6469,6485 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6473: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6483: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6474,6490 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6478: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6488: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 6512,6527 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:6516: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:6525: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 6517,6532 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:6521: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:6530: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 6534,6542 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:6538: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 6539,6547 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:6543: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 6545,6551 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:6549: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 6550,6556 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:6554: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 6561,6572 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6565: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6570: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6594,6600 ---- ; return 0; } EOF ! if { (eval echo configure:6598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6624,6635 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6628: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6633: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6657,6663 ---- ; return 0; } EOF ! if { (eval echo configure:6661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6680,6686 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6684: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 6685,6691 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6689: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:6684: checking for ISO C *** 6692,6708 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:6696: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6706: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6697,6713 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:6701: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 6726,6742 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:6730: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6740: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6731,6747 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:6735: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6745: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 6760,6766 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:6764: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6765,6771 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:6769: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 6768,6774 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 6784,6790 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:6788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 6805,6816 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6809: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6814: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6838,6844 ---- ; return 0; } EOF ! if { (eval echo configure:6842: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6863,6869 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6867: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 6868,6874 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6872: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:6867: checking for XPG2 *** 6874,6880 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:6878: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 6879,6885 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:6883: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 6916,6932 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6920: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6930: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6921,6937 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6925: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6935: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 7002,7013 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:7006: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:7011: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 7023,7029 ---- } EOF ! if { (eval echo configure:7027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 7052,7058 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:7056: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7057,7063 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:7061: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 7060,7073 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7065,7078 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 7097,7108 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7101: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7106: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7130,7136 ---- ; return 0; } EOF ! if { (eval echo configure:7134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7154,7165 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7158: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7163: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7187,7193 ---- ; return 0; } EOF ! if { (eval echo configure:7191: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7210,7221 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7214: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7219: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7243,7249 ---- ; return 0; } EOF ! if { (eval echo configure:7247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7268,7279 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7272: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7277: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7301,7307 ---- ; return 0; } EOF ! if { (eval echo configure:7305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7328,7343 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:7332: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:7341: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 7333,7348 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:7337: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:7346: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 7359,7375 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7363: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7373: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7364,7380 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7368: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7378: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 7400,7416 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7404: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7414: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7405,7421 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7409: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7419: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 7443,7458 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:7447: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:7456: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 7448,7463 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:7452: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:7461: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 7465,7473 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:7469: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 7470,7478 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:7474: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 7476,7482 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:7480: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 7481,7487 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:7485: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 7492,7503 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7496: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7501: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7525,7531 ---- ; return 0; } EOF ! if { (eval echo configure:7529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7555,7566 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7559: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7564: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7588,7594 ---- ; return 0; } EOF ! if { (eval echo configure:7592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7611,7617 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7615: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 7616,7622 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7620: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:7615: checking for ISO C *** 7623,7639 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:7627: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7637: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7628,7644 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:7632: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7642: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 7657,7673 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:7661: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7671: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7662,7678 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:7666: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7676: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 7691,7697 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:7695: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7696,7702 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:7700: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 7699,7705 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7715,7721 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:7719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 7736,7747 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7740: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7745: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7769,7775 ---- ; return 0; } EOF ! if { (eval echo configure:7773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7794,7800 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7798: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 7799,7805 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7803: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:7798: checking for XPG2 *** 7805,7811 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:7809: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 7810,7816 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:7814: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 7875,7886 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:7879: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:7884: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 7896,7902 ---- } EOF ! if { (eval echo configure:7900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 7925,7931 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:7929: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7930,7936 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:7934: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 7933,7946 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7938,7951 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 7970,7981 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7974: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7979: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 8003,8009 ---- ; return 0; } EOF ! if { (eval echo configure:8007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 8027,8038 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8031: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:8036: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 8060,8066 ---- ; return 0; } EOF ! if { (eval echo configure:8064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 8083,8094 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8087: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:8092: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 8116,8122 ---- ; return 0; } EOF ! if { (eval echo configure:8120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 8141,8152 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8145: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:8150: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 8174,8180 ---- ; return 0; } EOF ! if { (eval echo configure:8178: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 8201,8216 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:8205: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:8214: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 8206,8221 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:8210: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:8219: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 8232,8248 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:8236: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8246: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 8237,8253 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:8241: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8251: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 8273,8289 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:8277: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8287: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 8278,8294 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:8282: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8292: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 8316,8331 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:8320: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:8329: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 8321,8336 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:8325: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:8334: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 8338,8346 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:8342: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 8343,8351 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:8347: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 8349,8355 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:8353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 8354,8360 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:8358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 8365,8376 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8369: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:8374: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 8398,8404 ---- ; return 0; } EOF ! if { (eval echo configure:8402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 8428,8439 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8432: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:8437: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 8461,8467 ---- ; return 0; } EOF ! if { (eval echo configure:8465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 8484,8490 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:8488: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 8489,8495 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:8493: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:8488: checking for ISO C *** 8496,8512 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:8500: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8510: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 8501,8517 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:8505: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8515: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 8530,8546 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:8534: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8544: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 8535,8551 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:8539: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8549: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 8564,8570 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:8568: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 8569,8575 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:8573: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 8572,8578 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 8588,8594 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:8592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 8609,8620 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8613: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:8618: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 8642,8648 ---- ; return 0; } EOF ! if { (eval echo configure:8646: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 8667,8673 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:8671: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 8672,8678 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:8676: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:8671: checking for XPG2 *** 8678,8684 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:8682: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 8683,8689 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:8687: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** else *** 9021,9037 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:9025: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:9035: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 9026,9042 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:9030: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:9040: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** cross_compiling=$ac_cv_prog_cxx_cross *** 9082,9091 **** # Check for -ffunction-sections -fdata-sections echo $ac_n "checking for g++ that supports -ffunction-sections -fdata-sections""... $ac_c" 1>&6 ! echo "configure:9086: checking for g++ that supports -ffunction-sections -fdata-sections" >&5 CXXFLAGS='-Werror -ffunction-sections -fdata-sections' cat > conftest.$ac_ext <&6 ! echo "configure:9091: checking for g++ that supports -ffunction-sections -fdata-sections" >&5 CXXFLAGS='-Werror -ffunction-sections -fdata-sections' cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_fdsections=yes else --- 9098,9104 ---- ; return 0; } EOF ! if { (eval echo configure:9102: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_fdsections=yes else *************** cross_compiling=$ac_cv_prog_cc_cross *** 9175,9186 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:9179: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:9184: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 9196,9202 ---- } EOF ! if { (eval echo configure:9200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 9226,9232 **** echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6 ! echo "configure:9230: checking for __builtin_abs declaration" >&5 if test x${glibcpp_cv_func___builtin_abs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9231,9237 ---- echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6 ! echo "configure:9235: checking for __builtin_abs declaration" >&5 if test x${glibcpp_cv_func___builtin_abs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9241,9254 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:9252: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_abs_use=yes else --- 9246,9259 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:9257: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_abs_use=yes else *************** fi *** 9272,9292 **** echo "$ac_t""$glibcpp_cv_func___builtin_abs_use" 1>&6 if test x$glibcpp_cv_func___builtin_abs_use = x"yes"; then echo $ac_n "checking for __builtin_abs linkage""... $ac_c" 1>&6 ! echo "configure:9276: checking for __builtin_abs linkage" >&5 if test x${glibcpp_cv_func___builtin_abs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:9290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_abs_link=yes else --- 9277,9297 ---- echo "$ac_t""$glibcpp_cv_func___builtin_abs_use" 1>&6 if test x$glibcpp_cv_func___builtin_abs_use = x"yes"; then echo $ac_n "checking for __builtin_abs linkage""... $ac_c" 1>&6 ! echo "configure:9281: checking for __builtin_abs linkage" >&5 if test x${glibcpp_cv_func___builtin_abs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:9295: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_abs_link=yes else *************** EOF *** 9312,9318 **** echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6 ! echo "configure:9316: checking for __builtin_fabsf declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9317,9323 ---- echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6 ! echo "configure:9321: checking for __builtin_fabsf declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9327,9340 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:9338: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_use=yes else --- 9332,9345 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:9343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_use=yes else *************** fi *** 9358,9378 **** echo "$ac_t""$glibcpp_cv_func___builtin_fabsf_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsf_use = x"yes"; then echo $ac_n "checking for __builtin_fabsf linkage""... $ac_c" 1>&6 ! echo "configure:9362: checking for __builtin_fabsf linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:9376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_link=yes else --- 9363,9383 ---- echo "$ac_t""$glibcpp_cv_func___builtin_fabsf_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsf_use = x"yes"; then echo $ac_n "checking for __builtin_fabsf linkage""... $ac_c" 1>&6 ! echo "configure:9367: checking for __builtin_fabsf linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:9381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_link=yes else *************** EOF *** 9398,9404 **** echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6 ! echo "configure:9402: checking for __builtin_fabs declaration" >&5 if test x${glibcpp_cv_func___builtin_fabs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9403,9409 ---- echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6 ! echo "configure:9407: checking for __builtin_fabs declaration" >&5 if test x${glibcpp_cv_func___builtin_fabs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9413,9426 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:9424: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_use=yes else --- 9418,9431 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:9429: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_use=yes else *************** fi *** 9444,9464 **** echo "$ac_t""$glibcpp_cv_func___builtin_fabs_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabs_use = x"yes"; then echo $ac_n "checking for __builtin_fabs linkage""... $ac_c" 1>&6 ! echo "configure:9448: checking for __builtin_fabs linkage" >&5 if test x${glibcpp_cv_func___builtin_fabs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:9462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_link=yes else --- 9449,9469 ---- echo "$ac_t""$glibcpp_cv_func___builtin_fabs_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabs_use = x"yes"; then echo $ac_n "checking for __builtin_fabs linkage""... $ac_c" 1>&6 ! echo "configure:9453: checking for __builtin_fabs linkage" >&5 if test x${glibcpp_cv_func___builtin_fabs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:9467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_link=yes else *************** EOF *** 9484,9490 **** echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6 ! echo "configure:9488: checking for __builtin_fabsl declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9489,9495 ---- echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6 ! echo "configure:9493: checking for __builtin_fabsl declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9499,9512 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:9510: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_use=yes else --- 9504,9517 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:9515: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_use=yes else *************** fi *** 9530,9550 **** echo "$ac_t""$glibcpp_cv_func___builtin_fabsl_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsl_use = x"yes"; then echo $ac_n "checking for __builtin_fabsl linkage""... $ac_c" 1>&6 ! echo "configure:9534: checking for __builtin_fabsl linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:9548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_link=yes else --- 9535,9555 ---- echo "$ac_t""$glibcpp_cv_func___builtin_fabsl_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsl_use = x"yes"; then echo $ac_n "checking for __builtin_fabsl linkage""... $ac_c" 1>&6 ! echo "configure:9539: checking for __builtin_fabsl linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:9553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_link=yes else *************** EOF *** 9570,9576 **** echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6 ! echo "configure:9574: checking for __builtin_labs declaration" >&5 if test x${glibcpp_cv_func___builtin_labs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9575,9581 ---- echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6 ! echo "configure:9579: checking for __builtin_labs declaration" >&5 if test x${glibcpp_cv_func___builtin_labs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9585,9598 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:9596: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_labs_use=yes else --- 9590,9603 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:9601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_labs_use=yes else *************** fi *** 9616,9636 **** echo "$ac_t""$glibcpp_cv_func___builtin_labs_use" 1>&6 if test x$glibcpp_cv_func___builtin_labs_use = x"yes"; then echo $ac_n "checking for __builtin_labs linkage""... $ac_c" 1>&6 ! echo "configure:9620: checking for __builtin_labs linkage" >&5 if test x${glibcpp_cv_func___builtin_labs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:9634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_labs_link=yes else --- 9621,9641 ---- echo "$ac_t""$glibcpp_cv_func___builtin_labs_use" 1>&6 if test x$glibcpp_cv_func___builtin_labs_use = x"yes"; then echo $ac_n "checking for __builtin_labs linkage""... $ac_c" 1>&6 ! echo "configure:9625: checking for __builtin_labs linkage" >&5 if test x${glibcpp_cv_func___builtin_labs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:9639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_labs_link=yes else *************** EOF *** 9657,9663 **** echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:9661: checking for __builtin_sqrtf declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9662,9668 ---- echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:9666: checking for __builtin_sqrtf declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9672,9685 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:9683: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_use=yes else --- 9677,9690 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:9688: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_use=yes else *************** fi *** 9703,9723 **** echo "$ac_t""$glibcpp_cv_func___builtin_sqrtf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtf_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtf linkage""... $ac_c" 1>&6 ! echo "configure:9707: checking for __builtin_sqrtf linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:9721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_link=yes else --- 9708,9728 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sqrtf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtf_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtf linkage""... $ac_c" 1>&6 ! echo "configure:9712: checking for __builtin_sqrtf linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:9726: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_link=yes else *************** EOF *** 9743,9749 **** echo $ac_n "checking for __builtin_sqrt declaration""... $ac_c" 1>&6 ! echo "configure:9747: checking for __builtin_sqrt declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrt_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9748,9754 ---- echo $ac_n "checking for __builtin_sqrt declaration""... $ac_c" 1>&6 ! echo "configure:9752: checking for __builtin_sqrt declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrt_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9758,9771 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:9769: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_use=yes else --- 9763,9776 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:9774: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_use=yes else *************** fi *** 9789,9809 **** echo "$ac_t""$glibcpp_cv_func___builtin_sqrt_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrt_use = x"yes"; then echo $ac_n "checking for __builtin_sqrt linkage""... $ac_c" 1>&6 ! echo "configure:9793: checking for __builtin_sqrt linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrt_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:9807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_link=yes else --- 9794,9814 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sqrt_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrt_use = x"yes"; then echo $ac_n "checking for __builtin_sqrt linkage""... $ac_c" 1>&6 ! echo "configure:9798: checking for __builtin_sqrt linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrt_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:9812: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_link=yes else *************** EOF *** 9829,9835 **** echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:9833: checking for __builtin_sqrtl declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9834,9840 ---- echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:9838: checking for __builtin_sqrtl declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9844,9857 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:9855: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_use=yes else --- 9849,9862 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:9860: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_use=yes else *************** fi *** 9875,9895 **** echo "$ac_t""$glibcpp_cv_func___builtin_sqrtl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtl_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtl linkage""... $ac_c" 1>&6 ! echo "configure:9879: checking for __builtin_sqrtl linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:9893: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_link=yes else --- 9880,9900 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sqrtl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtl_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtl linkage""... $ac_c" 1>&6 ! echo "configure:9884: checking for __builtin_sqrtl linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:9898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_link=yes else *************** EOF *** 9916,9922 **** echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6 ! echo "configure:9920: checking for __builtin_sinf declaration" >&5 if test x${glibcpp_cv_func___builtin_sinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9921,9927 ---- echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6 ! echo "configure:9925: checking for __builtin_sinf declaration" >&5 if test x${glibcpp_cv_func___builtin_sinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9931,9944 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9942: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_use=yes else --- 9936,9949 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9947: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_use=yes else *************** fi *** 9962,9982 **** echo "$ac_t""$glibcpp_cv_func___builtin_sinf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinf_use = x"yes"; then echo $ac_n "checking for __builtin_sinf linkage""... $ac_c" 1>&6 ! echo "configure:9966: checking for __builtin_sinf linkage" >&5 if test x${glibcpp_cv_func___builtin_sinf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_link=yes else --- 9967,9987 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sinf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinf_use = x"yes"; then echo $ac_n "checking for __builtin_sinf linkage""... $ac_c" 1>&6 ! echo "configure:9971: checking for __builtin_sinf linkage" >&5 if test x${glibcpp_cv_func___builtin_sinf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9985: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_link=yes else *************** EOF *** 10002,10008 **** echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6 ! echo "configure:10006: checking for __builtin_sin declaration" >&5 if test x${glibcpp_cv_func___builtin_sin_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10007,10013 ---- echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6 ! echo "configure:10011: checking for __builtin_sin declaration" >&5 if test x${glibcpp_cv_func___builtin_sin_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10017,10030 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:10028: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sin_use=yes else --- 10022,10035 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:10033: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sin_use=yes else *************** fi *** 10048,10068 **** echo "$ac_t""$glibcpp_cv_func___builtin_sin_use" 1>&6 if test x$glibcpp_cv_func___builtin_sin_use = x"yes"; then echo $ac_n "checking for __builtin_sin linkage""... $ac_c" 1>&6 ! echo "configure:10052: checking for __builtin_sin linkage" >&5 if test x${glibcpp_cv_func___builtin_sin_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:10066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sin_link=yes else --- 10053,10073 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sin_use" 1>&6 if test x$glibcpp_cv_func___builtin_sin_use = x"yes"; then echo $ac_n "checking for __builtin_sin linkage""... $ac_c" 1>&6 ! echo "configure:10057: checking for __builtin_sin linkage" >&5 if test x${glibcpp_cv_func___builtin_sin_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:10071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sin_link=yes else *************** EOF *** 10088,10094 **** echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6 ! echo "configure:10092: checking for __builtin_sinl declaration" >&5 if test x${glibcpp_cv_func___builtin_sinl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10093,10099 ---- echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6 ! echo "configure:10097: checking for __builtin_sinl declaration" >&5 if test x${glibcpp_cv_func___builtin_sinl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10103,10116 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:10114: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_use=yes else --- 10108,10121 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:10119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_use=yes else *************** fi *** 10134,10154 **** echo "$ac_t""$glibcpp_cv_func___builtin_sinl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinl_use = x"yes"; then echo $ac_n "checking for __builtin_sinl linkage""... $ac_c" 1>&6 ! echo "configure:10138: checking for __builtin_sinl linkage" >&5 if test x${glibcpp_cv_func___builtin_sinl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:10152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_link=yes else --- 10139,10159 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sinl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinl_use = x"yes"; then echo $ac_n "checking for __builtin_sinl linkage""... $ac_c" 1>&6 ! echo "configure:10143: checking for __builtin_sinl linkage" >&5 if test x${glibcpp_cv_func___builtin_sinl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:10157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_link=yes else *************** EOF *** 10175,10181 **** echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6 ! echo "configure:10179: checking for __builtin_cosf declaration" >&5 if test x${glibcpp_cv_func___builtin_cosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10180,10186 ---- echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6 ! echo "configure:10184: checking for __builtin_cosf declaration" >&5 if test x${glibcpp_cv_func___builtin_cosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10190,10203 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:10201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_use=yes else --- 10195,10208 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:10206: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_use=yes else *************** fi *** 10221,10241 **** echo "$ac_t""$glibcpp_cv_func___builtin_cosf_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosf_use = x"yes"; then echo $ac_n "checking for __builtin_cosf linkage""... $ac_c" 1>&6 ! echo "configure:10225: checking for __builtin_cosf linkage" >&5 if test x${glibcpp_cv_func___builtin_cosf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:10239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_link=yes else --- 10226,10246 ---- echo "$ac_t""$glibcpp_cv_func___builtin_cosf_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosf_use = x"yes"; then echo $ac_n "checking for __builtin_cosf linkage""... $ac_c" 1>&6 ! echo "configure:10230: checking for __builtin_cosf linkage" >&5 if test x${glibcpp_cv_func___builtin_cosf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:10244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_link=yes else *************** EOF *** 10261,10267 **** echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6 ! echo "configure:10265: checking for __builtin_cos declaration" >&5 if test x${glibcpp_cv_func___builtin_cos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10266,10272 ---- echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6 ! echo "configure:10270: checking for __builtin_cos declaration" >&5 if test x${glibcpp_cv_func___builtin_cos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10276,10289 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:10287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cos_use=yes else --- 10281,10294 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:10292: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cos_use=yes else *************** fi *** 10307,10327 **** echo "$ac_t""$glibcpp_cv_func___builtin_cos_use" 1>&6 if test x$glibcpp_cv_func___builtin_cos_use = x"yes"; then echo $ac_n "checking for __builtin_cos linkage""... $ac_c" 1>&6 ! echo "configure:10311: checking for __builtin_cos linkage" >&5 if test x${glibcpp_cv_func___builtin_cos_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:10325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cos_link=yes else --- 10312,10332 ---- echo "$ac_t""$glibcpp_cv_func___builtin_cos_use" 1>&6 if test x$glibcpp_cv_func___builtin_cos_use = x"yes"; then echo $ac_n "checking for __builtin_cos linkage""... $ac_c" 1>&6 ! echo "configure:10316: checking for __builtin_cos linkage" >&5 if test x${glibcpp_cv_func___builtin_cos_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:10330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cos_link=yes else *************** EOF *** 10347,10353 **** echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6 ! echo "configure:10351: checking for __builtin_cosl declaration" >&5 if test x${glibcpp_cv_func___builtin_cosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10352,10358 ---- echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6 ! echo "configure:10356: checking for __builtin_cosl declaration" >&5 if test x${glibcpp_cv_func___builtin_cosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10362,10375 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:10373: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_use=yes else --- 10367,10380 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:10378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_use=yes else *************** fi *** 10393,10413 **** echo "$ac_t""$glibcpp_cv_func___builtin_cosl_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosl_use = x"yes"; then echo $ac_n "checking for __builtin_cosl linkage""... $ac_c" 1>&6 ! echo "configure:10397: checking for __builtin_cosl linkage" >&5 if test x${glibcpp_cv_func___builtin_cosl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:10411: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_link=yes else --- 10398,10418 ---- echo "$ac_t""$glibcpp_cv_func___builtin_cosl_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosl_use = x"yes"; then echo $ac_n "checking for __builtin_cosl linkage""... $ac_c" 1>&6 ! echo "configure:10402: checking for __builtin_cosl linkage" >&5 if test x${glibcpp_cv_func___builtin_cosl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:10416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_link=yes else *************** EOF *** 10498,10504 **** CXXFLAGS='-fno-builtins -D_GNU_SOURCE' echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:10502: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10503,10509 ---- CXXFLAGS='-fno-builtins -D_GNU_SOURCE' echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:10507: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 10506,10512 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 10522,10528 ---- sin() ; return 0; } EOF ! if { (eval echo configure:10526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 10543,10549 **** echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6 ! echo "configure:10547: checking for isinf declaration" >&5 if test x${glibcpp_cv_func_isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10548,10554 ---- echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6 ! echo "configure:10552: checking for isinf declaration" >&5 if test x${glibcpp_cv_func_isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10558,10564 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10563,10569 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10569,10575 **** isinf(0); ; return 0; } EOF ! if { (eval echo configure:10573: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinf_use=yes else --- 10574,10580 ---- isinf(0); ; return 0; } EOF ! if { (eval echo configure:10578: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinf_use=yes else *************** fi *** 10596,10607 **** for ac_func in isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10600: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10605: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 10629,10635 ---- ; return 0; } EOF ! if { (eval echo configure:10633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10651,10657 **** else echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6 ! echo "configure:10655: checking for _isinf declaration" >&5 if test x${glibcpp_cv_func__isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10656,10662 ---- else echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6 ! echo "configure:10660: checking for _isinf declaration" >&5 if test x${glibcpp_cv_func__isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10666,10672 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10671,10677 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10677,10683 **** _isinf(0); ; return 0; } EOF ! if { (eval echo configure:10681: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinf_use=yes else --- 10682,10688 ---- _isinf(0); ; return 0; } EOF ! if { (eval echo configure:10686: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinf_use=yes else *************** fi *** 10704,10715 **** for ac_func in _isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10708: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10713: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 10737,10743 ---- ; return 0; } EOF ! if { (eval echo configure:10741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10762,10768 **** echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6 ! echo "configure:10766: checking for isnan declaration" >&5 if test x${glibcpp_cv_func_isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10767,10773 ---- echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6 ! echo "configure:10771: checking for isnan declaration" >&5 if test x${glibcpp_cv_func_isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10777,10783 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10782,10788 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10788,10794 **** isnan(0); ; return 0; } EOF ! if { (eval echo configure:10792: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnan_use=yes else --- 10793,10799 ---- isnan(0); ; return 0; } EOF ! if { (eval echo configure:10797: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnan_use=yes else *************** fi *** 10815,10826 **** for ac_func in isnan do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10819: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10824: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 10848,10854 ---- ; return 0; } EOF ! if { (eval echo configure:10852: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10870,10876 **** else echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6 ! echo "configure:10874: checking for _isnan declaration" >&5 if test x${glibcpp_cv_func__isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10875,10881 ---- else echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6 ! echo "configure:10879: checking for _isnan declaration" >&5 if test x${glibcpp_cv_func__isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10885,10891 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10890,10896 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10896,10902 **** _isnan(0); ; return 0; } EOF ! if { (eval echo configure:10900: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnan_use=yes else --- 10901,10907 ---- _isnan(0); ; return 0; } EOF ! if { (eval echo configure:10905: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnan_use=yes else *************** fi *** 10923,10934 **** for ac_func in _isnan do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10927: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10932: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 10956,10962 ---- ; return 0; } EOF ! if { (eval echo configure:10960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10981,10987 **** echo $ac_n "checking for finite declaration""... $ac_c" 1>&6 ! echo "configure:10985: checking for finite declaration" >&5 if test x${glibcpp_cv_func_finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10986,10992 ---- echo $ac_n "checking for finite declaration""... $ac_c" 1>&6 ! echo "configure:10990: checking for finite declaration" >&5 if test x${glibcpp_cv_func_finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10996,11002 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11001,11007 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11007,11013 **** finite(0); ; return 0; } EOF ! if { (eval echo configure:11011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finite_use=yes else --- 11012,11018 ---- finite(0); ; return 0; } EOF ! if { (eval echo configure:11016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finite_use=yes else *************** fi *** 11034,11045 **** for ac_func in finite do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11038: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11043: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11067,11073 ---- ; return 0; } EOF ! if { (eval echo configure:11071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11089,11095 **** else echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6 ! echo "configure:11093: checking for _finite declaration" >&5 if test x${glibcpp_cv_func__finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11094,11100 ---- else echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6 ! echo "configure:11098: checking for _finite declaration" >&5 if test x${glibcpp_cv_func__finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11104,11110 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11109,11115 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11115,11121 **** _finite(0); ; return 0; } EOF ! if { (eval echo configure:11119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finite_use=yes else --- 11120,11126 ---- _finite(0); ; return 0; } EOF ! if { (eval echo configure:11124: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finite_use=yes else *************** fi *** 11142,11153 **** for ac_func in _finite do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11146: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11151: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11175,11181 ---- ; return 0; } EOF ! if { (eval echo configure:11179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11200,11206 **** echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6 ! echo "configure:11204: checking for copysign declaration" >&5 if test x${glibcpp_cv_func_copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11205,11211 ---- echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6 ! echo "configure:11209: checking for copysign declaration" >&5 if test x${glibcpp_cv_func_copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11215,11228 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:11226: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysign_use=yes else --- 11220,11233 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:11231: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysign_use=yes else *************** fi *** 11249,11260 **** for ac_func in copysign do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11253: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11258: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11282,11288 ---- ; return 0; } EOF ! if { (eval echo configure:11286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11304,11310 **** else echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6 ! echo "configure:11308: checking for _copysign declaration" >&5 if test x${glibcpp_cv_func__copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11309,11315 ---- else echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6 ! echo "configure:11313: checking for _copysign declaration" >&5 if test x${glibcpp_cv_func__copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11319,11332 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:11330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysign_use=yes else --- 11324,11337 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:11335: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysign_use=yes else *************** fi *** 11353,11364 **** for ac_func in _copysign do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11357: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11362: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11386,11392 ---- ; return 0; } EOF ! if { (eval echo configure:11390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11411,11417 **** echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6 ! echo "configure:11415: checking for sincos declaration" >&5 if test x${glibcpp_cv_func_sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11416,11422 ---- echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6 ! echo "configure:11420: checking for sincos declaration" >&5 if test x${glibcpp_cv_func_sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11426,11439 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11437: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincos_use=yes else --- 11431,11444 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11442: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincos_use=yes else *************** fi *** 11460,11471 **** for ac_func in sincos do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11464: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11469: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11493,11499 ---- ; return 0; } EOF ! if { (eval echo configure:11497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11515,11521 **** else echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6 ! echo "configure:11519: checking for _sincos declaration" >&5 if test x${glibcpp_cv_func__sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11520,11526 ---- else echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6 ! echo "configure:11524: checking for _sincos declaration" >&5 if test x${glibcpp_cv_func__sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11530,11543 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincos_use=yes else --- 11535,11548 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11546: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincos_use=yes else *************** fi *** 11564,11575 **** for ac_func in _sincos do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11568: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11573: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11597,11603 ---- ; return 0; } EOF ! if { (eval echo configure:11601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11622,11628 **** echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6 ! echo "configure:11626: checking for fpclass declaration" >&5 if test x${glibcpp_cv_func_fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11627,11633 ---- echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6 ! echo "configure:11631: checking for fpclass declaration" >&5 if test x${glibcpp_cv_func_fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11637,11643 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11642,11648 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11648,11654 **** fpclass(0); ; return 0; } EOF ! if { (eval echo configure:11652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fpclass_use=yes else --- 11653,11659 ---- fpclass(0); ; return 0; } EOF ! if { (eval echo configure:11657: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fpclass_use=yes else *************** fi *** 11675,11686 **** for ac_func in fpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11679: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11684: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11708,11714 ---- ; return 0; } EOF ! if { (eval echo configure:11712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11730,11736 **** else echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6 ! echo "configure:11734: checking for _fpclass declaration" >&5 if test x${glibcpp_cv_func__fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11735,11741 ---- else echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6 ! echo "configure:11739: checking for _fpclass declaration" >&5 if test x${glibcpp_cv_func__fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11745,11751 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11750,11756 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11756,11762 **** _fpclass(0); ; return 0; } EOF ! if { (eval echo configure:11760: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fpclass_use=yes else --- 11761,11767 ---- _fpclass(0); ; return 0; } EOF ! if { (eval echo configure:11765: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fpclass_use=yes else *************** fi *** 11783,11794 **** for ac_func in _fpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11787: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11792: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11816,11822 ---- ; return 0; } EOF ! if { (eval echo configure:11820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11841,11847 **** echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11845: checking for qfpclass declaration" >&5 if test x${glibcpp_cv_func_qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11846,11852 ---- echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11850: checking for qfpclass declaration" >&5 if test x${glibcpp_cv_func_qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11856,11862 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11861,11867 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11867,11873 **** qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_qfpclass_use=yes else --- 11872,11878 ---- qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11876: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_qfpclass_use=yes else *************** fi *** 11894,11905 **** for ac_func in qfpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11898: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11903: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11927,11933 ---- ; return 0; } EOF ! if { (eval echo configure:11931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11949,11955 **** else echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11953: checking for _qfpclass declaration" >&5 if test x${glibcpp_cv_func__qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11954,11960 ---- else echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11958: checking for _qfpclass declaration" >&5 if test x${glibcpp_cv_func__qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11964,11970 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11969,11975 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11975,11981 **** _qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11979: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__qfpclass_use=yes else --- 11980,11986 ---- _qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11984: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__qfpclass_use=yes else *************** fi *** 12002,12013 **** for ac_func in _qfpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12006: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12011: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12035,12041 ---- ; return 0; } EOF ! if { (eval echo configure:12039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12060,12066 **** echo $ac_n "checking for hypot declaration""... $ac_c" 1>&6 ! echo "configure:12064: checking for hypot declaration" >&5 if test x${glibcpp_cv_func_hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12065,12071 ---- echo $ac_n "checking for hypot declaration""... $ac_c" 1>&6 ! echo "configure:12069: checking for hypot declaration" >&5 if test x${glibcpp_cv_func_hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12075,12088 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:12086: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypot_use=yes else --- 12080,12093 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:12091: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypot_use=yes else *************** fi *** 12109,12120 **** for ac_func in hypot do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12113: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12118: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12142,12148 ---- ; return 0; } EOF ! if { (eval echo configure:12146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12164,12170 **** else echo $ac_n "checking for _hypot declaration""... $ac_c" 1>&6 ! echo "configure:12168: checking for _hypot declaration" >&5 if test x${glibcpp_cv_func__hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12169,12175 ---- else echo $ac_n "checking for _hypot declaration""... $ac_c" 1>&6 ! echo "configure:12173: checking for _hypot declaration" >&5 if test x${glibcpp_cv_func__hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12179,12192 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:12190: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypot_use=yes else --- 12184,12197 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:12195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypot_use=yes else *************** fi *** 12213,12224 **** for ac_func in _hypot do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12217: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12222: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12246,12252 ---- ; return 0; } EOF ! if { (eval echo configure:12250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12271,12277 **** echo $ac_n "checking for float trig functions""... $ac_c" 1>&6 ! echo "configure:12275: checking for float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 12276,12282 ---- echo $ac_n "checking for float trig functions""... $ac_c" 1>&6 ! echo "configure:12280: checking for float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12285,12291 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 12290,12296 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 12294,12300 **** coshf sinhf tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:12298: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_trig_use=yes else --- 12299,12305 ---- coshf sinhf tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:12303: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_trig_use=yes else *************** fi *** 12320,12331 **** coshf sinhf tanhf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12324: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12329: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12353,12359 ---- ; return 0; } EOF ! if { (eval echo configure:12357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12376,12382 **** echo $ac_n "checking for float round functions""... $ac_c" 1>&6 ! echo "configure:12380: checking for float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 12381,12387 ---- echo $ac_n "checking for float round functions""... $ac_c" 1>&6 ! echo "configure:12385: checking for float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12390,12403 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceilf floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:12401: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_round_use=yes else --- 12395,12408 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceilf floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:12406: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_round_use=yes else *************** fi *** 12421,12432 **** for ac_func in ceilf floorf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12425: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12430: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12454,12460 ---- ; return 0; } EOF ! if { (eval echo configure:12458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12478,12484 **** echo $ac_n "checking for expf declaration""... $ac_c" 1>&6 ! echo "configure:12482: checking for expf declaration" >&5 if test x${glibcpp_cv_func_expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12483,12489 ---- echo $ac_n "checking for expf declaration""... $ac_c" 1>&6 ! echo "configure:12487: checking for expf declaration" >&5 if test x${glibcpp_cv_func_expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12493,12499 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12498,12504 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12504,12510 **** expf(0); ; return 0; } EOF ! if { (eval echo configure:12508: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expf_use=yes else --- 12509,12515 ---- expf(0); ; return 0; } EOF ! if { (eval echo configure:12513: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expf_use=yes else *************** fi *** 12531,12542 **** for ac_func in expf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12535: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12540: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12564,12570 ---- ; return 0; } EOF ! if { (eval echo configure:12568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12586,12592 **** else echo $ac_n "checking for _expf declaration""... $ac_c" 1>&6 ! echo "configure:12590: checking for _expf declaration" >&5 if test x${glibcpp_cv_func__expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12591,12597 ---- else echo $ac_n "checking for _expf declaration""... $ac_c" 1>&6 ! echo "configure:12595: checking for _expf declaration" >&5 if test x${glibcpp_cv_func__expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12601,12607 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12606,12612 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12612,12618 **** _expf(0); ; return 0; } EOF ! if { (eval echo configure:12616: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expf_use=yes else --- 12617,12623 ---- _expf(0); ; return 0; } EOF ! if { (eval echo configure:12621: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expf_use=yes else *************** fi *** 12639,12650 **** for ac_func in _expf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12643: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12648: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12672,12678 ---- ; return 0; } EOF ! if { (eval echo configure:12676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12697,12703 **** echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6 ! echo "configure:12701: checking for isnanf declaration" >&5 if test x${glibcpp_cv_func_isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12702,12708 ---- echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6 ! echo "configure:12706: checking for isnanf declaration" >&5 if test x${glibcpp_cv_func_isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12712,12718 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12717,12723 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12723,12729 **** isnanf(0); ; return 0; } EOF ! if { (eval echo configure:12727: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanf_use=yes else --- 12728,12734 ---- isnanf(0); ; return 0; } EOF ! if { (eval echo configure:12732: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanf_use=yes else *************** fi *** 12750,12761 **** for ac_func in isnanf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12754: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12759: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12783,12789 ---- ; return 0; } EOF ! if { (eval echo configure:12787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12805,12811 **** else echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6 ! echo "configure:12809: checking for _isnanf declaration" >&5 if test x${glibcpp_cv_func__isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12810,12816 ---- else echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6 ! echo "configure:12814: checking for _isnanf declaration" >&5 if test x${glibcpp_cv_func__isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12820,12826 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12825,12831 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12831,12837 **** _isnanf(0); ; return 0; } EOF ! if { (eval echo configure:12835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanf_use=yes else --- 12836,12842 ---- _isnanf(0); ; return 0; } EOF ! if { (eval echo configure:12840: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanf_use=yes else *************** fi *** 12858,12869 **** for ac_func in _isnanf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12862: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12867: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12891,12897 ---- ; return 0; } EOF ! if { (eval echo configure:12895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12916,12922 **** echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6 ! echo "configure:12920: checking for isinff declaration" >&5 if test x${glibcpp_cv_func_isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12921,12927 ---- echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6 ! echo "configure:12925: checking for isinff declaration" >&5 if test x${glibcpp_cv_func_isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12931,12937 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12936,12942 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12942,12948 **** isinff(0); ; return 0; } EOF ! if { (eval echo configure:12946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinff_use=yes else --- 12947,12953 ---- isinff(0); ; return 0; } EOF ! if { (eval echo configure:12951: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinff_use=yes else *************** fi *** 12969,12980 **** for ac_func in isinff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12973: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12978: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13002,13008 ---- ; return 0; } EOF ! if { (eval echo configure:13006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13024,13030 **** else echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6 ! echo "configure:13028: checking for _isinff declaration" >&5 if test x${glibcpp_cv_func__isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13029,13035 ---- else echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6 ! echo "configure:13033: checking for _isinff declaration" >&5 if test x${glibcpp_cv_func__isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13039,13045 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13044,13050 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13050,13056 **** _isinff(0); ; return 0; } EOF ! if { (eval echo configure:13054: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinff_use=yes else --- 13055,13061 ---- _isinff(0); ; return 0; } EOF ! if { (eval echo configure:13059: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinff_use=yes else *************** fi *** 13077,13088 **** for ac_func in _isinff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13081: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13086: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13110,13116 ---- ; return 0; } EOF ! if { (eval echo configure:13114: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13135,13141 **** echo $ac_n "checking for atan2f declaration""... $ac_c" 1>&6 ! echo "configure:13139: checking for atan2f declaration" >&5 if test x${glibcpp_cv_func_atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13140,13146 ---- echo $ac_n "checking for atan2f declaration""... $ac_c" 1>&6 ! echo "configure:13144: checking for atan2f declaration" >&5 if test x${glibcpp_cv_func_atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13150,13163 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:13161: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2f_use=yes else --- 13155,13168 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:13166: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2f_use=yes else *************** fi *** 13184,13195 **** for ac_func in atan2f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13188: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13193: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13217,13223 ---- ; return 0; } EOF ! if { (eval echo configure:13221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13239,13245 **** else echo $ac_n "checking for _atan2f declaration""... $ac_c" 1>&6 ! echo "configure:13243: checking for _atan2f declaration" >&5 if test x${glibcpp_cv_func__atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13244,13250 ---- else echo $ac_n "checking for _atan2f declaration""... $ac_c" 1>&6 ! echo "configure:13248: checking for _atan2f declaration" >&5 if test x${glibcpp_cv_func__atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13254,13267 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:13265: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2f_use=yes else --- 13259,13272 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:13270: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2f_use=yes else *************** fi *** 13288,13299 **** for ac_func in _atan2f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13292: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13297: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13321,13327 ---- ; return 0; } EOF ! if { (eval echo configure:13325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13346,13352 **** echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6 ! echo "configure:13350: checking for fabsf declaration" >&5 if test x${glibcpp_cv_func_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13351,13357 ---- echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6 ! echo "configure:13355: checking for fabsf declaration" >&5 if test x${glibcpp_cv_func_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13361,13367 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13366,13372 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13372,13378 **** fabsf(0); ; return 0; } EOF ! if { (eval echo configure:13376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsf_use=yes else --- 13377,13383 ---- fabsf(0); ; return 0; } EOF ! if { (eval echo configure:13381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsf_use=yes else *************** fi *** 13399,13410 **** for ac_func in fabsf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13403: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13408: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13432,13438 ---- ; return 0; } EOF ! if { (eval echo configure:13436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13454,13460 **** else echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6 ! echo "configure:13458: checking for _fabsf declaration" >&5 if test x${glibcpp_cv_func__fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13459,13465 ---- else echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6 ! echo "configure:13463: checking for _fabsf declaration" >&5 if test x${glibcpp_cv_func__fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13469,13475 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13474,13480 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13480,13486 **** _fabsf(0); ; return 0; } EOF ! if { (eval echo configure:13484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsf_use=yes else --- 13485,13491 ---- _fabsf(0); ; return 0; } EOF ! if { (eval echo configure:13489: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsf_use=yes else *************** fi *** 13507,13518 **** for ac_func in _fabsf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13511: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13516: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13540,13546 ---- ; return 0; } EOF ! if { (eval echo configure:13544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13565,13571 **** echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6 ! echo "configure:13569: checking for fmodf declaration" >&5 if test x${glibcpp_cv_func_fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13570,13576 ---- echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6 ! echo "configure:13574: checking for fmodf declaration" >&5 if test x${glibcpp_cv_func_fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13580,13593 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodf_use=yes else --- 13585,13598 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13596: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodf_use=yes else *************** fi *** 13614,13625 **** for ac_func in fmodf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13618: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13623: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13647,13653 ---- ; return 0; } EOF ! if { (eval echo configure:13651: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13669,13675 **** else echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6 ! echo "configure:13673: checking for _fmodf declaration" >&5 if test x${glibcpp_cv_func__fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13674,13680 ---- else echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6 ! echo "configure:13678: checking for _fmodf declaration" >&5 if test x${glibcpp_cv_func__fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13684,13697 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13695: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodf_use=yes else --- 13689,13702 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodf_use=yes else *************** fi *** 13718,13729 **** for ac_func in _fmodf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13722: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13727: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13751,13757 ---- ; return 0; } EOF ! if { (eval echo configure:13755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13776,13782 **** echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6 ! echo "configure:13780: checking for frexpf declaration" >&5 if test x${glibcpp_cv_func_frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13781,13787 ---- echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6 ! echo "configure:13785: checking for frexpf declaration" >&5 if test x${glibcpp_cv_func_frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13791,13804 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13802: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpf_use=yes else --- 13796,13809 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13807: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpf_use=yes else *************** fi *** 13825,13836 **** for ac_func in frexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13829: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13834: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13858,13864 ---- ; return 0; } EOF ! if { (eval echo configure:13862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13880,13886 **** else echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6 ! echo "configure:13884: checking for _frexpf declaration" >&5 if test x${glibcpp_cv_func__frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13885,13891 ---- else echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6 ! echo "configure:13889: checking for _frexpf declaration" >&5 if test x${glibcpp_cv_func__frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13895,13908 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13906: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpf_use=yes else --- 13900,13913 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13911: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpf_use=yes else *************** fi *** 13929,13940 **** for ac_func in _frexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13933: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13938: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13962,13968 ---- ; return 0; } EOF ! if { (eval echo configure:13966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13987,13993 **** echo $ac_n "checking for hypotf declaration""... $ac_c" 1>&6 ! echo "configure:13991: checking for hypotf declaration" >&5 if test x${glibcpp_cv_func_hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13992,13998 ---- echo $ac_n "checking for hypotf declaration""... $ac_c" 1>&6 ! echo "configure:13996: checking for hypotf declaration" >&5 if test x${glibcpp_cv_func_hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14002,14015 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14013: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotf_use=yes else --- 14007,14020 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14018: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotf_use=yes else *************** fi *** 14036,14047 **** for ac_func in hypotf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14040: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14045: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14069,14075 ---- ; return 0; } EOF ! if { (eval echo configure:14073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14091,14097 **** else echo $ac_n "checking for _hypotf declaration""... $ac_c" 1>&6 ! echo "configure:14095: checking for _hypotf declaration" >&5 if test x${glibcpp_cv_func__hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14096,14102 ---- else echo $ac_n "checking for _hypotf declaration""... $ac_c" 1>&6 ! echo "configure:14100: checking for _hypotf declaration" >&5 if test x${glibcpp_cv_func__hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14106,14119 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14117: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotf_use=yes else --- 14111,14124 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14122: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotf_use=yes else *************** fi *** 14140,14151 **** for ac_func in _hypotf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14144: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14149: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14173,14179 ---- ; return 0; } EOF ! if { (eval echo configure:14177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14198,14204 **** echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:14202: checking for ldexpf declaration" >&5 if test x${glibcpp_cv_func_ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14203,14209 ---- echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:14207: checking for ldexpf declaration" >&5 if test x${glibcpp_cv_func_ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14213,14226 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14224: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpf_use=yes else --- 14218,14231 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14229: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpf_use=yes else *************** fi *** 14247,14258 **** for ac_func in ldexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14251: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14256: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14280,14286 ---- ; return 0; } EOF ! if { (eval echo configure:14284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14302,14308 **** else echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:14306: checking for _ldexpf declaration" >&5 if test x${glibcpp_cv_func__ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14307,14313 ---- else echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:14311: checking for _ldexpf declaration" >&5 if test x${glibcpp_cv_func__ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14317,14330 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpf_use=yes else --- 14322,14335 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14333: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpf_use=yes else *************** fi *** 14351,14362 **** for ac_func in _ldexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14355: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14360: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14384,14390 ---- ; return 0; } EOF ! if { (eval echo configure:14388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14409,14415 **** echo $ac_n "checking for logf declaration""... $ac_c" 1>&6 ! echo "configure:14413: checking for logf declaration" >&5 if test x${glibcpp_cv_func_logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14414,14420 ---- echo $ac_n "checking for logf declaration""... $ac_c" 1>&6 ! echo "configure:14418: checking for logf declaration" >&5 if test x${glibcpp_cv_func_logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14424,14430 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14429,14435 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14435,14441 **** logf(0); ; return 0; } EOF ! if { (eval echo configure:14439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logf_use=yes else --- 14440,14446 ---- logf(0); ; return 0; } EOF ! if { (eval echo configure:14444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logf_use=yes else *************** fi *** 14462,14473 **** for ac_func in logf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14466: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14471: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14495,14501 ---- ; return 0; } EOF ! if { (eval echo configure:14499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14517,14523 **** else echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6 ! echo "configure:14521: checking for _logf declaration" >&5 if test x${glibcpp_cv_func__logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14522,14528 ---- else echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6 ! echo "configure:14526: checking for _logf declaration" >&5 if test x${glibcpp_cv_func__logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14532,14538 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14537,14543 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14543,14549 **** _logf(0); ; return 0; } EOF ! if { (eval echo configure:14547: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logf_use=yes else --- 14548,14554 ---- _logf(0); ; return 0; } EOF ! if { (eval echo configure:14552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logf_use=yes else *************** fi *** 14570,14581 **** for ac_func in _logf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14574: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14579: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14603,14609 ---- ; return 0; } EOF ! if { (eval echo configure:14607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14628,14634 **** echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6 ! echo "configure:14632: checking for log10f declaration" >&5 if test x${glibcpp_cv_func_log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14633,14639 ---- echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6 ! echo "configure:14637: checking for log10f declaration" >&5 if test x${glibcpp_cv_func_log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14643,14649 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14648,14654 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14654,14660 **** log10f(0); ; return 0; } EOF ! if { (eval echo configure:14658: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10f_use=yes else --- 14659,14665 ---- log10f(0); ; return 0; } EOF ! if { (eval echo configure:14663: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10f_use=yes else *************** fi *** 14681,14692 **** for ac_func in log10f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14685: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14690: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14714,14720 ---- ; return 0; } EOF ! if { (eval echo configure:14718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14736,14742 **** else echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6 ! echo "configure:14740: checking for _log10f declaration" >&5 if test x${glibcpp_cv_func__log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14741,14747 ---- else echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6 ! echo "configure:14745: checking for _log10f declaration" >&5 if test x${glibcpp_cv_func__log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14751,14757 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14756,14762 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14762,14768 **** _log10f(0); ; return 0; } EOF ! if { (eval echo configure:14766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10f_use=yes else --- 14767,14773 ---- _log10f(0); ; return 0; } EOF ! if { (eval echo configure:14771: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10f_use=yes else *************** fi *** 14789,14800 **** for ac_func in _log10f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14793: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14798: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14822,14828 ---- ; return 0; } EOF ! if { (eval echo configure:14826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14847,14853 **** echo $ac_n "checking for modff declaration""... $ac_c" 1>&6 ! echo "configure:14851: checking for modff declaration" >&5 if test x${glibcpp_cv_func_modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14852,14858 ---- echo $ac_n "checking for modff declaration""... $ac_c" 1>&6 ! echo "configure:14856: checking for modff declaration" >&5 if test x${glibcpp_cv_func_modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14862,14875 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14873: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modff_use=yes else --- 14867,14880 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14878: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modff_use=yes else *************** fi *** 14896,14907 **** for ac_func in modff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14900: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14905: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14929,14935 ---- ; return 0; } EOF ! if { (eval echo configure:14933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14951,14957 **** else echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6 ! echo "configure:14955: checking for _modff declaration" >&5 if test x${glibcpp_cv_func__modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14956,14962 ---- else echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6 ! echo "configure:14960: checking for _modff declaration" >&5 if test x${glibcpp_cv_func__modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14966,14979 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14977: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modff_use=yes else --- 14971,14984 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modff_use=yes else *************** fi *** 15000,15011 **** for ac_func in _modff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15004: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15009: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15033,15039 ---- ; return 0; } EOF ! if { (eval echo configure:15037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15058,15064 **** echo $ac_n "checking for powf declaration""... $ac_c" 1>&6 ! echo "configure:15062: checking for powf declaration" >&5 if test x${glibcpp_cv_func_powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15063,15069 ---- echo $ac_n "checking for powf declaration""... $ac_c" 1>&6 ! echo "configure:15067: checking for powf declaration" >&5 if test x${glibcpp_cv_func_powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15073,15086 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:15084: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powf_use=yes else --- 15078,15091 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:15089: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powf_use=yes else *************** fi *** 15107,15118 **** for ac_func in powf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15111: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15116: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15140,15146 ---- ; return 0; } EOF ! if { (eval echo configure:15144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15162,15168 **** else echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6 ! echo "configure:15166: checking for _powf declaration" >&5 if test x${glibcpp_cv_func__powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15167,15173 ---- else echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6 ! echo "configure:15171: checking for _powf declaration" >&5 if test x${glibcpp_cv_func__powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15177,15190 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:15188: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powf_use=yes else --- 15182,15195 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:15193: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powf_use=yes else *************** fi *** 15211,15222 **** for ac_func in _powf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15215: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15220: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15244,15250 ---- ; return 0; } EOF ! if { (eval echo configure:15248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15269,15275 **** echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:15273: checking for sqrtf declaration" >&5 if test x${glibcpp_cv_func_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15274,15280 ---- echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:15278: checking for sqrtf declaration" >&5 if test x${glibcpp_cv_func_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15284,15290 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15289,15295 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15295,15301 **** sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:15299: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtf_use=yes else --- 15300,15306 ---- sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:15304: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtf_use=yes else *************** fi *** 15322,15333 **** for ac_func in sqrtf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15326: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15331: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15355,15361 ---- ; return 0; } EOF ! if { (eval echo configure:15359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15377,15383 **** else echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:15381: checking for _sqrtf declaration" >&5 if test x${glibcpp_cv_func__sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15382,15388 ---- else echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:15386: checking for _sqrtf declaration" >&5 if test x${glibcpp_cv_func__sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15392,15398 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15397,15403 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15403,15409 **** _sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:15407: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtf_use=yes else --- 15408,15414 ---- _sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:15412: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtf_use=yes else *************** fi *** 15430,15441 **** for ac_func in _sqrtf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15434: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15439: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15463,15469 ---- ; return 0; } EOF ! if { (eval echo configure:15467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15488,15494 **** echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6 ! echo "configure:15492: checking for sincosf declaration" >&5 if test x${glibcpp_cv_func_sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15493,15499 ---- echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6 ! echo "configure:15497: checking for sincosf declaration" >&5 if test x${glibcpp_cv_func_sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15503,15516 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15514: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosf_use=yes else --- 15508,15521 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15519: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosf_use=yes else *************** fi *** 15537,15548 **** for ac_func in sincosf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15541: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15546: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15570,15576 ---- ; return 0; } EOF ! if { (eval echo configure:15574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15592,15598 **** else echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6 ! echo "configure:15596: checking for _sincosf declaration" >&5 if test x${glibcpp_cv_func__sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15597,15603 ---- else echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6 ! echo "configure:15601: checking for _sincosf declaration" >&5 if test x${glibcpp_cv_func__sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15607,15620 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15618: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosf_use=yes else --- 15612,15625 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15623: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosf_use=yes else *************** fi *** 15641,15652 **** for ac_func in _sincosf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15645: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15650: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15674,15680 ---- ; return 0; } EOF ! if { (eval echo configure:15678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15699,15705 **** echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6 ! echo "configure:15703: checking for finitef declaration" >&5 if test x${glibcpp_cv_func_finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15704,15710 ---- echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6 ! echo "configure:15708: checking for finitef declaration" >&5 if test x${glibcpp_cv_func_finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15714,15720 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15719,15725 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15725,15731 **** finitef(0); ; return 0; } EOF ! if { (eval echo configure:15729: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitef_use=yes else --- 15730,15736 ---- finitef(0); ; return 0; } EOF ! if { (eval echo configure:15734: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitef_use=yes else *************** fi *** 15752,15763 **** for ac_func in finitef do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15756: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15761: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15785,15791 ---- ; return 0; } EOF ! if { (eval echo configure:15789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15807,15813 **** else echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6 ! echo "configure:15811: checking for _finitef declaration" >&5 if test x${glibcpp_cv_func__finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15812,15818 ---- else echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6 ! echo "configure:15816: checking for _finitef declaration" >&5 if test x${glibcpp_cv_func__finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15822,15828 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15827,15833 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15833,15839 **** _finitef(0); ; return 0; } EOF ! if { (eval echo configure:15837: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitef_use=yes else --- 15838,15844 ---- _finitef(0); ; return 0; } EOF ! if { (eval echo configure:15842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitef_use=yes else *************** fi *** 15860,15871 **** for ac_func in _finitef do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15864: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15869: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15893,15899 ---- ; return 0; } EOF ! if { (eval echo configure:15897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15918,15924 **** echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6 ! echo "configure:15922: checking for long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 15923,15929 ---- echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6 ! echo "configure:15927: checking for long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15932,15938 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 15937,15943 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 15941,15947 **** coshl sinhl tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15945: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_trig_use=yes else --- 15946,15952 ---- coshl sinhl tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15950: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_trig_use=yes else *************** fi *** 15967,15978 **** coshl sinhl tanhl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15971: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15976: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16000,16006 ---- ; return 0; } EOF ! if { (eval echo configure:16004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16023,16029 **** echo $ac_n "checking for long double round functions""... $ac_c" 1>&6 ! echo "configure:16027: checking for long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 16028,16034 ---- echo $ac_n "checking for long double round functions""... $ac_c" 1>&6 ! echo "configure:16032: checking for long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16037,16050 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceill floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:16048: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_round_use=yes else --- 16042,16055 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceill floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:16053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_round_use=yes else *************** fi *** 16068,16079 **** for ac_func in ceill floorl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16072: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16077: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16101,16107 ---- ; return 0; } EOF ! if { (eval echo configure:16105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16125,16131 **** echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6 ! echo "configure:16129: checking for isnanl declaration" >&5 if test x${glibcpp_cv_func_isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16130,16136 ---- echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6 ! echo "configure:16134: checking for isnanl declaration" >&5 if test x${glibcpp_cv_func_isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16140,16146 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16145,16151 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16151,16157 **** isnanl(0); ; return 0; } EOF ! if { (eval echo configure:16155: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanl_use=yes else --- 16156,16162 ---- isnanl(0); ; return 0; } EOF ! if { (eval echo configure:16160: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanl_use=yes else *************** fi *** 16178,16189 **** for ac_func in isnanl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16182: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16187: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16211,16217 ---- ; return 0; } EOF ! if { (eval echo configure:16215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16233,16239 **** else echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6 ! echo "configure:16237: checking for _isnanl declaration" >&5 if test x${glibcpp_cv_func__isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16238,16244 ---- else echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6 ! echo "configure:16242: checking for _isnanl declaration" >&5 if test x${glibcpp_cv_func__isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16248,16254 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16253,16259 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16259,16265 **** _isnanl(0); ; return 0; } EOF ! if { (eval echo configure:16263: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanl_use=yes else --- 16264,16270 ---- _isnanl(0); ; return 0; } EOF ! if { (eval echo configure:16268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanl_use=yes else *************** fi *** 16286,16297 **** for ac_func in _isnanl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16290: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16295: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16319,16325 ---- ; return 0; } EOF ! if { (eval echo configure:16323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16344,16350 **** echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6 ! echo "configure:16348: checking for isinfl declaration" >&5 if test x${glibcpp_cv_func_isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16349,16355 ---- echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6 ! echo "configure:16353: checking for isinfl declaration" >&5 if test x${glibcpp_cv_func_isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16359,16365 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16364,16370 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16370,16376 **** isinfl(0); ; return 0; } EOF ! if { (eval echo configure:16374: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinfl_use=yes else --- 16375,16381 ---- isinfl(0); ; return 0; } EOF ! if { (eval echo configure:16379: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinfl_use=yes else *************** fi *** 16397,16408 **** for ac_func in isinfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16401: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16406: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16430,16436 ---- ; return 0; } EOF ! if { (eval echo configure:16434: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16452,16458 **** else echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6 ! echo "configure:16456: checking for _isinfl declaration" >&5 if test x${glibcpp_cv_func__isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16457,16463 ---- else echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6 ! echo "configure:16461: checking for _isinfl declaration" >&5 if test x${glibcpp_cv_func__isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16467,16473 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16472,16478 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16478,16484 **** _isinfl(0); ; return 0; } EOF ! if { (eval echo configure:16482: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinfl_use=yes else --- 16483,16489 ---- _isinfl(0); ; return 0; } EOF ! if { (eval echo configure:16487: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinfl_use=yes else *************** fi *** 16505,16516 **** for ac_func in _isinfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16509: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16514: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16538,16544 ---- ; return 0; } EOF ! if { (eval echo configure:16542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16563,16569 **** echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6 ! echo "configure:16567: checking for copysignl declaration" >&5 if test x${glibcpp_cv_func_copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16568,16574 ---- echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6 ! echo "configure:16572: checking for copysignl declaration" >&5 if test x${glibcpp_cv_func_copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16578,16591 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysignl_use=yes else --- 16583,16596 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16594: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysignl_use=yes else *************** fi *** 16612,16623 **** for ac_func in copysignl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16616: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16621: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16645,16651 ---- ; return 0; } EOF ! if { (eval echo configure:16649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16667,16673 **** else echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6 ! echo "configure:16671: checking for _copysignl declaration" >&5 if test x${glibcpp_cv_func__copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16672,16678 ---- else echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6 ! echo "configure:16676: checking for _copysignl declaration" >&5 if test x${glibcpp_cv_func__copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16682,16695 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16693: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysignl_use=yes else --- 16687,16700 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16698: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysignl_use=yes else *************** fi *** 16716,16727 **** for ac_func in _copysignl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16720: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16725: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16749,16755 ---- ; return 0; } EOF ! if { (eval echo configure:16753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16774,16780 **** echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6 ! echo "configure:16778: checking for atan2l declaration" >&5 if test x${glibcpp_cv_func_atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16779,16785 ---- echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6 ! echo "configure:16783: checking for atan2l declaration" >&5 if test x${glibcpp_cv_func_atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16789,16802 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2l_use=yes else --- 16794,16807 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16805: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2l_use=yes else *************** fi *** 16823,16834 **** for ac_func in atan2l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16827: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16832: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16856,16862 ---- ; return 0; } EOF ! if { (eval echo configure:16860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16878,16884 **** else echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6 ! echo "configure:16882: checking for _atan2l declaration" >&5 if test x${glibcpp_cv_func__atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16883,16889 ---- else echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6 ! echo "configure:16887: checking for _atan2l declaration" >&5 if test x${glibcpp_cv_func__atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16893,16906 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16904: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2l_use=yes else --- 16898,16911 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16909: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2l_use=yes else *************** fi *** 16927,16938 **** for ac_func in _atan2l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16931: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16936: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16960,16966 ---- ; return 0; } EOF ! if { (eval echo configure:16964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16985,16991 **** echo $ac_n "checking for expl declaration""... $ac_c" 1>&6 ! echo "configure:16989: checking for expl declaration" >&5 if test x${glibcpp_cv_func_expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16990,16996 ---- echo $ac_n "checking for expl declaration""... $ac_c" 1>&6 ! echo "configure:16994: checking for expl declaration" >&5 if test x${glibcpp_cv_func_expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17000,17006 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17005,17011 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17011,17017 **** expl(0); ; return 0; } EOF ! if { (eval echo configure:17015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expl_use=yes else --- 17016,17022 ---- expl(0); ; return 0; } EOF ! if { (eval echo configure:17020: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expl_use=yes else *************** fi *** 17038,17049 **** for ac_func in expl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17042: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17047: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17071,17077 ---- ; return 0; } EOF ! if { (eval echo configure:17075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17093,17099 **** else echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6 ! echo "configure:17097: checking for _expl declaration" >&5 if test x${glibcpp_cv_func__expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17098,17104 ---- else echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6 ! echo "configure:17102: checking for _expl declaration" >&5 if test x${glibcpp_cv_func__expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17108,17114 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17113,17119 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17119,17125 **** _expl(0); ; return 0; } EOF ! if { (eval echo configure:17123: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expl_use=yes else --- 17124,17130 ---- _expl(0); ; return 0; } EOF ! if { (eval echo configure:17128: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expl_use=yes else *************** fi *** 17146,17157 **** for ac_func in _expl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17150: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17155: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17179,17185 ---- ; return 0; } EOF ! if { (eval echo configure:17183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17204,17210 **** echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6 ! echo "configure:17208: checking for fabsl declaration" >&5 if test x${glibcpp_cv_func_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17209,17215 ---- echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6 ! echo "configure:17213: checking for fabsl declaration" >&5 if test x${glibcpp_cv_func_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17219,17225 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17224,17230 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17230,17236 **** fabsl(0); ; return 0; } EOF ! if { (eval echo configure:17234: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsl_use=yes else --- 17235,17241 ---- fabsl(0); ; return 0; } EOF ! if { (eval echo configure:17239: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsl_use=yes else *************** fi *** 17257,17268 **** for ac_func in fabsl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17261: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17266: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17290,17296 ---- ; return 0; } EOF ! if { (eval echo configure:17294: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17312,17318 **** else echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6 ! echo "configure:17316: checking for _fabsl declaration" >&5 if test x${glibcpp_cv_func__fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17317,17323 ---- else echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6 ! echo "configure:17321: checking for _fabsl declaration" >&5 if test x${glibcpp_cv_func__fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17327,17333 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17332,17338 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17338,17344 **** _fabsl(0); ; return 0; } EOF ! if { (eval echo configure:17342: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsl_use=yes else --- 17343,17349 ---- _fabsl(0); ; return 0; } EOF ! if { (eval echo configure:17347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsl_use=yes else *************** fi *** 17365,17376 **** for ac_func in _fabsl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17369: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17374: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17398,17404 ---- ; return 0; } EOF ! if { (eval echo configure:17402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17423,17429 **** echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6 ! echo "configure:17427: checking for fmodl declaration" >&5 if test x${glibcpp_cv_func_fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17428,17434 ---- echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6 ! echo "configure:17432: checking for fmodl declaration" >&5 if test x${glibcpp_cv_func_fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17438,17451 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17449: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodl_use=yes else --- 17443,17456 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodl_use=yes else *************** fi *** 17472,17483 **** for ac_func in fmodl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17476: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17481: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17505,17511 ---- ; return 0; } EOF ! if { (eval echo configure:17509: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17527,17533 **** else echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6 ! echo "configure:17531: checking for _fmodl declaration" >&5 if test x${glibcpp_cv_func__fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17532,17538 ---- else echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6 ! echo "configure:17536: checking for _fmodl declaration" >&5 if test x${glibcpp_cv_func__fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17542,17555 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17553: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodl_use=yes else --- 17547,17560 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17558: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodl_use=yes else *************** fi *** 17576,17587 **** for ac_func in _fmodl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17580: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17585: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17609,17615 ---- ; return 0; } EOF ! if { (eval echo configure:17613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17634,17640 **** echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6 ! echo "configure:17638: checking for frexpl declaration" >&5 if test x${glibcpp_cv_func_frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17639,17645 ---- echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6 ! echo "configure:17643: checking for frexpl declaration" >&5 if test x${glibcpp_cv_func_frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17649,17662 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17660: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpl_use=yes else --- 17654,17667 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17665: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpl_use=yes else *************** fi *** 17683,17694 **** for ac_func in frexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17687: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17692: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17716,17722 ---- ; return 0; } EOF ! if { (eval echo configure:17720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17738,17744 **** else echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6 ! echo "configure:17742: checking for _frexpl declaration" >&5 if test x${glibcpp_cv_func__frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17743,17749 ---- else echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6 ! echo "configure:17747: checking for _frexpl declaration" >&5 if test x${glibcpp_cv_func__frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17753,17766 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17764: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpl_use=yes else --- 17758,17771 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17769: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpl_use=yes else *************** fi *** 17787,17798 **** for ac_func in _frexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17791: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17796: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17820,17826 ---- ; return 0; } EOF ! if { (eval echo configure:17824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17845,17851 **** echo $ac_n "checking for hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17849: checking for hypotl declaration" >&5 if test x${glibcpp_cv_func_hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17850,17856 ---- echo $ac_n "checking for hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17854: checking for hypotl declaration" >&5 if test x${glibcpp_cv_func_hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17860,17873 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotl_use=yes else --- 17865,17878 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17876: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotl_use=yes else *************** fi *** 17894,17905 **** for ac_func in hypotl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17898: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17903: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17927,17933 ---- ; return 0; } EOF ! if { (eval echo configure:17931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17949,17955 **** else echo $ac_n "checking for _hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17953: checking for _hypotl declaration" >&5 if test x${glibcpp_cv_func__hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17954,17960 ---- else echo $ac_n "checking for _hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17958: checking for _hypotl declaration" >&5 if test x${glibcpp_cv_func__hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17964,17977 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotl_use=yes else --- 17969,17982 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17980: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotl_use=yes else *************** fi *** 17998,18009 **** for ac_func in _hypotl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18002: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18007: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18031,18037 ---- ; return 0; } EOF ! if { (eval echo configure:18035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18056,18062 **** echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:18060: checking for ldexpl declaration" >&5 if test x${glibcpp_cv_func_ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18061,18067 ---- echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:18065: checking for ldexpl declaration" >&5 if test x${glibcpp_cv_func_ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18071,18084 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18082: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpl_use=yes else --- 18076,18089 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18087: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpl_use=yes else *************** fi *** 18105,18116 **** for ac_func in ldexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18109: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18114: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18138,18144 ---- ; return 0; } EOF ! if { (eval echo configure:18142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18160,18166 **** else echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:18164: checking for _ldexpl declaration" >&5 if test x${glibcpp_cv_func__ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18165,18171 ---- else echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:18169: checking for _ldexpl declaration" >&5 if test x${glibcpp_cv_func__ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18175,18188 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18186: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpl_use=yes else --- 18180,18193 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18191: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpl_use=yes else *************** fi *** 18209,18220 **** for ac_func in _ldexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18213: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18218: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18242,18248 ---- ; return 0; } EOF ! if { (eval echo configure:18246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18267,18273 **** echo $ac_n "checking for logl declaration""... $ac_c" 1>&6 ! echo "configure:18271: checking for logl declaration" >&5 if test x${glibcpp_cv_func_logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18272,18278 ---- echo $ac_n "checking for logl declaration""... $ac_c" 1>&6 ! echo "configure:18276: checking for logl declaration" >&5 if test x${glibcpp_cv_func_logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18282,18288 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18287,18293 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18293,18299 **** logl(0); ; return 0; } EOF ! if { (eval echo configure:18297: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logl_use=yes else --- 18298,18304 ---- logl(0); ; return 0; } EOF ! if { (eval echo configure:18302: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logl_use=yes else *************** fi *** 18320,18331 **** for ac_func in logl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18324: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18329: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18353,18359 ---- ; return 0; } EOF ! if { (eval echo configure:18357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18375,18381 **** else echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6 ! echo "configure:18379: checking for _logl declaration" >&5 if test x${glibcpp_cv_func__logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18380,18386 ---- else echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6 ! echo "configure:18384: checking for _logl declaration" >&5 if test x${glibcpp_cv_func__logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18390,18396 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18395,18401 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18401,18407 **** _logl(0); ; return 0; } EOF ! if { (eval echo configure:18405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logl_use=yes else --- 18406,18412 ---- _logl(0); ; return 0; } EOF ! if { (eval echo configure:18410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logl_use=yes else *************** fi *** 18428,18439 **** for ac_func in _logl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18432: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18437: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18461,18467 ---- ; return 0; } EOF ! if { (eval echo configure:18465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18486,18492 **** echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6 ! echo "configure:18490: checking for log10l declaration" >&5 if test x${glibcpp_cv_func_log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18491,18497 ---- echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6 ! echo "configure:18495: checking for log10l declaration" >&5 if test x${glibcpp_cv_func_log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18501,18507 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18506,18512 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18512,18518 **** log10l(0); ; return 0; } EOF ! if { (eval echo configure:18516: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10l_use=yes else --- 18517,18523 ---- log10l(0); ; return 0; } EOF ! if { (eval echo configure:18521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10l_use=yes else *************** fi *** 18539,18550 **** for ac_func in log10l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18543: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18548: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18572,18578 ---- ; return 0; } EOF ! if { (eval echo configure:18576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18594,18600 **** else echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6 ! echo "configure:18598: checking for _log10l declaration" >&5 if test x${glibcpp_cv_func__log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18599,18605 ---- else echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6 ! echo "configure:18603: checking for _log10l declaration" >&5 if test x${glibcpp_cv_func__log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18609,18615 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18614,18620 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18620,18626 **** _log10l(0); ; return 0; } EOF ! if { (eval echo configure:18624: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10l_use=yes else --- 18625,18631 ---- _log10l(0); ; return 0; } EOF ! if { (eval echo configure:18629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10l_use=yes else *************** fi *** 18647,18658 **** for ac_func in _log10l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18651: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18656: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18680,18686 ---- ; return 0; } EOF ! if { (eval echo configure:18684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18705,18711 **** echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6 ! echo "configure:18709: checking for modfl declaration" >&5 if test x${glibcpp_cv_func_modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18710,18716 ---- echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6 ! echo "configure:18714: checking for modfl declaration" >&5 if test x${glibcpp_cv_func_modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18720,18733 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modfl_use=yes else --- 18725,18738 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18736: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modfl_use=yes else *************** fi *** 18754,18765 **** for ac_func in modfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18758: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18763: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18787,18793 ---- ; return 0; } EOF ! if { (eval echo configure:18791: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18809,18815 **** else echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6 ! echo "configure:18813: checking for _modfl declaration" >&5 if test x${glibcpp_cv_func__modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18814,18820 ---- else echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6 ! echo "configure:18818: checking for _modfl declaration" >&5 if test x${glibcpp_cv_func__modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18824,18837 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modfl_use=yes else --- 18829,18842 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18840: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modfl_use=yes else *************** fi *** 18858,18869 **** for ac_func in _modfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18862: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18867: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18891,18897 ---- ; return 0; } EOF ! if { (eval echo configure:18895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18916,18922 **** echo $ac_n "checking for powl declaration""... $ac_c" 1>&6 ! echo "configure:18920: checking for powl declaration" >&5 if test x${glibcpp_cv_func_powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18921,18927 ---- echo $ac_n "checking for powl declaration""... $ac_c" 1>&6 ! echo "configure:18925: checking for powl declaration" >&5 if test x${glibcpp_cv_func_powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18931,18944 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18942: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powl_use=yes else --- 18936,18949 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18947: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powl_use=yes else *************** fi *** 18965,18976 **** for ac_func in powl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18969: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18974: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18998,19004 ---- ; return 0; } EOF ! if { (eval echo configure:19002: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19020,19026 **** else echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6 ! echo "configure:19024: checking for _powl declaration" >&5 if test x${glibcpp_cv_func__powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19025,19031 ---- else echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6 ! echo "configure:19029: checking for _powl declaration" >&5 if test x${glibcpp_cv_func__powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19035,19048 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:19046: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powl_use=yes else --- 19040,19053 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:19051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powl_use=yes else *************** fi *** 19069,19080 **** for ac_func in _powl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19073: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19078: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19102,19108 ---- ; return 0; } EOF ! if { (eval echo configure:19106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19127,19133 **** echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:19131: checking for sqrtl declaration" >&5 if test x${glibcpp_cv_func_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19132,19138 ---- echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:19136: checking for sqrtl declaration" >&5 if test x${glibcpp_cv_func_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19142,19148 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19147,19153 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 19153,19159 **** sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:19157: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtl_use=yes else --- 19158,19164 ---- sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:19162: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtl_use=yes else *************** fi *** 19180,19191 **** for ac_func in sqrtl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19184: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19189: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19213,19219 ---- ; return 0; } EOF ! if { (eval echo configure:19217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19235,19241 **** else echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:19239: checking for _sqrtl declaration" >&5 if test x${glibcpp_cv_func__sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19240,19246 ---- else echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:19244: checking for _sqrtl declaration" >&5 if test x${glibcpp_cv_func__sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19250,19256 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19255,19261 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 19261,19267 **** _sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:19265: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtl_use=yes else --- 19266,19272 ---- _sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:19270: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtl_use=yes else *************** fi *** 19288,19299 **** for ac_func in _sqrtl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19292: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19297: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19321,19327 ---- ; return 0; } EOF ! if { (eval echo configure:19325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19346,19352 **** echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6 ! echo "configure:19350: checking for sincosl declaration" >&5 if test x${glibcpp_cv_func_sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19351,19357 ---- echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6 ! echo "configure:19355: checking for sincosl declaration" >&5 if test x${glibcpp_cv_func_sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19361,19374 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:19372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosl_use=yes else --- 19366,19379 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:19377: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosl_use=yes else *************** fi *** 19395,19406 **** for ac_func in sincosl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19399: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19404: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19428,19434 ---- ; return 0; } EOF ! if { (eval echo configure:19432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19450,19456 **** else echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6 ! echo "configure:19454: checking for _sincosl declaration" >&5 if test x${glibcpp_cv_func__sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19455,19461 ---- else echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6 ! echo "configure:19459: checking for _sincosl declaration" >&5 if test x${glibcpp_cv_func__sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19465,19478 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:19476: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosl_use=yes else --- 19470,19483 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:19481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosl_use=yes else *************** fi *** 19499,19510 **** for ac_func in _sincosl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19503: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19508: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19532,19538 ---- ; return 0; } EOF ! if { (eval echo configure:19536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19557,19563 **** echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6 ! echo "configure:19561: checking for finitel declaration" >&5 if test x${glibcpp_cv_func_finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19562,19568 ---- echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6 ! echo "configure:19566: checking for finitel declaration" >&5 if test x${glibcpp_cv_func_finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19572,19578 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19577,19583 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 19583,19589 **** finitel(0); ; return 0; } EOF ! if { (eval echo configure:19587: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitel_use=yes else --- 19588,19594 ---- finitel(0); ; return 0; } EOF ! if { (eval echo configure:19592: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitel_use=yes else *************** fi *** 19610,19621 **** for ac_func in finitel do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19614: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19619: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19643,19649 ---- ; return 0; } EOF ! if { (eval echo configure:19647: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19665,19671 **** else echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6 ! echo "configure:19669: checking for _finitel declaration" >&5 if test x${glibcpp_cv_func__finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19670,19676 ---- else echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6 ! echo "configure:19674: checking for _finitel declaration" >&5 if test x${glibcpp_cv_func__finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19680,19686 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19685,19691 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 19691,19697 **** _finitel(0); ; return 0; } EOF ! if { (eval echo configure:19695: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitel_use=yes else --- 19696,19702 ---- _finitel(0); ; return 0; } EOF ! if { (eval echo configure:19700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitel_use=yes else *************** fi *** 19718,19729 **** for ac_func in _finitel do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19722: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19727: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19751,19757 ---- ; return 0; } EOF ! if { (eval echo configure:19755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19777,19783 **** echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6 ! echo "configure:19781: checking for _float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 19782,19788 ---- echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6 ! echo "configure:19786: checking for _float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19791,19797 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 19796,19802 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 19800,19806 **** _coshf _sinhf _tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19804: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_trig_use=yes else --- 19805,19811 ---- _coshf _sinhf _tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19809: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_trig_use=yes else *************** fi *** 19826,19837 **** _coshf _sinhf _tanhf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19830: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19835: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19859,19865 ---- ; return 0; } EOF ! if { (eval echo configure:19863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19882,19888 **** echo $ac_n "checking for _float round functions""... $ac_c" 1>&6 ! echo "configure:19886: checking for _float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 19887,19893 ---- echo $ac_n "checking for _float round functions""... $ac_c" 1>&6 ! echo "configure:19891: checking for _float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19896,19909 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceilf _floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19907: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_round_use=yes else --- 19901,19914 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceilf _floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19912: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_round_use=yes else *************** fi *** 19927,19938 **** for ac_func in _ceilf _floorf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19931: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19936: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19960,19966 ---- ; return 0; } EOF ! if { (eval echo configure:19964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19984,19990 **** echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6 ! echo "configure:19988: checking for _long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 19989,19995 ---- echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6 ! echo "configure:19993: checking for _long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19998,20004 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 20003,20009 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 20007,20013 **** _coshl _sinhl _tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:20011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_trig_use=yes else --- 20012,20018 ---- _coshl _sinhl _tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:20016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_trig_use=yes else *************** fi *** 20033,20044 **** _coshl _sinhl _tanhl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20037: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20042: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20066,20072 ---- ; return 0; } EOF ! if { (eval echo configure:20070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20089,20095 **** echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6 ! echo "configure:20093: checking for _long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 20094,20100 ---- echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6 ! echo "configure:20098: checking for _long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 20103,20116 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceill _floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:20114: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_round_use=yes else --- 20108,20121 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceill _floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:20119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_round_use=yes else *************** fi *** 20134,20145 **** for ac_func in _ceill _floorl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20138: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20143: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20167,20173 ---- ; return 0; } EOF ! if { (eval echo configure:20171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20194,20200 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:20198: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 20199,20205 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:20203: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 20202,20215 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 20207,20220 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 20239,20250 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20243: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20248: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20272,20278 ---- ; return 0; } EOF ! if { (eval echo configure:20276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20296,20307 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20300: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20305: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20329,20335 ---- ; return 0; } EOF ! if { (eval echo configure:20333: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20352,20363 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20356: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20361: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20385,20391 ---- ; return 0; } EOF ! if { (eval echo configure:20389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20410,20421 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20414: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20419: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20443,20449 ---- ; return 0; } EOF ! if { (eval echo configure:20447: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20470,20485 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:20474: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:20483: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 20475,20490 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:20479: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:20488: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 20501,20517 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20505: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20515: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20506,20522 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20510: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20520: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 20542,20558 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20546: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20556: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20547,20563 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20551: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20561: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 20585,20600 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:20589: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:20598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 20590,20605 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:20594: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:20603: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 20607,20615 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:20611: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 20612,20620 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:20616: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 20618,20624 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:20622: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 20623,20629 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:20627: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 20634,20645 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20638: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20643: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20667,20673 ---- ; return 0; } EOF ! if { (eval echo configure:20671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20697,20708 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20701: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20706: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20730,20736 ---- ; return 0; } EOF ! if { (eval echo configure:20734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20753,20759 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20757: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 20758,20764 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20762: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:20757: checking for ISO *** 20765,20781 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:20769: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20779: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20770,20786 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:20774: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20784: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 20799,20815 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:20803: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20813: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20804,20820 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:20808: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20818: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 20833,20839 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:20837: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 20838,20844 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:20842: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 20841,20847 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 20857,20863 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:20861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 20878,20889 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20882: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20887: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20911,20917 ---- ; return 0; } EOF ! if { (eval echo configure:20915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20936,20942 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20940: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 20941,20947 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20945: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:20940: checking for XPG2 *** 20947,20953 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:20951: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 20952,20958 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:20956: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 20969,20975 **** echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6 ! echo "configure:20973: checking for strtold declaration" >&5 if test x${glibcpp_cv_func_strtold_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtold_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 20974,20980 ---- echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6 ! echo "configure:20978: checking for strtold declaration" >&5 if test x${glibcpp_cv_func_strtold_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtold_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 20984,20997 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtold(0, 0); ; return 0; } EOF ! if { (eval echo configure:20995: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtold_use=yes else --- 20989,21002 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtold(0, 0); ; return 0; } EOF ! if { (eval echo configure:21000: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtold_use=yes else *************** fi *** 21017,21028 **** for ac_func in strtold do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:21021: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21026: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21050,21056 ---- ; return 0; } EOF ! if { (eval echo configure:21054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 21073,21079 **** echo $ac_n "checking for strtof declaration""... $ac_c" 1>&6 ! echo "configure:21077: checking for strtof declaration" >&5 if test x${glibcpp_cv_func_strtof_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtof_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 21078,21084 ---- echo $ac_n "checking for strtof declaration""... $ac_c" 1>&6 ! echo "configure:21082: checking for strtof declaration" >&5 if test x${glibcpp_cv_func_strtof_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtof_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 21088,21101 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtof(0, 0); ; return 0; } EOF ! if { (eval echo configure:21099: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtof_use=yes else --- 21093,21106 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtof(0, 0); ; return 0; } EOF ! if { (eval echo configure:21104: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtof_use=yes else *************** fi *** 21121,21132 **** for ac_func in strtof do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:21125: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21130: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21154,21160 ---- ; return 0; } EOF ! if { (eval echo configure:21158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 21178,21189 **** for ac_func in drand48 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:21182: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21187: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21211,21217 ---- ; return 0; } EOF ! if { (eval echo configure:21215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 21234,21252 **** CXXFLAGS="$ac_save_CXXFLAGS" ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for locale.h""... $ac_c" 1>&6 ! echo "configure:21240: checking for locale.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21250: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 21239,21369 ---- CXXFLAGS="$ac_save_CXXFLAGS" + ac_test_CXXFLAGS="${CXXFLAGS+set}" + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS='-fno-builtins -D_GNU_SOURCE' + + + echo $ac_n "checking for isatty declaration""... $ac_c" 1>&6 + echo "configure:21249: checking for isatty declaration" >&5 + if test x${glibcpp_cv_func_isatty_use+set} != xset; then + if eval "test \"`echo '$''{'glibcpp_cv_func_isatty_use'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + + + ac_ext=C + # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. + ac_cpp='$CXXCPP $CPPFLAGS' + ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' + ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + cross_compiling=$ac_cv_prog_cxx_cross + + cat > conftest.$ac_ext < + int main() { + isatty(0); + ; return 0; } + EOF + if { (eval echo configure:21271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + glibcpp_cv_func_isatty_use=yes + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + glibcpp_cv_func_isatty_use=no + fi + rm -f conftest* + ac_ext=c + # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. + ac_cpp='$CPP $CPPFLAGS' + ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' + ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' + cross_compiling=$ac_cv_prog_cc_cross + + + fi + + fi + echo "$ac_t""$glibcpp_cv_func_isatty_use" 1>&6 + if test x$glibcpp_cv_func_isatty_use = x"yes"; then + for ac_func in isatty + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:21297: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:21325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + fi + done + + fi + + + CXXFLAGS="$ac_save_CXXFLAGS" + + ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for locale.h""... $ac_c" 1>&6 ! echo "configure:21357: checking for locale.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21367: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** if eval "test \"`echo '$ac_cv_header_'$a *** 21264,21282 **** echo "$ac_t""yes" 1>&6 echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:21268: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'ac_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF ! if { (eval echo configure:21280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_val_LC_MESSAGES=yes else --- 21381,21399 ---- echo "$ac_t""yes" 1>&6 echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:21385: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'ac_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF ! if { (eval echo configure:21397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_val_LC_MESSAGES=yes else *************** fi *** 21303,21309 **** cat > conftest.$ac_ext < --- 21420,21426 ---- cat > conftest.$ac_ext < *************** int main() { *** 21312,21318 **** sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1); ; return 0; } EOF ! if { (eval echo configure:21316: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SIGSETJMP 1 --- 21429,21435 ---- sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1); ; return 0; } EOF ! if { (eval echo configure:21433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SIGSETJMP 1 *************** else *** 21325,21345 **** fi rm -f conftest* ! for ac_hdr in unistd.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:21333: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21343: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 21442,21462 ---- fi rm -f conftest* ! for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:21450: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21460: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 21368,21379 **** for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:21372: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21489: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21513,21519 ---- ; return 0; } EOF ! if { (eval echo configure:21517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** fi *** 21421,21427 **** done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 ! echo "configure:21425: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 21538,21544 ---- done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 ! echo "configure:21542: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 21429,21435 **** ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext < conftest.$ac_ext < #include /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE - # ifdef HAVE_UNISTD_H - # include - # endif /* Assume that all systems that can run configure have sys/param.h. */ # ifndef HAVE_SYS_PARAM_H --- 21574,21597 ---- #include #include + #if HAVE_SYS_TYPES_H + # include + #endif + + #if HAVE_STDLIB_H + # include + #endif + + #if HAVE_SYS_STAT_H + # include + #endif + + #if HAVE_UNISTD_H + # include + #endif + /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE /* Assume that all systems that can run configure have sys/param.h. */ # ifndef HAVE_SYS_PARAM_H *************** main() *** 21569,21575 **** } EOF ! if { (eval echo configure:21573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else --- 21699,21705 ---- } EOF ! if { (eval echo configure:21703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else *************** fi *** 21600,21616 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:21604: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21614: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 21730,21746 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:21734: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21744: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 21643,21649 **** # Can't do these in a loop, else the resulting syntax is wrong. cat > conftest.$ac_ext < #include --- 21773,21779 ---- # Can't do these in a loop, else the resulting syntax is wrong. cat > conftest.$ac_ext < #include *************** int main() { *** 21652,21658 **** int f = RLIMIT_DATA ; ; return 0; } EOF ! if { (eval echo configure:21656: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21782,21788 ---- int f = RLIMIT_DATA ; ; return 0; } EOF ! if { (eval echo configure:21786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 21669,21675 **** cat > conftest.$ac_ext < #include --- 21799,21805 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 21678,21684 **** int f = RLIMIT_RSS ; ; return 0; } EOF ! if { (eval echo configure:21682: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21808,21814 ---- int f = RLIMIT_RSS ; ; return 0; } EOF ! if { (eval echo configure:21812: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 21695,21701 **** cat > conftest.$ac_ext < #include --- 21825,21831 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 21704,21710 **** int f = RLIMIT_VMEM ; ; return 0; } EOF ! if { (eval echo configure:21708: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21834,21840 ---- int f = RLIMIT_VMEM ; ; return 0; } EOF ! if { (eval echo configure:21838: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 21721,21727 **** cat > conftest.$ac_ext < #include --- 21851,21857 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 21730,21736 **** int f = RLIMIT_AS ; ; return 0; } EOF ! if { (eval echo configure:21734: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21860,21866 ---- int f = RLIMIT_AS ; ; return 0; } EOF ! if { (eval echo configure:21864: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 21752,21758 **** else cat > conftest.$ac_ext < #include --- 21882,21888 ---- else cat > conftest.$ac_ext < #include *************** int main() { *** 21761,21767 **** struct rlimit r; setrlimit(0, &r); ; return 0; } EOF ! if { (eval echo configure:21765: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_setrlimit=yes else --- 21891,21897 ---- struct rlimit r; setrlimit(0, &r); ; return 0; } EOF ! if { (eval echo configure:21895: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_setrlimit=yes else *************** fi *** 21777,21783 **** fi echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6 ! echo "configure:21781: checking for testsuite memory limit support" >&5 if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then ac_mem_limits=yes cat >> confdefs.h <<\EOF --- 21907,21913 ---- fi echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6 ! echo "configure:21911: checking for testsuite memory limit support" >&5 if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then ac_mem_limits=yes cat >> confdefs.h <<\EOF *************** EOF *** 21793,21799 **** # Look for setenv, so that extended locale tests can be performed. echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6 ! echo "configure:21797: checking for setenv declaration" >&5 if test x${glibcpp_cv_func_setenv_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_setenv_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 21923,21929 ---- # Look for setenv, so that extended locale tests can be performed. echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6 ! echo "configure:21927: checking for setenv declaration" >&5 if test x${glibcpp_cv_func_setenv_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_setenv_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 21808,21821 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { setenv(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:21819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_setenv_use=yes else --- 21938,21951 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { setenv(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:21949: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_setenv_use=yes else *************** fi *** 21841,21852 **** for ac_func in setenv do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:21845: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21975: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21999,22005 ---- ; return 0; } EOF ! if { (eval echo configure:22003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** fi *** 21939,21956 **** # Check to see if libgcc_s exists, indicating that shared libgcc is possible. echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6 ! echo "configure:21943: checking for shared libgcc" >&5 ac_save_CFLAGS="$CFLAGS" CFLAGS=' -lgcc_s' cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_shared_libgcc=yes else --- 22069,22086 ---- # Check to see if libgcc_s exists, indicating that shared libgcc is possible. echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6 ! echo "configure:22073: checking for shared libgcc" >&5 ac_save_CFLAGS="$CFLAGS" CFLAGS=' -lgcc_s' cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_shared_libgcc=yes else *************** if test $enable_symvers = yes ; then *** 21984,21997 **** echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* enable_symvers=gnu else --- 22114,22127 ---- echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* enable_symvers=gnu else *************** else *** 22037,22043 **** GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE= fi echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6 ! echo "configure:22041: checking versioning on shared library symbols" >&5 echo "$ac_t""$enable_symvers" 1>&6 --- 22167,22173 ---- GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE= fi echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6 ! echo "configure:22171: checking versioning on shared library symbols" >&5 echo "$ac_t""$enable_symvers" 1>&6 *************** glibcpp_prefixdir=${prefix} *** 22125,22131 **** # Process the option --with-gxx-include-dir= echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6 ! echo "configure:22129: checking for --with-gxx-include-dir" >&5 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. if test "${with_gxx_include_dir+set}" = set; then withval="$with_gxx_include_dir" --- 22255,22261 ---- # Process the option --with-gxx-include-dir= echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6 ! echo "configure:22259: checking for --with-gxx-include-dir" >&5 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. if test "${with_gxx_include_dir+set}" = set; then withval="$with_gxx_include_dir" *************** echo "$ac_t""$gxx_include_dir" 1>&6 *** 22149,22155 **** # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:22153: checking for --enable-version-specific-runtime-libs" >&5 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. if test "${enable_version_specific_runtime_libs+set}" = set; then enableval="$enable_version_specific_runtime_libs" --- 22279,22285 ---- # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:22283: checking for --enable-version-specific-runtime-libs" >&5 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. if test "${enable_version_specific_runtime_libs+set}" = set; then enableval="$enable_version_specific_runtime_libs" *************** if test x"$glibcpp_toolexecdir" = x"no"; *** 22187,22201 **** if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)' ! glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)' else glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' ! glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)' fi fi echo $ac_n "checking for install location""... $ac_c" 1>&6 ! echo "configure:22199: checking for install location" >&5 echo "$ac_t""$gxx_include_dir" 1>&6 --- 22317,22332 ---- if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)' ! glibcpp_toolexeclibdir='$(toolexecdir)/lib' else glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' ! glibcpp_toolexeclibdir='$(libdir)' fi + glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory` fi echo $ac_n "checking for install location""... $ac_c" 1>&6 ! echo "configure:22330: checking for install location" >&5 echo "$ac_t""$gxx_include_dir" 1>&6 *************** s%@USE_NLS@%$USE_NLS%g *** 22459,22464 **** --- 22590,22596 ---- s%@CLOCALE_H@%$CLOCALE_H%g s%@CCODECVT_H@%$CCODECVT_H%g s%@CMESSAGES_H@%$CMESSAGES_H%g + s%@CTIME_H@%$CTIME_H%g s%@C_INCLUDE_DIR@%$C_INCLUDE_DIR%g s%@GLIBCPP_C_HEADERS_C_TRUE@%$GLIBCPP_C_HEADERS_C_TRUE%g s%@GLIBCPP_C_HEADERS_C_FALSE@%$GLIBCPP_C_HEADERS_C_FALSE%g diff -Nrc3pad gcc-3.2.1/libstdc++-v3/configure.in gcc-3.2.2/libstdc++-v3/configure.in *** gcc-3.2.1/libstdc++-v3/configure.in Mon Oct 21 19:35:41 2002 --- gcc-3.2.2/libstdc++-v3/configure.in Mon Dec 2 22:04:29 2002 *************** ORIGINAL_LD_FOR_MULTILIBS=$LD *** 13,19 **** PACKAGE=libstdc++ AC_SUBST(PACKAGE) # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=5:1:0 AC_SUBST(libtool_VERSION) GLIBCPP_TOPREL_CONFIGURE --- 13,19 ---- PACKAGE=libstdc++ AC_SUBST(PACKAGE) # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=5:2:0 AC_SUBST(libtool_VERSION) GLIBCPP_TOPREL_CONFIGURE *************** else *** 279,284 **** --- 279,285 ---- GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT GLIBCPP_CHECK_WCHAR_T_SUPPORT GLIBCPP_CHECK_STDLIB_SUPPORT + GLIBCPP_CHECK_UNISTD_SUPPORT AC_LC_MESSAGES AC_TRY_COMPILE([ diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/doxygen/TODO gcc-3.2.2/libstdc++-v3/docs/doxygen/TODO *** gcc-3.2.1/libstdc++-v3/docs/doxygen/TODO Sat Jul 20 06:34:50 2002 --- gcc-3.2.2/libstdc++-v3/docs/doxygen/TODO Thu Jan 23 23:35:16 2003 *************** c24 stl_iterator.h (__normal *** 31,37 **** stream iterators c25 stl_algo.h (lots of stuff) c26 , , stl_numeric.h[26.4], Note A ! c27 Untouched backward/* Not scanned by doxygen. Should it be? Doubtful. --- 31,41 ---- stream iterators c25 stl_algo.h (lots of stuff) c26 , , stl_numeric.h[26.4], Note A ! c27 ios_base callbacks and local storage ! basic_ios::copyfmt() ! std_streambuf.h's __copy_streambufs() ! " " _M_* protected memfns (data has been done) ! fstream and sstream protected members backward/* Not scanned by doxygen. Should it be? Doubtful. diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/doxygen/run_doxygen gcc-3.2.2/libstdc++-v3/docs/doxygen/run_doxygen *** gcc-3.2.1/libstdc++-v3/docs/doxygen/run_doxygen Wed Sep 25 17:52:15 2002 --- gcc-3.2.2/libstdc++-v3/docs/doxygen/run_doxygen Thu Jan 23 23:35:16 2003 *************** g++ ${srcdir}/docs/doxygen/stdheader.cc *** 208,214 **** problematic=`egrep -l '#include <.*_.*>' [a-z]*.3` for f in $problematic; do # this is also slow, but safe and easy to debug ! oldh=`sed -n '/#include .*/\1/p' $f` newh=`echo $oldh | ./stdheader` sed "s=${oldh}=${newh}=" $f > TEMP mv TEMP $f --- 208,214 ---- problematic=`egrep -l '#include <.*_.*>' [a-z]*.3` for f in $problematic; do # this is also slow, but safe and easy to debug ! oldh=`sed -n '/fC#include .*/\1/p' $f` newh=`echo $oldh | ./stdheader` sed "s=${oldh}=${newh}=" $f > TEMP mv TEMP $f diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/doxygen/stdheader.cc gcc-3.2.2/libstdc++-v3/docs/doxygen/stdheader.cc *** gcc-3.2.1/libstdc++-v3/docs/doxygen/stdheader.cc Thu Sep 27 22:44:24 2001 --- gcc-3.2.2/libstdc++-v3/docs/doxygen/stdheader.cc Thu Jan 23 23:35:16 2003 *************** void do_word (std::string const& longhea *** 111,116 **** --- 111,123 ---- { std::string::size_type start = 0; + // if it doesn't contain a "." then it's already a std header + if (longheader.find(".") == std::string::npos) + { + std::cout << longheader << '\n'; + return; + } + if (longheader.substr(start,5) == "bits/") start += 5; if ((longheader.substr(start,4) == "stl_") || (longheader.substr(start,4) == "std_")) diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/doxygen/style.css gcc-3.2.2/libstdc++-v3/docs/doxygen/style.css *** gcc-3.2.1/libstdc++-v3/docs/doxygen/style.css Tue Feb 5 00:14:35 2002 --- gcc-3.2.2/libstdc++-v3/docs/doxygen/style.css Thu Jan 23 23:35:16 2003 *************** *** 1,4 **** --- 1,5 ---- H1 { text-align: center; } + CAPTION { font-weight: bold } A.qindex {} A.qindexRef {} A.el { text-decoration: none; font-weight: bold } *************** DL.el { margin-left: -1cm } *** 10,24 **** DIV.fragment { width: 100%; border: none; background-color: #eeeeee } DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } TD.md { background-color: #f2f2ff; font-weight: bold; } ! TD.mdname1 { background-color: #f2f2ff; font-weight: bold; font-style: italic; } ! TD.mdname { background-color: #f2f2ff; font-weight: bold; font-style: italic; width: 600px; } DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold } DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller } ! FONT.keyword { color: #008000 } ! FONT.keywordtype { color: #604020 } ! FONT.keywordflow { color: #e08000 } ! FONT.comment { color: #800000 } ! FONT.preprocessor { color: #806020 } ! FONT.stringliteral { color: #002080 } ! FONT.charliteral { color: #008080 } ! .smallertext { font-size: smaller } --- 11,49 ---- DIV.fragment { width: 100%; border: none; background-color: #eeeeee } DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } TD.md { background-color: #f2f2ff; font-weight: bold; } ! TD.mdname1 { background-color: #f2f2ff; font-weight: bold; color: #602020; } ! TD.mdname { background-color: #f2f2ff; font-weight: bold; color: #602020; width: 600px; } DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold } DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller } ! BODY { background: white } ! TD.indexkey { ! background-color: #eeeeff; ! font-weight: bold; ! padding-right : 10px; ! padding-top : 2px; ! padding-left : 10px; ! padding-bottom : 2px; ! margin-left : 0px; ! margin-right : 0px; ! margin-top : 2px; ! margin-bottom : 2px ! } ! TD.indexvalue { ! background-color: #eeeeff; ! font-style: italic; ! padding-right : 10px; ! padding-top : 2px; ! padding-left : 10px; ! padding-bottom : 2px; ! margin-left : 0px; ! margin-right : 0px; ! margin-top : 2px; ! margin-bottom : 2px ! } ! span.keyword { color: #008000 } ! span.keywordtype { color: #604020 } ! span.keywordflow { color: #e08000 } ! span.comment { color: #800000 } ! span.preprocessor { color: #806020 } ! span.stringliteral { color: #002080 } ! span.charliteral { color: #008080 } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/doxygen/tables.html gcc-3.2.2/libstdc++-v3/docs/doxygen/tables.html *** gcc-3.2.1/libstdc++-v3/docs/doxygen/tables.html Sat Jul 20 06:34:50 2002 --- gcc-3.2.2/libstdc++-v3/docs/doxygen/tables.html Thu Jan 23 23:35:16 2003 *************** *** 31,40 **** are also noted or incorporated.

-

This will probably be incomplete for a while because - filling out the tables is mind-frothingly boring. Also, the HTML table - rendering is ugly. (Update: mozilla 0.9.9 looks MUCH better.)

-

--- 31,36 ---- diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/doxygen/user.cfg.in gcc-3.2.2/libstdc++-v3/docs/doxygen/user.cfg.in *** gcc-3.2.1/libstdc++-v3/docs/doxygen/user.cfg.in Sat Jul 20 06:34:50 2002 --- gcc-3.2.2/libstdc++-v3/docs/doxygen/user.cfg.in Thu Jan 23 23:35:16 2003 *************** *** 1,4 **** ! # Doxyfile 1.2.12 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project --- 1,4 ---- ! # Doxyfile 1.3-rc2 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project *************** OUTPUT_DIRECTORY = @outdir@ *** 43,51 **** # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: ! # Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, ! # German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, ! # Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish. OUTPUT_LANGUAGE = English --- 43,52 ---- # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: ! # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, ! # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en ! # (Japanese with english messages), Korean, Norwegian, Polish, Portuguese, ! # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish and Ukrainian. OUTPUT_LANGUAGE = English *************** EXTRACT_PRIVATE = YES *** 66,71 **** --- 67,78 ---- EXTRACT_STATIC = YES + # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) + # defined locally in source files will be included in the documentation. + # If set to NO only classes defined in header files are included. + + EXTRACT_LOCAL_CLASSES = NO + # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the *************** HIDE_UNDOC_MEMBERS = YES *** 81,86 **** --- 88,107 ---- HIDE_UNDOC_CLASSES = YES + # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all + # friend (class|struct|union) declarations. + # If set to NO (the default) these declarations will be included in the + # documentation. + + HIDE_FRIEND_COMPOUNDS = NO + + # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any + # documentation blocks found inside the body of a function. + # If set to NO (the default) these blocks will be appended to the + # function's detailed documentation block. + + HIDE_IN_BODY_DOCS = NO + # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). *************** HIDE_UNDOC_CLASSES = YES *** 89,95 **** BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend ! # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. --- 110,116 ---- BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend ! # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. *************** REPEAT_BRIEF = YES *** 101,106 **** --- 122,135 ---- ALWAYS_DETAILED_SEC = YES + # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited + # members of a class in the documentation of that class as if those members were + # ordinary class members. Constructors, destructors and assignment operators of + # the base classes will not be shown. + + INLINE_INHERITED_MEMB = NO + # pedwards -- this is useful, but ch27 gets huge + # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. *************** STRIP_FROM_PATH = *** 121,132 **** INTERNAL_DOCS = NO - # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct - # doxygen to hide any special comment blocks from generated source code - # fragments. Normal C and C++ comments will always remain visible. - - STRIP_CODE_COMMENTS = YES - # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower case letters. If set to YES upper case letters are also # allowed. This is useful if you have classes or files whose names only differ --- 150,155 ---- *************** SHOW_INCLUDE_FILES = YES *** 167,172 **** --- 190,210 ---- JAVADOC_AUTOBRIEF = NO + # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen + # treat a multi-line C++ special comment block (i.e. a block of //! or /// + # comments) as a brief description. This used to be the default behaviour. + # The new default is to treat a multi-line C++ comment block as a detailed + # description. Set this tag to YES if you prefer the old behaviour instead. + + MULTILINE_CPP_IS_BRIEF = YES + + # If the DETAILS_AT_TOP tag is set to YES then Doxygen + # will output the detailed description near the top, like JavaDoc. + # If set to NO, the detailed description appears after the member + # documentation. + + DETAILS_AT_TOP = NO + # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # reimplements. *************** INLINE_INFO = YES *** 183,189 **** # alphabetically by member name. If set to NO the members will appear in # declaration order. ! SORT_MEMBER_DOCS = NO # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first --- 221,227 ---- # alphabetically by member name. If set to NO the members will appear in # declaration order. ! SORT_MEMBER_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first *************** GENERATE_TESTLIST = NO *** 215,220 **** --- 253,264 ---- GENERATE_BUGLIST = YES + # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or + # disable (NO) the deprecated list. This list is created by putting + # \deprecated commands in the documentation. + + GENERATE_DEPRECATEDLIST= YES + # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to *************** GENERATE_BUGLIST = YES *** 222,228 **** # will result in a user defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ! ALIASES = "doctodo=@todo\nDoc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more." # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. --- 266,273 ---- # will result in a user defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ! ALIASES = "doctodo=@todo\nDoc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more." \ ! "isiosfwd=One of the @link s27_2_iosfwd I/O forward declarations @endlink" # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. *************** ENABLED_SECTIONS = @enabled_sectio *** 237,243 **** # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. ! MAX_INITIALIZER_LINES = 30 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. --- 282,288 ---- # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. ! MAX_INITIALIZER_LINES = 0 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. *************** MAX_INITIALIZER_LINES = 30 *** 246,251 **** --- 291,303 ---- OPTIMIZE_OUTPUT_FOR_C = NO + # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources + # only. Doxygen will then generate output that is more tailored for Java. + # For instance namespaces will be presented as packages, qualified scopes + # will look different, etc. + + OPTIMIZE_OUTPUT_JAVA = NO + # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. *************** WARNINGS = NO *** 273,278 **** --- 325,337 ---- WARN_IF_UNDOCUMENTED = NO + # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for + # potential errors in the documentation, such as not documenting some + # parameters in a documented function, or documenting parameters that + # don't exist or using markup commands wrongly. + + WARN_IF_DOC_ERROR = NO + # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the *************** RECURSIVE = YES *** 323,336 **** # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. ! EXCLUDE = Makefile CVS # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = CVS \ ! stamp-* # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see --- 382,402 ---- # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. ! EXCLUDE = Makefile \ ! CVS ! ! # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories ! # that are symbolic links (a Unix filesystem feature) are excluded from the input. ! ! EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = CVS \ ! stamp-* \ ! Makefile # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see *************** INPUT_FILTER = *** 369,375 **** # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source ! # files to browse. FILTER_SOURCE_FILES = NO --- 435,441 ---- # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source ! # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO *************** SOURCE_BROWSER = YES *** 387,392 **** --- 453,464 ---- INLINE_SOURCES = NO + # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct + # doxygen to hide any special comment blocks from generated source code + # fragments. Normal C and C++ comments will always remain visible. + + STRIP_CODE_COMMENTS = YES + # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. *************** GENERATE_HTML = @do_html@ *** 437,442 **** --- 509,520 ---- HTML_OUTPUT = @html_output_dir@ + # The HTML_FILE_EXTENSION tag can be used to specify the file extension for + # each generated HTML page (for example: .htm,.php,.asp). If it is left blank + # doxygen will generate files with .html extension. + + HTML_FILE_EXTENSION = .html + # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. *************** HTML_ALIGN_MEMBERS = YES *** 469,474 **** --- 547,566 ---- GENERATE_HTMLHELP = NO + # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can + # be used to specify the file name of the resulting .chm file. You + # can add a path in front of the file if the result should not be + # written to the html output dir. + + CHM_FILE = + + # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can + # be used to specify the location (absolute path including file name) of + # the HTML help compiler (hhc.exe). If non empty doxygen will try to run + # the html help compiler on the generated index.hhp. + + HHC_LOCATION = + # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). *************** GENERATE_LATEX = NO *** 528,533 **** --- 620,636 ---- LATEX_OUTPUT = latex + # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be + # invoked. If left blank `latex' will be used as the default command name. + + LATEX_CMD_NAME = latex + + # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to + # generate index for LaTeX. If left blank `makeindex' will be used as the + # default command name. + + MAKEINDEX_CMD_NAME = makeindex + # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. *************** MAN_OUTPUT = man *** 634,643 **** MAN_EXTENSION = .3 ! # If the MAN_LINKS tag is set to YES and Doxygen generates man output, ! # then it will generate one additional man file for each entity ! # documented in the real man page(s). These additional files ! # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO --- 737,746 ---- MAN_EXTENSION = .3 ! # If the MAN_LINKS tag is set to YES and Doxygen generates man output, ! # then it will generate one additional man file for each entity ! # documented in the real man page(s). These additional files ! # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO *************** MAN_LINKS = NO *** 654,659 **** --- 757,819 ---- GENERATE_XML = NO + # The XML_SCHEMA tag can be used to specify an XML schema, + # which can be used by a validating XML parser to check the + # syntax of the XML files. + + XML_SCHEMA = + + # The XML_DTD tag can be used to specify an XML DTD, + # which can be used by a validating XML parser to check the + # syntax of the XML files. + + XML_DTD = + + #--------------------------------------------------------------------------- + # configuration options for the AutoGen Definitions output + #--------------------------------------------------------------------------- + + # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will + # generate an AutoGen Definitions (see autogen.sf.net) file + # that captures the structure of the code including all + # documentation. Note that this feature is still experimental + # and incomplete at the moment. + + GENERATE_AUTOGEN_DEF = NO + + #--------------------------------------------------------------------------- + # configuration options related to the Perl module output + #--------------------------------------------------------------------------- + + # If the GENERATE_PERLMOD tag is set to YES Doxygen will + # generate a Perl module file that captures the structure of + # the code including all documentation. Note that this + # feature is still experimental and incomplete at the + # moment. + + GENERATE_PERLMOD = NO + + # If the PERLMOD_LATEX tag is set to YES Doxygen will generate + # the necessary Makefile rules, Perl scripts and LaTeX code to be able + # to generate PDF and DVI output from the Perl module output. + + PERLMOD_LATEX = NO + + # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be + # nicely formatted so it can be parsed by a human reader. This is useful + # if you want to understand what is going on. On the other hand, if this + # tag is set to NO the size of the Perl module output will be much smaller + # and Perl will parse it just the same. + + PERLMOD_PRETTY = YES + + # The names of the make variables in the generated doxyrules.make file + # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. + # This is useful so different doxyrules.make files included by the same + # Makefile don't overwrite each other's variables. + + PERLMOD_MAKEVAR_PREFIX = + #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- *************** INCLUDE_FILE_PATTERNS = *** 707,712 **** --- 867,874 ---- ### completely broken, and the presence of the macros confuses the parser. PREDEFINED = _GLIBCPP_DEPRECATED \ + _GLIBCPP_USE_WCHAR_T \ + _GLIBCPP_USE_LONG_LONG \ __glibcpp_class_requires="//" \ __glibcpp_class_requires2="//" \ __glibcpp_class_requires3="//" \ *************** GENERATE_TAGFILE = *** 745,750 **** --- 907,918 ---- ALLEXTERNALS = YES + # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed + # in the modules index. If set to NO, only the current project's groups will + # be listed. + + EXTERNAL_GROUPS = YES + # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). *************** PERL_PATH = /usr/bin/perl *** 762,767 **** --- 930,941 ---- CLASS_DIAGRAMS = YES + # If set to YES, the inheritance and collaboration graphs will hide + # inheritance and usage relations if the target is undocumented + # or is not a class. + + HIDE_UNDOC_RELATIONS = YES + # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section *************** COLLABORATION_GRAPH = YES *** 788,799 **** TEMPLATE_RELATIONS = YES - # If set to YES, the inheritance and collaboration graphs will hide - # inheritance and usage relations if the target is undocumented - # or is not a class. - - HIDE_UNDOC_RELATIONS = YES - # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with --- 962,967 ---- *************** INCLUDED_BY_GRAPH = YES *** 813,818 **** --- 981,992 ---- GRAPHICAL_HIERARCHY = YES + # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images + # generated by dot. Possible values are png, jpg, or gif + # If left blank png will be used. + + DOT_IMAGE_FORMAT = png + # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on the path. *************** BIN_ABSPATH = /usr/local/bin/ *** 895,900 **** # the documentation for these projects as well. EXT_DOC_PATHS = - - ### End of file. - --- 1069,1071 ---- diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/17_intro/contribute.html gcc-3.2.2/libstdc++-v3/docs/html/17_intro/contribute.html *** gcc-3.2.1/libstdc++-v3/docs/html/17_intro/contribute.html Wed Sep 25 17:52:17 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/17_intro/contribute.html Thu Jan 23 23:35:16 2003 *************** *** 1,4 **** ! How to contribute --- 1,9 ---- ! ! ! ! How to contribute diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/17_intro/howto.html gcc-3.2.2/libstdc++-v3/docs/html/17_intro/howto.html *** gcc-3.2.1/libstdc++-v3/docs/html/17_intro/howto.html Wed Sep 25 17:52:17 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/17_intro/howto.html Thu Jan 23 23:35:16 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! *************** *** 184,189 **** --- 189,197 ----

For each entry, we give the section number of the standard, when applicable. This list is probably incomplet and inkorrekt.

+

[1.9]/11 #3 If isatty(3) is true, then + interactive stream support is implied. +

[17.4.4.5] Non-reentrant functions are probably best discussed in the various sections on multithreading (see above).

*************** *** 237,243 **** here would defeat the purpose. :-)

[21.1.3.1]/5 I don't really know about the mbstate_t ! stuff... see the chapter 22 notes for what does exist.

[22.*] Anything and everything we have on locale implemenation will be described --- 245,252 ---- here would defeat the purpose. :-)

[21.1.3.1]/5 I don't really know about the mbstate_t ! stuff... see the chapter 22 notes ! for what does exist.

[22.*] Anything and everything we have on locale implemenation will be described *************** *** 255,262 **** on the --enable-libio choice: for stdio, if the written data is already in the stdio buffer, the data may be completely safe!

!

I/O sentry ctor/dtor They can perform additional work ! than the minimum required. I don't think we're currently taking advantage of this yet.

[27.7.1.3]/16,
--- 264,272 ---- on the --enable-libio choice: for stdio, if the written data is already in the stdio buffer, the data may be completely safe!

!

[27.6.1.1.2],
! [27.6.2.3] The I/O sentry ctor and dtor can perform ! additional work than the minimum required. We are not currently taking advantage of this yet.

[27.7.1.3]/16,
diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/17_intro/license.html gcc-3.2.2/libstdc++-v3/docs/html/17_intro/license.html *** gcc-3.2.1/libstdc++-v3/docs/html/17_intro/license.html Wed Sep 25 17:52:17 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/17_intro/license.html Thu Jan 23 23:35:16 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/17_intro/porting.html gcc-3.2.2/libstdc++-v3/docs/html/17_intro/porting.html *** gcc-3.2.1/libstdc++-v3/docs/html/17_intro/porting.html Sat Jul 20 06:34:50 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/17_intro/porting.html Thu Jan 23 23:35:16 2003 *************** *** 2,61 **** Porting libstdc++-v3 ! ! ! !

Porting libstdc++-v3


Node:Top, ! Next:, ! Up:(dir)
!

Porting libstdc++-v3

!

This document explains how to port libstdc++-v3 (the GNU C++ library) to a new target. !

In order to make the GNU C++ library (libstdc++-v3) work with a new target, you must edit some configuration files and provide some new header files. Unless this is done, libstdc++-v3 will use generic settings which may not be correct for your target; even if they are correct, they will likely be inefficient. !

Before you get started, make sure that you have a working C library on your target. The C library need not precisely comply with any particular standard, but should generally conform to the requirements imposed by the ANSI/ISO standard. !

In addition, you should try to verify that the C++ compiler generally works. It is difficult to test the C++ compiler without a working library, but you should at least try some minimal test cases. !

Here are the primary steps required to port the library: !


Node:Operating system, ! Next:, ! Previous:Top, ! Up:Top
!

Operating system

!

If you are porting to a new operating system (as opposed to a new chip using an existing operating system), you will need to create a new directory in the config/os hierarchy. For example, the IRIX configuration files are all in config/os/irix. There is no set --- 2,85 ---- Porting libstdc++-v3 ! ! ! ! !

Porting libstdc++-v3

!


Node:Top, ! Next:, ! Up:(dir)
+
!

Porting libstdc++-v3

!

This document explains how to port libstdc++-v3 (the GNU C++ library) to a new target. !

In order to make the GNU C++ library (libstdc++-v3) work with a new target, you must edit some configuration files and provide some new header files. Unless this is done, libstdc++-v3 will use generic settings which may not be correct for your target; even if they are correct, they will likely be inefficient. !

Before you get started, make sure that you have a working C library on your target. The C library need not precisely comply with any particular standard, but should generally conform to the requirements imposed by the ANSI/ISO standard. !

In addition, you should try to verify that the C++ compiler generally works. It is difficult to test the C++ compiler without a working library, but you should at least try some minimal test cases. !

Here are the primary steps required to port the library: !

+


Node:Operating system, ! Next:, ! Previous:Top, ! Up:Top
+
!

Operating system

!

If you are porting to a new operating system (as opposed to a new chip using an existing operating system), you will need to create a new directory in the config/os hierarchy. For example, the IRIX configuration files are all in config/os/irix. There is no set *************** directory. The important information is *** 68,91 **** directory under config/os to store the files for your operating system. !

You'll have to change the configure.target file to ensure that ! your new directory is activated. Look for the switch statement that ! sets os_include_dir, and add a pattern to handle your operating ! system. The switch statement switches on only the OS portion of the ! standard target triplet; e.g., the solaris2.8 in ! sparc-sun-solaris2.8. !

The first file to create in this directory, should be called os_defines.h. This file contains basic macro definitions that are required to allow the C++ library to work with your C library. This file should provide macro definitions for __off_t, __off64_t, and __ssize_t. Typically, this just looks like: !

#define __off_t off_t
! #define __off64_t off64_t
! #define __ssize_t ssize_t
! 

You don't have to provide these definitions if your system library already defines these types - but the only library known to provide --- 92,116 ---- directory under config/os to store the files for your operating system. !

You might have to change the configure.target file to ensure that ! your new directory is activated. Look for the switch statement that sets ! os_include_dir, and add a pattern to handle your operating system ! if the default will not suffice. The switch statement switches on only ! the OS portion of the standard target triplet; e.g., the solaris2.8 ! in sparc-sun-solaris2.8. If the new directory is named after the ! OS portion of the triplet (the default), then nothing needs to be changed. !

The first file to create in this directory, should be called os_defines.h. This file contains basic macro definitions that are required to allow the C++ library to work with your C library. This file should provide macro definitions for __off_t, __off64_t, and __ssize_t. Typically, this just looks like: !

     #define __off_t off_t
!      #define __off64_t off64_t
!      #define __ssize_t ssize_t
!      

You don't have to provide these definitions if your system library already defines these types - but the only library known to provide *************** provide these macros. Note that this fi *** 94,100 **** header file that defines off_t, or the other types; you simply have to provide the macros. !

In addition, several libstdc++-v3 source files unconditionally define the macro _POSIX_SOURCE. On many systems, defining this macro causes large portions of the C library header files to be eliminated at preprocessing time. Therefore, you may have to #undef this --- 119,125 ---- header file that defines off_t, or the other types; you simply have to provide the macros. !

In addition, several libstdc++-v3 source files unconditionally define the macro _POSIX_SOURCE. On many systems, defining this macro causes large portions of the C library header files to be eliminated at preprocessing time. Therefore, you may have to #undef this *************** need to define. You will need to add th *** 109,179 **** target. It will not work to simply define these macros in os_defines.h. !

At this time, there is one libstdc++-v3-specific macro which may be defined. _G_USING_THUNKS may be defined to 0 to express that the port doesn't use thunks (although it is unclear that this is still useful since libio support isn't currently working and the g++ v3 ABI invalidates the assumption that some ports don't use thunks). !

Finally, you should bracket the entire file in an include-guard, like this: !

#ifndef _GLIBCPP_OS_DEFINES
! #define _GLIBCPP_OS_DEFINES
! ...
! #endif
! 
!

We recommend copying an existing os_defines.h to use as a starting point.


Node:CPU, ! Next:, ! Previous:Operating system, ! Up:Top
!

CPU

!

If you are porting to a new chip (as opposed to a new operating system running on an existing chip), you will need to create a new directory in the config/cpu hierarchy. Much like the Operating system setup, there are no strict rules on how to organize the CPU configuration directory, but careful naming choices will allow the configury to find your setup files without explicit help. !

We recommend that for a target triplet <CPU>-<vendor>-<OS>, you name your configuration directory config/cpu/<CPU>. If you do this, the configury will find the directory itself. Otherwise you will need to edit the configure.target file and, in the switch statement that sets cpu_include_dir, add a pattern to handle your chip. !

Note that some chip families share a single configuration directory, for example, alpha, alphaev5, and alphaev6 all use the config/cpu/alpha directory, and there is an entry in the configure.target switch statement to handle this. !

The cpu_include_dir sets default locations for the files controlling Thread safety and Numeric limits, if the defaults are not appropriate for your chip.


Node:Character types, ! Next:, ! Previous:CPU, ! Up:Top
!

Character types

!

The library requires that you provide three header files to implement character classification, analogous to that provided by the C libraries <ctype.h> header. You can model these on the files provided in config/os/generic. However, these files will almost certainly need some modification. !

The first file to write is ctype_base.h. This file provides some very basic information about character classification. The libstdc++-v3 library assumes that your C library implements <ctype.h> by using a table (indexed by character code) containing integers, where each of --- 134,208 ---- target. It will not work to simply define these macros in os_defines.h. !

At this time, there is one libstdc++-v3-specific macro which may be defined. _G_USING_THUNKS may be defined to 0 to express that the port doesn't use thunks (although it is unclear that this is still useful since libio support isn't currently working and the g++ v3 ABI invalidates the assumption that some ports don't use thunks). !

Finally, you should bracket the entire file in an include-guard, like this: !

     #ifndef _GLIBCPP_OS_DEFINES
!      #define _GLIBCPP_OS_DEFINES
!      ...
!      #endif
!      
!

We recommend copying an existing os_defines.h to use as a starting point. +


Node:CPU, ! Next:, ! Previous:Operating system, ! Up:Top
+
!

CPU

!

If you are porting to a new chip (as opposed to a new operating system running on an existing chip), you will need to create a new directory in the config/cpu hierarchy. Much like the Operating system setup, there are no strict rules on how to organize the CPU configuration directory, but careful naming choices will allow the configury to find your setup files without explicit help. !

We recommend that for a target triplet <CPU>-<vendor>-<OS>, you name your configuration directory config/cpu/<CPU>. If you do this, the configury will find the directory itself. Otherwise you will need to edit the configure.target file and, in the switch statement that sets cpu_include_dir, add a pattern to handle your chip. !

Note that some chip families share a single configuration directory, for example, alpha, alphaev5, and alphaev6 all use the config/cpu/alpha directory, and there is an entry in the configure.target switch statement to handle this. !

The cpu_include_dir sets default locations for the files controlling Thread safety and Numeric limits, if the defaults are not appropriate for your chip. +


Node:Character types, ! Next:, ! Previous:CPU, ! Up:Top
+
!

Character types

!

The library requires that you provide three header files to implement character classification, analogous to that provided by the C libraries <ctype.h> header. You can model these on the files provided in config/os/generic. However, these files will almost certainly need some modification. !

The first file to write is ctype_base.h. This file provides some very basic information about character classification. The libstdc++-v3 library assumes that your C library implements <ctype.h> by using a table (indexed by character code) containing integers, where each of *************** file gives the type of the integer, and *** 183,215 **** masks. You will have to peer at your own <ctype.h> to figure out how to define the values required by this file. !

The ctype_base.h header file does not need include guards. It should contain a single struct definition called ctype_base. This struct should contain two type declarations, and one enumeration declaration, like this example, taken from the IRIX configuration: !

struct ctype_base
! {
!   typedef unsigned int 	mask;
!   typedef int* 		__to_type;
! 
!   enum
!   {
!     space = _ISspace,
!     print = _ISprint,
!     cntrl = _IScntrl,
!     upper = _ISupper,
!     lower = _ISlower,
!     alpha = _ISalpha,
!     digit = _ISdigit,
!     punct = _ISpunct,
!     xdigit = _ISxdigit,
!     alnum = _ISalnum,
!     graph = _ISgraph
!   };
! };
! 

The mask type is the type of the elements in the table. If your C library uses a table to map lower-case numbers to upper-case numbers, --- 212,244 ---- masks. You will have to peer at your own <ctype.h> to figure out how to define the values required by this file. !

The ctype_base.h header file does not need include guards. It should contain a single struct definition called ctype_base. This struct should contain two type declarations, and one enumeration declaration, like this example, taken from the IRIX configuration: !

     struct ctype_base
!      {
!        typedef unsigned int 	mask;
!        typedef int* 		__to_type;
!      
!        enum
!        {
!          space = _ISspace,
!          print = _ISprint,
!          cntrl = _IScntrl,
!          upper = _ISupper,
!          lower = _ISlower,
!          alpha = _ISalpha,
!          digit = _ISdigit,
!          punct = _ISpunct,
!          xdigit = _ISxdigit,
!          alnum = _ISalnum,
!          graph = _ISgraph
!        };
!      };
!      

The mask type is the type of the elements in the table. If your C library uses a table to map lower-case numbers to upper-case numbers, *************** penalty, or if your library doesn't impl *** 219,247 **** tolower in this way, you can pick any pointer-to-integer type, but you must still define the type. !

The enumeration should give definitions for all the values in the above example, using the values from your native <ctype.h>. They can be given symbolically (as above), or numerically, if you prefer. You do not have to include <ctype.h> in this header; it will always be included before ctype_base.h is included. !

The next file to write is ctype_noninline.h, which also does not require include guards. This file defines a few member functions that will be included in include/bits/locale_facets.h. The first function that must be written is the ctype<char>::ctype constructor. Here is the IRIX example: !

ctype<char>::ctype(const mask* __table = 0, bool __del = false,
!       size_t __refs = 0)
!   : _Ctype_nois<char>(__refs), _M_del(__table != 0 && __del),
!     _M_toupper(NULL),
!     _M_tolower(NULL),
!     _M_ctable(NULL),
!     _M_table(!__table
!              ? (const mask*) (__libc_attr._ctype_tbl->_class + 1)
!              : __table)
!   { }
! 

There are two parts of this that you might choose to alter. The first, and most important, is the line involving __libc_attr. That is --- 248,276 ---- tolower in this way, you can pick any pointer-to-integer type, but you must still define the type. !

The enumeration should give definitions for all the values in the above example, using the values from your native <ctype.h>. They can be given symbolically (as above), or numerically, if you prefer. You do not have to include <ctype.h> in this header; it will always be included before ctype_base.h is included. !

The next file to write is ctype_noninline.h, which also does not require include guards. This file defines a few member functions that will be included in include/bits/locale_facets.h. The first function that must be written is the ctype<char>::ctype constructor. Here is the IRIX example: !

     ctype<char>::ctype(const mask* __table = 0, bool __del = false,
!            size_t __refs = 0)
!        : _Ctype_nois<char>(__refs), _M_del(__table != 0 && __del),
!          _M_toupper(NULL),
!          _M_tolower(NULL),
!          _M_ctable(NULL),
!          _M_table(!__table
!                   ? (const mask*) (__libc_attr._ctype_tbl->_class + 1)
!                   : __table)
!        { }
!      

There are two parts of this that you might choose to alter. The first, and most important, is the line involving __libc_attr. That is *************** operating system's tables to map upper-c *** 252,391 **** vice versa, you should initialize _M_toupper and _M_tolower with those tables, in similar fashion. !

Now, you have to write two functions to convert from upper-case to lower-case, and vice versa. Here are the IRIX versions: !

char
! ctype<char>::do_toupper(char __c) const
! { return _toupper(__c); }
! 
! char
! ctype<char>::do_tolower(char __c) const
! { return _tolower(__c); }
! 

Your C library provides equivalents to IRIX's _toupper and _tolower. If you initialized _M_toupper and _M_tolower above, then you could use those tables instead. !

Finally, you have to provide two utility functions that convert strings of characters. The versions provided here will always work - but you could use specialized routines for greater performance if you have machinery to do that on your system: !

const char*
! ctype<char>::do_toupper(char* __low, const char* __high) const
! {
!   while (__low < __high)
!     {
!       *__low = do_toupper(*__low);
!       ++__low;
!     }
!   return __high;
! }
! 
! const char*
! ctype<char>::do_tolower(char* __low, const char* __high) const
! {
!   while (__low < __high)
!     {
!       *__low = do_tolower(*__low);
!       ++__low;
!     }
!   return __high;
! }
! 
!

You must also provide the ctype_inline.h file, which contains a few more functions. On most systems, you can just copy config/os/generic/ctype_inline.h and use it on your system. !

In detail, the functions provided test characters for particular properties; they are analogous to the functions like isalpha and islower provided by the C library. !

The first function is implemented like this on IRIX: !

bool
! ctype<char>::
! is(mask __m, char __c) const throw()
! { return (_M_table)[(unsigned char)(__c)] & __m; }
! 

The _M_table is the table passed in above, in the constructor. This is the table that contains the bitmasks for each character. The implementation here should work on all systems. !

The next function is: !

const char*
! ctype<char>::
! is(const char* __low, const char* __high, mask* __vec) const throw()
! {
!   while (__low < __high)
!     *__vec++ = (_M_table)[(unsigned char)(*__low++)];
!   return __high;
! }
! 

This function is similar; it copies the masks for all the characters from __low up until __high into the vector given by __vec. !

The last two functions again are entirely generic: ! !

const char*
! ctype<char>::
! scan_is(mask __m, const char* __low, const char* __high) const throw()
! {
!   while (__low < __high && !this->is(__m, *__low))
!     ++__low;
!   return __low;
! }
  
! const char*
! ctype<char>::
! scan_not(mask __m, const char* __low, const char* __high) const throw()
! {
!   while (__low < __high && this->is(__m, *__low))
!     ++__low;
!   return __low;
! }
! 


Node:Thread safety, ! Next:, ! Previous:Character types, ! Up:Top
!

Thread safety

!

The C++ library string functionality requires a couple of atomic operations to provide thread-safety. If you don't take any special action, the library will use stub versions of these functions that are not thread-safe. They will work fine, unless your applications are multi-threaded. !

If you want to provide custom, safe, versions of these functions, there are two distinct approaches. One is to provide a version for your CPU, using assembly language constructs. The other is to use the thread-safety primitives in your operating system. In either case, you make a file called atomicity.h, and the variable ATOMICITYH must point to this file. !

If you are using the assembly-language approach, put this code in config/cpu/<chip>/atomicity.h, where chip is the name of your processor (see CPU). No additional changes are necessary to locate the file in this case; ATOMICITYH will be set by default. !

If you are using the operating system thread-safety primitives approach, you can also put this code in the same CPU directory, in which case no more work is needed to locate the file. For examples of this approach, see the atomicity.h file for IRIX or IA64. !

Alternatively, if the primitives are more closely related to the OS than they are to the CPU, you can put the atomicity.h file in the Operating system directory instead. In this case, you must edit configure.target, and in the switch statement that handles --- 281,422 ---- vice versa, you should initialize _M_toupper and _M_tolower with those tables, in similar fashion. !

Now, you have to write two functions to convert from upper-case to lower-case, and vice versa. Here are the IRIX versions: !

     char
!      ctype<char>::do_toupper(char __c) const
!      { return _toupper(__c); }
!      
!      char
!      ctype<char>::do_tolower(char __c) const
!      { return _tolower(__c); }
!      

Your C library provides equivalents to IRIX's _toupper and _tolower. If you initialized _M_toupper and _M_tolower above, then you could use those tables instead. !

Finally, you have to provide two utility functions that convert strings of characters. The versions provided here will always work - but you could use specialized routines for greater performance if you have machinery to do that on your system: !

     const char*
!      ctype<char>::do_toupper(char* __low, const char* __high) const
!      {
!        while (__low < __high)
!          {
!            *__low = do_toupper(*__low);
!            ++__low;
!          }
!        return __high;
!      }
!      
!      const char*
!      ctype<char>::do_tolower(char* __low, const char* __high) const
!      {
!        while (__low < __high)
!          {
!            *__low = do_tolower(*__low);
!            ++__low;
!          }
!        return __high;
!      }
!      
!

You must also provide the ctype_inline.h file, which contains a few more functions. On most systems, you can just copy config/os/generic/ctype_inline.h and use it on your system. !

In detail, the functions provided test characters for particular properties; they are analogous to the functions like isalpha and islower provided by the C library. !

The first function is implemented like this on IRIX: !

     bool
!      ctype<char>::
!      is(mask __m, char __c) const throw()
!      { return (_M_table)[(unsigned char)(__c)] & __m; }
!      

The _M_table is the table passed in above, in the constructor. This is the table that contains the bitmasks for each character. The implementation here should work on all systems. !

The next function is: !

     const char*
!      ctype<char>::
!      is(const char* __low, const char* __high, mask* __vec) const throw()
!      {
!        while (__low < __high)
!          *__vec++ = (_M_table)[(unsigned char)(*__low++)];
!        return __high;
!      }
!      

This function is similar; it copies the masks for all the characters from __low up until __high into the vector given by __vec. !

The last two functions again are entirely generic: !

     const char*
!      ctype<char>::
!      scan_is(mask __m, const char* __low, const char* __high) const throw()
!      {
!        while (__low < __high && !this->is(__m, *__low))
!          ++__low;
!        return __low;
!      }
!      
!      const char*
!      ctype<char>::
!      scan_not(mask __m, const char* __low, const char* __high) const throw()
!      {
!        while (__low < __high && this->is(__m, *__low))
!          ++__low;
!        return __low;
!      }
!      
+


Node:Thread safety, ! Next:, ! Previous:Character types, ! Up:Top
+
!

Thread safety

!

The C++ library string functionality requires a couple of atomic operations to provide thread-safety. If you don't take any special action, the library will use stub versions of these functions that are not thread-safe. They will work fine, unless your applications are multi-threaded. !

If you want to provide custom, safe, versions of these functions, there are two distinct approaches. One is to provide a version for your CPU, using assembly language constructs. The other is to use the thread-safety primitives in your operating system. In either case, you make a file called atomicity.h, and the variable ATOMICITYH must point to this file. !

If you are using the assembly-language approach, put this code in config/cpu/<chip>/atomicity.h, where chip is the name of your processor (see CPU). No additional changes are necessary to locate the file in this case; ATOMICITYH will be set by default. !

If you are using the operating system thread-safety primitives approach, you can also put this code in the same CPU directory, in which case no more work is needed to locate the file. For examples of this approach, see the atomicity.h file for IRIX or IA64. !

Alternatively, if the primitives are more closely related to the OS than they are to the CPU, you can put the atomicity.h file in the Operating system directory instead. In this case, you must edit configure.target, and in the switch statement that handles *************** operating systems, override the AT *** 393,512 **** the appropriate os_include_dir. For examples of this approach, see the atomicity.h file for AIX. !

With those bits out of the way, you have to actually write atomicity.h itself. This file should be wrapped in an include guard named _BITS_ATOMICITY_H. It should define one type, and two functions. !

The type is _Atomic_word. Here is the version used on IRIX: !

typedef long _Atomic_word;
! 

This type must be a signed integral type supporting atomic operations. If you're using the OS approach, use the same type used by your system's primitives. Otherwise, use the type for which your CPU provides atomic primitives. !

Then, you must provide two functions. The bodies of these functions must be equivalent to those provided here, but using atomic operations: !

static inline _Atomic_word
! __attribute__ ((__unused__))
! __exchange_and_add (_Atomic_word* __mem, int __val)
! {
!   _Atomic_word __result = *__mem;
!   *__mem += __val;
!   return __result;
! }
! 
! static inline void
! __attribute__ ((__unused__))
! __atomic_add (_Atomic_word* __mem, int __val)
! {
!   *__mem += __val;
! }
! 


Node:Numeric limits, ! Next:, ! Previous:Thread safety, ! Up:Top
!

Numeric limits

!

The C++ library requires information about the fundamental data types, such as the minimum and maximum representable values of each type. You can define each of these values individually, but it is usually easiest just to indicate how many bits are used in each of the data types and let the library do the rest. For information about the macros to define, see the top of include/bits/std_limits.h. !

If you need to define any macros, you can do so in os_defines.h. However, if all operating systems for your CPU are likely to use the same values, you can provide a CPU-specific file instead so that you do not have to provide the same definitions for each operating system. To take that approach, create a new file called cpu_limits.h in your CPU configuration directory (see CPU).


Node:Libtool, ! Next:, ! Previous:Numeric limits, ! Up:Top
!

Libtool

!

The C++ library is compiled, archived and linked with libtool. Explaining the full workings of libtool is beyond the scope of this document, but there are a few, particular bits that are necessary for porting. !

Some parts of the libstdc++-v3 library are compiled with the libtool --tags CXX option (the C++ definitions for libtool). Therefore, ltcf-cxx.sh in the top-level directory needs to have the correct logic to compile and archive objects equivalent to the C version of libtool, ltcf-c.sh. Some libtool targets have definitions for C but not for C++, or C++ definitions which have not been kept up to date. !

The C++ run-time library contains initialization code that needs to be run as the library is loaded. Often, that requires linking in special object files when the C++ library is built as a shared library, or taking other system-specific actions. !

The libstdc++-v3 library is linked with the C version of libtool, even though it is a C++ library. Therefore, the C version of libtool needs to ensure that the run-time library initializers are run. The usual way to do this is to build the library using gcc -shared. !

If you need to change how the library is linked, look at ltcf-c.sh in the top-level directory. Find the switch statement that sets archive_cmds. Here, adjust the setting for your operating system.


Node:GNU Free Documentation License, ! Previous:Libtool, ! Up:Top
!

GNU Free Documentation License

Version 1.1, March 2000
!
Copyright © 2000 Free Software Foundation, Inc.
! 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
! 
! Everyone is permitted to copy and distribute verbatim copies
! of this license document, but changing it is not allowed.
! 
!
    !

  1. PREAMBLE !

    The purpose of this License is to make a manual, textbook, or other written document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, --- 424,549 ---- the appropriate os_include_dir. For examples of this approach, see the atomicity.h file for AIX. !

    With those bits out of the way, you have to actually write atomicity.h itself. This file should be wrapped in an include guard named _BITS_ATOMICITY_H. It should define one type, and two functions. !

    The type is _Atomic_word. Here is the version used on IRIX: !

         typedef long _Atomic_word;
    !      

    This type must be a signed integral type supporting atomic operations. If you're using the OS approach, use the same type used by your system's primitives. Otherwise, use the type for which your CPU provides atomic primitives. !

    Then, you must provide two functions. The bodies of these functions must be equivalent to those provided here, but using atomic operations: !

         static inline _Atomic_word
    !      __attribute__ ((__unused__))
    !      __exchange_and_add (_Atomic_word* __mem, int __val)
    !      {
    !        _Atomic_word __result = *__mem;
    !        *__mem += __val;
    !        return __result;
    !      }
    !      
    !      static inline void
    !      __attribute__ ((__unused__))
    !      __atomic_add (_Atomic_word* __mem, int __val)
    !      {
    !        *__mem += __val;
    !      }
    !      
    +


    Node:Numeric limits, ! Next:, ! Previous:Thread safety, ! Up:Top
    +
    !

    Numeric limits

    !

    The C++ library requires information about the fundamental data types, such as the minimum and maximum representable values of each type. You can define each of these values individually, but it is usually easiest just to indicate how many bits are used in each of the data types and let the library do the rest. For information about the macros to define, see the top of include/bits/std_limits.h. !

    If you need to define any macros, you can do so in os_defines.h. However, if all operating systems for your CPU are likely to use the same values, you can provide a CPU-specific file instead so that you do not have to provide the same definitions for each operating system. To take that approach, create a new file called cpu_limits.h in your CPU configuration directory (see CPU). +


    Node:Libtool, ! Next:, ! Previous:Numeric limits, ! Up:Top
    +
    !

    Libtool

    !

    The C++ library is compiled, archived and linked with libtool. Explaining the full workings of libtool is beyond the scope of this document, but there are a few, particular bits that are necessary for porting. !

    Some parts of the libstdc++-v3 library are compiled with the libtool --tags CXX option (the C++ definitions for libtool). Therefore, ltcf-cxx.sh in the top-level directory needs to have the correct logic to compile and archive objects equivalent to the C version of libtool, ltcf-c.sh. Some libtool targets have definitions for C but not for C++, or C++ definitions which have not been kept up to date. !

    The C++ run-time library contains initialization code that needs to be run as the library is loaded. Often, that requires linking in special object files when the C++ library is built as a shared library, or taking other system-specific actions. !

    The libstdc++-v3 library is linked with the C version of libtool, even though it is a C++ library. Therefore, the C version of libtool needs to ensure that the run-time library initializers are run. The usual way to do this is to build the library using gcc -shared. !

    If you need to change how the library is linked, look at ltcf-c.sh in the top-level directory. Find the switch statement that sets archive_cmds. Here, adjust the setting for your operating system. +


    Node:GNU Free Documentation License, ! Previous:Libtool, ! Up:Top
    +
    !

    GNU Free Documentation License

    Version 1.1, March 2000
    !
         Copyright © 2000 Free Software Foundation, Inc.
    !      59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
    !      
    !      Everyone is permitted to copy and distribute verbatim copies
    !      of this license document, but changing it is not allowed.
    !      
    !
      !
    1. PREAMBLE !

      The purpose of this License is to make a manual, textbook, or other written document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, *************** this License preserves for the author an *** 514,525 **** credit for their work, while not being considered responsible for modifications made by others. !

      This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. !

      We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; --- 551,562 ---- credit for their work, while not being considered responsible for modifications made by others. !

      This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. !

      We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; *************** it can be used for any textual work, reg *** 527,545 **** whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. !

    2. APPLICABILITY AND DEFINITIONS !

      This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". !

      A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. !

      A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly --- 564,582 ---- whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. !

    3. APPLICABILITY AND DEFINITIONS !

      This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". !

      A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. !

      A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly *************** connection with the subject or with rela *** 550,564 **** commercial, philosophical, ethical or political position regarding them. !

      The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. !

      The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. !

      A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of --- 587,601 ---- commercial, philosophical, ethical or political position regarding them. !

      The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. !

      The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. !

      A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of *************** format whose markup has been designed to *** 570,576 **** subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque". !

      Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed --- 607,613 ---- subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque". !

      Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed *************** the DTD and/or processing *** 581,596 **** and the machine-generated HTML produced by some word processors for output purposes only. !

      The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. !

    4. VERBATIM COPYING !

      You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other --- 618,633 ---- and the machine-generated HTML produced by some word processors for output purposes only. !

      The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. !

    5. VERBATIM COPYING !

      You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other *************** copying of the copies you make or distri *** 600,611 **** compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. !

      You may also lend copies, under the same conditions stated above, and you may publicly display copies. !

    6. COPYING IN QUANTITY !

      If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on --- 637,648 ---- compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. !

      You may also lend copies, under the same conditions stated above, and you may publicly display copies. !

    7. COPYING IN QUANTITY !

      If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on *************** Copying with changes limited to the cove *** 617,628 **** the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. !

      If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. !

      If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete --- 654,665 ---- the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. !

      If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. !

      If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete *************** until at least one year after the last t *** 636,684 **** copy (directly or through your agents or retailers) of that edition to the public. !

      It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. !

    8. MODIFICATIONS !

      You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: !

        !

      1. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. !
      2. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five). !
      3. State on the Title page the name of the publisher of the Modified Version, as the publisher. !
      4. Preserve all the copyright notices of the Document. !
      5. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. !
      6. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. !
      7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. !
      8. Include an unaltered copy of this License. !
      9. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one --- 673,721 ---- copy (directly or through your agents or retailers) of that edition to the public. !

        It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. !

      10. MODIFICATIONS !

        You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: !

          !
        1. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. !
        2. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five). !
        3. State on the Title page the name of the publisher of the Modified Version, as the publisher. !
        4. Preserve all the copyright notices of the Document. !
        5. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. !
        6. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. !
        7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. !
        8. Include an unaltered copy of this License. !
        9. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one *************** stating the title, year, authors, and pu *** 686,692 **** given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. !
        10. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. --- 723,729 ---- given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. !
        11. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. *************** You may omit a network location for a wo *** 694,729 **** least four years before the Document itself, or if the original publisher of the version it refers to gives permission. !
        12. In any section entitled "Acknowledgments" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgments and/or dedications given therein. !
        13. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. !
        14. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version. !
        15. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section. !
        !

        If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. !

        You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. !

        You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or --- 731,766 ---- least four years before the Document itself, or if the original publisher of the version it refers to gives permission. !

      11. In any section entitled "Acknowledgments" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgments and/or dedications given therein. !
      12. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. !
      13. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version. !
      14. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section. !
      !

      If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. !

      You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. !

      You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or *************** by arrangement made by the same entity y *** 733,752 **** you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. !

      The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. !

    9. COMBINING DOCUMENTS !

      You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice. !

      The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by --- 770,789 ---- you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. !

      The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. !

    10. COMBINING DOCUMENTS !

      You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice. !

      The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by *************** author or publisher of that section if k *** 755,782 **** Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. !

      In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgments", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements." !

    11. COLLECTIONS OF DOCUMENTS !

      You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. !

      You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. !

    12. AGGREGATION WITH INDEPENDENT WORKS !

      A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the --- 792,819 ---- Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. !

      In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgments", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements." !

    13. COLLECTIONS OF DOCUMENTS !

      You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. !

      You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. !

    14. AGGREGATION WITH INDEPENDENT WORKS !

      A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the *************** License does not apply to the other self *** 785,799 **** with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document. !

      If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate. !

    15. TRANSLATION !

      Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include --- 822,836 ---- with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document. !

      If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate. !

    16. TRANSLATION !

      Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include *************** original English version of this License *** 804,812 **** between the translation and the original English version of this License, the original English version will prevail. !

    17. TERMINATION !

      You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, --- 841,849 ---- between the translation and the original English version of this License, the original English version will prevail. !

    18. TERMINATION !

      You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, *************** parties who have received copies, or rig *** 814,828 **** License will not have their licenses terminated so long as such parties remain in full compliance. !

    19. FUTURE REVISIONS OF THIS LICENSE !

      The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. !

      Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or --- 851,865 ---- License will not have their licenses terminated so long as such parties remain in full compliance. !

    20. FUTURE REVISIONS OF THIS LICENSE !

      The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. !

      Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or *************** of any later version that has been publi *** 830,886 **** Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. !

    !

    ADDENDUM: How to use this License for your documents

    !

    To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: !

      Copyright (C)  year  your name.
    !   Permission is granted to copy, distribute and/or modify this document
    !   under the terms of the GNU Free Documentation License, Version 1.1
    !   or any later version published by the Free Software Foundation;
    !   with the Invariant Sections being list their titles, with the
    !   Front-Cover Texts being list, and with the Back-Cover Texts being list.
    !   A copy of the license is included in the section entitled ``GNU
    !   Free Documentation License''.
    ! 
    !

    If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being list"; likewise for Back-Cover Texts. !

    If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

    Table of Contents

    ! --- 867,917 ---- Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. !
!

ADDENDUM: How to use this License for your documents

!

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: !

       Copyright (C)  year  your name.
!        Permission is granted to copy, distribute and/or modify this document
!        under the terms of the GNU Free Documentation License, Version 1.1
!        or any later version published by the Free Software Foundation;
!        with the Invariant Sections being list their titles, with the
!        Front-Cover Texts being list, and with the Back-Cover Texts being list.
!        A copy of the license is included in the section entitled ``GNU
!        Free Documentation License''.
!      
!

If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being list"; likewise for Back-Cover Texts. !

If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. +

! diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/17_intro/porting.texi gcc-3.2.2/libstdc++-v3/docs/html/17_intro/porting.texi *** gcc-3.2.1/libstdc++-v3/docs/html/17_intro/porting.texi Sat Jul 20 06:34:50 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/17_intro/porting.texi Thu Jan 23 23:35:17 2003 *************** *** 8,29 **** @settitle Porting libstdc++-v3 @setchapternewpage odd ! @ifinfo ! This file explains how to port libstdc++-v3 (the GNU C++ library) to ! a new target. ! ! Copyright (c) 2000, 2001, 2002 Free Software Foundation, Inc. ! @end ifinfo ! ! @c --------------------------------------------------------------------- ! @c Titlepage ! @c --------------------------------------------------------------------- ! ! @titlepage ! @title Porting libstdc++-v3 ! @author Mark Mitchell ! @page ! @vskip 0pt plus 1filll Copyright @copyright{} 2000, 2001, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document --- 8,14 ---- @settitle Porting libstdc++-v3 @setchapternewpage odd ! @copying Copyright @copyright{} 2000, 2001, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document *************** texts being (a) (see below), and with th *** 43,48 **** --- 28,52 ---- You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. + @end copying + + @ifinfo + This file explains how to port libstdc++-v3 (the GNU C++ library) to + a new target. + + @insertcopying + @end ifinfo + + @c --------------------------------------------------------------------- + @c Titlepage + @c --------------------------------------------------------------------- + + @titlepage + @title Porting libstdc++-v3 + @author Mark Mitchell + @page + @vskip 0pt plus 1filll + @insertcopying @end titlepage @c --------------------------------------------------------------------- *************** directory. The important information is *** 102,113 **** directory under @file{config/os} to store the files for your operating system. ! You'll have to change the @file{configure.target} file to ensure that ! your new directory is activated. Look for the switch statement that ! sets @code{os_include_dir}, and add a pattern to handle your operating ! system. The switch statement switches on only the OS portion of the ! standard target triplet; e.g., the @code{solaris2.8} in ! @code{sparc-sun-solaris2.8}. The first file to create in this directory, should be called @file{os_defines.h}. This file contains basic macro definitions --- 106,118 ---- directory under @file{config/os} to store the files for your operating system. ! You might have to change the @file{configure.target} file to ensure that ! your new directory is activated. Look for the switch statement that sets ! @code{os_include_dir}, and add a pattern to handle your operating system ! if the default will not suffice. The switch statement switches on only ! the OS portion of the standard target triplet; e.g., the @code{solaris2.8} ! in @code{sparc-sun-solaris2.8}. If the new directory is named after the ! OS portion of the triplet (the default), then nothing needs to be changed. The first file to create in this directory, should be called @file{os_defines.h}. This file contains basic macro definitions diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/18_support/howto.html gcc-3.2.2/libstdc++-v3/docs/html/18_support/howto.html *** gcc-3.2.1/libstdc++-v3/docs/html/18_support/howto.html Wed Sep 25 17:52:17 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/18_support/howto.html Thu Jan 23 23:35:17 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/19_diagnostics/howto.html gcc-3.2.2/libstdc++-v3/docs/html/19_diagnostics/howto.html *** gcc-3.2.1/libstdc++-v3/docs/html/19_diagnostics/howto.html Wed Sep 25 17:52:18 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/19_diagnostics/howto.html Thu Jan 23 23:35:17 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! *************** *** 164,169 **** --- 169,181 ---- %

The 'Aborted' line comes from the call to abort(), of course.

+

UPDATE: Starting with GCC 3.4, this is the default + termination handler; nothing need be done to use it. To go back to + the previous "silent death" method, simply include + <exception> and <cstdlib>, and call +

+
+        std::set_terminate (std::abort);

Return to top of page or to the FAQ.

diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/20_util/howto.html gcc-3.2.2/libstdc++-v3/docs/html/20_util/howto.html *** gcc-3.2.1/libstdc++-v3/docs/html/20_util/howto.html Wed Sep 25 17:52:18 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/20_util/howto.html Thu Jan 23 23:35:17 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! *************** *** 167,173 **** handle member function templates:

!     template <class U, class V> pain (const pair<U,V>& p);
     

The compiler will convert as necessary from U to T1 and from V to T2 in order to perform the respective initializations. --- 172,178 ---- handle member function templates:

!     template <class U, class V> pair (const pair<U,V>& p);
     

The compiler will convert as necessary from U to T1 and from V to T2 in order to perform the respective initializations. diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/21_strings/howto.html gcc-3.2.2/libstdc++-v3/docs/html/21_strings/howto.html *** gcc-3.2.1/libstdc++-v3/docs/html/21_strings/howto.html Wed Sep 25 17:52:19 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/21_strings/howto.html Thu Jan 23 23:35:17 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! *************** *** 273,291 **** #include <algorithm> #include <cctype> // old <ctype.h> ! std::string s ("Some Kind Of Initial Input Goes Here"); ! // Change everything into upper case ! std::transform (s.begin(), s.end(), s.begin(), toupper); ! // Change everything into lower case ! std::transform (s.begin(), s.end(), s.begin(), tolower); ! // Change everything back into upper case, but store the ! // result in a different string ! std::string capital_s; ! capital_s.reserve(s.size()); ! std::transform (s.begin(), s.end(), capital_s.begin(), tolower);

Note that these calls all involve the global C locale through the use of the C functions toupper/tolower. This is absolutely guaranteed to work -- --- 278,309 ---- #include <algorithm> #include <cctype> // old <ctype.h> ! struct ToLower ! { ! char operator() (char c) const { return std::tolower(c); } ! }; ! struct ToUpper ! { ! char operator() (char c) const { return std::toupper(c); } ! }; ! int main() ! { ! std::string s ("Some Kind Of Initial Input Goes Here"); ! // Change everything into upper case ! std::transform (s.begin(), s.end(), s.begin(), ToUpper()); ! ! // Change everything into lower case ! std::transform (s.begin(), s.end(), s.begin(), ToLower()); ! ! // Change everything back into upper case, but store the ! // result in a different string ! std::string capital_s; ! capital_s.resize(s.size()); ! std::transform (s.begin(), s.end(), capital_s.begin(), ToUpper()); ! }

Note that these calls all involve the global C locale through the use of the C functions toupper/tolower. This is absolutely guaranteed to work -- *************** *** 296,314 **** So, if all your input forevermore consists of only those 96 characters (hahahahahaha), then you're done.

!

At minimum, you can write short wrappers like

     char toLower (char c)
     {
!       return tolower(static_cast<unsigned char>(c));
     } 

The correct method is to use a facet for a particular locale and call its conversion functions. These are discussed more in Chapter 22; the specific part is ! here, which shows the ! final version of this code. (Thanks to James Kanze for assistance ! and suggestions on all of this.)

Another common operation is trimming off excess whitespace. Much like transformations, this task is trivial with the use of string's --- 314,341 ---- So, if all your input forevermore consists of only those 96 characters (hahahahahaha), then you're done.

!

Note that the ! ToUpper and ToLower function objects ! are needed because toupper and tolower ! are overloaded names (declared in <cctype> and ! <locale>) so the template-arguments for ! transform<> cannot be deduced, as explained in ! this ! message. ! At minimum, you can write short wrappers like

     char toLower (char c)
     {
!       return std::tolower(c);
     } 

The correct method is to use a facet for a particular locale and call its conversion functions. These are discussed more in Chapter 22; the specific part is ! Correct Transformations, ! which shows the final version of this code. (Thanks to James Kanze ! for assistance and suggestions on all of this.)

Another common operation is trimming off excess whitespace. Much like transformations, this task is trivial with the use of string's *************** *** 335,349 ****


Making strings of arbitrary character types

!

how to work with char_traits -- in the archives, just need to ! go through and pull the examples together

Return to top of page or to the FAQ.

-
--- 362,439 ----

Making strings of arbitrary character types

!

The std::basic_string is tantalizingly general, in that ! it is parameterized on the type of the characters which it holds. ! In theory, you could whip up a Unicode character class and instantiate ! std::basic_string<my_unicode_char>, or assuming ! that integers are wider than characters on your platform, maybe just ! declare variables of type std::basic_string<int>. !

!

That's the theory. Remember however that basic_string has additional ! type parameters, which take default arguments based on the character ! type (called CharT here): !

!
!       template <typename CharT,
!                 typename Traits = char_traits<CharT>,
!                 typename Alloc = allocator<CharT> >
!       class basic_string { .... };
!

Now, allocator<CharT> will probably Do The Right ! Thing by default, unless you need to implement your own allocator ! for your characters. !

!

But char_traits takes more work. The char_traits ! template is declared but not defined. ! That means there is only !

!
!       template <typename CharT>
!         struct char_traits
!         {
!             static void foo (type1 x, type2 y);
!             ...
!         };
!

and functions such as char_traits<CharT>::foo() are not ! actually defined anywhere for the general case. The C++ standard ! permits this, because writing such a definition to fit all possible ! CharT's cannot be done. (For a time, in earlier versions of GCC, ! there was a mostly-correct implementation that let programmers be ! lazy. :-) But it broke under many situations, so it was removed. ! You are no longer allowed to be lazy and non-portable.) !

!

The C++ standard also requires that char_traits be specialized for ! instantiations of char and wchar_t, and it ! is these template specializations that permit entities like ! basic_string<char,char_traits<char>> to work. !

!

If you want to use character types other than char and wchar_t, ! such as unsigned char and int, you will ! need to write specializations for them at the present time. If you ! want to use your own special character class, then you have ! a lot ! of work to do, especially if you with to use i18n features ! (facets require traits information but don't have a traits argument). !

!

One example of how to specialize char_traits is given ! in ! this message. We agree that the way it's used with basic_string ! (scroll down to main()) doesn't look nice, but that's because ! the ! nice-looking first attempt turned out to ! not ! be conforming C++, due to the rule that CharT must be a POD. ! (See how tricky this is?) !

!

Other approaches were suggested in that same thread, such as providing ! more specializations and/or some helper types in the library to assist ! users writing such code. So far nobody has had the time... ! do you?

Return to top of page or to the FAQ.


diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/22_locale/codecvt.html gcc-3.2.2/libstdc++-v3/docs/html/22_locale/codecvt.html *** gcc-3.2.1/libstdc++-v3/docs/html/22_locale/codecvt.html Wed Sep 25 17:52:19 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/22_locale/codecvt.html Thu Jan 23 23:35:17 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/22_locale/ctype.html gcc-3.2.2/libstdc++-v3/docs/html/22_locale/ctype.html *** gcc-3.2.1/libstdc++-v3/docs/html/22_locale/ctype.html Wed Sep 25 17:52:19 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/22_locale/ctype.html Thu Jan 23 23:35:17 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/22_locale/howto.html gcc-3.2.2/libstdc++-v3/docs/html/22_locale/howto.html *** gcc-3.2.1/libstdc++-v3/docs/html/22_locale/howto.html Wed Sep 25 17:52:19 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/22_locale/howto.html Thu Jan 23 23:35:17 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! *************** *** 163,180 **** #include <algorithm> #include <cctype> // old <ctype.h> ! struct Toupper { ! Toupper(std::locale const& l) : loc(l) {;} ! char operator() (char c) { return std::toupper(c,loc); } private: std::locale const& loc; }; ! struct Tolower { ! Tolower(std::locale const& l) : loc(l) {;} ! char operator() (char c) { return std::tolower(c,loc); } private: std::locale const& loc; }; --- 168,185 ---- #include <algorithm> #include <cctype> // old <ctype.h> ! struct ToUpper { ! ToUpper(std::locale const& l) : loc(l) {;} ! char operator() (char c) const { return std::toupper(c,loc); } private: std::locale const& loc; }; ! struct ToLower { ! ToLower(std::locale const& l) : loc(l) {;} ! char operator() (char c) const { return std::tolower(c,loc); } private: std::locale const& loc; }; *************** *** 182,190 **** int main () { std::string s("Some Kind Of Initial Input Goes Here"); ! std::locale loc_c("C"); ! Toupper up(loc_c); ! Tolower down(loc_c); // Change everything into upper case. std::transform(s.begin(), s.end(), s.begin(), up); --- 187,195 ---- int main () { std::string s("Some Kind Of Initial Input Goes Here"); ! std::locale loc_c("C"); ! ToUpper up(loc_c); ! ToLower down(loc_c); // Change everything into upper case. std::transform(s.begin(), s.end(), s.begin(), up); *************** *** 197,202 **** --- 202,211 ---- std::string capital_s; std::transform(s.begin(), s.end(), std::back_inserter(capital_s), up); } +

The ToUpper and ToLower structs can be + generalized for other character types by making operator() + a member function template. +

The final version of the code uses bind2nd to eliminate the wrapper structs, but the resulting code is tricky. I have not shown it here because no compilers currently available to me will diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/22_locale/locale.html gcc-3.2.2/libstdc++-v3/docs/html/22_locale/locale.html *** gcc-3.2.1/libstdc++-v3/docs/html/22_locale/locale.html Thu Oct 17 02:04:15 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/22_locale/locale.html Thu Jan 23 23:35:17 2003 *************** *** 3,8 **** --- 3,9 ---- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + *************** class id *** 80,86 ****

Provides an index for looking up specific facets. !

--- 81,87 ----

Provides an index for looking up specific facets. !

diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/22_locale/messages.html gcc-3.2.2/libstdc++-v3/docs/html/22_locale/messages.html *** gcc-3.2.1/libstdc++-v3/docs/html/22_locale/messages.html Wed Sep 25 17:52:19 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/22_locale/messages.html Thu Jan 23 23:35:17 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/23_containers/howto.html gcc-3.2.2/libstdc++-v3/docs/html/23_containers/howto.html *** gcc-3.2.1/libstdc++-v3/docs/html/23_containers/howto.html Wed Sep 25 17:52:20 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/23_containers/howto.html Thu Dec 5 23:48:54 2002 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! *************** *** 247,287 **** solution would probably be more trouble than it's worth.

The STL implementation is currently configured to use the ! high-speed caching memory allocator. If you absolutely think ! you must change this on a global basis for your platform to better ! support multi-threading, then please consult all commentary in ! include/bits/stl_alloc.h and the allocators link below.

-
-

(Explicit warning since so many people get confused while - attempting this:) -

-

Adding -D__USE_MALLOC on the command - line is almost certainly a bad idea. Memory efficiency is - almost guaranteed to suffer as a result; this is - why - we disabled it for 3.0 in the first place. -

-

Related to threading or otherwise, the current recommendation is - that users not add any macro defines on the command line to remove or - otherwise disable features of libstdc++-v3. There is - no condition under which it will help you without causing other - issues to perhaps raise up (possible linkage/ABI problems). In - particular, __USE_MALLOC should only be added to a libstdc++-v3 - configuration file, include/bits/c++config (where such user - action is cautioned against), and the entire library should be - rebuilt. If you do not, then you might be violating the - one-definition rule of C/C++ and you might cause yourself untold - problems. -

-
-

If you find any platform where gcc reports a - threading model other than single, and where libstdc++-v3 builds - a buggy container allocator when used with threads unless you - define __USE_MALLOC, we want to hear about it ASAP. In the - past, correctness was the main reason people were led to believe - that they should define __USE_MALLOC when using threads. -

There is a better way (not standardized yet): It is possible to force the malloc-based allocator on a per-case-basis for some application code. The library team generally believes that this --- 252,262 ---- solution would probably be more trouble than it's worth.

The STL implementation is currently configured to use the ! high-speed caching memory allocator. Some people like to ! test and/or normally run threaded programs with a different ! default. For all details about how to globally override this ! at application run-time see here.

There is a better way (not standardized yet): It is possible to force the malloc-based allocator on a per-case-basis for some application code. The library team generally believes that this diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/24_iterators/howto.html gcc-3.2.2/libstdc++-v3/docs/html/24_iterators/howto.html *** gcc-3.2.1/libstdc++-v3/docs/html/24_iterators/howto.html Wed Sep 25 17:52:20 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/24_iterators/howto.html Thu Jan 23 23:35:17 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/25_algorithms/howto.html gcc-3.2.2/libstdc++-v3/docs/html/25_algorithms/howto.html *** gcc-3.2.1/libstdc++-v3/docs/html/25_algorithms/howto.html Wed Sep 25 17:52:20 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/25_algorithms/howto.html Thu Jan 23 23:35:18 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/26_numerics/howto.html gcc-3.2.2/libstdc++-v3/docs/html/26_numerics/howto.html *** gcc-3.2.1/libstdc++-v3/docs/html/26_numerics/howto.html Wed Sep 25 17:52:21 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/26_numerics/howto.html Thu Jan 23 23:35:18 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/27_io/howto.html gcc-3.2.2/libstdc++-v3/docs/html/27_io/howto.html *** gcc-3.2.1/libstdc++-v3/docs/html/27_io/howto.html Wed Sep 25 17:52:21 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/27_io/howto.html Thu Jan 23 23:35:18 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! *************** *** 29,34 **** --- 34,40 ----

  • More on binary I/O
  • Pathetic performance? Ditch C.
  • Threads and I/O
  • +
  • Which header?

  • *************** *** 553,558 **** --- 559,696 ---- "interesting" problems.

    +
    +

    Which header?

    +

    To minimize the time you have to wait on the compiler, it's good to + only include the headers you really need. Many people simply include + <iostream> when they don't need to -- and that can penalize + your runtime as well. Here are some tips on which header to use + for which situations, starting with the simplest. +

    +

    <iosfwd> should be included whenever you simply + need the name of an I/O-related class, such as + "ofstream" or "basic_streambuf". Like the name + implies, these are forward declarations. (A word to all you fellow + old school programmers: trying to forward declare classes like + "class istream;" won't work. Look in the iosfwd header if + you'd like to know why.) For example, +

    +
    +     #include <iosfwd>
    + 
    +     class MyClass
    +     {
    +         ....
    +         std::ifstream   input_file;
    +     };
    + 
    +     extern std::ostream& operator<< (std::ostream&, MyClass&);
    +    
    +

    <ios> declares the base classes for the entire + I/O stream hierarchy, std::ios_base and std::basic_ios<charT>, the + counting types std::streamoff and std::streamsize, the file + positioning type std::fpos, and the various manipulators like + std::hex, std::fixed, std::noshowbase, and so forth. +

    +

    The ios_base class is what holds the format flags, the state flags, + and the functions which change them (setf(), width(), precision(), + etc). You can also store extra data and register callback functions + through ios_base, but that has been historically underused. Anything + which doesn't depend on the type of characters stored is consolidated + here. +

    +

    The template class basic_ios is the highest template class in the + hierarchy; it is the first one depending on the character type, and + holds all general state associated with that type: the pointer to the + polymorphic stream buffer, the facet information, etc. +

    +

    <streambuf> declares the template class + basic_streambuf, and two standard instantiations, streambuf and + wstreambuf. If you need to work with the vastly useful and capable + stream buffer classes, e.g., to create a new form of storage + transport, this header is the one to include. +

    +

    <istream>/<ostream> are + the headers to include when you are using the >>/<< + interface, or any of the other abstract stream formatting functions. + For example, +

    +
    +     #include <istream>
    + 
    +     std::ostream& operator<< (std::ostream& os, MyClass& c)
    +     {
    +        return os << c.data1() << c.data2();
    +     }
    +    
    +

    The std::istream and std::ostream classes are the abstract parents of + the various concrete implementations. If you are only using the + interfaces, then you only need to use the appropriate interface header. +

    +

    <iomanip> provides "extractors and inserters + that alter information maintained by class ios_base and its dervied + classes," such as std::setprecision and std::setw. If you need + to write expressions like os << setw(3); or + is >> setbase(8);, you must include <iomanip>. +

    +

    <sstream>/<fstream> + declare the six stringstream and fstream classes. As they are the + standard concrete descendants of istream and ostream, you will already + know about them. +

    +

    Finally, <iostream> provides the eight standard + global objects (cin, cout, etc). To do this correctly, this header + also provides the contents of the <istream> and <ostream> + headers, but nothing else. The contents of this header look like +

    +
    +     #include <ostream>
    +     #include <istream>
    + 
    +     namespace std
    +     {
    +         extern istream cin;
    +         extern ostream cout;
    +         ....
    + 
    +         // this is explained below
    +         static ios_base::Init __foo;    // not its real name
    +     }
    +    
    +

    Now, the runtime penalty mentioned previously: the global objects + must be initialized before any of your own code uses them; this is + guaranteed by the standard. Like any other global object, they must + be initialized once and only once. This is typically done with a + construct like the one above, and the nested class ios_base::Init is + specified in the standard for just this reason. +

    +

    How does it work? Because the header is included before any of your + code, the __foo object is constructed before any of + your objects. (Global objects are built in the order in which they + are declared, and destroyed in reverse order.) The first time the + constructor runs, the eight stream objects are set up. +

    +

    The static keyword means that each object file compiled + from a source file containing <iostream> will have its own + private copy of __foo. There is no specified order + of construction across object files (it's one of those pesky NP + problems that make life so interesting), so one copy in each object + file means that the stream objects are guaranteed to be set up before + any of your code which uses them could run, thereby meeting the + requirements of the standard. +

    +

    The penalty, of course, is that after the first copy of + __foo is constructed, all the others are just wasted + processor time. The time spent is merely for an increment-and-test + inside a function call, but over several dozen or hundreds of object + files, that time can add up. (It's not in a tight loop, either.) +

    +

    The lesson? Only include <iostream> when you need to use one of + the standard objects in that source file; you'll pay less startup + time. Only include the header files you need to in general; your + compile times will go down when there's less parsing work to do. +

    + diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/configopts.html gcc-3.2.2/libstdc++-v3/docs/html/configopts.html *** gcc-3.2.1/libstdc++-v3/docs/html/configopts.html Wed Sep 25 17:52:16 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/configopts.html Thu Jan 23 23:35:16 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! *************** options *** 71,93 ****

    Adds support for named libstdc++ include directory. For instance, the following puts all the libstdc++ headers into a directory called "2.97-20001008" instead of the usual ! "g++-v3".

         --with-gxx-include-dir=/foo/H-x86-gcc-3-c-gxx-inc/include/2.97-20001008
    -
    --enable-debug
    -

    The configure script will automatically detect the highest - level of optimization that the compiler in use can use. - This --enable flag will disable all optimizations and instruct - the compiler to emit as much extra debugging information as it - can, for use inside GDB. Note this make command, executed in - the build directory, will do much the same thing, without the - configuration difference: - make CXXFLAGS='-g -O0' all -

    -
    -
    --enable-cstdio

    This is an abbreviated form of '--enable-cstdio=stdio' (described next). This option can change the library ABI. --- 76,86 ----

    Adds support for named libstdc++ include directory. For instance, the following puts all the libstdc++ headers into a directory called "2.97-20001008" instead of the usual ! "c++/(version)".

         --with-gxx-include-dir=/foo/H-x86-gcc-3-c-gxx-inc/include/2.97-20001008
    --enable-cstdio

    This is an abbreviated form of '--enable-cstdio=stdio' (described next). This option can change the library ABI. *************** options *** 152,157 **** --- 145,178 ----

    +
    --enable-debug
    +

    Build separate debug libraries in addition to what is normally built. + By default, the debug libraries are compiled with + CXXFLAGS='-g3 -O0' + , are installed in ${libdir}/debug, and have the + same names and versioning information as the non-debug + libraries. This option is off by default. +

    + Note this make command, executed in + the build directory, will do much the same thing, without the + configuration difference and without building everything twice: + make CXXFLAGS='-g3 -O0' all +

    +

    +
    + +
    --enable-debug-flags=FLAGS
    + +

    This option is only valid when --enable-debug + is also specified, and applies to the debug builds only. With + this option, you can pass a specific string of flags to the + compiler to use when building the debug versions of libstdc++. + FLAGS is a quoted string of options, like +

    +
    +   --enable-debug-flags='-g3 -O1 -gdwarf-2'
    +
    +
    --enable-cxx-flags=FLAGS

    With this option, you can pass a string of -f (functionality) flags to the compiler to use when building libstdc++. This *************** options *** 233,244 ****

    --enable-symvers[=style]
    !

    In 3.1, tries to turn on symbol versioning in the shared library (if a ! shared library has been requested). The only 'style' currently ! supported is 'gnu' which requires that a recent version of the GNU ! linker be in use. With no style given, the configure script will ! try to guess if the 'gnu' style can be used, and if so, will turn it ! on. Hopefully people will volunteer to do other 'style' options.

    --- 254,266 ----
    --enable-symvers[=style]
    !

    In 3.1 and later, tries to turn on symbol versioning in the ! shared library (if a shared library has been requested). The ! only 'style' currently supported is 'gnu' which requires that ! a recent version of the GNU linker be in use. With no style ! given, the configure script will try to guess if the 'gnu' ! style can be used, and if so, will turn it on. Hopefully ! people will volunteer to do other 'style' options.

    diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/debug.html gcc-3.2.2/libstdc++-v3/docs/html/debug.html *** gcc-3.2.1/libstdc++-v3/docs/html/debug.html Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/docs/html/debug.html Thu Jan 23 23:35:16 2003 *************** *** 0 **** --- 1,218 ---- + + + + + + + + + + Debugging schemes and strategies + + + + +

    Debugging schemes and strategies

    + +

    +

    The latest version of this document is always available at + + http://gcc.gnu.org/onlinedocs/libstdc++/debug.html. +

    + +

    To the libstdc++-v3 homepage. +

    +

    + + +
    +

    There are numerous things that can be done to improve the ease with + which C++ binaries are debugged when using the GNU C++ + tool chain. Here are some things to keep in mind when debugging C++ + code with GNU tools. +

    + +

    Compiler flags determine debug info

    +

    The default optimizations and debug flags for a libstdc++ build are + -g -O2. However, both debug and optimization flags can + be varied to change debugging characteristics. For instance, + turning off all optimization via the -g -O0 flag will + disable inlining, so that stepping through all functions, including + inlined constructors and destructors, is possible. Or, the debug + format that the compiler and debugger use to communicate + information about source constructs can be changed via + -gdwarf-2 or -gstabs flags: some debugging + formats permit more expressive type and scope information to be + shown in gdb. + The default debug information for a particular platform can be + identified via the value set by the PREFERRED_DEBUGGING_TYPE macro + in the gcc sources. +

    + +

    Many other options are available: please see + "Options for Debugging Your Program" + in Using the GNU Compiler Collection (GCC) for a complete list. +

    + + +

    Using special flags to make a debug binary

    +

    There are two ways to build libstdc++ with debug flags. The first + is to run make from the toplevel in a freshly-configured tree with + specialized debug CXXFLAGS, as in

    make + CXXFLAGS='-g3 -O0' all
    +

    + +

    This quick and dirty approach is often sufficient for quick + debugging tasks, but the lack of state can be confusing in the long + term. +

    + +

    A second approach is to use the configuration flags +

    + +
    --enable-debug
    + +

    and perhaps

    + +
    --enable-debug-flags='...'
    + +

    to create a separate debug build. Both the normal build and the + debug build will persist, without having to specify + CXXFLAGS, and the debug library will be installed in a + separate directory tree, in (prefix)/lib/debug. For + more information, look at the configuration options document + here +

    + + +

    Tips for memory leak hunting

    + +

    There are various third party memory tracing and debug utilities + that can be used to provide detailed memory allocation information + about C++ code. An exhaustive list of tools is not going to be + attempted, but include mtrace, valgrind, + mudflap, and purify. Also highly + recommended are libcwd and some other one that I + forget right now. +

    + +

    Regardless of the memory debugging tool being used, there is one + thing of great importance to keep in mind when debugging C++ code + that uses new and delete: + there are different kinds of allocation schemes that can be used by + std::allocator . For implementation details, see this + + document and look specifically for GLIBCPP_FORCE_NEW. +

    + +

    In a nutshell, the default allocator used by + std::allocator is a high-performance pool allocator, and can + give the mistaken impression that memory is being leaked, when in + reality the memory is reclaimed after program termination. +

    + +

    For valgrind, there are some specific items to keep in mind. First + of all, use a version of valgrind that will work with current GNU + C++ tools: the first that can do this is valgrind 1.0.4, but later + versions should work at least as well. Second of all, use a + completely unoptimized build to avoid confusing valgrind. Third, + use GLIBCPP_FORCE_NEW to keep extraneous pool allocation noise from + cluttering debug information. +

    + +

    Fourth, it may be necessary to force deallocation in other + libraries as well, namely the "C" library. On linux, this can be + accomplished with the appropriate use of the + __cxa_atexit or atexit functions. +

    + +
    +    #include <cstdlib>
    + 
    +    extern "C" void __libc_freeres(void);
    + 
    +    void do_something() { }
    + 
    +    int main()
    +    {
    +      atexit(__libc_freeres);
    +      do_something();
    +      return 0;
    +    }
    + 
    + + +

    or, using __cxa_atexit:

    + +
    +    extern "C" void __libc_freeres(void);
    +    extern "C" int __cxa_atexit(void (*func) (void *), void *arg, void *d);
    + 
    +    void do_something() { }
    + 
    +    int main()
    +    {
    +       extern void* __dso_handle __attribute__ ((__weak__));
    +       __cxa_atexit((void (*) (void *)) __libc_freeres, NULL, 
    +                    &__dso_handle ? __dso_handle : NULL);
    +       do_test();
    +       return 0;
    +    }
    + 
    + +

    Suggested valgrind flags, given the suggestions above about setting + up the runtime environment, library, and test file, might be: + +

    valgrind -v --num-callers=20 --leak-check=yes + --leak-resolution=high --show-reachable=yes a.out
    +

    + + +

    Some gdb strategies

    +

    Many options are available for gdb itself: please see + "GDB features for C++" in the gdb documentation. Also + recommended: the other parts of this manual. +

    + +

    These settings can either be switched on in at the gdb command + line, or put into a .gdbint file to establish default debugging + characteristics, like so: +

    + +
    +    set print pretty on
    +    set print object on
    +    set print static-members on
    +    set print vtbl on
    +    set print demangle on
    +    set demangle-style gnu-v3
    + 
    + + +

    Tracking uncaught exceptions

    +

    The verbose termination handler + gives information about uncaught exceptions which are killing the + program. It is described in the linked-to page. +

    + + +

    Return to the top of the page or + to the libstdc++ homepage. +

    + + + + +
    +

    + See license.html for copying conditions. + Comments and suggestions are welcome, and may be sent to + the libstdc++ mailing list. +

    + + + + diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/documentation.html gcc-3.2.2/libstdc++-v3/docs/html/documentation.html *** gcc-3.2.1/libstdc++-v3/docs/html/documentation.html Wed Sep 25 17:52:16 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/documentation.html Thu Jan 23 23:35:16 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! *************** *** 34,39 **** --- 39,46 ---- - latest version info, recent changes and news
  • TODO - tasks yet undone
  • +
  • FAQ (HTML), + FAQ (text)

  • *************** *** 42,47 **** --- 49,55 ---- *************** *** 61,67 ****
    • for the 3.1 release
    • !
    • for the 3.2 release
    • "the latest collection" (for the snapshot or later; see the date on the first page) --- 69,75 ----
    • diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/explanations.html gcc-3.2.2/libstdc++-v3/docs/html/explanations.html *** gcc-3.2.1/libstdc++-v3/docs/html/explanations.html Wed Sep 25 17:52:16 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/explanations.html Thu Jan 23 23:35:16 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/ext/howto.html gcc-3.2.2/libstdc++-v3/docs/html/ext/howto.html *** gcc-3.2.1/libstdc++-v3/docs/html/ext/howto.html Wed Sep 25 17:52:22 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/ext/howto.html Thu Dec 5 23:48:54 2002 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! *************** *** 276,294 **** same as allocator<T>.
    -

    An internal typedef, __mem_interface , is defined to be - __new_alloc by default. -

    Normally, __default_alloc_template<bool thr, int inst> is also available. This is the high-speed pool, called the default node allocator. The reusable memory is shared among identical instantiations of ! this type. It calls through __mem_interface to obtain new memory when its lists run out. If a client container requests a block larger than a certain threshold size, then the pool is bypassed, and the allocate/deallocate request is passed to ! __mem_interface directly.

    Its inst parameter is described below. The thr boolean determines whether the pool should be --- 281,296 ---- same as allocator<T>.

    Normally, __default_alloc_template<bool thr, int inst> is also available. This is the high-speed pool, called the default node allocator. The reusable memory is shared among identical instantiations of ! this type. It calls through __new_alloc to obtain new memory when its lists run out. If a client container requests a block larger than a certain threshold size, then the pool is bypassed, and the allocate/deallocate request is passed to ! __new_alloc directly.

    Its inst parameter is described below. The thr boolean determines whether the pool should be *************** *** 309,325 ****

    A cannon to swat a fly: __USE_MALLOC

    If you've already read this ! advice and decided to define this macro, then the situation changes ! thusly:

    -
      -
    1. __mem_interface, and
    2. -
    3. __alloc, and
    4. -
    5. __single_client_alloc are all typedef'd to - __malloc_alloc_template.
    6. -
    7. __default_alloc_template is no longer available. - At all. Anywhere.
    8. -

    Writing your own allocators

    Depending on your application (a specific program, a generic library, etc), allocator classes tend to be one of two styles: "SGI" --- 311,335 ----

    A cannon to swat a fly: __USE_MALLOC

    If you've already read this ! advice but still think you remember how to use this macro from ! SGI STL days. We have removed it in gcc 3.3. See next section ! for the new way to get the same effect. !

    !

    Globally disabling memory caching: GLIBCPP_FORCE_NEW

    !

    Starting with gcc 3.3, if you want to globally disable memory ! caching within the library for the default allocator (i.e. ! the one you get for all library objects when you do not specify ! which one to use), merely set GLIBCPP_FORCE_NEW (at this time, ! with any value) into your environment before running the ! program. You will obtain a similar effect without having to ! recompile your entire program and the entire library (the new ! operator in gcc is a light wrapper around malloc). If your ! program crashes with GLIBCPP_FORCE_NEW in the environment, ! it likely means that you linked against objects built against ! the older library. Code to support this extension is fully ! compatible with 3.2 code if GLIBCPP_FORCE_NEW is not in the ! environment.

    Writing your own allocators

    Depending on your application (a specific program, a generic library, etc), allocator classes tend to be one of two styles: "SGI" diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/ext/lwg-active.html gcc-3.2.2/libstdc++-v3/docs/html/ext/lwg-active.html *** gcc-3.2.1/libstdc++-v3/docs/html/ext/lwg-active.html Sat Jul 20 06:34:51 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/ext/lwg-active.html Thu Jan 23 23:35:18 2003 *************** *** 5,15 **** ! ! --- 5,15 ----
    Doc. no.J16/02-0027 = WG21 N1369
    Date:10 May 2002
    Project:
    ! ! *************** *** 17,26 **** !
    Doc. no.J16/02-0048 = WG21 N1390
    Date:10 Sep 2002
    Project:
    Reply to:Matt Austern <austern@research.att.com>
    !

    C++ Standard Library Active Issues List (Revision 22)

    Reference ISO/IEC IS 14882:1998(E)

    Also see:

      --- 17,26 ---- Reply to: ! Matt Austern <austern@apple.com> !

      C++ Standard Library Active Issues List (Revision 23)

      Reference ISO/IEC IS 14882:1998(E)

      Also see:

        *************** *** 78,84 ****

        Public information as to how to obtain a copy of the C++ Standard, join the standards committee, submit an issue, or comment on an issue can be found in the C++ FAQ at http://www.research.att.com/~austern/csc/faq.html. ! Public discussion of C++ Standard related issues occurs on news:comp.std.c++.

        For committee members, files available on the committee's private --- 78,84 ----

        Public information as to how to obtain a copy of the C++ Standard, join the standards committee, submit an issue, or comment on an issue can be found in the C++ FAQ at http://www.research.att.com/~austern/csc/faq.html. ! Public discussion of C++ Standard related issues occurs on news:comp.std.c++.

        For committee members, files available on the committee's private *************** *** 88,93 **** --- 88,97 ---- directory as the issues list files.

        Revision History

          +
        • R23: + Pre-Santa Cruz mailing. Added new issues 367-382. + Moved issues in the TC to TC status. +
        • R22: Post-Curaçao mailing. Added new issues 362-366.
        • *************** specified. Both resolutions are consist *** 1486,1492 **** existing implementations.


          225. std:: algorithms use of other unqualified algorithms

          ! Section: 17.4.4.3 [lib.global.functions]  Status: Open  Submitter: Dave Abrahams  Date: 01 Apr 2000

          Are algorithms in std:: allowed to use other algorithms without qualification, so functions in user namespaces might be found through Koenig lookup?

          For example, a popular standard library implementation includes this --- 1490,1496 ---- existing implementations.


          225. std:: algorithms use of other unqualified algorithms

          ! Section: 17.4.4.3 [lib.global.functions]  Status: Review  Submitter: Dave Abrahams  Date: 01 Apr 2000

          Are algorithms in std:: allowed to use other algorithms without qualification, so functions in user namespaces might be found through Koenig lookup?

          For example, a popular standard library implementation includes this *************** should have any effect.]

          *** 1586,1598 ****

          [Curaçao: An LWG-subgroup spent an afternoon working on issues 225, 226, and 229. Their conclusion was that the issues should be ! separated into an LWG portion (Howard will write a proposal), and a EWG portion (Dave will write a proposal). The LWG and EWG had ! (separate) discussions of this plan the next day.]


          226. User supplied specializations or overloads of namespace std function templates

          ! Section: 17.4.3.1 [lib.reserved.names]  Status: Open  Submitter: Dave Abrahams  Date: 01 Apr 2000

          The issues are: 

          1. How can a 3rd party library implementor (lib1) write a version of a standard algorithm which is specialized to work with his own class template? 

          --- 1590,1603 ----

          [Curaçao: An LWG-subgroup spent an afternoon working on issues 225, 226, and 229. Their conclusion was that the issues should be ! separated into an LWG portion (Howard's paper, N1387=02-0045), and a EWG portion (Dave will write a proposal). The LWG and EWG had ! (separate) discussions of this plan the next day. The proposed ! resolution for this issue is in accordance with Howard's paper.]


          226. User supplied specializations or overloads of namespace std function templates

          ! Section: 17.4.3.1 [lib.reserved.names]  Status: Review  Submitter: Dave Abrahams  Date: 01 Apr 2000

          The issues are: 

          1. How can a 3rd party library implementor (lib1) write a version of a standard algorithm which is specialized to work with his own class template? 

          *************** not provide an operator<< for std: *** 1677,1682 **** --- 1682,1690 ----

          Proposed resolution:

          +

          Adopt the wording in the Customization Points section of + Howard Hinnant's paper, N1387=02-0045.

          +

          [Tokyo: Summary, "There is no conforming way to extend std::swap for user defined templates."  The LWG agrees that there is a problem.  Would like more information before *************** try to put together a proposal before th *** 1734,1746 ****

          [Curaçao: An LWG-subgroup spent an afternoon working on issues 225, 226, and 229. Their conclusion was that the issues should be ! separated into an LWG portion (Howard will write a proposal), and a EWG portion (Dave will write a proposal). The LWG and EWG had ! (separate) discussions of this plan the next day.]


          229. Unqualified references of other library entities

          ! Section: 17.4.1.1 [lib.contents]  Status: Open  Submitter: Steve Clamage  Date: 19 Apr 2000

          Throughout the library chapters, the descriptions of library entities refer to other library entities without necessarily qualifying the names.

          --- 1742,1755 ----

          [Curaçao: An LWG-subgroup spent an afternoon working on issues 225, 226, and 229. Their conclusion was that the issues should be ! separated into an LWG portion (Howard's paper, N1387=02-0045), and a EWG portion (Dave will write a proposal). The LWG and EWG had ! (separate) discussions of this plan the next day. The proposed ! resolution is the one proposed by Howard.]


          229. Unqualified references of other library entities

          ! Section: 17.4.1.1 [lib.contents]  Status: Review  Submitter: Steve Clamage  Date: 19 Apr 2000

          Throughout the library chapters, the descriptions of library entities refer to other library entities without necessarily qualifying the names.

          *************** but that the wording may not be clear en *** 1784,1796 ****

          [Curaçao: An LWG-subgroup spent an afternoon working on issues 225, 226, and 229. Their conclusion was that the issues should be ! separated into an LWG portion (Howard will write a proposal), and a EWG portion (Dave will write a proposal). The LWG and EWG had ! (separate) discussions of this plan the next day.]


          231. Precision in iostream?

          ! Section: 22.2.2.2.2 [lib.facet.num.put.virtuals]  Status: Open  Submitter: James Kanze, Stephen Clamage  Date:  25 Apr 2000

          What is the following program supposed to output?

          #include <iostream>
            
          --- 1793,1807 ----
            
            

          [Curaçao: An LWG-subgroup spent an afternoon working on issues 225, 226, and 229. Their conclusion was that the issues should be ! separated into an LWG portion (Howard's paper, N1387=02-0045), and a EWG portion (Dave will write a proposal). The LWG and EWG had ! (separate) discussions of this plan the next day. This paper resolves ! issues 225 and 226. In light of that resolution, the proposed ! resolution for the current issue makes sense.]


          231. Precision in iostream?

          ! Section: 22.2.2.2.2 [lib.facet.num.put.virtuals]  Status: Review  Submitter: James Kanze, Stephen Clamage  Date:  25 Apr 2000

          What is the following program supposed to output?

          #include <iostream>
            
          *************** etc. Plus, of course, if precision == 0 
          *** 1831,1854 ****
            of the anomalies of printf:-).

          Proposed resolution:

          ! In 22.2.2.2.2 [lib.facet.num.put.virtuals], paragraph 11, change ! "if (flags & fixed) != 0" to ! "if (flags & floatfield) == fixed || ! (flags & floatfield) == scientific"

          Rationale:

          The floatfield determines whether numbers are formatted as if with %f, %e, or %g. If the fixed bit is set, it's %f, if scientific it's %e, and if both bits are set, or ! neither, it's %e.

          Turning to the C standard, a precision of 0 is meaningful ! for %f and %e, but not for %g: for %g, precision 0 is taken ! to be the same as precision 1.

          !

          The proposed resolution has the effect that the output of ! the above program will be "1e+00".

          !

          [Curaçao: Howard will send Matt improved wording dealing with ! case not covered by current PR.]


          233. Insertion hints in associative containers

          --- 1842,1872 ---- of the anomalies of printf:-).

          Proposed resolution:

          ! Replace 22.2.2.2.2 [lib.facet.num.put.virtuals], paragraph 11, with the following ! sentence:

          +
          + For conversion from a floating-point type, + str.precision() is specified in the conversion + specification. +

          Rationale:

          The floatfield determines whether numbers are formatted as if with %f, %e, or %g. If the fixed bit is set, it's %f, if scientific it's %e, and if both bits are set, or ! neither, it's %g.

          Turning to the C standard, a precision of 0 is meaningful ! for %f and %e. For %g, precision 0 is taken to be the same as ! precision 1.

          !

          The proposed resolution has the effect that if neither ! fixed nor scientific is set we'll be ! specifying a precision of 0, which will be internally ! turned into 1. There's no need to call it out as a special ! case.

          !

          The output of the above program will be "1e+00".

          !

          [Post-Curaçao: Howard provided improved wording covering the case ! where precision is 0 and mode is %g.]


          233. Insertion hints in associative containers

          *************** throw, the string must compare equal to *** 2354,2359 **** --- 2372,2399 ----

          (Not all of these options are mutually exclusive.)

          Proposed resolution:

          +

          NAD/Future

          +

          Rationale:

          + +

          Throwing a bad_alloc while trying to construct a message for another + exception-derived class is not necessarily a bad thing. And the + bad_alloc constructor already has a no throw spec on it (18.4.2.1).

          + +

          + The copy constructors of all exception-derived classes already have a + no throw spec. Reference 18.6.1, 19.1 and 15.4/13. +

          + +

          Future:

          + +

          All involved would like to see const char* constructors added, but + this should probably be done for C++0X as opposed to a DR.

          + +

          I believe the no throw specs currently decorating these functions + could be improved by some kind of static no throw spec checking + mechanism (in a future C++ language). As they stand, the copy + constructors might fail via a call to unexpected. I think what is + intended here is that the copy constructors can't fail.

          [Toronto: some LWG members thought this was merely a QoI issue, but most believed that it was at least a borderline defect. There was *************** more support for nonnormative advice to *** 2361,2371 **** normative change.]

          [Redmond: discussed, without definite conclusion. Most LWG ! members thought there was a real defect lurking here. A small group ! (Herb, Kevlin, Howard, Martin, Dave) will try to make a ! recommendation.]

          ! !

          [Curaçao: Howard will nag the others to work on a recommendation.]


          258. Missing allocator requirement

          --- 2401,2409 ---- normative change.]

          [Redmond: discussed, without definite conclusion. Most LWG ! members thought there was a real defect lurking here. The above ! proposed resolution/rationale is from Howard, Herb, Kevlin, Martin, ! and Dave.]


          258. Missing allocator requirement

          *************** desirable to provide this feature in a d *** 2553,2559 ****


          282. What types does numpunct grouping refer to?

          ! Section: 22.2.2.2.2 [lib.facet.num.put.virtuals]  Status: Open  Submitter: Howard Hinnant  Date: 5 Dec 2000

          Paragraph 16 mistakenly singles out integral types for inserting thousands_sep() characters. This conflicts with the syntax for floating --- 2591,2597 ----


          282. What types does numpunct grouping refer to?

          ! Section: 22.2.2.2.2 [lib.facet.num.put.virtuals]  Status: Review  Submitter: Howard Hinnant  Date: 5 Dec 2000

          Paragraph 16 mistakenly singles out integral types for inserting thousands_sep() characters. This conflicts with the syntax for floating *************** floating-point input even though this is *** 2593,2600 **** standard. ]

          !

          [Curaçao: Howard will email Bill and other implementors to try to ! move the issue forward.]


          283. std::replace() requirement incorrect/insufficient

          --- 2631,2638 ---- standard. ]

          !

          [Post-Curaçao: the above proposed resolution is the consensus of ! Howard, Bill, Pete, Benjamin, Nathan, Dietmar, Boris, and Martin.]


          283. std::replace() requirement incorrect/insufficient

          *************** note in p24 (below) is that x be empty a *** 3099,3120 **** unintended in this case.

          Proposed resolution:

          ! Change 23.2.2.4, p23 to:

          !
          ! Effects: If &x == this, does nothing; otherwise, merges the ! argument list into the list.
          !

          [Copenhagen: The proposed resolution does not fix all of the ! problems in 23.2.2.4 [lib.list.ops], p22-25. Three different paragraphs (23, 24, 25) describe the effects of merge. Changing p23, without changing the other two, appears to introduce contradictions. Additionally, "merges the argument list into the list" is excessively vague.]

          !

          [Curaçao: Robert Klarer volunteers to work on this issue.]


          304. Must *a return an lvalue when a is an input iterator?

          --- 3137,3178 ---- unintended in this case.

          Proposed resolution:

          +

          In 23.2.2.4 [lib.list.ops], replace paragraps 23-25 with:

          +

          ! 23 Effects: if (&x == this) does nothing; otherwise, merges the two ! sorted ranges [begin(), end()) and [x.begin(), x.end()). The result ! is a range in which the elements will be sorted in non-decreasing ! order according to the ordering defined by comp; that is, for every ! iterator i in the range other than the first, the condition comp(*i, ! *(i - 1)) will be false.

          ! !

          ! 24 Notes: Stable: if (&x != this), then for equivalent elements in the ! two original ranges, the elements from the original range [begin(), ! end()) always precede the elements from the original range [x.begin(), ! x.end()). If (&x != this) the range [x.begin(), x.end()) is empty ! after the merge. !

          ! !

          ! 25 Complexity: At most size() + x.size() - 1 applications of comp if ! (&x ! = this); otherwise, no applications of comp are performed. If ! an exception is thrown other than by a comparison there are no ! effects. !

          !
          !

          [Copenhagen: The original proposed resolution did not fix all of ! the problems in 23.2.2.4 [lib.list.ops], p22-25. Three different paragraphs (23, 24, 25) describe the effects of merge. Changing p23, without changing the other two, appears to introduce contradictions. Additionally, "merges the argument list into the list" is excessively vague.]

          !

          [Post-Curaçao: Robert Klarer provided new wording.]


          304. Must *a return an lvalue when a is an input iterator?

          *************** rationale. *** 5283,5288 **** --- 5341,5988 ---- basic_filebuf<charT,traits>* rdbuf(); const basic_filebuf<charT,traits>* rdbuf() const;

          +
          +

          367. remove_copy/remove_copy_if and Input Iterators

          + Section: 25.2.7 [lib.alg.remove]  Status: New  Submitter: Anthony Williams  Date: 13 May 2002

          +

          + remove_copy and remove_copy_if (25.2.7 [lib.alg.remove]) permit their + input range to be marked with Input Iterators. However, since two + operations are required against the elements to copy (comparison and + assigment), when the input range uses Input Iterators, a temporary + copy must be taken to avoid dereferencing the iterator twice. This + therefore requires the value type of the InputIterator to be + CopyConstructible. If the iterators are at least Forward Iterators, + then the iterator can be dereferenced twice, or a reference to the + result maintained, so the temporary is not required. +

          +

          Proposed resolution:

          +

          + Add "If InputIterator does not meet the requirements of forward + iterator, then the value type of InputIterator must be copy + constructible. Otherwise copy constructible is not required." to + 25.2.7 [lib.alg.remove] paragraph 6. +

          +
          +

          368. basic_string::replace has two "Throws" paragraphs

          + Section: 21.3.5.6 [lib.string::replace]  Status: New  Submitter: Beman Dawes  Date: 3 Jun 2002

          +

          + 21.3.5.6 [lib.string::replace] basic_string::replace, second + signature, given in paragraph 1, has two "Throws" paragraphs (3 and + 5). +

          + +

          + In addition, the second "Throws" paragraph (5) includes specification + (beginning with "Otherwise, the function replaces ...") that should be + part of the "Effects" paragraph. +

          +

          Proposed resolution:

          +
          +

          369. io stream objects and static ctors

          + Section: 27.3 [lib.iostream.objects]  Status: New  Submitter: Ruslan Abdikeev  Date: 8 Jul 2002

          +

          + Is it safe to use standard iostream objects from constructors of + static objects? Are standard iostream objects constructed and are + their associations established at that time? +

          + +

          Surpisingly enough, Standard does NOT require that.

          + +

          + 27.3/2 [lib.iostream.objects] guarantees that standard iostream + objects are constructed and their associations are established before + the body of main() begins execution. It also refers to ios_base::Init + class as the panacea for constructors of static objects. +

          + +

          + However, there's nothing in 27.3 [lib.iostream.objects], + in 27.4.2 [lib.ios.base], and in 27.4.2.1.6 [lib.ios::Init], + that would require implementations to allow access to standard + iostream objects from constructors of static objects. +

          + +

          Details:

          + +

          Core text refers to some magic object ios_base::Init, which will + be discussed below:

          + +
          + "The [standard iostream] objects are constructed, and their + associations are established at some time prior to or during + first time an object of class basic_ios<charT,traits>::Init + is constructed, and in any case before the body of main + begins execution." (27.3/2 [lib.iostream.objects]) +
          + +

          + The first non-normative footnote encourages implementations + to initialize standard iostream objects earlier than required. +

          + +

          However, the second non-normative footnote makes an explicit + and unsupported claim:

          + +
          + "Constructors and destructors for static objects can access these + [standard iostream] objects to read input from stdin or write output + to stdout or stderr." (27.3/2 footnote 265 [lib.iostream.objects]) +
          + +

          + The only bit of magic is related to that ios_base::Init class. AFAIK, + the rationale behind ios_base::Init was to bring an instance of this + class to each translation unit which #included <iostream> or + related header. Such an inclusion would support the claim of footnote + quoted above, because in order to use some standard iostream object it + is necessary to #include <iostream>. +

          + +

          + However, while Standard explicitly describes ios_base::Init as + an appropriate class for doing the trick, I failed to found a + mention of an _instance_ of ios_base::Init in Standard. +

          +

          Proposed resolution:

          +

          + At the end of header <iostream> synopsis in 27.3 [lib.iostream.objects] +

          + +
          +        namespace std
          +        {
          +           ... extern istream cin; ...
          + 
          + +

          add the following lines

          + +
          +           namespace
          +           {
          +              ios_base::Init <some_implementation_defined_name>;
          +           }
          +         }
          + 
          +
          +

          370. Minor error in basic_istream::get

          + Section: 27.6.1.3 [lib.istream.unformatted]  Status: New  Submitter: Ray Lischner  Date: 15 Jul 2002

          +

          Defect report for description of basic_istream::get (section 27.6.1.3 [lib.istream.unformatted]), paragraph 15. The description for the get function + with the following signature:

          + +
          +   basic_istream<charT,traits>& get(basic_streambuf<char_type,traits>&
          +   sb);
          + 
          + +

          is incorrect. It reads

          + +
          + Effects: Calls get(s,n,widen('\n')) +
          + +

          which I believe should be:

          + +
          + Effects: Calls get(sb,widen('\n')) +
          +

          Proposed resolution:

          +

          Change the Effects paragraph to:

          +
          + Effects: Calls get(sb,widen('\n')) +
          +
          +

          371. Stability of multiset and multimap member functions

          + Section: 23.1 [lib.container.requirements]  Status: New  Submitter: Frank Compagner  Date: 20 Jul 2002

          +

          + The requirements for multiset and multimap containers (23.1 + [lib.containers.requirements], 23.1.2 [lib.associative.reqmnts], + 23.3.2 [lib.multimap] and 23.3.4 [lib.multiset]) make no mention of + the stability of the required (mutating) member functions. It appears + the standard allows these functions to reorder equivalent elements of + the container at will, yet the pervasive red-black tree implementation + appears to provide stable behaviour. +

          + +

          This is of most concern when considering the behaviour of erase(). + A stability requirement would guarantee the correct working of the + following 'idiom' that removes elements based on a certain predicate + function. +

          + +
          +   multimap<int, int> m;
          +   multimap<int, int>::iterator i = m.begin();
          +   while (i != m.end()) {
          +       if (pred(i))
          +           m.erase (i++);
          +       else
          +           ++i;
          +   }
          + 
          + +

          + Although clause 23.1.2/8 guarantees that i remains a valid iterator + througout this loop, absence of the stability requirement could + potentially result in elements being skipped. This would make + this code incorrect, and, furthermore, means that there is no way + of erasing these elements without iterating first over the entire + container, and second over the elements to be erased. This would + be unfortunate, and have a negative impact on both performance and + code simplicity. +

          + +

          + If the stability requirement is intended, it should be made explicit + (probably through an extra paragraph in clause 23.1.2). +

          +

          + If it turns out stability cannot be guaranteed, i'd argue that a + remark or footnote is called for (also somewhere in clause 23.1.2) to + warn against relying on stable behaviour (as demonstrated by the code + above). If most implementations will display stable behaviour, any + problems emerging on an implementation without stable behaviour will + be hard to track down by users. This would also make the need for an + erase_if() member function that much greater. +

          + +

          This issue is somewhat related to LWG issue 130.

          +

          Proposed resolution:

          +
          +

          372. Inconsistent description of stdlib exceptions

          + Section: 17.4.4.8 [lib.res.on.exception.handling], 18.6.1 [lib.exception],   Status: New  Submitter: Randy Maddox  Date: 22 Jul 2002

          + +

          Paragraph 3 under clause 17.4.4.8 [lib.res.on.exception.handling], Restrictions on + Exception Handling, states that "Any other functions defined in the + C++ Standard Library that do not have an exception-specification may + throw implementation-defined exceptions unless otherwise specified." + This statement is followed by a reference to footnote 178 at the + bottom of that page which states, apparently in reference to the C++ + Standard Library, that "Library implementations are encouraged (but + not required) to report errors by throwing exceptions from (or derived + from) the standard exceptions."

          + +

          These statements appear to be in direct contradiction to clause + 18.6.1 [lib.exception], which states "The class exception defines the + base class for the types of objects thrown as exceptions by the C++ + Standard library components ...".

          + +

          Is this inconsistent?

          + +

          Proposed resolution:

          +
          +

          373. Are basic_istream and basic_ostream to use (exceptions()&badbit) != 0 ?

          + Section: 27.6.1.2.1 [lib.istream.formatted.reqmts], 27.6.2.5.1 [lib.ostream.formatted.reqmts]  Status: New  Submitter: Keith Baker  Date: 23 Jul 2002

          + +

          + In 27.6.1.2.1 [lib.istream.formatted.reqmts] and 27.6.2.5.1 [lib.ostream.formatted.reqmts] + (exception()&badbit) != 0 is used in testing for rethrow, yet + exception() is the constructor to class std::exception in 18.6.1 [lib.exception] that has no return type. Should member function + exceptions() found in 27.4.4 [lib.ios] be used instead? +

          + +

          Proposed resolution:

          +

          +

          +
          +

          374. moneypunct::frac_digits returns int not unsigned

          + Section: 22.2.6.3.1 [lib.locale.moneypunct.members], 22.2.6.3.2 [lib.locale.moneypunct.virtuals]  Status: New  Submitter: Ray Lischner  Date: 8 Aug 2002

          +

          + In section 22.2.6.3.1 [lib.locale.moneypunct.members], frac_digits() returns type + "int". This implies that frac_digits() might return a negative value, + but a negative value is nonsensical. It should return "unsigned". +

          + +

          + Similarly, in section 22.2.6.3.2 [lib.locale.moneypunct.virtuals], do_frac_digits() + should return "unsigned". +

          + +

          Proposed resolution:

          +
          +

          375. basic_ios should be ios_base in 27.7.1.3

          + Section: 27.7.1.3 [lib.stringbuf.virtuals]  Status: New  Submitter: Ray Lischner  Date: 14 Aug 2002

          +

          + In Section 27.7.1.3 [lib.stringbuf.virtuals]: Table 90, Table 91, and paragraph + 14 all contain references to "basic_ios::" which should be + "ios_base::". +

          +

          Proposed resolution:

          +

          + Change all references to "basic_ios" in Table 90, Table 91, and + paragraph 14 to "ios_base". +

          +
          +

          376. basic_streambuf semantics

          + Section: 27.7.1.3 [lib.stringbuf.virtuals]  Status: New  Submitter: Ray Lischner  Date: 14 Aug 2002

          +

          + In Section 27.7.1.3 [lib.stringbuf.virtuals], Table 90, the implication is that + the four conditions should be mutually exclusive, but they are not. + The first two cases, as written, are subcases of the third. I think it + would be clearer if the conditions were rewritten as follows: +

          + +
          +

          + (which & (ios_base::in|ios_base::out)) == ios_base::in +

          + +

          + (which & (ios_base::in|ios_base::out)) == ios_base::out +

          + +

          + (which & (ios_base::in|ios_base::out)) == + (ios_base::in|ios_base::out) + and way == either ios_base::beg or ios_base::end +

          + +

          Otherwise

          +
          + +

          + As written, it is unclear what should be the result if cases 1 & 2 + are true, but case 3 is false, e.g., +

          + +
          + seekoff(0, ios_base::cur, ios_base::in | ios_base::out) +
          + +

          Proposed resolution:

          +
          +

          377. basic_string::insert and length_error

          + Section: 21.3.5.4 [lib.string::insert]  Status: New  Submitter: Ray Lischner  Date: 16 Aug 2002

          +

          + Section 21.3.5.4 [lib.string::insert], paragraph 4, contains the following, + "Then throws length_error if size() >= npos - rlen." +

          + +

          + Related to DR 83, this sentence should probably be removed. +

          +

          Proposed resolution:

          +
          +

          378. locale immutability and locale::operator=()

          + Section: 22.1.1 [lib.locale]  Status: New  Submitter: Martin Sebor  Date: 6 Sep 2002

          +

          + I think there is a problem with 22.1.1, p6 which says that +

          +
          +     -6- An instance of locale is immutable; once a facet reference
          +         is obtained from it, that reference remains usable as long
          +         as the locale value itself exists.
          + 
          +

          + and 22.1.1.2, p4: +

          +
          +     const locale& operator=(const locale& other) throw();
          + 
          +     -4- Effects: Creates a copy of other, replacing the current value.
          + 
          +

          + How can a reference to a facet obtained from a locale object remain + valid after an assignment that clearly must replace all the facets + in the locale object? Imagine a program such as this +

          +
          +     std::locale loc ("de_DE");
          +     const std::ctype<char> &r0 = std::use_facet<std::ctype<char> >(loc);
          +     loc = std::locale ("en_US");
          +     const std::ctype<char> &r1 = std::use_facet<std::ctype<char> >(loc);
          + 
          +

          + Is r0 really supposed to be preserved and destroyed only when loc goes + out of scope? +

          +

          Proposed resolution:

          +

          + Suggest to replace 22.1.1 [lib.locale], p6 with +

          +
          +     -6- Unless assigned a new value, locale objects are immutable;
          +         once a facet reference is obtained from it, that reference
          +         remains usable as long as the locale object itself exists
          +         or until the locale object is assigned the value of another,
          +         distinct locale object.
          + 
          +
          +

          379. nonsensical ctype::do_widen() requirement

          + Section: 22.2.1.1.2 [lib.locale.ctype.virtuals]  Status: New  Submitter: Martin Sebor  Date: 6 Sep 2002

          +

          + The last sentence in 22.2.1.1.2, p11 below doesn't seem to make sense. +

          +
          +   charT do_widen (char c) const;
          + 
          +   -11- Effects: Applies the simplest reasonable transformation from
          +        a char value or sequence of char values to the corresponding
          +        charT value or values. The only characters for which unique
          +        transformations are required are those in the basic source
          +        character set (2.2). For any named ctype category with a
          +        ctype<charT> facet ctw and valid ctype_base::mask value
          +        M (is(M, c) || !ctw.is(M, do_widen(c))) is true.
          + 
          +

          + Shouldn't the last sentence instead read +

          +
          +        For any named ctype category with a ctype<char> facet ctc
          +        and valid ctype_base::mask value M
          +        (ctc.is(M, c) || !is(M, do_widen(c))) is true.
          + 
          +

          + I.e., if the narrow character c is not a member of a class of + characters then neither is the widened form of c. (To paraphrase + footnote 224.) +

          +

          Proposed resolution:

          +

          + Replace the last sentence of 22.2.1.1.2 [lib.locale.ctype.virtuals], p11 with the + following text: +

          +
          +        For any named ctype category with a ctype<char> facet ctc
          +        and valid ctype_base::mask value M
          +        (ctc.is(M, c) || !is(M, do_widen(c))) is true.
          + 
          +
          +

          380. typos in codecvt tables 53 and 54

          + Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: New  Submitter: Martin Sebor  Date: 6 Sep 2002

          +

          + Tables 53 and 54 in 22.2.1.5.2 [lib.locale.codecvt.virtuals] are both titled "convert + result values," when surely "do_in/do_out result values" must have + been intended for Table 53 and "do_unshift result values" for Table + 54. +

          +

          + Table 54, row 3 says that the meaning of partial is "more characters + needed to be supplied to complete termination." The function is not + supplied any characters, it is given a buffer which it fills with + characters or, more precisely, destination elements (i.e., an escape + sequence). So partial means that space for more than (to_limit - to) + destination elements was needed to terminate a sequence given the + value of state. +

          +

          Proposed resolution:

          +

          + Change the title of Table 53 to "do_in/do_out result values" and + the title of Table 54 to "do_unshift result values." +

          +

          + Change the text in Table 54, row 3, under the heading Meaning to + "space for more than (to_limit - to) destination elements was + needed to terminate a sequence given the value of state." +

          +
          +

          381. detection of invalid mbstate_t in codecvt

          + Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: New  Submitter: Martin Sebor  Date: 6 Sep 2002

          +

          + All but one codecvt member functions that take a state_type argument + list as one of their preconditions that the state_type argument have + a valid value. However, according to 22.2.1.5.2, p6, + codecvt::do_unshift() is the only codecvt member that is supposed to + return error if the state_type object is invalid. +

          + +

          + It seems to me that the treatment of state_type by all codecvt member + functions should be the same and the current requirements should be + changed. Since the detection of invalid state_type values may be + difficult in general or computationally expensive in some specific + cases, I propose the following: +

          +

          Proposed resolution:

          +

          + Add a new paragraph before 22.2.1.5.2, p5, and after the function + declaration below +

          +
          +     result do_unshift(stateT& state,
          +     externT* to, externT* to_limit, externT*& to_next) const;
          + 
          +

          + as follows: +

          +
          +     Requires: (to <= to_end) well defined and true; state initialized,
          +     if at the beginning of a sequence, or else equal to the result of
          +     converting the preceding characters in the sequence.
          + 
          +

          + and change the text in Table 54, row 4, under the heading Meaning + from +

          +
          +     state has invalid value
          + 
          +

          + to +

          +
          +     an unspecified error has occurred
          + 
          +

          + The return value of error should allow implementers to detect and + report invalid state values but shouldn't require it, hence the + word "unspecified" in the new wording. +

          +
          +

          382. codecvt do_in/out result

          + Section: 22.2.1.5 [lib.locale.codecvt]  Status: New  Submitter: Martin Sebor  Date: 30 Aug 2002

          +

          + It seems that the descriptions of codecvt do_in() and do_out() leave + sufficient room for interpretation so that two implementations of + codecvt may not work correctly with the same filebuf. Specifically, + the following seems less than adequately specified: +

          + +
            +
          1. + the conditions under which the functions terminate +
          2. +
          3. + precisely when the functions return ok +
          4. +
          5. + precisely when the functions return partial +
          6. +
          7. + the full set of conditions when the functions return error +
          8. +
          + +
            +
          1. + 22.2.1.5.2 [lib.locale.codecvt.virtuals], p2 says this about the effects of the + function: ...Stops if it encounters a character it cannot + convert... This assumes that there *is* a character to + convert. What happens when there is a sequence that doesn't form a + valid source character, such as an unassigned or invalid UNICODE + character, or a sequence that cannot possibly form a character + (e.g., the sequence "\xc0\xff" in UTF-8)? +
          2. +
          3. + Table 53 says that the function returns codecvt_base::ok + to indicate that the function(s) "completed the conversion." + Suppose that the source sequence is "\xc0\x80" in UTF-8, + with from pointing to '\xc0' and (from_end==from + 1). + It is not clear whether the return value should be ok + or partial (see below). +
          4. +
          5. + Table 53 says that the function returns codecvt_base::partial + if "not all source characters converted." With the from pointers + set up the same way as above, it is not clear whether the return + value should be partial or ok (see above). +
          6. +
          7. + Table 53, in the row describing the meaning of error mistakenly + refers to a "from_type" character, without the symbol from_type + having been defined. Most likely, the word "source" character + is intended, although that is not sufficient. The functions + may also fail when they encounter an invalid source sequence + that cannot possibly form a valid source character (e.g., as + explained in bullet 1 above). +
          8. +
          +

          + Finally, the conditions described at the end of 22.2.1.5.2 [lib.locale.codecvt.virtuals], p4 don't seem to be possible: +

          +
          + "A return value of partial, if (from_next == from_end), + indicates that either the destination sequence has not + absorbed all the available destination elements, or that + additional source elements are needed before another + destination element can be produced." +
          +

          + If the value is partial, it's not clear to me that (from_next + ==from_end) could ever hold if there isn't enough room + in the destination buffer. In order for (from_next==from_end) to + hold, all characters in that range must have been successfully + converted (according to 22.2.1.5.2 [lib.locale.codecvt.virtuals], p2) and since there are no + further source characters to convert, no more room in the + destination buffer can be needed. +

          +

          + It's also not clear to me that (from_next==from_end) could ever + hold if additional source elements are needed to produce another + destination character (not element as incorrectly stated in the + text). partial is returned if "not all source characters have + been converted" according to Table 53, which also implies that + (from_next==from) does NOT hold. +

          +

          + Could it be that the intended qualifying condition was actually + (from_next != from_end), i.e., that the sentence was supposed + to read +

          +
          + "A return value of partial, if (from_next != from_end),..." +
          +

          + which would make perfect sense, since, as far as I understand it, + partial can only occur if (from_next != from_end)? +

          +

          Proposed resolution:

          +

          + To address these issues, I propose that paragraphs 2, 3, and 4 + be rewritten as follows. The proposal incorporates the accepted + resolution of lwg issue 19. +

          +
          + -2- Effects: Converts characters in the range of source elements
          +     [from, from_end), placing the results in sequential positions
          +     starting at destination to. Converts no more than (from_end­from)
          +     source elements, and stores no more than (to_limit­to)
          +     destination elements.
          + 
          +     Stops if it encounters a sequence of source elements it cannot
          +     convert to a valid destination character. It always leaves the
          +     from_next and to_next pointers pointing one beyond the last
          +     element successfully converted.
          + 
          +     [Note: If returns noconv, internT and externT are the same type
          +     and the converted sequence is identical to the input sequence
          +     [from, from_next). to_next is set equal to to, the value of
          +     state is unchanged, and there are no changes to the values in
          +     [to, to_limit). --end note]
          + 
          + -3- Notes: Its operations on state are unspecified.
          +     [Note: This argument can be used, for example, to maintain shift
          +     state, to specify conversion options (such as count only), or to
          +     identify a cache of seek offsets. --end note]
          + 
          + -4- Returns: An enumeration value, as summarized in Table 53:
          + 
          +     Table 53 -- do_in/do_out result values
          + 
          +      Value      Meaning
          +     +---------+----------------------------------------------------+
          +     | ok      | successfully completed the conversion of all       |
          +     |         | complete characters in the source range            |
          +     +---------+----------------------------------------------------+
          +     | partial | the characters in the source range would, after    |
          +     |         | conversion, require space greater than that        |
          +     |         | available in the destination range                 |
          +     +---------+----------------------------------------------------+
          +     | error   | encountered either a sequence of elements in the   |
          +     |         | source range forming a valid source character that |
          +     |         | could not be converted to a destination character, |
          +     |         | or a sequence of elements in the source range that |
          +     |         | could not possibly form a valid source character   |
          +     +---------+----------------------------------------------------+
          +     | noconv  | internT and externT are the same type, and input   |
          +     |         | sequence is identical to converted sequence        |
          +     +---------+----------------------------------------------------+
          + 
          +     A return value of partial, i.e., if (from_next != from_end),
          +     indicates that either the destination sequence has not absorbed
          +     all the available destination elements, or that additional
          +     source elements are needed before another destination character
          +     can be produced.
          + 

          ----- End of document -----

          diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/ext/lwg-defects.html gcc-3.2.2/libstdc++-v3/docs/html/ext/lwg-defects.html *** gcc-3.2.1/libstdc++-v3/docs/html/ext/lwg-defects.html Sat Jul 20 06:34:51 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/ext/lwg-defects.html Thu Jan 23 23:35:18 2003 *************** *** 5,15 **** ! ! --- 5,15 ----
          Doc. no.J16/02-0028 = WG21 N1370
          Date:10 May 2002
          Project:
          ! ! *************** *** 17,26 **** !
          Doc. no.J16/02-0049 = WG21 N1391
          Date:10 Sep 2002
          Project:
          Reply to:Matt Austern <austern@research.att.com>
          !

          C++ Standard Library Defect Report List (Revision 22)

          Reference ISO/IEC IS 14882:1998(E)

          Also see:

            --- 17,26 ---- Reply to: ! Matt Austern <austern@apple.com> !

            C++ Standard Library Defect Report List (Revision 23)

            Reference ISO/IEC IS 14882:1998(E)

            Also see:

              *************** *** 42,47 **** --- 42,51 ---- document.

              Revision History

                +
              • R23: + Pre-Santa Cruz mailing. Added new issues 367-382. + Moved issues in the TC to TC status. +
              • R22: Post-Curaçao mailing. Added new issues 362-366.
              • *************** format, 64 *** 204,210 ****

                Defect Reports


                1. C library linkage editing oversight

                ! Section: 17.4.2.2 [lib.using.linkage]  Status: DR  Submitter: Beman Dawes  Date: 16 Nov 1997

                The change specified in the proposed resolution below did not make it into the Standard. This change was accepted in principle at the London meeting, and the exact wording below was accepted at the --- 208,214 ----

                Defect Reports


                1. C library linkage editing oversight

                ! Section: 17.4.2.2 [lib.using.linkage]  Status: TC  Submitter: Beman Dawes  Date: 16 Nov 1997

                The change specified in the proposed resolution below did not make it into the Standard. This change was accepted in principle at the London meeting, and the exact wording below was accepted at the *************** from:

                *** 229,235 ****

                3. Atexit registration during atexit() call is not described

                ! Section: 18.3 [lib.support.start.term]  Status: DR  Submitter: Steve Clamage  Date: 12 Dec 1997

                We appear not to have covered all the possibilities of exit processing with respect to atexit registration.
                --- 233,239 ----


                3. Atexit registration during atexit() call is not described

                ! Section: 18.3 [lib.support.start.term]  Status: TC  Submitter: Steve Clamage  Date: 12 Dec 1997

                We appear not to have covered all the possibilities of exit processing with respect to atexit registration.
                *************** committee decides.

                *** 349,355 **** supporting to the proposed resolution.


                5. String::compare specification questionable

                ! Section: 21.3.6.8 [lib.string::compare]  Status: DR  Submitter: Jack Reeves  Date: 11 Dec 1997

                At the very end of the basic_string class definition is the signature: int compare(size_type pos1, size_type n1, const charT* s, size_type n2 = npos) const; In the following text this is defined as: returns --- 353,359 ---- supporting to the proposed resolution.


                5. String::compare specification questionable

                ! Section: 21.3.6.8 [lib.string::compare]  Status: TC  Submitter: Jack Reeves  Date: 11 Dec 1997

                At the very end of the basic_string class definition is the signature: int compare(size_type pos1, size_type n1, const charT* s, size_type n2 = npos) const; In the following text this is defined as: returns *************** the Standard which must be fixed.  *** 432,438 **** identified in issues 7 (item 5) and 87.


                7. String clause minor problems

                ! Section: 21 [lib.strings]  Status: DR  Submitter: Matt Austern  Date: 15 Dec 1997

                (1) In 21.3.5.4 [lib.string::insert], the description of template <class InputIterator> insert(iterator, InputIterator, InputIterator) makes no sense. It refers to a member function that --- 436,442 ---- identified in issues 7 (item 5) and 87.


                7. String clause minor problems

                ! Section: 21 [lib.strings]  Status: TC  Submitter: Matt Austern  Date: 15 Dec 1997

                (1) In 21.3.5.4 [lib.string::insert], the description of template <class InputIterator> insert(iterator, InputIterator, InputIterator) makes no sense. It refers to a member function that *************** with:
                *** 503,509 **** s+n) overlap."


                8. Locale::global lacks guarantee

                ! Section: 22.1.1.5 [lib.locale.statics]  Status: DR  Submitter: Matt Austern  Date: 24 Dec 1997

                It appears there's an important guarantee missing from clause 22. We're told that invoking locale::global(L) sets the C locale if L has a name. However, we're not told whether or not invoking --- 507,513 ---- s+n) overlap."


                8. Locale::global lacks guarantee

                ! Section: 22.1.1.5 [lib.locale.statics]  Status: TC  Submitter: Matt Austern  Date: 24 Dec 1997

                It appears there's an important guarantee missing from clause 22. We're told that invoking locale::global(L) sets the C locale if L has a name. However, we're not told whether or not invoking *************** paragraph 2: 

                *** 522,528 ****

                9. Operator new(0) calls should not yield the same pointer

                ! Section: 18.4.1 [lib.new.delete]  Status: DR  Submitter: Steve Clamage  Date: 4 Jan 1998

                Scott Meyers, in a comp.std.c++ posting: I just noticed that section 3.7.3.1 of CD2 seems to allow for the possibility that all calls to operator new(0) yield the same pointer, an implementation --- 526,532 ----


                9. Operator new(0) calls should not yield the same pointer

                ! Section: 18.4.1 [lib.new.delete]  Status: TC  Submitter: Steve Clamage  Date: 4 Jan 1998

                Scott Meyers, in a comp.std.c++ posting: I just noticed that section 3.7.3.1 of CD2 seems to allow for the possibility that all calls to operator new(0) yield the same pointer, an implementation *************** list maintainer's note: the IS is the sa *** 577,583 **** supporting to the proposed resolution.


                11. Bitset minor problems

                ! Section: 23.3.5 [lib.template.bitset]  Status: DR  Submitter: Matt Austern  Date: 22 Jan 1998

                (1) bitset<>::operator[] is mentioned in the class synopsis (23.3.5), but it is not documented in 23.3.5.2.

                --- 581,587 ---- supporting to the proposed resolution.


                11. Bitset minor problems

                ! Section: 23.3.5 [lib.template.bitset]  Status: TC  Submitter: Matt Austern  Date: 22 Jan 1998

                (1) bitset<>::operator[] is mentioned in the class synopsis (23.3.5), but it is not documented in 23.3.5.2.

                *************** input" implies the desired semantic *** 625,631 ****


                13. Eos refuses to die

                ! Section: 27.6.1.2.3 [lib.istream::extractors]  Status: DR  Submitter: William M. Miller  Date: 3 Mar 1998

                In 27.6.1.2.3, there is a reference to "eos", which is the only one in the whole draft (at least using Acrobat search), so it's undefined.

                --- 629,635 ----


                13. Eos refuses to die

                ! Section: 27.6.1.2.3 [lib.istream::extractors]  Status: TC  Submitter: William M. Miller  Date: 3 Mar 1998

                In 27.6.1.2.3, there is a reference to "eos", which is the only one in the whole draft (at least using Acrobat search), so it's undefined.

                *************** it's undefined.

                *** 634,640 **** "charT()"


                14. Locale::combine should be const

                ! Section: 22.1.1.3 [lib.locale.members]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                locale::combine is the only member function of locale (other than constructors and destructor) that is not const. There is no reason for it not to be const, and good reasons why it should have been const. Furthermore, leaving it non-const conflicts with 22.1.1 --- 638,644 ---- "charT()"


                14. Locale::combine should be const

                ! Section: 22.1.1.3 [lib.locale.members]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                locale::combine is the only member function of locale (other than constructors and destructor) that is not const. There is no reason for it not to be const, and good reasons why it should have been const. Furthermore, leaving it non-const conflicts with 22.1.1 *************** time, but the omission was not noticed. *** 653,659 ****


                15. Locale::name requirement inconsistent

                ! Section: 22.1.1.3 [lib.locale.members]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                locale::name() is described as returning a string that can be passed to a locale constructor, but there is no matching constructor.

                Proposed resolution:

                --- 657,663 ----

                15. Locale::name requirement inconsistent

                ! Section: 22.1.1.3 [lib.locale.members]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                locale::name() is described as returning a string that can be passed to a locale constructor, but there is no matching constructor.

                Proposed resolution:

                *************** constructor, but there is no matching co *** 663,669 ****


                16. Bad ctype_byname<char> decl

                ! Section: 22.2.1.4 [lib.locale.ctype.byname.special]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                The new virtual members ctype_byname<char>::do_widen and do_narrow did not get edited in properly. Instead, the member do_widen appears four times, with wrong argument lists.

                --- 667,673 ----


                16. Bad ctype_byname<char> decl

                ! Section: 22.2.1.4 [lib.locale.ctype.byname.special]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                The new virtual members ctype_byname<char>::do_widen and do_narrow did not get edited in properly. Instead, the member do_widen appears four times, with wrong argument lists.

                *************** lists.

                *** 673,679 **** from 22.2.1.3 [lib.facet.ctype.special].


                17. Bad bool parsing

                ! Section: 22.2.2.1.2 [lib.facet.num.get.virtuals]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                This section describes the process of parsing a text boolean value from the input stream. It does not say it recognizes either of the sequences "true" or "false" and returns the corresponding bool value; instead, it says it recognizes --- 677,683 ---- from 22.2.1.3 [lib.facet.ctype.special].


                17. Bad bool parsing

                ! Section: 22.2.2.1.2 [lib.facet.num.get.virtuals]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                This section describes the process of parsing a text boolean value from the input stream. It does not say it recognizes either of the sequences "true" or "false" and returns the corresponding bool value; instead, it says it recognizes *************** change "&&" to "& *** 753,759 ****


                18. Get(...bool&) omitted

                ! Section: 22.2.2.1.1 [lib.facet.num.get.members]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the list of num_get<> non-virtual members on page 22-23, the member that parses bool values was omitted from the list of definitions of non-virtual members, though it is listed in the class definition and the corresponding --- 757,763 ----


                18. Get(...bool&) omitted

                ! Section: 22.2.2.1.1 [lib.facet.num.get.members]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the list of num_get<> non-virtual members on page 22-23, the member that parses bool values was omitted from the list of definitions of non-virtual members, though it is listed in the class definition and the corresponding *************** another get member for bool&, copied *** 764,770 **** 22.2.2.1 [lib.locale.num.get].


                19. "Noconv" definition too vague

                ! Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the definitions of codecvt<>::do_out and do_in, they are specified to return noconv if "no conversion is --- 768,774 ---- 22.2.2.1 [lib.locale.num.get].


                19. "Noconv" definition too vague

                ! Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the definitions of codecvt<>::do_out and do_in, they are specified to return noconv if "no conversion is *************** Change the entry for noconv in the table *** 790,796 ****


                20. Thousands_sep returns wrong type

                ! Section: 22.2.3.1.2 [lib.facet.numpunct.virtuals]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                The synopsis for numpunct<>::do_thousands_sep, and the definition of numpunct<>::thousands_sep which calls it, specify that it returns a value of type char_type. Here it is erroneously --- 794,800 ----


                20. Thousands_sep returns wrong type

                ! Section: 22.2.3.1.2 [lib.facet.numpunct.virtuals]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                The synopsis for numpunct<>::do_thousands_sep, and the definition of numpunct<>::thousands_sep which calls it, specify that it returns a value of type char_type. Here it is erroneously *************** described as returning a "string_ty *** 800,806 **** "string_type" to "char_type".


                21. Codecvt_byname<> instantiations

                ! Section: 22.1.1.1.1 [lib.locale.category]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the second table in the section, captioned "Required instantiations", the instantiations for codecvt_byname<> have been omitted. These are necessary to allow users to construct a --- 804,810 ---- "string_type" to "char_type".


                21. Codecvt_byname<> instantiations

                ! Section: 22.1.1.1.1 [lib.locale.category]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the second table in the section, captioned "Required instantiations", the instantiations for codecvt_byname<> have been omitted. These are necessary to allow users to construct a *************** codecvt_byname<wchar_t,char,mbstate_t *** 816,822 ****


                22. Member open vs. flags

                ! Section: 27.8.1.7 [lib.ifstream.members]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                The description of basic_istream<>::open leaves unanswered questions about how it responds to or changes flags in the error status for the stream. A strict reading indicates that it ignores the bits and does not change them, which confuses users who do --- 820,826 ----


                22. Member open vs. flags

                ! Section: 27.8.1.7 [lib.ifstream.members]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                The description of basic_istream<>::open leaves unanswered questions about how it responds to or changes flags in the error status for the stream. A strict reading indicates that it ignores the bits and does not change them, which confuses users who do *************** believes to have been the original inten *** 843,849 ****


                24. "do_convert" doesn't exist

                ! Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                The description of codecvt<>::do_out and do_in mentions a symbol "do_convert" which is not defined in the standard. This is a leftover from an edit, and should be "do_in --- 847,853 ----


                24. "do_convert" doesn't exist

                ! Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                The description of codecvt<>::do_out and do_in mentions a symbol "do_convert" which is not defined in the standard. This is a leftover from an edit, and should be "do_in *************** and do_out".

                *** 854,860 **** or do_out".


                25. String operator<< uses width() value wrong

                ! Section: 21.3.7.9 [lib.string.io]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the description of operator<< applied to strings, the standard says that uses the smaller of os.width() and str.size(), to pad "as described in stage 3" elsewhere; but this is inconsistent, as this allows no possibility of space for padding.

                --- 858,864 ---- or do_out".


                25. String operator<< uses width() value wrong

                ! Section: 21.3.7.9 [lib.string.io]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the description of operator<< applied to strings, the standard says that uses the smaller of os.width() and str.size(), to pad "as described in stage 3" elsewhere; but this is inconsistent, as this allows no possibility of space for padding.

                *************** to:
                *** 870,876 **** ..."


                26. Bad sentry example

                ! Section: 27.6.1.1.2 [lib.istream::sentry]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                In paragraph 6, the code in the example:

                  template <class charT, class traits = char_traits<charT> >
                --- 874,880 ----
                  ..."


                26. Bad sentry example

                ! Section: 27.6.1.1.2 [lib.istream::sentry]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                In paragraph 6, the code in the example:

                  template <class charT, class traits = char_traits<charT> >
                *************** decided that it would be counter-product
                *** 905,911 ****
                  example, which might well still contain errors.


                27. String::erase(range) yields wrong iterator

                ! Section: 21.3.5.5 [lib.string::erase]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                The string::erase(iterator first, iterator last) is specified to return an element one place beyond the next element after the last one erased. E.g. for the string "abcde", erasing the range ['b'..'d') would yield an iterator for element 'e', --- 909,915 ---- example, which might well still contain errors.


                27. String::erase(range) yields wrong iterator

                ! Section: 21.3.5.5 [lib.string::erase]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                The string::erase(iterator first, iterator last) is specified to return an element one place beyond the next element after the last one erased. E.g. for the string "abcde", erasing the range ['b'..'d') would yield an iterator for element 'e', *************** while 'd' has not been erased.

                *** 926,932 ****

                28. Ctype<char>is ambiguous

                ! Section: 22.2.1.3.2 [lib.facet.ctype.char.members]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                The description of the vector form of ctype<char>::is can be interpreted to mean something very different from what was intended. Paragraph 4 says

                --- 930,936 ----

                28. Ctype<char>is ambiguous

                ! Section: 22.2.1.3.2 [lib.facet.ctype.char.members]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                The description of the vector form of ctype<char>::is can be interpreted to mean something very different from what was intended. Paragraph 4 says

                *************** vec[].

                *** 946,952 ****

                29. Ios_base::init doesn't exist

                ! Section: 27.3.1 [lib.narrow.stream.objects]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                Sections 27.3.1 [lib.narrow.stream.objects] and 27.3.2 [lib.wide.stream.objects] mention a function ios_base::init, which is not defined. Probably they mean basic_ios<>::init, defined in 27.4.4.1 [lib.basic.ios.cons], --- 950,956 ----


                29. Ios_base::init doesn't exist

                ! Section: 27.3.1 [lib.narrow.stream.objects]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                Sections 27.3.1 [lib.narrow.stream.objects] and 27.3.2 [lib.wide.stream.objects] mention a function ios_base::init, which is not defined. Probably they mean basic_ios<>::init, defined in 27.4.4.1 [lib.basic.ios.cons], *************** should read

                *** 974,980 ****

                30. Wrong header for LC_*

                ! Section: 22.1.1.1.1 [lib.locale.category]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                Paragraph 2 implies that the C macros LC_CTYPE etc. are defined in <cctype>, where they are in fact defined elsewhere to appear in <clocale>.

                Proposed resolution:

                --- 978,984 ----

                30. Wrong header for LC_*

                ! Section: 22.1.1.1.1 [lib.locale.category]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                Paragraph 2 implies that the C macros LC_CTYPE etc. are defined in <cctype>, where they are in fact defined elsewhere to appear in <clocale>.

                Proposed resolution:

                *************** where they are in fact defined elsewhere *** 982,988 **** "<cctype>" to read "<clocale>".


                31. Immutable locale values

                ! Section: 22.1.1 [lib.locale]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                Paragraph 6, says "An instance of locale is immutable; once a facet reference is obtained from it, ...". This has caused some confusion, because locale variables --- 986,992 ---- "<cctype>" to read "<clocale>".


                31. Immutable locale values

                ! Section: 22.1.1 [lib.locale]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                Paragraph 6, says "An instance of locale is immutable; once a facet reference is obtained from it, ...". This has caused some confusion, because locale variables *************** are manifestly assignable.

                *** 1006,1012 ****

                32. Pbackfail description inconsistent

                ! Section: 27.5.2.4.4 [lib.streambuf.virt.pback]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                The description of the required state before calling virtual member basic_streambuf<>::pbackfail requirements is inconsistent with the conditions described in 27.5.2.2.4 [lib.streambuf.pub.pback] where member sputbackc calls it. --- 1010,1016 ----


                32. Pbackfail description inconsistent

                ! Section: 27.5.2.4.4 [lib.streambuf.virt.pback]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                The description of the required state before calling virtual member basic_streambuf<>::pbackfail requirements is inconsistent with the conditions described in 27.5.2.2.4 [lib.streambuf.pub.pback] where member sputbackc calls it. *************** Specifically, the latter says it calls p *** 1037,1043 **** the argument value.


                33. Codecvt<> mentions from_type

                ! Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the table defining the results from do_out and do_in, the specification for the result error says

                --- 1041,1047 ---- the argument value.


                33. Codecvt<> mentions from_type

                ! Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the table defining the results from do_out and do_in, the specification for the result error says

                *************** in the table for the case of _error_ wit *** 1056,1062 ****

                34. True/falsename() not in ctype<>

                ! Section: 22.2.2.2.2 [lib.facet.num.put.virtuals]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                In paragraph 19, Effects:, members truename() and falsename are used from facet ctype<charT>, but it has no such members. Note that this is also a problem in 22.2.2.1.2, addressed in (4).

                --- 1060,1066 ----

                34. True/falsename() not in ctype<>

                ! Section: 22.2.2.2.2 [lib.facet.num.put.virtuals]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                In paragraph 19, Effects:, members truename() and falsename are used from facet ctype<charT>, but it has no such members. Note that this is also a problem in 22.2.2.1.2, addressed in (4).

                *************** string_type s = val ? np.truename() : np *** 1071,1077 ****

                35. No manipulator unitbuf in synopsis

                ! Section: 27.4 [lib.iostreams.base]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                In 27.4.5.1 [lib.fmtflags.manip], we have a definition for a manipulator named "unitbuf". Unlike other manipulators, it's not listed in synopsis. Similarly for "nounitbuf".

                --- 1075,1081 ----

                35. No manipulator unitbuf in synopsis

                ! Section: 27.4 [lib.iostreams.base]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                In 27.4.5.1 [lib.fmtflags.manip], we have a definition for a manipulator named "unitbuf". Unlike other manipulators, it's not listed in synopsis. Similarly for "nounitbuf".

                *************** ios_base& nounitbuf(ios_base& st *** 1085,1091 ****

                36. Iword & pword storage lifetime omitted

                ! Section: 27.4.2.5 [lib.ios.base.storage]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the definitions for ios_base::iword and pword, the lifetime of the storage is specified badly, so that an implementation which only keeps the last value stored appears to conform. In particular, it says:

                --- 1089,1095 ----

                36. Iword & pword storage lifetime omitted

                ! Section: 27.4.2.5 [lib.ios.base.storage]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the definitions for ios_base::iword and pword, the lifetime of the storage is specified badly, so that an implementation which only keeps the last value stored appears to conform. In particular, it says:

                *************** paragraph 4, replace the sentence:

                *** 1115,1121 ****

                substituting "iword" or "pword" as appropriate.


                37. Leftover "global" reference

                ! Section: 22.1.1 [lib.locale]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the overview of locale semantics, paragraph 4, is the sentence

                --- 1119,1125 ----

                substituting "iword" or "pword" as appropriate.


                37. Leftover "global" reference

                ! Section: 22.1.1 [lib.locale]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                In the overview of locale semantics, paragraph 4, is the sentence

                *************** expression

                *** 1134,1140 ****

                38. Facet definition incomplete

                ! Section: 22.1.2 [lib.locale.global.templates]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                It has been noticed by Esa Pulkkinen that the definition of "facet" is incomplete. In particular, a class derived from another facet, but which does not define a member id, cannot --- 1138,1144 ----


                38. Facet definition incomplete

                ! Section: 22.1.2 [lib.locale.global.templates]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                It has been noticed by Esa Pulkkinen that the definition of "facet" is incomplete. In particular, a class derived from another facet, but which does not define a member id, cannot *************** contains (not inherits) the public stati *** 1165,1171 ****


                39. istreambuf_iterator<>::operator++(int) definition garbled

                ! Section: 24.5.3.4 [lib.istreambuf.iterator::op++]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                Following the definition of istreambuf_iterator<>::operator++(int) in paragraph 3, the standard contains three lines of garbage text left over from a previous edit.

                --- 1169,1175 ----

                39. istreambuf_iterator<>::operator++(int) definition garbled

                ! Section: 24.5.3.4 [lib.istreambuf.iterator::op++]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                Following the definition of istreambuf_iterator<>::operator++(int) in paragraph 3, the standard contains three lines of garbage text left over from a previous edit.

                *************** sbuf_->sbumpc(); *** 1175,1185 **** return(tmp);

                Proposed resolution:

                !

                In 24.5.3.4 [lib.istreambuf.iterator::op++], delete the three lines of code at the end of paragraph 3.


                40. Meaningless normative paragraph in examples

                ! Section: 22.2.8 [lib.facets.examples]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                Paragraph 3 of the locale examples is a description of part of an implementation technique that has lost its referent, and doesn't mean anything.

                --- 1179,1189 ---- return(tmp);

                Proposed resolution:

                !

                In 24.5.3.4 [lib.istreambuf.iterator::op++], delete the three lines of code at the end of paragraph 3.


                40. Meaningless normative paragraph in examples

                ! Section: 22.2.8 [lib.facets.examples]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                Paragraph 3 of the locale examples is a description of part of an implementation technique that has lost its referent, and doesn't mean anything.

                *************** editor's option) replace it with a place *** 1190,1196 **** numbering the same.


                41. Ios_base needs clear(), exceptions()

                ! Section: 27.4.2 [lib.ios.base]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                The description of ios_base::iword() and pword() in 27.4.2.4 [lib.ios.members.static], say that if they fail, they "set badbit, which may throw an exception". However, ios_base offers no interface to set or to test badbit; those interfaces are defined in --- 1194,1200 ---- numbering the same.


                41. Ios_base needs clear(), exceptions()

                ! Section: 27.4.2 [lib.ios.base]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                The description of ios_base::iword() and pword() in 27.4.2.4 [lib.ios.members.static], say that if they fail, they "set badbit, which may throw an exception". However, ios_base offers no interface to set or to test badbit; those interfaces are defined in *************** setstate(badbit).]

                *** 1217,1223 ****

                42. String ctors specify wrong default allocator

                ! Section: 21.3 [lib.basic.string]  Status: DR  Submitter: Nathan Myers  Date: 6 Aug 1998

                The basic_string<> copy constructor:

                basic_string(const basic_string& str, size_type pos = 0,
                --- 1221,1227 ----
                  
                  

                42. String ctors specify wrong default allocator

                ! Section: 21.3 [lib.basic.string]  Status: TC  Submitter: Nathan Myers  Date: 6 Aug 1998

                The basic_string<> copy constructor:

                basic_string(const basic_string& str, size_type pos = 0,
                *************** reflects the LWG consensus.
                *** 1291,1297 ****
                  ]


                46. Minor Annex D errors

                ! Section: D.7 [depr.str.strstreams]  Status: DR  Submitter: Brendan Kehoe  Date:  1 Jun 1998

                See lib-6522 and edit-814.

                Proposed resolution:

                Change D.7.1 [depr.strstreambuf] (since streambuf is a typedef of --- 1295,1301 ---- ]


                46. Minor Annex D errors

                ! Section: D.7 [depr.str.strstreams]  Status: TC  Submitter: Brendan Kehoe  Date:  1 Jun 1998

                See lib-6522 and edit-814.

                Proposed resolution:

                Change D.7.1 [depr.strstreambuf] (since streambuf is a typedef of *************** int_type:

                *** 1316,1322 **** typedef typename char_traits<char>::pos_type pos_type;

                47. Imbue() and getloc() Returns clauses swapped

                ! Section: 27.4.2.3 [lib.ios.base.locales]  Status: DR  Submitter: Matt Austern  Date: 21 Jun 1998

                Section 27.4.2.3 specifies how imbue() and getloc() work. That section has two RETURNS clauses, and they make no sense as stated. They make perfect sense, though, if you swap them. Am I --- 1320,1326 ---- typedef typename char_traits<char>::pos_type pos_type;


                47. Imbue() and getloc() Returns clauses swapped

                ! Section: 27.4.2.3 [lib.ios.base.locales]  Status: TC  Submitter: Matt Austern  Date: 21 Jun 1998

                Section 27.4.2.3 specifies how imbue() and getloc() work. That section has two RETURNS clauses, and they make no sense as stated. They make perfect sense, though, if you swap them. Am I *************** accident?

                *** 1326,1332 ****

                In 27.4.2.3 [lib.ios.base.locales] swap paragraphs 2 and 4.


                48. Use of non-existent exception constructor

                ! Section: 27.4.2.1.1 [lib.ios::failure]  Status: DR  Submitter: Matt Austern  Date: 21 Jun 1998

                27.4.2.1.1, paragraph 2, says that class failure initializes the base class, exception, with exception(msg). Class exception (see 18.6.1) has no such constructor.

                --- 1330,1336 ----

                In 27.4.2.3 [lib.ios.base.locales] swap paragraphs 2 and 4.


                48. Use of non-existent exception constructor

                ! Section: 27.4.2.1.1 [lib.ios::failure]  Status: TC  Submitter: Matt Austern  Date: 21 Jun 1998

                27.4.2.1.1, paragraph 2, says that class failure initializes the base class, exception, with exception(msg). Class exception (see 18.6.1) has no such constructor.

                *************** text was added in the non-normative foot *** 1421,1427 **** on the two streams can be mixed arbitrarily.]


                50. Copy constructor and assignment operator of ios_base

                ! Section: 27.4.2 [lib.ios.base]  Status: DR  Submitter: Matt Austern  Date: 21 Jun 1998

                As written, ios_base has a copy constructor and an assignment operator. (Nothing in the standard says it doesn't have one, and all classes have copy constructors and assignment operators unless you --- 1425,1431 ---- on the two streams can be mixed arbitrarily.]


                50. Copy constructor and assignment operator of ios_base

                ! Section: 27.4.2 [lib.ios.base]  Status: TC  Submitter: Matt Austern  Date: 21 Jun 1998

                As written, ios_base has a copy constructor and an assignment operator. (Nothing in the standard says it doesn't have one, and all classes have copy constructors and assignment operators unless you *************** constructor and operator= members as bei *** 1448,1454 **** outweighs any benefit of allowing ios_base objects to be copyable.


                51. Requirement to not invalidate iterators missing

                ! Section: 23.1 [lib.container.requirements]  Status: DR  Submitter: David Vandevoorde  Date: 23 Jun 1998

                The std::sort algorithm can in general only sort a given sequence by moving around values. The list<>::sort() member on the other hand could move around values or just update internal pointers. Either --- 1452,1458 ---- outweighs any benefit of allowing ios_base objects to be copyable.


                51. Requirement to not invalidate iterators missing

                ! Section: 23.1 [lib.container.requirements]  Status: TC  Submitter: David Vandevoorde  Date: 23 Jun 1998

                The std::sort algorithm can in general only sort a given sequence by moving around values. The list<>::sort() member on the other hand could move around values or just update internal pointers. Either *************** particularly the addition of the phrase *** 1495,1501 **** of"


                52. Small I/O problems

                ! Section: 27.4.3.2 [lib.fpos.operations]  Status: DR  Submitter: Matt Austern  Date: 23 Jun 1998

                First, 27.4.4.1 [lib.basic.ios.cons], table 89. This is pretty obvious: it should be titled "basic_ios<>() effects", not "ios_base() effects".

                --- 1499,1505 ---- of"


                52. Small I/O problems

                ! Section: 27.4.3.2 [lib.fpos.operations]  Status: TC  Submitter: Matt Austern  Date: 23 Jun 1998

                First, 27.4.4.1 [lib.basic.ios.cons], table 89. This is pretty obvious: it should be titled "basic_ios<>() effects", not "ios_base() effects".

                *************** arithmetic is possible.)

                *** 1523,1529 **** effects".


                53. Basic_ios destructor unspecified

                ! Section: 27.4.4.1 [lib.basic.ios.cons]  Status: DR  Submitter: Matt Austern  Date: 23 Jun 1998

                There's nothing in 27.4.4 saying what basic_ios's destructor does. The important question is whether basic_ios::~basic_ios() destroys rdbuf().

                --- 1527,1533 ---- effects".


                53. Basic_ios destructor unspecified

                ! Section: 27.4.4.1 [lib.basic.ios.cons]  Status: TC  Submitter: Matt Austern  Date: 23 Jun 1998

                There's nothing in 27.4.4 saying what basic_ios's destructor does. The important question is whether basic_ios::~basic_ios() destroys rdbuf().

                *************** footnote which incorrectly said "badbit".


                54. Basic_streambuf's destructor

                ! Section: 27.5.2.1 [lib.streambuf.cons]  Status: DR  Submitter: Matt Austern  Date: 25 Jun 1998

                The class synopsis for basic_streambuf shows a (virtual) destructor, but the standard doesn't say what that destructor does. My assumption is that it does nothing, but the standard should say so --- 1548,1554 ---- badbit".


                54. Basic_streambuf's destructor

                ! Section: 27.5.2.1 [lib.streambuf.cons]  Status: TC  Submitter: Matt Austern  Date: 25 Jun 1998

                The class synopsis for basic_streambuf shows a (virtual) destructor, but the standard doesn't say what that destructor does. My assumption is that it does nothing, but the standard should say so *************** explicitly.

                *** 1559,1565 ****

                55. Invalid stream position is undefined

                ! Section: 27 [lib.input.output]  Status: DR  Submitter: Matt Austern  Date: 26 Jun 1998

                Several member functions in clause 27 are defined in certain circumstances to return an "invalid stream position", a term that is defined nowhere in the standard. Two places (27.5.2.4.2, --- 1563,1569 ----


                55. Invalid stream position is undefined

                ! Section: 27 [lib.input.output]  Status: TC  Submitter: Matt Austern  Date: 26 Jun 1998

                Several member functions in clause 27 are defined in certain circumstances to return an "invalid stream position", a term that is defined nowhere in the standard. Two places (27.5.2.4.2, *************** stores an invalid stream position" *** 1618,1624 **** pos_type(off_type(-1))"


                56. Showmanyc's return type

                ! Section: 27.5.2 [lib.streambuf]  Status: DR  Submitter: Matt Austern  Date: 29 Jun 1998

                The class summary for basic_streambuf<>, in 27.5.2, says that showmanyc has return type int. However, 27.5.2.4.3 says that its return type is streamsize.

                --- 1622,1628 ---- pos_type(off_type(-1))"


                56. Showmanyc's return type

                ! Section: 27.5.2 [lib.streambuf]  Status: TC  Submitter: Matt Austern  Date: 29 Jun 1998

                The class summary for basic_streambuf<>, in 27.5.2, says that showmanyc has return type int. However, 27.5.2.4.3 says that its return type is streamsize.

                *************** return type is streamsize.

                *** 1627,1633 **** 27.5.2 [lib.streambuf] class summary to streamsize.


                57. Mistake in char_traits

                ! Section: 21.1.3.2 [lib.char.traits.specializations.wchar.t]  Status: DR  Submitter: Matt Austern  Date: 1 Jul 1998

                21.1.3.2, paragraph 3, says "The types streampos and wstreampos may be different if the implementation supports no shift encoding in narrow-oriented iostreams but supports one or more shift --- 1631,1637 ---- 27.5.2 [lib.streambuf] class summary to streamsize.


                57. Mistake in char_traits

                ! Section: 21.1.3.2 [lib.char.traits.specializations.wchar.t]  Status: TC  Submitter: Matt Austern  Date: 1 Jul 1998

                21.1.3.2, paragraph 3, says "The types streampos and wstreampos may be different if the implementation supports no shift encoding in narrow-oriented iostreams but supports one or more shift *************** begins "The types streampos and wst *** 1646,1652 **** different..." .


                59. Ambiguity in specification of gbump

                ! Section: 27.5.2.3.1 [lib.streambuf.get.area]  Status: DR  Submitter: Matt Austern  Date: 28 Jul 1998

                27.5.2.3.1 says that basic_streambuf::gbump() "Advances the next pointer for the input sequence by n."

                --- 1650,1656 ---- different..." .


                59. Ambiguity in specification of gbump

                ! Section: 27.5.2.3.1 [lib.streambuf.get.area]  Status: TC  Submitter: Matt Austern  Date: 28 Jul 1998

                27.5.2.3.1 says that basic_streambuf::gbump() "Advances the next pointer for the input sequence by n."

                *************** former interpretation.)

                *** 1675,1681 **** effects.


                60. What is a formatted input function?

                ! Section: 27.6.1.2.1 [lib.istream.formatted.reqmts]  Status: DR  Submitter: Matt Austern  Date: 3 Aug 1998

                Paragraph 1 of 27.6.1.2.1 contains general requirements for all formatted input functions. Some of the functions defined in section 27.6.1.2 explicitly say that those requirements apply ("Behaves --- 1679,1685 ---- effects.


                60. What is a formatted input function?

                ! Section: 27.6.1.2.1 [lib.istream.formatted.reqmts]  Status: TC  Submitter: Matt Austern  Date: 3 Aug 1998

                Paragraph 1 of 27.6.1.2.1 contains general requirements for all formatted input functions. Some of the functions defined in section 27.6.1.2 explicitly say that those requirements apply ("Behaves *************** by Judy Ward and Matt Austern. This pro *** 1972,1978 **** VI of that paper.


                61. Ambiguity in iostreams exception policy

                ! Section: 27.6.1.3 [lib.istream.unformatted]  Status: DR  Submitter: Matt Austern  Date: 6 Aug 1998

                The introduction to the section on unformatted input (27.6.1.3) says that every unformatted input function catches all exceptions that were thrown during input, sets badbit, and then conditionally rethrows --- 1976,1982 ---- VI of that paper.


                61. Ambiguity in iostreams exception policy

                ! Section: 27.6.1.3 [lib.istream.unformatted]  Status: TC  Submitter: Matt Austern  Date: 6 Aug 1998

                The introduction to the section on unformatted input (27.6.1.3) says that every unformatted input function catches all exceptions that were thrown during input, sets badbit, and then conditionally rethrows *************** parenthetical comment: "(Exceptions *** 2008,2014 **** resolution as better standardese.


                62. Sync's return value

                ! Section: 27.6.1.3 [lib.istream.unformatted]  Status: DR  Submitter: Matt Austern  Date: 6 Aug 1998

                The Effects clause for sync() (27.6.1.3, paragraph 36) says that it "calls rdbuf()->pubsync() and, if that function returns -1 ... returns traits::eof()."

                --- 2012,2018 ---- resolution as better standardese.


                62. Sync's return value

                ! Section: 27.6.1.3 [lib.istream.unformatted]  Status: TC  Submitter: Matt Austern  Date: 6 Aug 1998

                The Effects clause for sync() (27.6.1.3, paragraph 36) says that it "calls rdbuf()->pubsync() and, if that function returns -1 ... returns traits::eof()."

                *************** traits::int_type while the return type o *** 2021,2027 ****


                63. Exception-handling policy for unformatted output

                ! Section: 27.6.2.6 [lib.ostream.unformatted]  Status: DR  Submitter: Matt Austern  Date: 11 Aug 1998

                Clause 27 details an exception-handling policy for formatted input, unformatted input, and formatted output. It says nothing for unformatted output (27.6.2.6). 27.6.2.6 should either include the same --- 2025,2031 ----


                63. Exception-handling policy for unformatted output

                ! Section: 27.6.2.6 [lib.ostream.unformatted]  Status: TC  Submitter: Matt Austern  Date: 11 Aug 1998

                Clause 27 details an exception-handling policy for formatted input, unformatted input, and formatted output. It says nothing for unformatted output (27.6.2.6). 27.6.2.6 should either include the same *************** input, unformatted input, and formatted *** 2052,2058 ****


                64. Exception handling in basic_istream::operator>>(basic_streambuf*)

                ! Section: 27.6.1.2.3 [lib.istream::extractors]  Status: DR  Submitter: Matt Austern  Date: 11 Aug 1998

                27.6.1.2.3, paragraph 13, is ambiguous. It can be interpreted two different ways, depending on whether the second sentence is read as an elaboration of the first.

                --- 2056,2062 ----

                64. Exception handling in basic_istream::operator>>(basic_streambuf*)

                ! Section: 27.6.1.2.3 [lib.istream::extractors]  Status: TC  Submitter: Matt Austern  Date: 11 Aug 1998

                27.6.1.2.3, paragraph 13, is ambiguous. It can be interpreted two different ways, depending on whether the second sentence is read as an elaboration of the first.

                *************** elaboration of the first.

                *** 2070,2076 ****

                66. Strstreambuf::setbuf

                ! Section: D.7.1.3 [depr.strstreambuf.virtuals]  Status: DR  Submitter: Matt Austern  Date: 18 Aug 1998

                D.7.1.3, paragraph 19, says that strstreambuf::setbuf "Performs an operation that is defined separately for each class derived from strstreambuf". This is obviously an incorrect --- 2074,2080 ----


                66. Strstreambuf::setbuf

                ! Section: D.7.1.3 [depr.strstreambuf.virtuals]  Status: TC  Submitter: Matt Austern  Date: 18 Aug 1998

                D.7.1.3, paragraph 19, says that strstreambuf::setbuf "Performs an operation that is defined separately for each class derived from strstreambuf". This is obviously an incorrect *************** with:

                *** 2089,2095 ****

                68. Extractors for char* should store null at end

                ! Section: 27.6.1.2.3 [lib.istream::extractors]  Status: DR  Submitter: Angelika Langer  Date: 14 Jul 1998

                Extractors for char* (27.6.1.2.3) do not store a null character after the extracted character sequence whereas the unformatted functions like get() do. Why is this?

                --- 2093,2099 ----

                68. Extractors for char* should store null at end

                ! Section: 27.6.1.2.3 [lib.istream::extractors]  Status: TC  Submitter: Angelika Langer  Date: 14 Jul 1998

                Extractors for char* (27.6.1.2.3) do not store a null character after the extracted character sequence whereas the unformatted functions like get() do. Why is this?

                *************** item from:

                *** 2116,2122 ****

                69. Must elements of a vector be contiguous?

                ! Section: 23.2.4 [lib.vector]  Status: DR  Submitter: Andrew Koenig  Date: 29 Jul 1998

                The issue is this: Must the elements of a vector be in contiguous memory?

                (Please note that this is entirely separate from the question of --- 2120,2126 ----


                69. Must elements of a vector be contiguous?

                ! Section: 23.2.4 [lib.vector]  Status: TC  Submitter: Andrew Koenig  Date: 29 Jul 1998

                The issue is this: Must the elements of a vector be in contiguous memory?

                (Please note that this is entirely separate from the question of *************** directly defined in the standard. Discu *** 2150,2156 ****


              70. Uncaught_exception() missing throw() specification

              ! Section: 18.6 [lib.support.exception], 18.6.4 [lib.uncaught]  Status: DR  Submitter: Steve Clamage  Date: Unknown

              In article 3E04@pratique.fr, Valentin Bonnard writes:

              uncaught_exception() doesn't have a throw specification.

              --- 2154,2160 ----

            70. Uncaught_exception() missing throw() specification

            ! Section: 18.6 [lib.support.exception], 18.6.4 [lib.uncaught]  Status: TC  Submitter: Steve Clamage  Date: Unknown

            In article 3E04@pratique.fr, Valentin Bonnard writes:

            uncaught_exception() doesn't have a throw specification.

            *************** exception safety is very important.

            *** 2164,2170 ****

            In 15.5.3 [except.uncaught], paragraph 1, 18.6 [lib.support.exception], and 18.6.4 [lib.uncaught], add "throw()" to uncaught_exception().


            71. Do_get_monthname synopsis missing argument

            ! Section: 22.2.5.1 [lib.locale.time.get]  Status: DR  Submitter: Nathan Myers  Date: 13 Aug 1998

            The locale facet member time_get<>::do_get_monthname is described in 22.2.5.1.2 [lib.locale.time.get.virtuals] with five arguments, consistent with do_get_weekday and with its specified use by member --- 2168,2174 ----

            In 15.5.3 [except.uncaught], paragraph 1, 18.6 [lib.support.exception], and 18.6.4 [lib.uncaught], add "throw()" to uncaught_exception().


            71. Do_get_monthname synopsis missing argument

            ! Section: 22.2.5.1 [lib.locale.time.get]  Status: TC  Submitter: Nathan Myers  Date: 13 Aug 1998

            The locale facet member time_get<>::do_get_monthname is described in 22.2.5.1.2 [lib.locale.time.get.virtuals] with five arguments, consistent with do_get_weekday and with its specified use by member *************** the declaration of member do_monthname a *** 2180,2186 ****


            74. Garbled text for codecvt::do_max_length

            ! Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: DR  Submitter: Matt Austern  Date: 8 Sep 1998

            The text of codecvt::do_max_length's "Returns" clause (22.2.1.5.2, paragraph 11) is garbled. It has unbalanced parentheses and a spurious n.

            --- 2184,2190 ----

            74. Garbled text for codecvt::do_max_length

            ! Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: TC  Submitter: Matt Austern  Date: 8 Sep 1998

            The text of codecvt::do_max_length's "Returns" clause (22.2.1.5.2, paragraph 11) is garbled. It has unbalanced parentheses and a spurious n.

            *************** following:

            *** 2197,2203 ****

            75. Contradiction in codecvt::length's argument types

            ! Section: 22.2.1.5 [lib.locale.codecvt]  Status: DR  Submitter:  Matt Austern  Date:  18 Sep 1998

            The class synopses for classes codecvt<> (22.2.1.5) and codecvt_byname<> (22.2.1.6) say that the first --- 2201,2207 ----


            75. Contradiction in codecvt::length's argument types

            ! Section: 22.2.1.5 [lib.locale.codecvt]  Status: TC  Submitter:  Matt Austern  Date:  18 Sep 1998

            The class synopses for classes codecvt<> (22.2.1.5) and codecvt_byname<> (22.2.1.6) say that the first *************** return value.]

            *** 2349,2362 ****


            78. Typo: event_call_back

            ! Section: 27.4.2 [lib.ios.base]  Status: DR  Submitter: Nico Josuttis  Date: 29 Sep 1998

            typo: event_call_back should be event_callback  

            Proposed resolution:

            In the 27.4.2 [lib.ios.base] synopsis change "event_call_back" to "event_callback".


            79. Inconsistent declaration of polar()

            ! Section: 26.2.1 [lib.complex.synopsis], 26.2.7 [lib.complex.value.ops]  Status: DR  Submitter: Nico Josuttis  Date: 29 Sep 1998

            In 26.2.1 [lib.complex.synopsis] polar is declared as follows:

               template<class T> complex<T> polar(const T&, const T&); 
            --- 2353,2366 ----


            78. Typo: event_call_back

            ! Section: 27.4.2 [lib.ios.base]  Status: TC  Submitter: Nico Josuttis  Date: 29 Sep 1998

            typo: event_call_back should be event_callback  

            Proposed resolution:

            In the 27.4.2 [lib.ios.base] synopsis change "event_call_back" to "event_callback".


            79. Inconsistent declaration of polar()

            ! Section: 26.2.1 [lib.complex.synopsis], 26.2.7 [lib.complex.value.ops]  Status: TC  Submitter: Nico Josuttis  Date: 29 Sep 1998

            In 26.2.1 [lib.complex.synopsis] polar is declared as follows:

               template<class T> complex<T> polar(const T&, const T&); 
            *************** return value.]

            *** 2372,2385 ****
               template<class T> complex<T> polar(const T& rho, const T& theta = 0); 

            80. Global Operators of complex declared twice

            ! Section: 26.2.1 [lib.complex.synopsis], 26.2.2 [lib.complex]  Status: DR  Submitter: Nico Josuttis  Date: 29 Sep 1998

            Both 26.2.1 and 26.2.2 contain declarations of global operators for class complex. This redundancy should be removed.

            Proposed resolution:

            Reduce redundancy according to the general style of the standard.


            83. String::npos vs. string::max_size()

            ! Section: 21.3 [lib.basic.string]  Status: DR  Submitter: Nico Josuttis  Date: 29 Sep 1998

            Many string member functions throw if size is getting or exceeding npos. However, I wonder why they don't throw if size is getting or exceeding max_size() instead of npos. May be npos is known at compile --- 2376,2389 ----

               template<class T> complex<T> polar(const T& rho, const T& theta = 0); 

            80. Global Operators of complex declared twice

            ! Section: 26.2.1 [lib.complex.synopsis], 26.2.2 [lib.complex]  Status: TC  Submitter: Nico Josuttis  Date: 29 Sep 1998

            Both 26.2.1 and 26.2.2 contain declarations of global operators for class complex. This redundancy should be removed.

            Proposed resolution:

            Reduce redundancy according to the general style of the standard.


            83. String::npos vs. string::max_size()

            ! Section: 21.3 [lib.basic.string]  Status: TC  Submitter: Nico Josuttis  Date: 29 Sep 1998

            Many string member functions throw if size is getting or exceeding npos. However, I wonder why they don't throw if size is getting or exceeding max_size() instead of npos. May be npos is known at compile *************** described in this clause...") add a *** 2399,2405 ****

            The LWG believes length_error is the correct exception to throw.


            86. String constructors don't describe exceptions

            ! Section: 21.3.1 [lib.string.cons]  Status: DR  Submitter: Nico Josuttis  Date: 29 Sep 1998

            The constructor from a range:

            template<class InputIterator> 
            --- 2403,2409 ----
              

            The LWG believes length_error is the correct exception to throw.


            86. String constructors don't describe exceptions

            ! Section: 21.3.1 [lib.string.cons]  Status: TC  Submitter: Nico Josuttis  Date: 29 Sep 1998

            The constructor from a range:

            template<class InputIterator> 
            *************** because they are subsumed by the general
            *** 2419,2425 ****
              resolution for issue 83.


            90. Incorrect description of operator >> for strings

            ! Section: 21.3.7.9 [lib.string.io]  Status: DR  Submitter: Nico Josuttis  Date: 29 Sep 1998

            The effect of operator >> for strings contain the following item:

                isspace(c,getloc()) is true for the next available input --- 2423,2429 ---- resolution for issue 83.


            90. Incorrect description of operator >> for strings

            ! Section: 21.3.7.9 [lib.string.io]  Status: TC  Submitter: Nico Josuttis  Date: 29 Sep 1998

            The effect of operator >> for strings contain the following item:

                isspace(c,getloc()) is true for the next available input *************** conversion from iterator to [Tokyo: The LWG crafted the proposed resolution and rationale.]


            106. Numeric library private members are implementation defined

            ! Section: 26.3.5 [lib.template.slice.array]  Status: DR  Submitter: AFNOR  Date: 7 Oct 1998

            This is the only place in the whole standard where the implementation has to document something private.

            Proposed resolution:

            --- 2557,2563 ----

            [Tokyo: The LWG crafted the proposed resolution and rationale.]


            106. Numeric library private members are implementation defined

            ! Section: 26.3.5 [lib.template.slice.array]  Status: TC  Submitter: AFNOR  Date: 7 Oct 1998

            This is the only place in the whole standard where the implementation has to document something private.

            Proposed resolution:

            *************** Remove the comment which says "// r *** 2573,2579 ****

          108. Lifetime of exception::what() return unspecified

          ! Section: 18.6.1 [lib.exception]  Status: DR  Submitter: AFNOR  Date: 7 Oct 1998

          In 18.6.1, paragraphs 8-9, the lifetime of the return value of exception::what() is left unspecified. This issue has implications with exception safety of exception handling: some exceptions should --- 2577,2583 ----


        108. Lifetime of exception::what() return unspecified

        ! Section: 18.6.1 [lib.exception]  Status: TC  Submitter: AFNOR  Date: 7 Oct 1998

        In 18.6.1, paragraphs 8-9, the lifetime of the return value of exception::what() is left unspecified. This issue has implications with exception safety of exception handling: some exceptions should *************** Leave open - 1.]

        *** 2701,2707 ****

        110. istreambuf_iterator::equal not const

        ! Section: 24.5.3 [lib.istreambuf.iterator], 24.5.3.5 [lib.istreambuf.iterator::equal]  Status: DR  Submitter: Nathan Myers  Date: 15 Oct 1998

        Member istreambuf_iterator<>::equal is not declared "const", yet 24.5.3.6 [lib.istreambuf.iterator::op==] says that operator==, which is const, calls it. This is contradictory.

        --- 2705,2711 ----

        110. istreambuf_iterator::equal not const

        ! Section: 24.5.3 [lib.istreambuf.iterator], 24.5.3.5 [lib.istreambuf.iterator::equal]  Status: TC  Submitter: Nathan Myers  Date: 15 Oct 1998

        Member istreambuf_iterator<>::equal is not declared "const", yet 24.5.3.6 [lib.istreambuf.iterator::op==] says that operator==, which is const, calls it. This is contradictory.

        *************** replace:

        *** 2720,2726 ****

        112. Minor typo in ostreambuf_iterator constructor

        ! Section: 24.5.4.1 [lib.ostreambuf.iter.cons]  Status: DR  Submitter: Matt Austern  Date: 20 Oct 1998

        The requires clause for ostreambuf_iterator's constructor from an ostream_type (24.5.4.1, paragraph 1) reads "s is not null". However, s is a --- 2724,2730 ----


        112. Minor typo in ostreambuf_iterator constructor

        ! Section: 24.5.4.1 [lib.ostreambuf.iter.cons]  Status: TC  Submitter: Matt Austern  Date: 20 Oct 1998

        The requires clause for ostreambuf_iterator's constructor from an ostream_type (24.5.4.1, paragraph 1) reads "s is not null". However, s is a *************** reading:

        *** 2740,2746 ****

        114. Placement forms example in error twice

        ! Section: 18.4.1.3 [lib.new.delete.placement]  Status: DR  Submitter: Steve Clamage  Date: 28 Oct 1998

        Section 18.4.1.3 contains the following example:

        [Example: This can be useful for constructing an object at a known address:
        --- 2744,2750 ----
          
          

        114. Placement forms example in error twice

        ! Section: 18.4.1.3 [lib.new.delete.placement]  Status: TC  Submitter: Steve Clamage  Date: 28 Oct 1998

        Section 18.4.1.3 contains the following example:

        [Example: This can be useful for constructing an object at a known address:
        *************** likely to fail.

        *** 2766,2772 ****

        115. Typo in strstream constructors

        ! Section: D.7.4.1 [depr.strstream.cons]  Status: DR  Submitter: Steve Clamage  Date: 2 Nov 1998

        D.7.4.1 strstream constructors paragraph 2 says:

        --- 2770,2776 ----

        115. Typo in strstream constructors

        ! Section: D.7.4.1 [depr.strstream.cons]  Status: TC  Submitter: Steve Clamage  Date: 2 Nov 1998

        D.7.4.1 strstream constructors paragraph 2 says:

        *************** operator>>(int& val);
        *** 2958,2964 ****

        [Post-Tokyo: PJP provided the above wording.]


        119. Should virtual functions be allowed to strengthen the exception specification?

        ! Section: 17.4.4.8 [lib.res.on.exception.handling]  Status: DR  Submitter: Judy Ward  Date: 15 Dec 1998

        Section 17.4.4.8 [lib.res.on.exception.handling] states:

        "An implementation may strengthen the exception-specification --- 2962,2968 ----

        [Post-Tokyo: PJP provided the above wording.]


        119. Should virtual functions be allowed to strengthen the exception specification?

        ! Section: 17.4.4.8 [lib.res.on.exception.handling]  Status: TC  Submitter: Judy Ward  Date: 15 Dec 1998

        Section 17.4.4.8 [lib.res.on.exception.handling] states:

        "An implementation may strengthen the exception-specification *************** exception-specification for a function&q *** 2992,2998 **** exception-specification for a non-virtual function".


        122. streambuf/wstreambuf description should not say they are specializations

        ! Section: 27.5.2 [lib.streambuf]  Status: DR  Submitter: Judy Ward  Date: 15 Dec 1998

        Section 27.5.2 describes the streambuf classes this way:

        --- 2996,3002 ---- exception-specification for a non-virtual function".


        122. streambuf/wstreambuf description should not say they are specializations

        ! Section: 27.5.2 [lib.streambuf]  Status: TC  Submitter: Judy Ward  Date: 15 Dec 1998

        Section 27.5.2 describes the streambuf classes this way:

        *************** sentences).

        *** 3016,3022 **** typedefs and that is sufficient.


        124. ctype_byname<charT>::do_scan_is & do_scan_not return type should be const charT*

        ! Section: 22.2.1.2 [lib.locale.ctype.byname]  Status: DR  Submitter: Judy Ward  Date: 15 Dec 1998

        In Section 22.2.1.2 [lib.locale.ctype.byname] ctype_byname<charT>::do_scan_is() and do_scan_not() are declared to return a const char* not a const charT*.

        --- 3020,3026 ---- typedefs and that is sufficient.


        124. ctype_byname<charT>::do_scan_is & do_scan_not return type should be const charT*

        ! Section: 22.2.1.2 [lib.locale.ctype.byname]  Status: TC  Submitter: Judy Ward  Date: 15 Dec 1998

        In Section 22.2.1.2 [lib.locale.ctype.byname] ctype_byname<charT>::do_scan_is() and do_scan_not() are declared to return a const char* not a const charT*.

        *************** to return a const char* not a const char *** 3026,3032 **** charT*
        .


        125. valarray<T>::operator!() return type is inconsistent

        ! Section: 26.3.2 [lib.template.valarray]  Status: DR  Submitter: Judy Ward  Date: 15 Dec 1998

        In Section 26.3.2 [lib.template.valarray] valarray<T>::operator!() is declared to return a valarray<T>, but in Section 26.3.2.5 [lib.valarray.unary] it is declared to return a valarray<bool>. The latter appears to be correct.

        --- 3030,3036 ---- charT*.


        125. valarray<T>::operator!() return type is inconsistent

        ! Section: 26.3.2 [lib.template.valarray]  Status: TC  Submitter: Judy Ward  Date: 15 Dec 1998

        In Section 26.3.2 [lib.template.valarray] valarray<T>::operator!() is declared to return a valarray<T>, but in Section 26.3.2.5 [lib.valarray.unary] it is declared to return a valarray<bool>. The latter appears to be correct.

        *************** latter appears to be correct.

        *** 3036,3042 **** valarray<bool>.


        126. typos in Effects clause of ctype::do_narrow()

        ! Section: 22.2.1.1.2 [lib.locale.ctype.virtuals]  Status: DR  Submitter: Judy Ward  Date: 15 Dec 1998

        Typos in 22.2.1.1.2 need to be fixed.

        Proposed resolution:

        In Section 22.2.1.1.2 [lib.locale.ctype.virtuals] change:

        --- 3040,3046 ---- valarray<bool>.


        126. typos in Effects clause of ctype::do_narrow()

        ! Section: 22.2.1.1.2 [lib.locale.ctype.virtuals]  Status: TC  Submitter: Judy Ward  Date: 15 Dec 1998

        Typos in 22.2.1.1.2 need to be fixed.

        Proposed resolution:

        In Section 22.2.1.1.2 [lib.locale.ctype.virtuals] change:

        *************** latter appears to be correct.

        *** 3056,3062 ****
           (is(M,c) || !ctc.is(M, do_narrow(c,dfault)) )

        127. auto_ptr<> conversion issues

        ! Section: 20.4.5 [lib.auto.ptr]  Status: DR  Submitter: Greg Colvin  Date: 17 Feb 1999

        There are two problems with the current auto_ptr wording in the standard:

        --- 3060,3066 ----
           (is(M,c) || !ctc.is(M, do_narrow(c,dfault)) )

        127. auto_ptr<> conversion issues

        ! Section: 20.4.5 [lib.auto.ptr]  Status: TC  Submitter: Greg Colvin  Date: 17 Feb 1999

        There are two problems with the current auto_ptr wording in the standard:

        *************** a public assignment operator to the *** 3122,3128 ****

        129. Need error indication from seekp() and seekg()

        ! Section: 27.6.1.3 [lib.istream.unformatted], 27.6.2.4 [lib.ostream.seeks]  Status: DR  Submitter: Angelika Langer  Date: 22 Feb 1999

        Currently, the standard does not specify how seekg() and seekp() indicate failure. They are not required to set failbit, and they can't return an error indication because they must return *this, i.e. the --- 3126,3132 ----


        129. Need error indication from seekp() and seekg()

        ! Section: 27.6.1.3 [lib.istream.unformatted], 27.6.2.4 [lib.ostream.seeks]  Status: TC  Submitter: Angelika Langer  Date: 22 Feb 1999

        Currently, the standard does not specify how seekg() and seekp() indicate failure. They are not required to set failbit, and they can't return an error indication because they must return *this, i.e. the *************** stream state in case of failure.

        *** 3146,3152 ****

        Setting failbit is the usual error reporting mechanism for streams


        132. list::resize description uses random access iterators

        ! Section: 23.2.2.2 [lib.list.capacity]  Status: DR  Submitter: Howard Hinnant  Date: 6 Mar 1999

        The description reads:

        -1- Effects:

        --- 3150,3156 ----

        Setting failbit is the usual error reporting mechanism for streams


        132. list::resize description uses random access iterators

        ! Section: 23.2.2.2 [lib.list.capacity]  Status: TC  Submitter: Howard Hinnant  Date: 6 Mar 1999

        The description reads:

        -1- Effects:

        *************** with David Abrahams. They had a discussi *** 3178,3184 **** no issue of exception safety with the proposed resolution.]


        133. map missing get_allocator()

        ! Section: 23.3.1 [lib.map]  Status: DR  Submitter: Howard Hinnant  Date: 6 Mar 1999

        The title says it all.

        Proposed resolution:

        Insert in 23.3.1 [lib.map], paragraph 2, --- 3182,3188 ---- no issue of exception safety with the proposed resolution.]


        133. map missing get_allocator()

        ! Section: 23.3.1 [lib.map]  Status: TC  Submitter: Howard Hinnant  Date: 6 Mar 1999

        The title says it all.

        Proposed resolution:

        Insert in 23.3.1 [lib.map], paragraph 2, *************** after operator= in the map declaration:< *** 3187,3193 ****

            allocator_type get_allocator() const;

        134. vector constructors over specified

        ! Section: 23.2.4.1 [lib.vector.cons]  Status: DR  Submitter: Howard Hinnant  Date: 6 Mar 1999

        The complexity description says: "It does at most 2N calls to the copy constructor of T and logN reallocations if they are just input iterators ...".

        --- 3191,3197 ----
            allocator_type get_allocator() const;

        134. vector constructors over specified

        ! Section: 23.2.4.1 [lib.vector.cons]  Status: TC  Submitter: Howard Hinnant  Date: 6 Mar 1999

        The complexity description says: "It does at most 2N calls to the copy constructor of T and logN reallocations if they are just input iterators ...".

        *************** for basic_streambuf<>::seekpos, or *** 3272,3278 **** basic_filebuf<>::seekpos.]


        137. Do use_facet and has_facet look in the global locale?

        ! Section: 22.1.1 [lib.locale]  Status: DR  Submitter: Angelika Langer  Date: 17 Mar 1999

        Section 22.1.1 [lib.locale] says:

        -4- In the call to use_facet<Facet>(loc), the type argument --- 3276,3282 ---- basic_filebuf<>::seekpos.]


        137. Do use_facet and has_facet look in the global locale?

        ! Section: 22.1.1 [lib.locale]  Status: TC  Submitter: Angelika Langer  Date: 17 Mar 1999

        Section 22.1.1 [lib.locale] says:

        -4- In the call to use_facet<Facet>(loc), the type argument *************** from section 22.1.1.

        *** 3301,3307 **** in the standard.


        139. Optional sequence operation table description unclear

        ! Section: 23.1.1 [lib.sequence.reqmts]  Status: DR  Submitter: Andrew Koenig  Date: 30 Mar 1999

        The sentence introducing the Optional sequence operation table (23.1.1 paragraph 12) has two problems:

        --- 3305,3311 ---- in the standard.


        139. Optional sequence operation table description unclear

        ! Section: 23.1.1 [lib.sequence.reqmts]  Status: TC  Submitter: Andrew Koenig  Date: 30 Mar 1999

        The sentence introducing the Optional sequence operation table (23.1.1 paragraph 12) has two problems:

        *************** with:

        *** 3325,3331 ****

        141. basic_string::find_last_of, find_last_not_of say pos instead of xpos

        ! Section: 21.3.6.4 [lib.string::find.last.of], 21.3.6.6 [lib.string::find.last.not.of]  Status: DR  Submitter: Arch Robison  Date: 28 Apr 1999

        Sections 21.3.6.4 paragraph 1 and 21.3.6.6 paragraph 1 surely have misprints where they say:

        --- 3329,3335 ----


        141. basic_string::find_last_of, find_last_not_of say pos instead of xpos

        ! Section: 21.3.6.4 [lib.string::find.last.of], 21.3.6.6 [lib.string::find.last.not.of]  Status: TC  Submitter: Arch Robison  Date: 28 Apr 1999

        Sections 21.3.6.4 paragraph 1 and 21.3.6.6 paragraph 1 surely have misprints where they say:

        *************** proposed resolution.]

        *** 3347,3353 ****


        142. lexicographical_compare complexity wrong

        ! Section: 25.3.8 [lib.alg.lex.comparison]  Status: DR  Submitter: Howard Hinnant  Date: 20 Jun 1999

        The lexicographical_compare complexity is specified as:

             "At most min((last1 - first1), (last2 - first2)) --- 3351,3357 ----


        142. lexicographical_compare complexity wrong

        ! Section: 25.3.8 [lib.alg.lex.comparison]  Status: TC  Submitter: Howard Hinnant  Date: 20 Jun 1999

        The lexicographical_compare complexity is specified as:

             "At most min((last1 - first1), (last2 - first2)) *************** right! (and Matt states this complexity *** 3381,3387 ****


        144. Deque constructor complexity wrong

        ! Section: 23.2.1.1 [lib.deque.cons]  Status: DR  Submitter: Herb Sutter  Date: 9 May 1999

        In 23.2.1.1 paragraph 6, the deque ctor that takes an iterator range appears to have complexity requirements which are incorrect, and which contradict the complexity requirements for insert(). I suspect that the text in question, --- 3385,3391 ----


        144. Deque constructor complexity wrong

        ! Section: 23.2.1.1 [lib.deque.cons]  Status: TC  Submitter: Herb Sutter  Date: 9 May 1999

        In 23.2.1.1 paragraph 6, the deque ctor that takes an iterator range appears to have complexity requirements which are incorrect, and which contradict the complexity requirements for insert(). I suspect that the text in question, *************** typo):

        *** 3413,3419 ****

        146. complex<T> Inserter and Extractor need sentries

        ! Section: 26.2.6 [lib.complex.ops]  Status: DR  Submitter: Angelika Langer  Date: 12 May 1999

        The extractor for complex numbers is specified as: 

        --- 3417,3423 ----

        146. complex<T> Inserter and Extractor need sentries

        ! Section: 26.2.6 [lib.complex.ops]  Status: TC  Submitter: Angelika Langer  Date: 12 May 1999

        The extractor for complex numbers is specified as: 

        *************** follows an "all-or-none" rule. *** 3488,3494 **** as written.


        147. Library Intro refers to global functions that aren't global

        ! Section: 17.4.4.3 [lib.global.functions]  Status: DR  Submitter: Lois Goldthwaite  Date: 4 Jun 1999

        The library had many global functions until 17.4.1.1 [lib.contents] paragraph 2 was added:

        --- 3492,3498 ---- as written.


        147. Library Intro refers to global functions that aren't global

        ! Section: 17.4.4.3 [lib.global.functions]  Status: TC  Submitter: Lois Goldthwaite  Date: 4 Jun 1999

        The library had many global functions until 17.4.1.1 [lib.contents] paragraph 2 was added:

        *************** was changed from "non-member" *** 3552,3558 ****


        148. Functions in the example facet BoolNames should be const

        ! Section: 22.2.8 [lib.facets.examples]  Status: DR  Submitter: Jeremy Siek  Date: 3 Jun 1999

        In 22.2.8 [lib.facets.examples] paragraph 13, the do_truename() and do_falsename() functions in the example facet BoolNames should be const. The functions they are overriding in --- 3556,3562 ----


        148. Functions in the example facet BoolNames should be const

        ! Section: 22.2.8 [lib.facets.examples]  Status: TC  Submitter: Jeremy Siek  Date: 3 Jun 1999

        In 22.2.8 [lib.facets.examples] paragraph 13, the do_truename() and do_falsename() functions in the example facet BoolNames should be const. The functions they are overriding in *************** two places:

        *** 3566,3572 ****

        150. Find_first_of says integer instead of iterator

        ! Section: 25.1.4 [lib.alg.find.first.of]  Status: DR  Submitter: Matt McClure  Date: 30 Jun 1999

        Proposed resolution:

        Change 25.1.4 [lib.alg.find.first.of] paragraph 2 from:

        --- 3570,3576 ----

        150. Find_first_of says integer instead of iterator

        ! Section: 25.1.4 [lib.alg.find.first.of]  Status: TC  Submitter: Matt McClure  Date: 30 Jun 1999

        Proposed resolution:

        Change 25.1.4 [lib.alg.find.first.of] paragraph 2 from:

        *************** that for some iterator j in the range [f *** 3583,3589 ****

        151. Can't currently clear() empty container

        ! Section: 23.1.1 [lib.sequence.reqmts]  Status: DR  Submitter: Ed Brey  Date: 21 Jun 1999

        For both sequences and associative containers, a.clear() has the semantics of erase(a.begin(),a.end()), which is undefined for an empty container since erase(q1,q2) requires that q1 be dereferenceable --- 3587,3593 ----


        151. Can't currently clear() empty container

        ! Section: 23.1.1 [lib.sequence.reqmts]  Status: TC  Submitter: Ed Brey  Date: 21 Jun 1999

        For both sequences and associative containers, a.clear() has the semantics of erase(a.begin(),a.end()), which is undefined for an empty container since erase(q1,q2) requires that q1 be dereferenceable *************** iterators or certain kinds of iterators *** 3622,3628 ****


        152. Typo in scan_is() semantics

        ! Section: 22.2.1.1.2 [lib.locale.ctype.virtuals]  Status: DR  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The semantics of scan_is() (paragraphs 4 and 6) is not exactly described because there is no function is() which only takes a character as argument. Also, in the effects clause (paragraph 3), the semantic is also kept --- 3626,3632 ----


        152. Typo in scan_is() semantics

        ! Section: 22.2.1.1.2 [lib.locale.ctype.virtuals]  Status: TC  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The semantics of scan_is() (paragraphs 4 and 6) is not exactly described because there is no function is() which only takes a character as argument. Also, in the effects clause (paragraph 3), the semantic is also kept *************** same paragraphs.]

        *** 3684,3690 ****

        154. Missing double specifier for do_get()

        ! Section: 22.2.2.1.2 [lib.facet.num.get.virtuals]  Status: DR  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The table in paragraph 7 for the length modifier does not list the length modifier l to be applied if the type is double. Thus, the standard asks the implementation to do undefined things when using scanf() --- 3688,3694 ----


        154. Missing double specifier for do_get()

        ! Section: 22.2.2.1.2 [lib.facet.num.get.virtuals]  Status: TC  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The table in paragraph 7 for the length modifier does not list the length modifier l to be applied if the type is double. Thus, the standard asks the implementation to do undefined things when using scanf() *************** Modifier table to say that for doubl *** 3699,3705 ****


        155. Typo in naming the class defining the class Init

        ! Section: 27.3 [lib.iostream.objects]  Status: DR  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        There are conflicting statements about where the class Init is defined. According to 27.3 [lib.iostream.objects] paragraph 2 it is defined as basic_ios::Init, according to 27.4.2 [lib.ios.base] it is defined as ios_base::Init.

        --- 3703,3709 ----

        155. Typo in naming the class defining the class Init

        ! Section: 27.3 [lib.iostream.objects]  Status: TC  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        There are conflicting statements about where the class Init is defined. According to 27.3 [lib.iostream.objects] paragraph 2 it is defined as basic_ios::Init, according to 27.4.2 [lib.ios.base] it is defined as ios_base::Init.

        *************** it is defined as basic_ios::Init

        156. Typo in imbue() description

        ! Section: 27.4.2.3 [lib.ios.base.locales]  Status: DR  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        There is a small discrepancy between the declarations of imbue(): in 27.4.2 [lib.ios.base] the argument is passed as locale const& (correct), in 27.4.2.3 [lib.ios.base.locales] it --- 3716,3722 ---- the change.


        156. Typo in imbue() description

        ! Section: 27.4.2.3 [lib.ios.base.locales]  Status: TC  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        There is a small discrepancy between the declarations of imbue(): in 27.4.2 [lib.ios.base] the argument is passed as locale const& (correct), in 27.4.2.3 [lib.ios.base.locales] it *************** const&". *** 3725,3731 ****


        158. Underspecified semantics for setbuf()

        ! Section: 27.5.2.4.2 [lib.streambuf.virt.buffer]  Status: DR  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The default behavior of setbuf() is described only for the situation that gptr() != 0 && gptr() != egptr(): namely to do nothing. What has to be done in other situations  --- 3729,3735 ----


        158. Underspecified semantics for setbuf()

        ! Section: 27.5.2.4.2 [lib.streambuf.virt.buffer]  Status: TC  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The default behavior of setbuf() is described only for the situation that gptr() != 0 && gptr() != egptr(): namely to do nothing. What has to be done in other situations  *************** to: "Default behavior: Does nothing *** 3742,3748 ****


        159. Strange use of underflow()

        ! Section: 27.5.2.4.3 [lib.streambuf.virt.get]  Status: DR  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The description of the meaning of the result of showmanyc() seems to be rather strange: It uses calls to underflow(). Using underflow() is strange because --- 3746,3752 ----


        159. Strange use of underflow()

        ! Section: 27.5.2.4.3 [lib.streambuf.virt.get]  Status: TC  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The description of the meaning of the result of showmanyc() seems to be rather strange: It uses calls to underflow(). Using underflow() is strange because *************** stream".

        *** 3757,3763 ****

        160. Typo: Use of non-existing function exception()

        ! Section: 27.6.1.1 [lib.istream]  Status: DR  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The paragraph 4 refers to the function exception() which is not defined. Probably, the referred function is basic_ios<>::exceptions().

        --- 3761,3767 ----

        160. Typo: Use of non-existing function exception()

        ! Section: 27.6.1.1 [lib.istream]  Status: TC  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The paragraph 4 refers to the function exception() which is not defined. Probably, the referred function is basic_ios<>::exceptions().

        *************** is the correct spelling.]

        *** 3772,3778 ****

        161. Typo: istream_iterator vs. istreambuf_iterator

        ! Section: 27.6.1.2.2 [lib.istream.formatted.arithmetic]  Status: DR  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The note in the second paragraph pretends that the first argument is an object of type istream_iterator. This is wrong: It is an object of type istreambuf_iterator.

        --- 3776,3782 ----

        161. Typo: istream_iterator vs. istreambuf_iterator

        ! Section: 27.6.1.2.2 [lib.istream.formatted.arithmetic]  Status: TC  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The note in the second paragraph pretends that the first argument is an object of type istream_iterator. This is wrong: It is an object of type istreambuf_iterator.

        *************** an object of type istreambuf_iterato *** 3787,3793 ****

        164. do_put() has apparently unused fill argument

        ! Section: 22.2.5.3.2 [lib.locale.time.put.virtuals]  Status: DR  Submitter: Angelika Langer  Date: 23 Jul 1999

        In 22.2.5.3.2 [lib.locale.time.put.virtuals] the do_put() function is specified as taking a fill character as an argument, but the description of the function does not say whether the character is used at all and, if so, --- 3791,3797 ----


        164. do_put() has apparently unused fill argument

        ! Section: 22.2.5.3.2 [lib.locale.time.put.virtuals]  Status: TC  Submitter: Angelika Langer  Date: 23 Jul 1999

        In 22.2.5.3.2 [lib.locale.time.put.virtuals] the do_put() function is specified as taking a fill character as an argument, but the description of the function does not say whether the character is used at all and, if so, *************** called from what functions and eg to sta *** 3857,3863 **** is allowed to call sync() while other functions are not.]


        168. Typo: formatted vs. unformatted

        ! Section: 27.6.2.6 [lib.ostream.unformatted]  Status: DR  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The first paragraph begins with a descriptions what has to be done in formatted output functions. Probably this is a typo and the paragraph really want to describe unformatted output functions...

        --- 3861,3867 ---- is allowed to call sync() while other functions are not.]


        168. Typo: formatted vs. unformatted

        ! Section: 27.6.2.6 [lib.ostream.unformatted]  Status: TC  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The first paragraph begins with a descriptions what has to be done in formatted output functions. Probably this is a typo and the paragraph really want to describe unformatted output functions...

        *************** sentences, change the word "formatt *** 3872,3878 ****

        169. Bad efficiency of overflow() mandated

        ! Section: 27.7.1.3 [lib.stringbuf.virtuals]  Status: DR  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        Paragraph 8, Notes, of this section seems to mandate an extremely inefficient way of buffer handling for basic_stringbuf, especially in view of the restriction that basic_ostream --- 3876,3882 ----


        169. Bad efficiency of overflow() mandated

        ! Section: 27.7.1.3 [lib.stringbuf.virtuals]  Status: TC  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        Paragraph 8, Notes, of this section seems to mandate an extremely inefficient way of buffer handling for basic_stringbuf, especially in view of the restriction that basic_ostream *************** solution is to handle this in underf *** 3894,3900 ****


        170. Inconsistent definition of traits_type

        ! Section: 27.7.4 [lib.stringstream]  Status: DR  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The classes basic_stringstream (27.7.4 [lib.stringstream]), basic_istringstream (27.7.2 [lib.istringstream]), and basic_ostringstream (27.7.3 [lib.ostringstream]) are inconsistent --- 3898,3904 ----


        170. Inconsistent definition of traits_type

        ! Section: 27.7.4 [lib.stringstream]  Status: TC  Submitter: Dietmar Kühl  Date: 20 Jul 1999

        The classes basic_stringstream (27.7.4 [lib.stringstream]), basic_istringstream (27.7.2 [lib.istringstream]), and basic_ostringstream (27.7.3 [lib.ostringstream]) are inconsistent *************** paragraph 14 from:

        *** 3964,3970 ****

        172. Inconsistent types for basic_istream::ignore()

        ! Section: 27.6.1.3 [lib.istream.unformatted]  Status: DR  Submitter: Greg Comeau, Dietmar Kühl  Date: 23 Jul 1999

        In 27.6.1.1 [lib.istream] the function ignore() gets an object of type streamsize as first argument. However, in 27.6.1.3 [lib.istream.unformatted] --- 3968,3974 ----


        172. Inconsistent types for basic_istream::ignore()

        ! Section: 27.6.1.3 [lib.istream.unformatted]  Status: TC  Submitter: Greg Comeau, Dietmar Kühl  Date: 23 Jul 1999

        In 27.6.1.1 [lib.istream] the function ignore() gets an object of type streamsize as first argument. However, in 27.6.1.3 [lib.istream.unformatted] *************** of int in the description of

        173. Inconsistent types for basic_filebuf::setbuf()

        ! Section: 27.8.1.4 [lib.filebuf.virtuals]  Status: DR  Submitter: Greg Comeau, Dietmar Kühl  Date: 23 Jul 1999

        In 27.8.1.1 [lib.filebuf] the function setbuf() gets an --- 3993,3999 ----


        173. Inconsistent types for basic_filebuf::setbuf()

        ! Section: 27.8.1.4 [lib.filebuf.virtuals]  Status: TC  Submitter: Greg Comeau, Dietmar Kühl  Date: 23 Jul 1999

        In 27.8.1.1 [lib.filebuf] the function setbuf() gets an *************** as described in issue

        174. Typo: OFF_T vs. POS_T

        ! Section: D.6 [depr.ios.members]  Status: DR  Submitter: Dietmar Kühl  Date: 23 Jul 1999

        According to paragraph 1 of this section, streampos is the type OFF_T, the same type as streamoff. However, in paragraph 6 the streampos gets the type POS_T --- 4017,4023 ----


        174. Typo: OFF_T vs. POS_T

        ! Section: D.6 [depr.ios.members]  Status: TC  Submitter: Dietmar Kühl  Date: 23 Jul 1999

        According to paragraph 1 of this section, streampos is the type OFF_T, the same type as streamoff. However, in paragraph 6 the streampos gets the type POS_T *************** OFF_T streampos;" to ""


        175. Ambiguity for basic_streambuf::pubseekpos() and a few other functions.

        ! Section: D.6 [depr.ios.members]  Status: DR  Submitter: Dietmar Kühl  Date: 23 Jul 1999

        According to paragraph 8 of this section, the methods basic_streambuf::pubseekpos(), basic_ifstream::open(), and basic_ofstream::open --- 4028,4034 ---- streampos;"


        175. Ambiguity for basic_streambuf::pubseekpos() and a few other functions.

        ! Section: D.6 [depr.ios.members]  Status: TC  Submitter: Dietmar Kühl  Date: 23 Jul 1999

        According to paragraph 8 of this section, the methods basic_streambuf::pubseekpos(), basic_ifstream::open(), and basic_ofstream::open *************** argument is not specified.

        *** 4044,4050 ****


        176. exceptions() in ios_base...?

        ! Section: D.6 [depr.ios.members]  Status: DR  Submitter: Dietmar Kühl  Date: 23 Jul 1999

        The "overload" for the function exceptions() in paragraph 8 gives the impression that there is another function of this function defined in class ios_base. However, this is not --- 4048,4054 ----


        176. exceptions() in ios_base...?

        ! Section: D.6 [depr.ios.members]  Status: TC  Submitter: Dietmar Kühl  Date: 23 Jul 1999

        The "overload" for the function exceptions() in paragraph 8 gives the impression that there is another function of this function defined in class ios_base. However, this is not *************** in clause 27

        181. make_pair() unintended behavior

        ! Section: 20.2.2 [lib.pairs]  Status: DR  Submitter: Andrew Koenig  Date: 3 Aug 1999

        The claim has surfaced in Usenet that expressions such as

               make_pair("abc", 3)
        --- 4060,4066 ---- function exceptions()into class basic_ios.


        181. make_pair() unintended behavior

        ! Section: 20.2.2 [lib.pairs]  Status: TC  Submitter: Andrew Koenig  Date: 3 Aug 1999

        The claim has surfaced in Usenet that expressions such as

               make_pair("abc", 3)
        *************** the case that users cannot rely on the t *** 4549,4555 **** nonvirtual member of a standard library class.


        189. setprecision() not specified correctly

        ! Section: 27.4.2.2 [lib.fmtflags.state]  Status: DR  Submitter: Andrew Koenig  Date: 25 Aug 1999

        27.4.2.2 paragraph 9 claims that setprecision() sets the precision, and includes a parenthetical note saying that it is the number of digits after the decimal point.
        --- 4553,4559 ---- nonvirtual member of a standard library class.


        189. setprecision() not specified correctly

        ! Section: 27.4.2.2 [lib.fmtflags.state]  Status: TC  Submitter: Andrew Koenig  Date: 25 Aug 1999

        27.4.2.2 paragraph 9 claims that setprecision() sets the precision, and includes a parenthetical note saying that it is the number of digits after the decimal point.
        *************** correct the statement in 27.4.2.2

        *** 4566,4572 **** "(number of digits after the decimal point)".


        193. Heap operations description incorrect

        ! Section: 25.3.6 [lib.alg.heap.operations]  Status: DR  Submitter: Markus Mauhart  Date: 24 Sep 1999

        25.3.6 [lib.alg.heap.operations] states two key properties of a heap [a,b), the first of them is

        --- 4570,4576 ---- "(number of digits after the decimal point)".


        193. Heap operations description incorrect

        ! Section: 25.3.6 [lib.alg.heap.operations]  Status: TC  Submitter: Markus Mauhart  Date: 24 Sep 1999

        25.3.6 [lib.alg.heap.operations] states two key properties of a heap [a,b), the first of them is

        *************** resolution.

        *** 4593,4599 ****

        195. Should basic_istream::sentry's constructor ever set eofbit?

        ! Section: 27.6.1.1.2 [lib.istream::sentry]  Status: DR  Submitter: Matt Austern  Date: 13 Oct 1999

        Suppose that is.flags() & ios_base::skipws is nonzero. What should basic_istream<>::sentry's constructor do if it reaches eof while skipping whitespace? 27.6.1.1.2/5 suggests it --- 4597,4603 ----


        195. Should basic_istream::sentry's constructor ever set eofbit?

        ! Section: 27.6.1.1.2 [lib.istream::sentry]  Status: TC  Submitter: Matt Austern  Date: 13 Oct 1999

        Suppose that is.flags() & ios_base::skipws is nonzero. What should basic_istream<>::sentry's constructor do if it reaches eof while skipping whitespace? 27.6.1.1.2/5 suggests it *************** predefined iterators are as strong as us *** 4768,4774 ****


        199. What does allocate(0) return?

        ! Section: 20.1.5 [lib.allocator.requirements]  Status: DR  Submitter: Matt Austern  Date: 19 Nov 1999

        Suppose that A is a class that conforms to the Allocator requirements of Table 32, and a is an --- 4772,4778 ----


        199. What does allocate(0) return?

        ! Section: 20.1.5 [lib.allocator.requirements]  Status: TC  Submitter: Matt Austern  Date: 19 Nov 1999

        Suppose that A is a class that conforms to the Allocator requirements of Table 32, and a is an *************** would be over-specification to mandate t *** 4791,4797 ****


        208. Unnecessary restriction on past-the-end iterators

        ! Section: 24.1 [lib.iterator.requirements]  Status: DR  Submitter: Stephen Cleary  Date: 02 Feb 2000

        In 24.1 paragraph 5, it is stated ". . . Dereferenceable and past-the-end values are always non-singular."

        This places an unnecessary restriction on past-the-end iterators for --- 4795,4801 ----


        208. Unnecessary restriction on past-the-end iterators

        ! Section: 24.1 [lib.iterator.requirements]  Status: TC  Submitter: Stephen Cleary  Date: 02 Feb 2000

        In 24.1 paragraph 5, it is stated ". . . Dereferenceable and past-the-end values are always non-singular."

        This places an unnecessary restriction on past-the-end iterators for *************** iterators. Null pointers are singular. *** 4818,4824 ****


        209. basic_string declarations inconsistent

        ! Section: 21.3 [lib.basic.string]  Status: DR  Submitter: Igor Stauder  Date: 11 Feb 2000

        In Section 21.3 [lib.basic.string] the basic_string member function declarations use a consistent style except for the following functions:

        --- 4822,4828 ----


        209. basic_string declarations inconsistent

        ! Section: 21.3 [lib.basic.string]  Status: TC  Submitter: Igor Stauder  Date: 11 Feb 2000

        In Section 21.3 [lib.basic.string] the basic_string member function declarations use a consistent style except for the following functions:

        *************** change. *** 4848,4854 ****


        210. distance first and last confused

        ! Section: 25 [lib.algorithms]  Status: DR  Submitter: Lisa Lippincott  Date: 15 Feb 2000

        In paragraph 9 of section 25 [lib.algorithms], it is written:

        In the description of the algorithms operators + and - are used --- 4852,4858 ----


        210. distance first and last confused

        ! Section: 25 [lib.algorithms]  Status: TC  Submitter: Lisa Lippincott  Date: 15 Feb 2000

        In paragraph 9 of section 25 [lib.algorithms], it is written:

        In the description of the algorithms operators + and - are used *************** or change the return to distance(b,a). *** 4869,4875 **** former for consistency.


        211. operator>>(istream&, string&) doesn't set failbit

        ! Section: 21.3.7.9 [lib.string.io]  Status: DR  Submitter: Scott Snyder  Date: 4 Feb 2000

        The description of the stream extraction operator for std::string (section 21.3.7.9 [lib.string.io]) does not contain a requirement that failbit be set in the case that the operator fails to extract any characters from the input --- 4873,4879 ---- former for consistency.


        211. operator>>(istream&, string&) doesn't set failbit

        ! Section: 21.3.7.9 [lib.string.io]  Status: TC  Submitter: Scott Snyder  Date: 4 Feb 2000

        The description of the stream extraction operator for std::string (section 21.3.7.9 [lib.string.io]) does not contain a requirement that failbit be set in the case that the operator fails to extract any characters from the input *************** is.setstate(ios::failbit) which may thro *** 4897,4903 ****


        212. Empty range behavior unclear for several algorithms

        ! Section: 25.3.7 [lib.alg.min.max]  Status: DR  Submitter: Nico Josuttis  Date: 26 Feb 2000

        The standard doesn't specify what min_element() and max_element() shall return if the range is empty (first equals last). The usual implementations return last. This problem seems also apply to partition(), stable_partition(), --- 4901,4907 ----


        212. Empty range behavior unclear for several algorithms

        ! Section: 25.3.7 [lib.alg.min.max]  Status: TC  Submitter: Nico Josuttis  Date: 26 Feb 2000

        The standard doesn't specify what min_element() and max_element() shall return if the range is empty (first equals last). The usual implementations return last. This problem seems also apply to partition(), stable_partition(), *************** extending the proposed resolution to low *** 4940,4946 **** equal_range.]


        217. Facets example (Classifying Japanese characters) contains errors

        ! Section: 22.2.8 [lib.facets.examples]  Status: DR  Submitter: Martin Sebor  Date: 29 Feb 2000

        The example in 22.2.8, paragraph 11 contains the following errors:

        1) The member function `My::JCtype::is_kanji()' is non-const; the function must be const in order for it to be callable on a const object (a reference to --- 4944,4950 ---- equal_range.]


        217. Facets example (Classifying Japanese characters) contains errors

        ! Section: 22.2.8 [lib.facets.examples]  Status: TC  Submitter: Martin Sebor  Date: 29 Feb 2000

        The example in 22.2.8, paragraph 11 contains the following errors:

        1) The member function `My::JCtype::is_kanji()' is non-const; the function must be const in order for it to be callable on a const object (a reference to *************** declared above.

        *** 4984,4990 **** }

        220. ~ios_base() usage valid?

        ! Section: 27.4.2.7 [lib.ios.base.cons]  Status: DR  Submitter: Jonathan Schilling, Howard Hinnant  Date: 13 Mar 2000

        The pre-conditions for the ios_base destructor are described in 27.4.2.7 paragraph 2:

        --- 4988,4994 ---- }

        220. ~ios_base() usage valid?

        ! Section: 27.4.2.7 [lib.ios.base.cons]  Status: TC  Submitter: Jonathan Schilling, Howard Hinnant  Date: 13 Mar 2000

        The pre-conditions for the ios_base destructor are described in 27.4.2.7 paragraph 2:

        *************** of digits will not be recognized. This *** 5060,5066 **** deliberately, with full knowledge of that limitation.


        222. Are throw clauses necessary if a throw is already implied by the effects clause?

        ! Section: 17.3.1.3 [lib.structure.specifications]  Status: DR  Submitter: Judy Ward  Date: 17 Mar 2000

        Section 21.3.6.8 describes the basic_string::compare function this way:

        21.3.6.8 - basic_string::compare [lib.string::compare]
        --- 5064,5070 ----
          deliberately, with full knowledge of that limitation.


        222. Are throw clauses necessary if a throw is already implied by the effects clause?

        ! Section: 17.3.1.3 [lib.structure.specifications]  Status: TC  Submitter: Judy Ward  Date: 17 Mar 2000

        Section 21.3.6.8 describes the basic_string::compare function this way:

        21.3.6.8 - basic_string::compare [lib.string::compare]
        *************** non-normative. The proposed resolution f
        *** 5102,5108 ****
          footnote.


        223. reverse algorithm should use iter_swap rather than swap

        ! Section: 25.2.9 [lib.alg.reverse]  Status: DR  Submitter: Dave Abrahams  Date: 21 Mar 2000

        Shouldn't the effects say "applies iter_swap to all pairs..."?

        Proposed resolution:

        In 25.2.9 [lib.alg.reverse], replace:

        --- 5106,5112 ---- footnote.


        223. reverse algorithm should use iter_swap rather than swap

        ! Section: 25.2.9 [lib.alg.reverse]  Status: TC  Submitter: Dave Abrahams  Date: 21 Mar 2000

        Shouldn't the effects say "applies iter_swap to all pairs..."?

        Proposed resolution:

        In 25.2.9 [lib.alg.reverse], replace:

        *************** footnote.

        *** 5117,5123 ****

        224. clear() complexity for associative containers refers to undefined N

        ! Section: 23.1.2 [lib.associative.reqmts]  Status: DR  Submitter: Ed Brey  Date: 23 Mar 2000

        In the associative container requirements table in 23.1.2 paragraph 7, a.clear() has complexity "log(size()) + N". However, the meaning of N is not defined.

        --- 5121,5127 ----

        224. clear() complexity for associative containers refers to undefined N

        ! Section: 23.1.2 [lib.associative.reqmts]  Status: TC  Submitter: Ed Brey  Date: 23 Mar 2000

        In the associative container requirements table in 23.1.2 paragraph 7, a.clear() has complexity "log(size()) + N". However, the meaning of N is not defined.

        *************** log(N)). The text in the standard i *** 5132,5138 **** cut-and-paste from the range version of erase.


        227. std::swap() should require CopyConstructible or DefaultConstructible arguments

        ! Section: 25.2.2 [lib.alg.swap]  Status: DR  Submitter: Dave Abrahams  Date: 09 Apr 2000

        25.2.2 reads:

        --- 5136,5142 ---- cut-and-paste from the range version of erase.


        227. std::swap() should require CopyConstructible or DefaultConstructible arguments

        ! Section: 25.2.2 [lib.alg.swap]  Status: TC  Submitter: Dave Abrahams  Date: 09 Apr 2000

        25.2.2 reads:

        diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/ext/sgiexts.html gcc-3.2.2/libstdc++-v3/docs/html/ext/sgiexts.html *** gcc-3.2.1/libstdc++-v3/docs/html/ext/sgiexts.html Wed Sep 25 17:52:22 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/ext/sgiexts.html Thu Jan 23 23:35:19 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! *************** libstdc++-v3 *** 24,30 **** for a description). Not every chapter may have extensions, and the extensions may come and go. Also, this page is incomplete because the author is pressed for time. Check back often; the latest change was on ! $Date: 2002/09/25 17:52:22 $ (UTC).

        Descriptions range from the scanty to the verbose. You should also check --- 29,35 ---- for a description). Not every chapter may have extensions, and the extensions may come and go. Also, this page is incomplete because the author is pressed for time. Check back often; the latest change was on ! $Date: 2003/01/23 23:35:19 $ (UTC).

        Descriptions range from the scanty to the verbose. You should also check diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/faq/index.html gcc-3.2.2/libstdc++-v3/docs/html/faq/index.html *** gcc-3.2.1/libstdc++-v3/docs/html/faq/index.html Wed Sep 25 17:52:22 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/faq/index.html Thu Jan 23 23:35:19 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! *************** *** 65,71 ****

      • _XOPEN_SOURCE / _GNU_SOURCE / etc is always defined
      • !
      • OS X ctype.h is broken! How can I hack it?
      • --- 70,77 ----
      • _XOPEN_SOURCE / _GNU_SOURCE / etc is always defined
      • !
      • OS X ctype.h is broken! How can I hack it?
      • !
      • Threading is broken on i386
      • *************** *** 119,130 **** ongoing project to implement the ISO 14882 Standard C++ library as described in chapters 17 through 27 and annex D. As the library reaches stable plateaus, it is captured in a snapshot ! and released. The current release is the ! fourteenth snapshot. For those who want to see exactly how far the project has come, or just want the latest bleeding-edge code, the up-to-date source is available over ! anonymous CVS, and can even be browsed over the Web (see below).

        The older libstdc++-v2 project is no longer maintained; the code has been completely replaced and rewritten. --- 125,138 ---- ongoing project to implement the ISO 14882 Standard C++ library as described in chapters 17 through 27 and annex D. As the library reaches stable plateaus, it is captured in a snapshot ! and released. The latest release is the ! fourteenth snapshot but newer versions have been included ! in recent GCC releases. For those who want to see exactly how far the project has come, or just want the latest bleeding-edge code, the up-to-date source is available over ! anonymous CVS, and can even be browsed over the Web (see ! 1.4 below).

        The older libstdc++-v2 project is no longer maintained; the code has been completely replaced and rewritten. *************** which is no longer available, thanks dej *** 491,496 **** --- 499,516 ----


        +

        Threading is broken on i386

        +

        Support for atomic integer operations is/was broken on i386 + platforms. The assembly code accidentally used opcodes that are + only available on the i486 and later. So if you configured GCC + to target, for example, i386-linux, but actually used the programs + on an i686, then you would encounter no problems. Only when + actually running the code on a i386 will the problem appear. +

        +

        This is fixed in 3.2.2. +

        + +

        4.0 Known Bugs and Non-Bugs

        Note that this section can get rapdily outdated -- such is the nature of an open-source project. For the latest information, join *************** http://clisp.cons.org/~haible/gccinclude *** 857,862 **** --- 877,910 ---- that of other headers whose directories are not searched directly, e.g., <sys/stat.h>, <X11/Xlib.h>.

        + +

        The extensions are no longer in the global or std + namespaces, instead they are declared in the __gnu_cxx + namespace. For maximum portability, consider defining a namespace + alias to use to talk about extensions, e.g.: +

        +
        +       #ifdef __GNUC__
        +       #if __GNUC__ < 3
        +         #include <hash_map.h>
        +         namespace Sgi { using ::hash_map; }; // inherit globals
        +       #else
        +         #include <ext/hash_map>
        +         #if __GNUC_MINOR__ == 0
        +           namespace Sgi = std;               // GCC 3.0
        +         #else
        +           namespace Sgi = ::__gnu_cxx;       // GCC 3.1 and later
        +         #endif
        +       #endif
        +       #else      // ...  there are other compilers, right?
        +         namespace Sgi = std;
        +       #endif
        + 
        +       Sgi::hash_map<int,int> my_map; 
        +

        This is a bit cleaner than defining typedefs for all the + instantiations you might need. +

        +

        Extensions to the library have their own page.

        diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/faq/index.txt gcc-3.2.2/libstdc++-v3/docs/html/faq/index.txt *** gcc-3.2.1/libstdc++-v3/docs/html/faq/index.txt Wed Sep 25 17:52:22 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/faq/index.txt Thu Jan 23 23:35:19 2003 *************** *** 34,64 **** 4. [24]I can't use 'long long' on Solaris 5. [25]_XOPEN_SOURCE / _GNU_SOURCE / etc is always defined 6. [26]OS X ctype.h is broken! How can I hack it? ! 4. [27]Known Bugs and Non-Bugs ! 1. [28]What works already? ! 2. [29]Bugs in gcc/g++ (not libstdc++-v3) ! 3. [30]Bugs in the C++ language/lib specification ! 4. [31]Things in libstdc++ that only look like bugs ! o [32]reopening a stream fails ! o [33]-Weffc++ complains too much ! o [34]"ambiguous overloads" after including an old-style header ! o [35]The g++-3 headers are not ours ! o [36]compilation errors from streambuf.h ! o [37]errors about *Concept and constraints in the STL... ! o [38]program crashes when using library code in a dynamically-loaded library ! 5. [39]Aw, that's easy to fix! ! 5. [40]Miscellaneous ! 1. [41]string::iterator is not char*; vector::iterator is not T* ! 2. [42]What's next after libstdc++-v3? ! 3. [43]What about the STL from SGI? ! 4. [44]Extensions and Backward Compatibility ! 5. [45][removed] ! 6. [46]Is libstdc++-v3 thread-safe? ! 7. [47]How do I get a copy of the ISO C++ Standard? ! 8. [48]What's an ABI and why is it so messy? _________________________________________________________________ 1.0 General Information --- 34,65 ---- 4. [24]I can't use 'long long' on Solaris 5. [25]_XOPEN_SOURCE / _GNU_SOURCE / etc is always defined 6. [26]OS X ctype.h is broken! How can I hack it? ! 7. [27]Threading is broken on i386 ! 4. [28]Known Bugs and Non-Bugs ! 1. [29]What works already? ! 2. [30]Bugs in gcc/g++ (not libstdc++-v3) ! 3. [31]Bugs in the C++ language/lib specification ! 4. [32]Things in libstdc++ that only look like bugs ! o [33]reopening a stream fails ! o [34]-Weffc++ complains too much ! o [35]"ambiguous overloads" after including an old-style header ! o [36]The g++-3 headers are not ours ! o [37]compilation errors from streambuf.h ! o [38]errors about *Concept and constraints in the STL... ! o [39]program crashes when using library code in a dynamically-loaded library ! 5. [40]Aw, that's easy to fix! ! 5. [41]Miscellaneous ! 1. [42]string::iterator is not char*; vector::iterator is not T* ! 2. [43]What's next after libstdc++-v3? ! 3. [44]What about the STL from SGI? ! 4. [45]Extensions and Backward Compatibility ! 5. [46][removed] ! 6. [47]Is libstdc++-v3 thread-safe? ! 7. [48]How do I get a copy of the ISO C++ Standard? ! 8. [49]What's an ABI and why is it so messy? _________________________________________________________________ 1.0 General Information *************** *** 68,85 **** The GNU Standard C++ Library v3 is an ongoing project to implement the ISO 14882 Standard C++ library as described in chapters 17 through 27 and annex D. As the library reaches stable plateaus, it is captured in ! a snapshot and released. The current release is [49]the fourteenth ! snapshot. For those who want to see exactly how far the project has ! come, or just want the latest bleeding-edge code, the up-to-date ! source is available over anonymous CVS, and can even be browsed over ! the Web (see below). The older libstdc++-v2 project is no longer maintained; the code has ! been completely replaced and rewritten. [50]If you are using V2, then you need to report bugs to your system vendor, not to the V3 list. A more formal description of the V3 goals can be found in the official ! [51]design document. _________________________________________________________________ 1.2 Why should I use libstdc++? --- 69,87 ---- The GNU Standard C++ Library v3 is an ongoing project to implement the ISO 14882 Standard C++ library as described in chapters 17 through 27 and annex D. As the library reaches stable plateaus, it is captured in ! a snapshot and released. The latest release is [50]the fourteenth ! snapshot but newer versions have been included in recent GCC releases. ! For those who want to see exactly how far the project has come, or ! just want the latest bleeding-edge code, the up-to-date source is ! available over anonymous CVS, and can even be browsed over the Web ! (see [51]1.4 below). The older libstdc++-v2 project is no longer maintained; the code has ! been completely replaced and rewritten. [52]If you are using V2, then you need to report bugs to your system vendor, not to the V3 list. A more formal description of the V3 goals can be found in the official ! [53]design document. _________________________________________________________________ 1.2 Why should I use libstdc++? *************** *** 92,99 **** The GNU C/C++/FORTRAN/ compiler (gcc, g++, etc) is widely considered to be one of the leading compilers in the world. Its ! development has recently been taken over by the [52]GCC team. All of ! the rapid development and near-legendary [53]portability that are the hallmarks of an open-source project are being applied to libstdc++. That means that all of the Standard classes and functions (such as --- 94,101 ---- The GNU C/C++/FORTRAN/ compiler (gcc, g++, etc) is widely considered to be one of the leading compilers in the world. Its ! development has recently been taken over by the [54]GCC team. All of ! the rapid development and near-legendary [55]portability that are the hallmarks of an open-source project are being applied to libstdc++. That means that all of the Standard classes and functions (such as *************** *** 111,126 **** Development and discussion is held on the libstdc++ mailing list. Subscribing to the list, or searching the list archives, is open to ! everyone. You can read instructions for doing so on the [54]homepage. If you have questions, ideas, code, or are just curious, sign up! _________________________________________________________________ 1.4 How do I get libstdc++? ! The fourteenth (and latest) snapshot of libstdc++-v3 is [55]available via ftp. ! The [56]homepage has instructions for retrieving the latest CVS sources, and for browsing the CVS sources over the web. The subset commonly known as the Standard Template Library (chapters --- 113,128 ---- Development and discussion is held on the libstdc++ mailing list. Subscribing to the list, or searching the list archives, is open to ! everyone. You can read instructions for doing so on the [56]homepage. If you have questions, ideas, code, or are just curious, sign up! _________________________________________________________________ 1.4 How do I get libstdc++? ! The fourteenth (and latest) snapshot of libstdc++-v3 is [57]available via ftp. ! The [58]homepage has instructions for retrieving the latest CVS sources, and for browsing the CVS sources over the web. The subset commonly known as the Standard Template Library (chapters *************** *** 136,142 **** 1.6 How do I contribute to the effort? ! Here is [57]a page devoted to this topic. Subscribing to the mailing list (see above, or the homepage) is a very good idea if you have something to contribute, or if you have spare time and want to help. Contributions don't have to be in the form of source code; anybody who --- 138,144 ---- 1.6 How do I contribute to the effort? ! Here is [59]a page devoted to this topic. Subscribing to the mailing list (see above, or the homepage) is a very good idea if you have something to contribute, or if you have spare time and want to help. Contributions don't have to be in the form of source code; anybody who *************** *** 171,181 **** extracted into an updated utilities library, but nobody has stated such a project yet. ! (The [58]Boost site houses free C++ libraries that do varying things, and happened to be started by members of the Standards Committee. Certain "useful stuff" classes will probably migrate there.) ! For the bold and/or desperate, the [59]GCC FAQ describes where to find the last libg++ source. _________________________________________________________________ --- 173,183 ---- extracted into an updated utilities library, but nobody has stated such a project yet. ! (The [60]Boost site houses free C++ libraries that do varying things, and happened to be started by members of the Standards Committee. Certain "useful stuff" classes will probably migrate there.) ! For the bold and/or desperate, the [61]GCC FAQ describes where to find the last libg++ source. _________________________________________________________________ *************** *** 185,200 **** remains unanswered, then just ask the mailing list. At present, you do not need to be subscribed to the list to send a message to it. More information is available on the homepage (including how to browse the ! list archives); to send to the list, use [60]libstdc++@gcc.gnu.org. If you have a question that you think should be included here, or if ! you have a question about a question/answer here, contact [61]Phil ! Edwards or [62]Gabriel Dos Reis. _________________________________________________________________ 1.9 What are the license terms for libstdc++-v3? ! See [63]our license description for these and related questions. _________________________________________________________________ 2.0 Installation --- 187,202 ---- remains unanswered, then just ask the mailing list. At present, you do not need to be subscribed to the list to send a message to it. More information is available on the homepage (including how to browse the ! list archives); to send to the list, use [62]libstdc++@gcc.gnu.org. If you have a question that you think should be included here, or if ! you have a question about a question/answer here, contact [63]Phil ! Edwards or [64]Gabriel Dos Reis. _________________________________________________________________ 1.9 What are the license terms for libstdc++-v3? ! See [65]our license description for these and related questions. _________________________________________________________________ 2.0 Installation *************** *** 211,223 **** * The GNU Autotools are needed if you are messing with the configury or makefiles. ! The file [64]documentation.html provides a good overview of the steps necessary to build, install, and use the library. Instructions for configuring the library with new flags such as --enable-threads are there also, as well as patches and instructions for working with GCC 2.95. ! The top-level install.html and [65]RELEASE-NOTES files contain the exact build and installation instructions. You may wish to browse those files over CVSweb ahead of time to get a feel for what's required. RELEASE-NOTES is located in the ".../docs/17_intro/" --- 213,225 ---- * The GNU Autotools are needed if you are messing with the configury or makefiles. ! The file [66]documentation.html provides a good overview of the steps necessary to build, install, and use the library. Instructions for configuring the library with new flags such as --enable-threads are there also, as well as patches and instructions for working with GCC 2.95. ! The top-level install.html and [67]RELEASE-NOTES files contain the exact build and installation instructions. You may wish to browse those files over CVSweb ahead of time to get a feel for what's required. RELEASE-NOTES is located in the ".../docs/17_intro/" *************** *** 234,241 **** The Concurrent Versions System is one of several revision control packages. It was selected for GNU projects because it's free (speech), ! free (beer), and very high quality. The [66]CVS entry in the GNU ! software catalogue has a better description as well as a [67]link to the makers of CVS. The "anonymous client checkout" feature of CVS is similar to anonymous --- 236,243 ---- The Concurrent Versions System is one of several revision control packages. It was selected for GNU projects because it's free (speech), ! free (beer), and very high quality. The [68]CVS entry in the GNU ! software catalogue has a better description as well as a [69]link to the makers of CVS. The "anonymous client checkout" feature of CVS is similar to anonymous *************** *** 286,292 **** people don't like it, so here are two pseudo-solutions: If the only functions from libstdc++.a which you need are language ! support functions (those listed in [68]clause 18 of the standard, e.g., new and delete), then try linking against libsupc++.a (usually specifying -lsupc++ when calling g++ for the final link step will do it). This library contains only those support routines, one per object --- 288,294 ---- people don't like it, so here are two pseudo-solutions: If the only functions from libstdc++.a which you need are language ! support functions (those listed in [70]clause 18 of the standard, e.g., new and delete), then try linking against libsupc++.a (usually specifying -lsupc++ when calling g++ for the final link step will do it). This library contains only those support routines, one per object *************** *** 381,387 **** - < /dev/null" to display a list of predefined macros for any particular installation. ! This has been discussed on the mailing lists [69]quite a bit. This method is something of a wart. We'd like to find a cleaner solution, but nobody yet has contributed the time. --- 383,389 ---- - < /dev/null" to display a list of predefined macros for any particular installation. ! This has been discussed on the mailing lists [71]quite a bit. This method is something of a wart. We'd like to find a cleaner solution, but nobody yet has contributed the time. *************** *** 390,399 **** 3.6 OS X ctype.h is broken! How can I hack it? This is a long-standing bug in the OS X support. Fortunately, the ! patch is quite simple, and well-known. [70]Here's a link to the solution. _________________________________________________________________ 4.0 Known Bugs and Non-Bugs Note that this section can get rapdily outdated -- such is the nature --- 392,413 ---- 3.6 OS X ctype.h is broken! How can I hack it? This is a long-standing bug in the OS X support. Fortunately, the ! patch is quite simple, and well-known. [72]Here's a link to the solution. _________________________________________________________________ + Threading is broken on i386 + + Support for atomic integer operations is/was broken on i386 platforms. + The assembly code accidentally used opcodes that are only available on + the i486 and later. So if you configured GCC to target, for example, + i386-linux, but actually used the programs on an i686, then you would + encounter no problems. Only when actually running the code on a i386 + will the problem appear. + + This is fixed in 3.2.2. + _________________________________________________________________ + 4.0 Known Bugs and Non-Bugs Note that this section can get rapdily outdated -- such is the nature *************** *** 403,409 **** For 3.0.1, the most common "bug" is an apparently missing "../" in include/Makefile, resulting in files like gthr.h and gthr-single.h not ! being found. Please read [71]the configuration instructions for GCC, specifically the part about configuring in a separate build directory, and how strongly recommended it is. Building in the source directory is fragile, is rarely tested, and tends to break, as in this case. --- 417,423 ---- For 3.0.1, the most common "bug" is an apparently missing "../" in include/Makefile, resulting in files like gthr.h and gthr-single.h not ! being found. Please read [73]the configuration instructions for GCC, specifically the part about configuring in a separate build directory, and how strongly recommended it is. Building in the source directory is fragile, is rarely tested, and tends to break, as in this case. *************** *** 411,417 **** For 3.1, the most common "bug" is a parse error when using , ending with a message, "bits/basic_file.h:52: parse error before `{' ! token." Please read [72]the installation instructions for GCC, specifically the part about not installing newer versions on top of older versions. If you install 3.1 over a 3.0.x release, then the wrong basic_file.h header will be found (its location changed between --- 425,431 ---- For 3.1, the most common "bug" is a parse error when using , ending with a message, "bits/basic_file.h:52: parse error before `{' ! token." Please read [74]the installation instructions for GCC, specifically the part about not installing newer versions on top of older versions. If you install 3.1 over a 3.0.x release, then the wrong basic_file.h header will be found (its location changed between *************** New: *** 480,509 **** libstdc++. If you are experiencing one of these problems, you can find more information on the libstdc++ and the GCC mailing lists. ! Before reporting a bug, examine the [73]bugs database with the category set to "libstdc++". The BUGS file in the source tree also tracks known serious problems. * Debugging is problematic, due to bugs in line-number generation (mostly fixed in the compiler) and gdb lagging behind the compiler (lack of personnel). We recommend configuring the compiler using --with-dwarf2 if the DWARF2 debugging format is not already the ! default on your platform. Also, [74]changing your GDB settings can have a profound effect on your C++ debugging experiences. :-) _________________________________________________________________ 4.3 Bugs in the C++ language/lib specification ! Yes, unfortunately, there are some. In a [75]message to the list, Nathan Myers announced that he has started a list of problems in the ISO C++ Standard itself, especially with regard to the chapters that ! concern the library. The list itself is [76]posted on his website. Developers who are having problems interpreting the Standard may wish to consult his notes. For those people who are not part of the ISO Library Group (i.e., nearly all of us needing to read this page in the first place :-), a ! public list of the library defects is occasionally published [77]here. ! Some of these have resulted in [78]code changes. _________________________________________________________________ 4.4 Things in libstdc++ that only look like bugs --- 494,523 ---- libstdc++. If you are experiencing one of these problems, you can find more information on the libstdc++ and the GCC mailing lists. ! Before reporting a bug, examine the [75]bugs database with the category set to "libstdc++". The BUGS file in the source tree also tracks known serious problems. * Debugging is problematic, due to bugs in line-number generation (mostly fixed in the compiler) and gdb lagging behind the compiler (lack of personnel). We recommend configuring the compiler using --with-dwarf2 if the DWARF2 debugging format is not already the ! default on your platform. Also, [76]changing your GDB settings can have a profound effect on your C++ debugging experiences. :-) _________________________________________________________________ 4.3 Bugs in the C++ language/lib specification ! Yes, unfortunately, there are some. In a [77]message to the list, Nathan Myers announced that he has started a list of problems in the ISO C++ Standard itself, especially with regard to the chapters that ! concern the library. The list itself is [78]posted on his website. Developers who are having problems interpreting the Standard may wish to consult his notes. For those people who are not part of the ISO Library Group (i.e., nearly all of us needing to read this page in the first place :-), a ! public list of the library defects is occasionally published [79]here. ! Some of these have resulted in [80]code changes. _________________________________________________________________ 4.4 Things in libstdc++ that only look like bugs *************** New: *** 535,541 **** state on the previous file. The reason is that the state flags are not cleared on a successful call to open(). The standard unfortunately did not specify behavior in this case, and to everybody's great sorrow, ! the [79]proposed LWG resolution (see DR #22) is to leave the flags unchanged. You must insert a call to fs.clear() between the calls to close() and open(), and then everything will work like we all expect it to work. --- 549,555 ---- state on the previous file. The reason is that the state flags are not cleared on a successful call to open(). The standard unfortunately did not specify behavior in this case, and to everybody's great sorrow, ! the [81]proposed LWG resolution (see DR #22) is to leave the flags unchanged. You must insert a call to fs.clear() between the calls to close() and open(), and then everything will work like we all expect it to work. *************** New: *** 545,551 **** same namespace as other comparison functions (e.g., 'using' them and the header), then you will suddenly be faced with huge numbers of ambiguity errors. This was discussed on the -v3 list; ! Nathan Myers [80]sums things up here. The collisions with vector/string iterator types have been fixed for 3.1. The g++-3 headers are not ours --- 559,565 ---- same namespace as other comparison functions (e.g., 'using' them and the header), then you will suddenly be faced with huge numbers of ambiguity errors. This was discussed on the -v3 list; ! Nathan Myers [82]sums things up here. The collisions with vector/string iterator types have been fixed for 3.1. The g++-3 headers are not ours *************** New: *** 553,559 **** If you have found an extremely broken header file which is causing problems for you, look carefully before submitting a "high" priority bug report (which you probably shouldn't do anyhow; see the last ! paragraph of the page describing [81]the GCC bug database). If the headers are in ${prefix}/include/g++-3, or if the installed library's name looks like libstdc++-2.10.a or libstdc++-libc6-2.10.so, --- 567,573 ---- If you have found an extremely broken header file which is causing problems for you, look carefully before submitting a "high" priority bug report (which you probably shouldn't do anyhow; see the last ! paragraph of the page describing [83]the GCC bug database). If the headers are in ${prefix}/include/g++-3, or if the installed library's name looks like libstdc++-2.10.a or libstdc++-libc6-2.10.so, *************** New: *** 563,569 **** Currently our header files are installed in ${prefix}/include/g++-v3 (see the 'v'?). This may change with the next release of GCC, as it ! may be too confusing, but [82]the question has not yet been decided. glibc If you're on a GNU/Linux system and have just upgraded to glibc 2.2, but are still using gcc 2.95.2, then you should have read the --- 577,583 ---- Currently our header files are installed in ${prefix}/include/g++-v3 (see the 'v'?). This may change with the next release of GCC, as it ! may be too confusing, but [84]the question has not yet been decided. glibc If you're on a GNU/Linux system and have just upgraded to glibc 2.2, but are still using gcc 2.95.2, then you should have read the *************** type has changed in glibc 2.2. The patc *** 576,582 **** http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff ! Note that 2.95.x shipped with the [83]old v2 library which is no longer maintained. Also note that gcc 2.95.3 fixes this problem, but requires a separate patch for libstdc++-v3. --- 590,596 ---- http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff ! Note that 2.95.x shipped with the [85]old v2 library which is no longer maintained. Also note that gcc 2.95.3 fixes this problem, but requires a separate patch for libstdc++-v3. *************** http://clisp.cons.org/~haible/gccinclude *** 589,595 **** visibility, or you just plain forgot, etc). More information, including how to optionally enable/disable the ! checks, is available [84]here. dlopen/dlsym If you are using the C++ library across dynamically-loaded objects, make certain that you are passing the --- 603,609 ---- visibility, or you just plain forgot, etc). More information, including how to optionally enable/disable the ! checks, is available [86]here. dlopen/dlsym If you are using the C++ library across dynamically-loaded objects, make certain that you are passing the *************** http://clisp.cons.org/~haible/gccinclude *** 611,626 **** If you have found a bug in the library and you think you have a working fix, then send it in! The main GCC site has a page on ! [85]submitting patches that covers the procedure, but for libstdc++ you should also send the patch to our mailing list in addition to the ! GCC patches mailing list. The libstdc++ [86]contributors' page also talks about how to submit patches. In addition to the description, the patch, and the ChangeLog entry, it is a Good Thing if you can additionally create a small test program to test for the presence of the bug that your patch fixes. Bugs have a way of being reintroduced; if an old bug creeps back in, it will be ! caught immediately by the [87]testsuite -- but only if such a test exists. _________________________________________________________________ --- 625,640 ---- If you have found a bug in the library and you think you have a working fix, then send it in! The main GCC site has a page on ! [87]submitting patches that covers the procedure, but for libstdc++ you should also send the patch to our mailing list in addition to the ! GCC patches mailing list. The libstdc++ [88]contributors' page also talks about how to submit patches. In addition to the description, the patch, and the ChangeLog entry, it is a Good Thing if you can additionally create a small test program to test for the presence of the bug that your patch fixes. Bugs have a way of being reintroduced; if an old bug creeps back in, it will be ! caught immediately by the [89]testsuite -- but only if such a test exists. _________________________________________________________________ *************** http://clisp.cons.org/~haible/gccinclude *** 654,660 **** libstdc++. Some of that is already happening, see 4.2. Some of those changes are being predicted by the library maintainers, and we add code to the library based on what the current proposed ! resolution specifies. Those additions are listed in [88]the extensions page. 2. Performance tuning. Lots of performance tuning. This too is already underway for post-3.0 releases, starting with memory --- 668,674 ---- libstdc++. Some of that is already happening, see 4.2. Some of those changes are being predicted by the library maintainers, and we add code to the library based on what the current proposed ! resolution specifies. Those additions are listed in [90]the extensions page. 2. Performance tuning. Lots of performance tuning. This too is already underway for post-3.0 releases, starting with memory *************** http://clisp.cons.org/~haible/gccinclude *** 670,682 **** type from C99.) Bugfixes and rewrites (to improve or fix thread safety, for instance) will of course be a continuing task. ! [89]This question about the next libstdc++ prompted some brief but ! interesting [90]speculation. _________________________________________________________________ 5.3 What about the STL from SGI? ! The [91]STL from SGI, version 3.3, was the most recent merge of the STL codebase. The code in libstdc++ contains many fixes and changes, and it is very likely that the SGI code is no longer under active development. We expect that no future merges will take place. --- 684,696 ---- type from C99.) Bugfixes and rewrites (to improve or fix thread safety, for instance) will of course be a continuing task. ! [91]This question about the next libstdc++ prompted some brief but ! interesting [92]speculation. _________________________________________________________________ 5.3 What about the STL from SGI? ! The [93]STL from SGI, version 3.3, was the most recent merge of the STL codebase. The code in libstdc++ contains many fixes and changes, and it is very likely that the SGI code is no longer under active development. We expect that no future merges will take place. *************** http://clisp.cons.org/~haible/gccinclude *** 700,706 **** headers whose directories are not searched directly, e.g., , . ! Extensions to the library have [92]their own page. _________________________________________________________________ 5.5 [removed] --- 714,720 ---- headers whose directories are not searched directly, e.g., , . ! Extensions to the library have [94]their own page. _________________________________________________________________ 5.5 [removed] *************** a *** 749,756 **** otherwise documented as safe, do not assume that two threads may access a shared standard library object at the same time. ! See chapters [93]17 (library introduction), [94]23 (containers), and ! [95]27 (I/O) for more information. _________________________________________________________________ 5.7 How do I get a copy of the ISO C++ Standard? --- 763,770 ---- otherwise documented as safe, do not assume that two threads may access a shared standard library object at the same time. ! See chapters [95]17 (library introduction), [96]23 (containers), and ! [97]27 (I/O) for more information. _________________________________________________________________ 5.7 How do I get a copy of the ISO C++ Standard? *************** a *** 761,772 **** their two-meeting commitment for voting rights, may get a copy of the standard from their respective national standards organization. In the USA, this national standards organization is ANSI and their website is ! right [96]here. (And if you've already registered with them, clicking ! this link will take you to directly to the place where you can [97]buy the standard on-line. ! Who is your country's member body? Visit the [98]ISO homepage and find ! out! _________________________________________________________________ 5.8 What's an ABI and why is it so messy? --- 775,786 ---- their two-meeting commitment for voting rights, may get a copy of the standard from their respective national standards organization. In the USA, this national standards organization is ANSI and their website is ! right [98]here. (And if you've already registered with them, clicking ! this link will take you to directly to the place where you can [99]buy the standard on-line. ! Who is your country's member body? Visit the [100]ISO homepage and ! find out! _________________________________________________________________ 5.8 What's an ABI and why is it so messy? *************** a *** 816,823 **** encompasses the standard library. _________________________________________________________________ ! See [99]license.html for copying conditions. Comments and suggestions ! are welcome, and may be sent to [100]the libstdc++ mailing list. References --- 830,837 ---- encompasses the standard library. _________________________________________________________________ ! See [101]license.html for copying conditions. Comments and suggestions ! are welcome, and may be sent to [102]the libstdc++ mailing list. References *************** References *** 847,923 **** 24. ../faq/index.html#3_4 25. ../faq/index.html#3_5 26. ../faq/index.html#3_6 ! 27. ../faq/index.html#4_0 ! 28. ../faq/index.html#4_1 ! 29. ../faq/index.html#4_2 ! 30. ../faq/index.html#4_3 ! 31. ../faq/index.html#4_4 ! 32. ../faq/index.html#4_4_iostreamclear ! 33. ../faq/index.html#4_4_Weff ! 34. ../faq/index.html#4_4_rel_ops ! 35. ../faq/index.html#4_4_interface ! 36. ../faq/index.html#4_4_glibc ! 37. ../faq/index.html#4_4_checks ! 38. ../faq/index.html#4_4_dlsym ! 39. ../faq/index.html#4_5 ! 40. ../faq/index.html#5_0 ! 41. ../faq/index.html#5_1 ! 42. ../faq/index.html#5_2 ! 43. ../faq/index.html#5_3 ! 44. ../faq/index.html#5_4 ! 45. ../faq/index.html#5_5 ! 46. ../faq/index.html#5_6 ! 47. ../faq/index.html#5_7 ! 48. ../faq/index.html#5_8 ! 49. http://gcc.gnu.org/libstdc++/index.html#download ! 50. ../faq/index.html#4_4_interface ! 51. ../17_intro/DESIGN ! 52. http://gcc.gnu.org/ ! 53. http://gcc.gnu.org/gcc-3.0/buildstat.html ! 54. http://gcc.gnu.org/libstdc++/ ! 55. http://gcc.gnu.org/libstdc++/index.html#download 56. http://gcc.gnu.org/libstdc++/ ! 57. ../17_intro/contribute.html ! 58. http://www.boost.org/ ! 59. http://gcc.gnu.org/fom_serv/cache/33.html ! 60. mailto:libstdc++@gcc.gnu.org ! 61. mailto:pme@gcc.gnu.org ! 62. mailto:gdr@gcc.gnu.org ! 63. ../17_intro/license.html ! 64. ../documentation.html ! 65. ../17_intro/RELEASE-NOTES ! 66. http://www.gnu.org/software/cvs/cvs.html ! 67. http://www.cvshome.org/ ! 68. ../18_support/howto.html ! 69. http://gcc.gnu.org/cgi-bin/htsearch?method=and&format=builtin-long&sort=score&words=_XOPEN_SOURCE+Solaris ! 70. http://gcc.gnu.org/ml/gcc/2002-03/msg00817.html ! 71. http://gcc.gnu.org/install/configure.html ! 72. http://gcc.gnu.org/install/ ! 73. http://gcc.gnu.org/bugs.html ! 74. http://gcc.gnu.org/ml/libstdc++/2002-02/msg00034.html ! 75. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html ! 76. http://www.cantrip.org/draft-bugs.txt ! 77. http://anubis.dkuug.dk/jtc1/sc22/wg21/ ! 78. ../faq/index.html#5_2 ! 79. ../ext/howto.html#5 ! 80. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html ! 81. http://gcc.gnu.org/gnatswrite.html ! 82. http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html ! 83. ../faq/index.html#4_4_interface ! 84. ../19_diagnostics/howto.html#3 ! 85. http://gcc.gnu.org/contribute.html ! 86. ../17_intro/contribute.html ! 87. ../faq/index.html#2_4 ! 88. ../ext/howto.html#5 ! 89. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html ! 90. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html ! 91. http://www.sgi.com/Technology/STL/ ! 92. ../ext/howto.html ! 93. ../17_intro/howto.html#3 ! 94. ../23_containers/howto.html#3 ! 95. ../27_io/howto.html#9 ! 96. http://www.ansi.org/ ! 97. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998 ! 98. http://www.iso.ch/ ! 99. ../17_intro/license.html ! 100. mailto:libstdc++@gcc.gnu.org --- 861,939 ---- 24. ../faq/index.html#3_4 25. ../faq/index.html#3_5 26. ../faq/index.html#3_6 ! 27. ../faq/index.html#3_7 ! 28. ../faq/index.html#4_0 ! 29. ../faq/index.html#4_1 ! 30. ../faq/index.html#4_2 ! 31. ../faq/index.html#4_3 ! 32. ../faq/index.html#4_4 ! 33. ../faq/index.html#4_4_iostreamclear ! 34. ../faq/index.html#4_4_Weff ! 35. ../faq/index.html#4_4_rel_ops ! 36. ../faq/index.html#4_4_interface ! 37. ../faq/index.html#4_4_glibc ! 38. ../faq/index.html#4_4_checks ! 39. ../faq/index.html#4_4_dlsym ! 40. ../faq/index.html#4_5 ! 41. ../faq/index.html#5_0 ! 42. ../faq/index.html#5_1 ! 43. ../faq/index.html#5_2 ! 44. ../faq/index.html#5_3 ! 45. ../faq/index.html#5_4 ! 46. ../faq/index.html#5_5 ! 47. ../faq/index.html#5_6 ! 48. ../faq/index.html#5_7 ! 49. ../faq/index.html#5_8 ! 50. http://gcc.gnu.org/libstdc++/index.html#download ! 51. ../faq/index.html#1_4 ! 52. ../faq/index.html#4_4_interface ! 53. ../17_intro/DESIGN ! 54. http://gcc.gnu.org/ ! 55. http://gcc.gnu.org/gcc-3.0/buildstat.html 56. http://gcc.gnu.org/libstdc++/ ! 57. http://gcc.gnu.org/libstdc++/index.html#download ! 58. http://gcc.gnu.org/libstdc++/ ! 59. ../17_intro/contribute.html ! 60. http://www.boost.org/ ! 61. http://gcc.gnu.org/fom_serv/cache/33.html ! 62. mailto:libstdc++@gcc.gnu.org ! 63. mailto:pme@gcc.gnu.org ! 64. mailto:gdr@gcc.gnu.org ! 65. ../17_intro/license.html ! 66. ../documentation.html ! 67. ../17_intro/RELEASE-NOTES ! 68. http://www.gnu.org/software/cvs/cvs.html ! 69. http://www.cvshome.org/ ! 70. ../18_support/howto.html ! 71. http://gcc.gnu.org/cgi-bin/htsearch?method=and&format=builtin-long&sort=score&words=_XOPEN_SOURCE+Solaris ! 72. http://gcc.gnu.org/ml/gcc/2002-03/msg00817.html ! 73. http://gcc.gnu.org/install/configure.html ! 74. http://gcc.gnu.org/install/ ! 75. http://gcc.gnu.org/bugs.html ! 76. http://gcc.gnu.org/ml/libstdc++/2002-02/msg00034.html ! 77. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html ! 78. http://www.cantrip.org/draft-bugs.txt ! 79. http://anubis.dkuug.dk/jtc1/sc22/wg21/ ! 80. ../faq/index.html#5_2 ! 81. ../ext/howto.html#5 ! 82. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html ! 83. http://gcc.gnu.org/gnatswrite.html ! 84. http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html ! 85. ../faq/index.html#4_4_interface ! 86. ../19_diagnostics/howto.html#3 ! 87. http://gcc.gnu.org/contribute.html ! 88. ../17_intro/contribute.html ! 89. ../faq/index.html#2_4 ! 90. ../ext/howto.html#5 ! 91. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html ! 92. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html ! 93. http://www.sgi.com/Technology/STL/ ! 94. ../ext/howto.html ! 95. ../17_intro/howto.html#3 ! 96. ../23_containers/howto.html#3 ! 97. ../27_io/howto.html#9 ! 98. http://www.ansi.org/ ! 99. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998 ! 100. http://www.iso.ch/ ! 101. ../17_intro/license.html ! 102. mailto:libstdc++@gcc.gnu.org diff -Nrc3pad gcc-3.2.1/libstdc++-v3/docs/html/install.html gcc-3.2.2/libstdc++-v3/docs/html/install.html *** gcc-3.2.1/libstdc++-v3/docs/html/install.html Thu Oct 17 02:04:15 2002 --- gcc-3.2.2/libstdc++-v3/docs/html/install.html Thu Jan 23 23:35:16 2003 *************** *** 1,4 **** ! --- 1,9 ---- ! ! ! ! *************** *** 286,291 **** --- 291,297 ---- interest to library maintainers and system integrators. As such, these tests may not work on all cpu and host combinations. These options include, but are not necessarily limited to, the following: +

        The library ABI can be tested using

        ***************
        *** 295,301 ****
             the default dejagnu test harness

             make check-script
        ! or
             make check-script-install
        --- 301,307 ---- the default dejagnu test harness

             make check-script
        !

        or

             make check-script-install
        diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/Makefile.am gcc-3.2.2/libstdc++-v3/include/Makefile.am *** gcc-3.2.1/libstdc++-v3/include/Makefile.am Fri Jun 28 08:22:32 2002 --- gcc-3.2.2/libstdc++-v3/include/Makefile.am Tue Jan 28 21:51:30 2003 *************** target_headers_extra = \ *** 320,325 **** --- 320,326 ---- ${target_builddir}/c++io.h \ ${target_builddir}/c++locale.h \ ${target_builddir}/messages_members.h \ + ${target_builddir}/time_members.h \ ${target_builddir}/codecvt_specializations.h thread_target_headers = \ *************** ${target_builddir}/stamp-target: ${targe *** 409,414 **** --- 410,416 ---- @LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h || true ;\ @LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h || true ;\ @LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h || true ;\ + @LN_S@ ${glibcpp_srcdir}/@CTIME_H@ time_members.h || true ;\ @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h || true ;\ echo `date` > stamp-target; \ fi *************** ${target_builddir}/gthr-default.h: ${top *** 465,496 **** # the rest are taken from the original source tree. gxx_include_dir = @gxx_include_dir@ install-data-local: ! $(mkinstalldirs) ${gxx_include_dir} ! $(mkinstalldirs) ${gxx_include_dir}/${bits_builddir} for file in ${bits_headers}; do \ ! $(INSTALL_DATA) $${file} ${gxx_include_dir}/${bits_builddir}; done ! $(mkinstalldirs) ${gxx_include_dir}/${backward_builddir} for file in ${backward_headers}; do \ ! $(INSTALL_DATA) $${file} ${gxx_include_dir}/${backward_builddir}; done ! $(mkinstalldirs) ${gxx_include_dir}/${ext_builddir} for file in ${ext_headers}; do \ ! $(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done ! $(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir} for file in ${c_base_headers_rename}; do \ ! $(INSTALL_DATA) ${c_base_builddir}/$${file} ${gxx_include_dir}; done c_base_headers_extra_install='$(c_base_headers_extra)';\ for file in $$c_base_headers_extra_install; do \ ! $(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done c_compatibility_headers_install='$(c_compatibility_headers_extra)';\ for file in $$c_compatibility_headers_install; do \ ! $(INSTALL_DATA) $$file ${gxx_include_dir}; done ! $(mkinstalldirs) ${gxx_include_dir}/${std_builddir} for file in ${std_headers_rename}; do \ ! $(INSTALL_DATA) ${std_builddir}/$${file} ${gxx_include_dir}; done ! $(mkinstalldirs) ${gxx_include_dir}/${target_builddir} for file in ${target_headers} ${target_headers_extra} \ ${thread_target_headers}; do \ ! $(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done # By adding these files here, automake will remove them for 'make clean' #CLEANFILES = ${allstamps} --- 467,498 ---- # the rest are taken from the original source tree. gxx_include_dir = @gxx_include_dir@ install-data-local: ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir} ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${bits_builddir} for file in ${bits_headers}; do \ ! $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${backward_builddir} for file in ${backward_headers}; do \ ! $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${backward_builddir}; done ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${ext_builddir} for file in ${ext_headers}; do \ ! $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${ext_builddir}; done ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} for file in ${c_base_headers_rename}; do \ ! $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done c_base_headers_extra_install='$(c_base_headers_extra)';\ for file in $$c_base_headers_extra_install; do \ ! $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done c_compatibility_headers_install='$(c_compatibility_headers_extra)';\ for file in $$c_compatibility_headers_install; do \ ! $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}; done ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir} for file in ${std_headers_rename}; do \ ! $(INSTALL_DATA) ${std_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${target_builddir} for file in ${target_headers} ${target_headers_extra} \ ${thread_target_headers}; do \ ! $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${target_builddir}; done # By adding these files here, automake will remove them for 'make clean' #CLEANFILES = ${allstamps} diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/Makefile.in gcc-3.2.2/libstdc++-v3/include/Makefile.in *** gcc-3.2.1/libstdc++-v3/include/Makefile.in Fri Aug 23 02:43:03 2002 --- gcc-3.2.2/libstdc++-v3/include/Makefile.in Tue Jan 28 21:51:30 2003 *************** CMESSAGES_H = @CMESSAGES_H@ *** 76,81 **** --- 76,82 ---- CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ CSTDIO_H = @CSTDIO_H@ + CTIME_H = @CTIME_H@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ DEBUG_FLAGS = @DEBUG_FLAGS@ *************** target_headers_extra = \ *** 424,429 **** --- 425,431 ---- ${target_builddir}/c++io.h \ ${target_builddir}/c++locale.h \ ${target_builddir}/messages_members.h \ + ${target_builddir}/time_members.h \ ${target_builddir}/codecvt_specializations.h *************** ${target_builddir}/stamp-target: ${targe *** 630,635 **** --- 632,638 ---- @LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h || true ;\ @LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h || true ;\ @LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h || true ;\ + @LN_S@ ${glibcpp_srcdir}/@CTIME_H@ time_members.h || true ;\ @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h || true ;\ echo `date` > stamp-target; \ fi *************** ${target_builddir}/gthr-default.h: ${top *** 672,703 **** -e 's,^#include "\(.*\)",#include ,g' \ < ${toplevel_srcdir}/gcc/${glibcpp_thread_h} > $@ install-data-local: ! $(mkinstalldirs) ${gxx_include_dir} ! $(mkinstalldirs) ${gxx_include_dir}/${bits_builddir} for file in ${bits_headers}; do \ ! $(INSTALL_DATA) $${file} ${gxx_include_dir}/${bits_builddir}; done ! $(mkinstalldirs) ${gxx_include_dir}/${backward_builddir} for file in ${backward_headers}; do \ ! $(INSTALL_DATA) $${file} ${gxx_include_dir}/${backward_builddir}; done ! $(mkinstalldirs) ${gxx_include_dir}/${ext_builddir} for file in ${ext_headers}; do \ ! $(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done ! $(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir} for file in ${c_base_headers_rename}; do \ ! $(INSTALL_DATA) ${c_base_builddir}/$${file} ${gxx_include_dir}; done c_base_headers_extra_install='$(c_base_headers_extra)';\ for file in $$c_base_headers_extra_install; do \ ! $(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done c_compatibility_headers_install='$(c_compatibility_headers_extra)';\ for file in $$c_compatibility_headers_install; do \ ! $(INSTALL_DATA) $$file ${gxx_include_dir}; done ! $(mkinstalldirs) ${gxx_include_dir}/${std_builddir} for file in ${std_headers_rename}; do \ ! $(INSTALL_DATA) ${std_builddir}/$${file} ${gxx_include_dir}; done ! $(mkinstalldirs) ${gxx_include_dir}/${target_builddir} for file in ${target_headers} ${target_headers_extra} \ ${thread_target_headers}; do \ ! $(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done # By adding these files here, automake will remove them for 'make clean' #CLEANFILES = ${allstamps} --- 675,706 ---- -e 's,^#include "\(.*\)",#include ,g' \ < ${toplevel_srcdir}/gcc/${glibcpp_thread_h} > $@ install-data-local: ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir} ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${bits_builddir} for file in ${bits_headers}; do \ ! $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${backward_builddir} for file in ${backward_headers}; do \ ! $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${backward_builddir}; done ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${ext_builddir} for file in ${ext_headers}; do \ ! $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${ext_builddir}; done ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} for file in ${c_base_headers_rename}; do \ ! $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done c_base_headers_extra_install='$(c_base_headers_extra)';\ for file in $$c_base_headers_extra_install; do \ ! $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done c_compatibility_headers_install='$(c_compatibility_headers_extra)';\ for file in $$c_compatibility_headers_install; do \ ! $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}; done ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir} for file in ${std_headers_rename}; do \ ! $(INSTALL_DATA) ${std_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done ! $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${target_builddir} for file in ${target_headers} ${target_headers_extra} \ ${thread_target_headers}; do \ ! $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${target_builddir}; done # By adding these files here, automake will remove them for 'make clean' #CLEANFILES = ${allstamps} diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/backward/alloc.h gcc-3.2.2/libstdc++-v3/include/backward/alloc.h *** gcc-3.2.1/libstdc++-v3/include/backward/alloc.h Thu Dec 6 20:29:30 2001 --- gcc-3.2.2/libstdc++-v3/include/backward/alloc.h Thu Dec 5 23:48:55 2002 *************** using std::__debug_alloc; *** 53,62 **** using std::__alloc; using std::__single_client_alloc; using std::allocator; - #ifdef __USE_MALLOC - using std::malloc_alloc; - #else using std::__default_alloc_template; - #endif #endif --- 53,58 ---- diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/bits/c++config gcc-3.2.2/libstdc++-v3/include/bits/c++config *** gcc-3.2.1/libstdc++-v3/include/bits/c++config Tue Nov 19 08:16:43 2002 --- gcc-3.2.2/libstdc++-v3/include/bits/c++config Wed Feb 5 00:16:27 2003 *************** *** 34,40 **** #include // The current version of the C++ library in compressed ISO date format. ! #define __GLIBCPP__ 20021119 // This is necessary until GCC supports separate template // compilation. --- 34,40 ---- #include // The current version of the C++ library in compressed ISO date format. ! #define __GLIBCPP__ 20030205 // This is necessary until GCC supports separate template // compilation. *************** *** 74,86 **** // so, please report any possible issues to libstdc++@gcc.gnu.org . // Do not define __USE_MALLOC on the command line. Enforce it here: #ifdef __USE_MALLOC ! #error __USE_MALLOC should only be defined within \ ! libstdc++-v3/include/bits/c++config before full recompilation of the library. #endif - // Define __USE_MALLOC after this point in the file in order to aid debugging - // or globally change allocation policy. This breaks the ABI, thus - // completely recompile the library. A patch to better support - // changing the global allocator policy would be probably be accepted. // The remainder of the prewritten config is mostly automatic; all the // user hooks are listed above. --- 74,81 ---- // so, please report any possible issues to libstdc++@gcc.gnu.org . // Do not define __USE_MALLOC on the command line. Enforce it here: #ifdef __USE_MALLOC ! #error __USE_MALLOC should never be defined. Read the release notes. #endif // The remainder of the prewritten config is mostly automatic; all the // user hooks are listed above. diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/bits/fstream.tcc gcc-3.2.2/libstdc++-v3/include/bits/fstream.tcc *** gcc-3.2.1/libstdc++-v3/include/bits/fstream.tcc Tue Nov 5 00:51:34 2002 --- gcc-3.2.2/libstdc++-v3/include/bits/fstream.tcc Thu Jan 23 23:16:35 2003 *************** *** 1,6 **** // File based streams -*- C++ -*- ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,6 ---- // File based streams -*- C++ -*- ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** namespace std *** 461,470 **** bool __testbeg = gptr() == eback() && pptr() == pbase(); if (__testbeg && _M_buf_locale != __loc) ! { ! _M_buf_locale = __loc; ! _M_buf_locale_init = true; ! } // NB this may require the reconversion of previously // converted chars. This in turn may cause the reconstruction --- 461,467 ---- bool __testbeg = gptr() == eback() && pptr() == pbase(); if (__testbeg && _M_buf_locale != __loc) ! _M_buf_locale = __loc; // NB this may require the reconversion of previously // converted chars. This in turn may cause the reconstruction diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/bits/locale_facets.h gcc-3.2.2/libstdc++-v3/include/bits/locale_facets.h *** gcc-3.2.1/libstdc++-v3/include/bits/locale_facets.h Thu Oct 17 02:04:16 2002 --- gcc-3.2.2/libstdc++-v3/include/bits/locale_facets.h Tue Jan 7 03:44:00 2003 *************** namespace std *** 1011,1032 **** public: explicit ! __timepunct(size_t __refs = 0) ! : locale::facet(__refs) ! { ! _M_name_timepunct = new char[2]; ! strcpy(_M_name_timepunct, "C"); ! _M_initialize_timepunct(); ! } explicit ! __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0) ! : locale::facet(__refs) ! { ! _M_name_timepunct = new char[strlen(__s) + 1]; ! strcpy(_M_name_timepunct, __s); ! _M_initialize_timepunct(__cloc); ! } void _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format, --- 1011,1020 ---- public: explicit ! __timepunct(size_t __refs = 0); explicit ! __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0); void _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format, *************** namespace std *** 1123,1133 **** protected: virtual ! ~__timepunct() ! { ! delete [] _M_name_timepunct; ! _S_destroy_c_locale(_M_c_locale_timepunct); ! } // For use at construction time only. void --- 1111,1117 ---- protected: virtual ! ~__timepunct(); // For use at construction time only. void *************** namespace std *** 1169,1174 **** --- 1153,1160 ---- template const _CharT* __timepunct<_CharT>::_S_timezones[14]; + // Include host and configuration specific timepunct functions. + #include template class time_get : public locale::facet, public time_base *************** namespace std *** 1628,1659 **** // Underlying "C" library locale information saved from // initialization, needed by messages_byname as well. __c_locale _M_c_locale_messages; - #if 1 - // Only needed if glibc < 2.3 char* _M_name_messages; - #endif public: static locale::id id; explicit ! messages(size_t __refs = 0) ! : locale::facet(__refs) ! { ! _M_name_messages = new char[2]; ! strcpy(_M_name_messages, "C"); ! _M_c_locale_messages = _S_c_locale; ! } // Non-standard. explicit ! messages(__c_locale __cloc, const char* __s, size_t __refs = 0) ! : locale::facet(__refs) ! { ! _M_name_messages = new char[strlen(__s) + 1]; ! strcpy(_M_name_messages, __s); ! _M_c_locale_messages = _S_clone_c_locale(__cloc); ! } catalog open(const basic_string& __s, const locale& __loc) const --- 1614,1630 ---- // Underlying "C" library locale information saved from // initialization, needed by messages_byname as well. __c_locale _M_c_locale_messages; char* _M_name_messages; public: static locale::id id; explicit ! messages(size_t __refs = 0); // Non-standard. explicit ! messages(__c_locale __cloc, const char* __s, size_t __refs = 0); catalog open(const basic_string& __s, const locale& __loc) const *************** namespace std *** 1673,1683 **** protected: virtual ! ~messages() ! { ! delete [] _M_name_messages; ! _S_destroy_c_locale(_M_c_locale_messages); ! } virtual catalog do_open(const basic_string&, const locale&) const; --- 1644,1650 ---- protected: virtual ! ~messages(); virtual catalog do_open(const basic_string&, const locale&) const; *************** namespace std *** 1751,1759 **** messages::do_get(catalog, int, int, const wstring&) const; #endif - // Include host and configuration specific messages virtual functions. - #include - template class messages_byname : public messages<_CharT> { --- 1718,1723 ---- *************** namespace std *** 1762,1776 **** typedef basic_string<_CharT> string_type; explicit ! messages_byname(const char* __s, size_t __refs = 0) ! : messages<_CharT>(__refs) ! { ! delete [] _M_name_messages; ! _M_name_messages = new char[strlen(__s) + 1]; ! strcpy(_M_name_messages, __s); ! _S_destroy_c_locale(_M_c_locale_messages); ! _S_create_c_locale(_M_c_locale_messages, __s); ! } protected: virtual --- 1726,1732 ---- typedef basic_string<_CharT> string_type; explicit ! messages_byname(const char* __s, size_t __refs = 0); protected: virtual *************** namespace std *** 1778,1783 **** --- 1734,1742 ---- { } }; + // Include host and configuration specific messages functions. + #include + // Subclause convenience interfaces, inlines. // NB: These are inline because, when used in a loop, some compilers diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/bits/locale_facets.tcc gcc-3.2.2/libstdc++-v3/include/bits/locale_facets.tcc *** gcc-3.2.1/libstdc++-v3/include/bits/locale_facets.tcc Tue Nov 5 00:51:34 2002 --- gcc-3.2.2/libstdc++-v3/include/bits/locale_facets.tcc Mon Jan 6 15:51:48 2003 *************** namespace std *** 622,630 **** _M_convert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, _ValueT __v) const { ! // Note: digits10 is rounded down. We need to add 1 to ensure // we get the full available precision. ! const int __max_digits = numeric_limits<_ValueT>::digits10 + 1; streamsize __prec = __io.precision(); if (__prec > static_cast(__max_digits)) --- 622,635 ---- _M_convert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, _ValueT __v) const { ! // Note: digits10 is rounded down: we need to add 1 to ensure // we get the full available precision. ! // Then, in general, one more 1 needs to be added since, when the ! // %{g,G} conversion specifiers are chosen inside _S_format_float, the ! // precision field is "the maximum number of significant digits", *not* ! // the "number of digits to appear after the decimal point", as happens ! // for %{e,E,f,F} (C99, 7.19.6.1,4). ! const int __max_digits = numeric_limits<_ValueT>::digits10 + 2; streamsize __prec = __io.precision(); if (__prec > static_cast(__max_digits)) *************** namespace std *** 1628,1634 **** // Find smallest matching string. size_t __minlen = 10; for (size_t __i2 = 0; __i2 < __nmatches; ++__i2) ! __minlen = min(__minlen, __traits_type::length(__names[__matches[__i2]])); if (__pos < __minlen && __beg != __end) --- 1633,1639 ---- // Find smallest matching string. size_t __minlen = 10; for (size_t __i2 = 0; __i2 < __nmatches; ++__i2) ! __minlen = min(__minlen, __traits_type::length(__names[__matches[__i2]])); if (__pos < __minlen && __beg != __end) diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/bits/localefwd.h gcc-3.2.2/libstdc++-v3/include/bits/localefwd.h *** gcc-3.2.1/libstdc++-v3/include/bits/localefwd.h Thu Oct 17 02:04:16 2002 --- gcc-3.2.2/libstdc++-v3/include/bits/localefwd.h Tue Jan 7 03:44:00 2003 *************** namespace std *** 264,270 **** // The "C" reference locale static _Impl* _S_classic; ! // Current global reference locale static _Impl* _S_global; // Number of standard categories. For C++, these categories are --- 264,270 ---- // The "C" reference locale static _Impl* _S_classic; ! // Current global locale static _Impl* _S_global; // Number of standard categories. For C++, these categories are *************** namespace std *** 419,428 **** _Atomic_word _M_references; protected: ! // Contains data from the underlying "C" library for default "C" ! // or "POSIX" locale. ! static __c_locale _S_c_locale; ! explicit facet(size_t __refs = 0) throw(); --- 419,431 ---- _Atomic_word _M_references; protected: ! // Contains data from the underlying "C" library for for the ! // classic locale. ! static __c_locale _S_c_locale; ! ! // String literal for the name of the classic locale. ! static char _S_c_name[2]; ! explicit facet(size_t __refs = 0) throw(); diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/bits/slice_array.h gcc-3.2.2/libstdc++-v3/include/bits/slice_array.h *** gcc-3.2.1/libstdc++-v3/include/bits/slice_array.h Wed Jan 16 19:57:31 2002 --- gcc-3.2.2/libstdc++-v3/include/bits/slice_array.h Tue Dec 10 07:39:51 2002 *************** namespace std *** 120,126 **** inline slice_array<_Tp>& slice_array<_Tp>::operator=(const slice_array<_Tp>& __a) { ! __valarray_copy(_M_array, _M_sz, _M_stride, __a._M_array, __a._M_stride); return *this; } --- 120,127 ---- inline slice_array<_Tp>& slice_array<_Tp>::operator=(const slice_array<_Tp>& __a) { ! __valarray_copy(__a._M_array, __a._M_sz, __a._M_stride, ! _M_array, _M_stride); return *this; } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/bits/stl_alloc.h gcc-3.2.2/libstdc++-v3/include/bits/stl_alloc.h *** gcc-3.2.1/libstdc++-v3/include/bits/stl_alloc.h Fri Apr 19 08:28:15 2002 --- gcc-3.2.2/libstdc++-v3/include/bits/stl_alloc.h Thu Dec 5 23:48:55 2002 *************** *** 74,79 **** --- 74,83 ---- * into a "standard" one. * @endif * + * @note The @c reallocate member functions have been deprecated for 3.2 + * and will be removed in 3.4. You must define @c _GLIBCPP_DEPRECATED + * to make this visible in 3.2; see c++config.h. + * * The canonical description of these classes is in docs/html/ext/howto.html * or online at http://gcc.gnu.org/onlinedocs/libstdc++/ext/howto.html#3 */ *************** *** 85,90 **** --- 89,96 ---- #include // For __throw_bad_alloc #include + #include + namespace std { /** *************** namespace std *** 94,112 **** * reallocate(). * @endif * (See @link Allocators allocators info @endlink for more.) ! */ ! class __new_alloc { public: ! static void* allocate(size_t __n) { return ::operator new(__n); } ! ! static void deallocate(void* __p, size_t) { ::operator delete(__p); } }; ! /** * @if maint --- 100,118 ---- * reallocate(). * @endif * (See @link Allocators allocators info @endlink for more.) ! */ ! class __new_alloc { public: ! static void* allocate(size_t __n) { return ::operator new(__n); } ! ! static void deallocate(void* __p, size_t) { ::operator delete(__p); } }; ! /** * @if maint *************** namespace std *** 117,237 **** * for caveats). "SGI" style, plus __set_malloc_handler for OOM conditions. * @endif * (See @link Allocators allocators info @endlink for more.) ! */ ! template ! class __malloc_alloc_template { private: static void* _S_oom_malloc(size_t); static void* _S_oom_realloc(void*, size_t); static void (* __malloc_alloc_oom_handler)(); ! public: ! static void* allocate(size_t __n) { ! void* __result = malloc(__n); ! if (0 == __result) __result = _S_oom_malloc(__n); ! return __result; } ! static void deallocate(void* __p, size_t /* __n */) { free(__p); } ! static void* reallocate(void* __p, size_t /* old_sz */, size_t __new_sz) { ! void* __result = realloc(__p, __new_sz); ! if (0 == __result) __result = _S_oom_realloc(__p, __new_sz); ! return __result; } ! static void (* __set_malloc_handler(void (*__f)()))() { ! void (* __old)() = __malloc_alloc_oom_handler; ! __malloc_alloc_oom_handler = __f; ! return(__old); } }; // malloc_alloc out-of-memory handling ! template void (* __malloc_alloc_template<__inst>::__malloc_alloc_oom_handler)() = 0; ! template void* ! __malloc_alloc_template<__inst>::_S_oom_malloc(size_t __n) { void (* __my_malloc_handler)(); void* __result; ! ! for (;;) ! { ! __my_malloc_handler = __malloc_alloc_oom_handler; ! if (0 == __my_malloc_handler) ! std::__throw_bad_alloc(); ! (*__my_malloc_handler)(); ! __result = malloc(__n); ! if (__result) ! return(__result); ! } } ! ! template ! void* ! __malloc_alloc_template<__inst>::_S_oom_realloc(void* __p, size_t __n) ! { void (* __my_malloc_handler)(); void* __result; - - for (;;) - { - __my_malloc_handler = __malloc_alloc_oom_handler; - if (0 == __my_malloc_handler) - std::__throw_bad_alloc(); - (*__my_malloc_handler)(); - __result = realloc(__p, __n); - if (__result) - return(__result); - } - } ! // Determines the underlying allocator choice for the node allocator. ! #ifdef __USE_MALLOC ! typedef __malloc_alloc_template<0> __mem_interface; ! #else typedef __new_alloc __mem_interface; - #endif - /** * @if maint * This is used primarily (only?) in _Alloc_traits and other places to ! * help provide the _Alloc_type typedef. * * This is neither "standard"-conforming nor "SGI". The _Alloc parameter * must be "SGI" style. * @endif * (See @link Allocators allocators info @endlink for more.) ! */ ! template ! class __simple_alloc ! { ! public: ! static _Tp* allocate(size_t __n) ! { return 0 == __n ? 0 : (_Tp*) _Alloc::allocate(__n * sizeof (_Tp)); } ! ! static _Tp* allocate() ! { return (_Tp*) _Alloc::allocate(sizeof (_Tp)); } ! ! static void deallocate(_Tp* __p, size_t __n) ! { if (0 != __n) _Alloc::deallocate(__p, __n * sizeof (_Tp)); } ! ! static void deallocate(_Tp* __p) ! { _Alloc::deallocate(__p, sizeof (_Tp)); } ! }; /** --- 123,256 ---- * for caveats). "SGI" style, plus __set_malloc_handler for OOM conditions. * @endif * (See @link Allocators allocators info @endlink for more.) ! */ ! template ! class __malloc_alloc_template { private: static void* _S_oom_malloc(size_t); + + // _GLIBCPP_DEPRECATED static void* _S_oom_realloc(void*, size_t); + static void (* __malloc_alloc_oom_handler)(); ! public: ! static void* allocate(size_t __n) { ! void* __result = malloc(__n); ! if (__builtin_expect(__result == 0, 0)) ! __result = _S_oom_malloc(__n); ! return __result; } ! static void deallocate(void* __p, size_t /* __n */) { free(__p); } ! // _GLIBCPP_DEPRECATED ! static void* reallocate(void* __p, size_t /* old_sz */, size_t __new_sz) { ! void* __result = realloc(__p, __new_sz); ! if (__builtin_expect(__result == 0, 0)) ! __result = _S_oom_realloc(__p, __new_sz); ! return __result; } ! static void (* __set_malloc_handler(void (*__f)()))() { ! void (* __old)() = __malloc_alloc_oom_handler; ! __malloc_alloc_oom_handler = __f; ! return __old; } }; // malloc_alloc out-of-memory handling ! template void (* __malloc_alloc_template<__inst>::__malloc_alloc_oom_handler)() = 0; ! template void* ! __malloc_alloc_template<__inst>:: ! _S_oom_malloc(size_t __n) { void (* __my_malloc_handler)(); void* __result; ! ! for (;;) ! { ! __my_malloc_handler = __malloc_alloc_oom_handler; ! if (__builtin_expect(__my_malloc_handler == 0, 0)) ! __throw_bad_alloc(); ! (*__my_malloc_handler)(); ! __result = malloc(__n); ! if (__result) ! return __result; ! } } ! ! // _GLIBCPP_DEPRECATED ! template ! void* ! __malloc_alloc_template<__inst>:: ! _S_oom_realloc(void* __p, size_t __n) ! { void (* __my_malloc_handler)(); void* __result; + for (;;) + { + __my_malloc_handler = __malloc_alloc_oom_handler; + if (__builtin_expect(__my_malloc_handler == 0, 0)) + __throw_bad_alloc(); + (*__my_malloc_handler)(); + __result = realloc(__p, __n); + if (__result) + return __result; + } + } ! // Should not be referenced within the library anymore. typedef __new_alloc __mem_interface; /** * @if maint * This is used primarily (only?) in _Alloc_traits and other places to ! * help provide the _Alloc_type typedef. All it does is forward the ! * requests after some minimal checking. * * This is neither "standard"-conforming nor "SGI". The _Alloc parameter * must be "SGI" style. * @endif * (See @link Allocators allocators info @endlink for more.) ! */ ! template ! class __simple_alloc ! { ! public: ! static _Tp* ! allocate(size_t __n) ! { ! _Tp* __ret = 0; ! if (__n) ! __ret = static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp))); ! return __ret; ! } ! ! static _Tp* ! allocate() ! { return (_Tp*) _Alloc::allocate(sizeof (_Tp)); } ! ! static void ! deallocate(_Tp* __p, size_t __n) ! { if (0 != __n) _Alloc::deallocate(__p, __n * sizeof (_Tp)); } ! ! static void ! deallocate(_Tp* __p) ! { _Alloc::deallocate(__p, sizeof (_Tp)); } ! }; /** *************** namespace std *** 247,519 **** * This adaptor is "SGI" style. The _Alloc parameter must also be "SGI". * @endif * (See @link Allocators allocators info @endlink for more.) ! */ ! template ! class __debug_alloc ! { ! private: ! enum {_S_extra = 8}; // Size of space used to store size. Note that this ! // must be large enough to preserve alignment. ! ! public: ! ! static void* allocate(size_t __n) ! { ! char* __result = (char*)_Alloc::allocate(__n + (int) _S_extra); ! *(size_t*)__result = __n; ! return __result + (int) _S_extra; ! } ! ! static void deallocate(void* __p, size_t __n) ! { ! char* __real_p = (char*)__p - (int) _S_extra; ! assert(*(size_t*)__real_p == __n); ! _Alloc::deallocate(__real_p, __n + (int) _S_extra); ! } ! ! static void* reallocate(void* __p, size_t __old_sz, size_t __new_sz) { ! char* __real_p = (char*)__p - (int) _S_extra; ! assert(*(size_t*)__real_p == __old_sz); ! char* __result = (char*) ! _Alloc::reallocate(__real_p, __old_sz + (int) _S_extra, ! __new_sz + (int) _S_extra); ! *(size_t*)__result = __new_sz; ! return __result + (int) _S_extra; ! } ! }; ! ! #ifdef __USE_MALLOC ! typedef __mem_interface __alloc; ! typedef __mem_interface __single_client_alloc; ! #else ! /** ! * @if maint ! * Default node allocator. "SGI" style. Uses __mem_interface for its ! * underlying requests (and makes as few requests as possible). ! * **** Currently __mem_interface is always __new_alloc, never __malloc*. ! * ! * Important implementation properties: ! * 1. If the clients request an object of size > _MAX_BYTES, the resulting ! * object will be obtained directly from the underlying __mem_interface. ! * 2. In all other cases, we allocate an object of size exactly ! * _S_round_up(requested_size). Thus the client has enough size ! * information that we can return the object to the proper free list ! * without permanently losing part of the object. ! * ! * The first template parameter specifies whether more than one thread may ! * use this allocator. It is safe to allocate an object from one instance ! * of a default_alloc and deallocate it with another one. This effectively ! * transfers its ownership to the second one. This may have undesirable ! * effects on reference locality. ! * ! * The second parameter is unused and serves only to allow the creation of ! * multiple default_alloc instances. Note that containers built on different ! * allocator instances have different types, limiting the utility of this ! * approach. If you do not wish to share the free lists with the main ! * default_alloc instance, instantiate this with a non-zero __inst. ! * ! * @endif ! * (See @link Allocators allocators info @endlink for more.) ! */ ! template ! class __default_alloc_template ! { ! private: ! enum {_ALIGN = 8}; ! enum {_MAX_BYTES = 128}; ! enum {_NFREELISTS = _MAX_BYTES / _ALIGN}; ! ! union _Obj { ! union _Obj* _M_free_list_link; ! char _M_client_data[1]; // The client sees this. ! }; ! static _Obj* volatile _S_free_list[_NFREELISTS]; ! // Chunk allocation state. ! static char* _S_start_free; ! static char* _S_end_free; ! static size_t _S_heap_size; ! ! static _STL_mutex_lock _S_node_allocator_lock; ! static size_t ! _S_round_up(size_t __bytes) ! { return (((__bytes) + (size_t) _ALIGN-1) & ~((size_t) _ALIGN - 1)); } ! static size_t ! _S_freelist_index(size_t __bytes) ! { return (((__bytes) + (size_t)_ALIGN-1)/(size_t)_ALIGN - 1); } ! // Returns an object of size __n, and optionally adds to size __n ! // free list. ! static void* ! _S_refill(size_t __n); - // Allocates a chunk for nobjs of size size. nobjs may be reduced - // if it is inconvenient to allocate the requested number. - static char* - _S_chunk_alloc(size_t __size, int& __nobjs); - - // It would be nice to use _STL_auto_lock here. But we need a - // test whether threads are in use. - class _Lock - { public: ! _Lock() { if (__threads) _S_node_allocator_lock._M_acquire_lock(); } ! ~_Lock() { if (__threads) _S_node_allocator_lock._M_release_lock(); } ! } __attribute__ ((__unused__)); ! friend class _Lock; ! ! public: ! // __n must be > 0 ! static void* ! allocate(size_t __n) ! { ! void* __ret = 0; ! ! if (__n > (size_t) _MAX_BYTES) ! __ret = __mem_interface::allocate(__n); ! else ! { ! _Obj* volatile* __my_free_list = _S_free_list ! + _S_freelist_index(__n); ! // Acquire the lock here with a constructor call. This ! // ensures that it is released in exit or during stack ! // unwinding. ! _Lock __lock_instance; ! _Obj* __restrict__ __result = *__my_free_list; ! if (__result == 0) ! __ret = _S_refill(_S_round_up(__n)); ! else ! { ! *__my_free_list = __result -> _M_free_list_link; ! __ret = __result; ! } ! } ! return __ret; ! }; ! // __p may not be 0 ! static void ! deallocate(void* __p, size_t __n) ! { ! if (__n > (size_t) _MAX_BYTES) ! __mem_interface::deallocate(__p, __n); ! else ! { ! _Obj* volatile* __my_free_list ! = _S_free_list + _S_freelist_index(__n); ! _Obj* __q = (_Obj*)__p; ! ! // Acquire the lock here with a constructor call. This ensures that ! // it is released in exit or during stack unwinding. ! _Lock __lock_instance; ! __q -> _M_free_list_link = *__my_free_list; ! *__my_free_list = __q; ! } ! } ! ! static void* ! reallocate(void* __p, size_t __old_sz, size_t __new_sz); ! }; template ! inline bool ! operator==(const __default_alloc_template<__threads, __inst>&, ! const __default_alloc_template<__threads, __inst>&) { return true; } template ! inline bool ! operator!=(const __default_alloc_template<__threads, __inst>&, ! const __default_alloc_template<__threads, __inst>&) { return false; } // We allocate memory in large chunks in order to avoid fragmenting the ! // malloc heap (or whatever __mem_interface is using) too much. We assume ! // that __size is properly aligned. We hold the allocation lock. template char* ! __default_alloc_template<__threads, __inst>::_S_chunk_alloc(size_t __size, ! int& __nobjs) { char* __result; size_t __total_bytes = __size * __nobjs; size_t __bytes_left = _S_end_free - _S_start_free; ! ! if (__bytes_left >= __total_bytes) ! { ! __result = _S_start_free; ! _S_start_free += __total_bytes; ! return(__result); ! } ! else if (__bytes_left >= __size) ! { ! __nobjs = (int)(__bytes_left/__size); ! __total_bytes = __size * __nobjs; ! __result = _S_start_free; ! _S_start_free += __total_bytes; ! return(__result); ! } ! else ! { ! size_t __bytes_to_get = ! 2 * __total_bytes + _S_round_up(_S_heap_size >> 4); ! // Try to make use of the left-over piece. ! if (__bytes_left > 0) ! { ! _Obj* volatile* __my_free_list = ! _S_free_list + _S_freelist_index(__bytes_left); ! ! ((_Obj*)_S_start_free) -> _M_free_list_link = *__my_free_list; ! *__my_free_list = (_Obj*)_S_start_free; ! } ! _S_start_free = (char*) __mem_interface::allocate(__bytes_to_get); ! if (0 == _S_start_free) ! { ! size_t __i; ! _Obj* volatile* __my_free_list; ! _Obj* __p; ! // Try to make do with what we have. That can't hurt. We ! // do not try smaller requests, since that tends to result ! // in disaster on multi-process machines. ! __i = __size; ! for (; __i <= (size_t) _MAX_BYTES; __i += (size_t) _ALIGN) ! { ! __my_free_list = _S_free_list + _S_freelist_index(__i); ! __p = *__my_free_list; ! if (0 != __p) ! { ! *__my_free_list = __p -> _M_free_list_link; ! _S_start_free = (char*)__p; ! _S_end_free = _S_start_free + __i; ! return(_S_chunk_alloc(__size, __nobjs)); ! // Any leftover piece will eventually make it to the ! // right free list. ! } ! } ! _S_end_free = 0; // In case of exception. ! _S_start_free = (char*)__mem_interface::allocate(__bytes_to_get); ! // This should either throw an exception or remedy the situation. ! // Thus we assume it succeeded. ! } ! _S_heap_size += __bytes_to_get; ! _S_end_free = _S_start_free + __bytes_to_get; ! return(_S_chunk_alloc(__size, __nobjs)); ! } } ! ! // Returns an object of size __n, and optionally adds to "size // __n"'s free list. We assume that __n is properly aligned. We // hold the allocation lock. --- 266,555 ---- * This adaptor is "SGI" style. The _Alloc parameter must also be "SGI". * @endif * (See @link Allocators allocators info @endlink for more.) ! */ ! template ! class __debug_alloc { ! private: ! // Size of space used to store size. Note that this must be ! // large enough to preserve alignment. ! enum {_S_extra = 8}; ! public: ! static void* ! allocate(size_t __n) ! { ! char* __result = (char*)_Alloc::allocate(__n + (int) _S_extra); ! *(size_t*)__result = __n; ! return __result + (int) _S_extra; ! } ! static void ! deallocate(void* __p, size_t __n) ! { ! char* __real_p = (char*)__p - (int) _S_extra; ! assert(*(size_t*)__real_p == __n); ! _Alloc::deallocate(__real_p, __n + (int) _S_extra); ! } ! // _GLIBCPP_DEPRECATED ! static void* ! reallocate(void* __p, size_t __old_sz, size_t __new_sz) ! { ! char* __real_p = (char*)__p - (int) _S_extra; ! assert(*(size_t*)__real_p == __old_sz); ! char* __result = (char*) _Alloc::reallocate(__real_p, ! __old_sz + (int) _S_extra, ! __new_sz + (int) _S_extra); ! *(size_t*)__result = __new_sz; ! return __result + (int) _S_extra; ! } ! }; ! /** ! * @if maint ! * Default node allocator. "SGI" style. Uses various allocators to ! * fulfill underlying requests (and makes as few requests as possible ! * when in default high-speed pool mode). ! * ! * Important implementation properties: ! * 0. If globally mandated, then allocate objects from __new_alloc ! * 1. If the clients request an object of size > _MAX_BYTES, the resulting ! * object will be obtained directly from __new_alloc ! * 2. In all other cases, we allocate an object of size exactly ! * _S_round_up(requested_size). Thus the client has enough size ! * information that we can return the object to the proper free list ! * without permanently losing part of the object. ! * ! * The first template parameter specifies whether more than one thread may ! * use this allocator. It is safe to allocate an object from one instance ! * of a default_alloc and deallocate it with another one. This effectively ! * transfers its ownership to the second one. This may have undesirable ! * effects on reference locality. ! * ! * The second parameter is unused and serves only to allow the creation of ! * multiple default_alloc instances. Note that containers built on different ! * allocator instances have different types, limiting the utility of this ! * approach. If you do not wish to share the free lists with the main ! * default_alloc instance, instantiate this with a non-zero __inst. ! * ! * @endif ! * (See @link Allocators allocators info @endlink for more.) ! */ ! template ! class __default_alloc_template { ! private: ! enum {_ALIGN = 8}; ! enum {_MAX_BYTES = 128}; ! enum {_NFREELISTS = _MAX_BYTES / _ALIGN}; ! union _Obj ! { ! union _Obj* _M_free_list_link; ! char _M_client_data[1]; // The client sees this. ! }; ! static _Obj* volatile _S_free_list[_NFREELISTS]; ! // Chunk allocation state. ! static char* _S_start_free; ! static char* _S_end_free; ! static size_t _S_heap_size; ! static _STL_mutex_lock _S_node_allocator_lock; ! static size_t ! _S_round_up(size_t __bytes) ! { return (((__bytes) + (size_t) _ALIGN-1) & ~((size_t) _ALIGN - 1)); } ! ! static size_t ! _S_freelist_index(size_t __bytes) ! { return (((__bytes) + (size_t)_ALIGN - 1)/(size_t)_ALIGN - 1); } ! ! // Returns an object of size __n, and optionally adds to size __n ! // free list. ! static void* ! _S_refill(size_t __n); ! ! // Allocates a chunk for nobjs of size size. nobjs may be reduced ! // if it is inconvenient to allocate the requested number. ! static char* ! _S_chunk_alloc(size_t __size, int& __nobjs); ! ! // It would be nice to use _STL_auto_lock here. But we need a ! // test whether threads are in use. ! struct _Lock ! { ! _Lock() { if (__threads) _S_node_allocator_lock._M_acquire_lock(); } ! ~_Lock() { if (__threads) _S_node_allocator_lock._M_release_lock(); } ! } __attribute__ ((__unused__)); ! friend struct _Lock; ! ! static _Atomic_word _S_force_new; public: ! // __n must be > 0 ! static void* ! allocate(size_t __n) ! { ! void* __ret = 0; ! // If there is a race through here, assume answer from getenv ! // will resolve in same direction. Inspired by techniques ! // to efficiently support threading found in basic_string.h. ! if (_S_force_new == 0) ! { ! if (getenv("GLIBCPP_FORCE_NEW")) ! __atomic_add(&_S_force_new, 1); ! else ! __atomic_add(&_S_force_new, -1); ! // Trust but verify... ! assert(_S_force_new != 0); ! } ! ! if ((__n > (size_t) _MAX_BYTES) || (_S_force_new > 0)) ! __ret = __new_alloc::allocate(__n); ! else ! { ! _Obj* volatile* __my_free_list = _S_free_list ! + _S_freelist_index(__n); ! // Acquire the lock here with a constructor call. This ! // ensures that it is released in exit or during stack ! // unwinding. ! _Lock __lock_instance; ! _Obj* __restrict__ __result = *__my_free_list; ! if (__builtin_expect(__result == 0, 0)) ! __ret = _S_refill(_S_round_up(__n)); ! else ! { ! *__my_free_list = __result -> _M_free_list_link; ! __ret = __result; ! } ! if (__builtin_expect(__ret == 0, 0)) ! __throw_bad_alloc(); ! } ! return __ret; ! } ! ! // __p may not be 0 ! static void ! deallocate(void* __p, size_t __n) ! { ! if ((__n > (size_t) _MAX_BYTES) || (_S_force_new > 0)) ! __new_alloc::deallocate(__p, __n); ! else ! { ! _Obj* volatile* __my_free_list = _S_free_list ! + _S_freelist_index(__n); ! _Obj* __q = (_Obj*)__p; ! ! // Acquire the lock here with a constructor call. This ! // ensures that it is released in exit or during stack ! // unwinding. ! _Lock __lock_instance; ! __q -> _M_free_list_link = *__my_free_list; ! *__my_free_list = __q; ! } ! } + // _GLIBCPP_DEPRECATED + static void* + reallocate(void* __p, size_t __old_sz, size_t __new_sz); + }; + + template _Atomic_word + __default_alloc_template<__threads, __inst>::_S_force_new = 0; template ! inline bool ! operator==(const __default_alloc_template<__threads,__inst>&, ! const __default_alloc_template<__threads,__inst>&) { return true; } template ! inline bool ! operator!=(const __default_alloc_template<__threads,__inst>&, ! const __default_alloc_template<__threads,__inst>&) { return false; } // We allocate memory in large chunks in order to avoid fragmenting the ! // heap too much. We assume that __size is properly aligned. We hold ! // the allocation lock. template char* ! __default_alloc_template<__threads, __inst>:: ! _S_chunk_alloc(size_t __size, int& __nobjs) { char* __result; size_t __total_bytes = __size * __nobjs; size_t __bytes_left = _S_end_free - _S_start_free; ! ! if (__bytes_left >= __total_bytes) ! { ! __result = _S_start_free; ! _S_start_free += __total_bytes; ! return __result ; ! } ! else if (__bytes_left >= __size) ! { ! __nobjs = (int)(__bytes_left/__size); ! __total_bytes = __size * __nobjs; ! __result = _S_start_free; ! _S_start_free += __total_bytes; ! return __result; ! } ! else ! { ! size_t __bytes_to_get = ! 2 * __total_bytes + _S_round_up(_S_heap_size >> 4); ! // Try to make use of the left-over piece. ! if (__bytes_left > 0) ! { ! _Obj* volatile* __my_free_list = ! _S_free_list + _S_freelist_index(__bytes_left); ! ! ((_Obj*)_S_start_free) -> _M_free_list_link = *__my_free_list; ! *__my_free_list = (_Obj*)_S_start_free; ! } ! _S_start_free = (char*) __new_alloc::allocate(__bytes_to_get); ! if (_S_start_free == 0) ! { ! size_t __i; ! _Obj* volatile* __my_free_list; ! _Obj* __p; ! // Try to make do with what we have. That can't hurt. We ! // do not try smaller requests, since that tends to result ! // in disaster on multi-process machines. ! __i = __size; ! for (; __i <= (size_t) _MAX_BYTES; __i += (size_t) _ALIGN) ! { ! __my_free_list = _S_free_list + _S_freelist_index(__i); ! __p = *__my_free_list; ! if (__p != 0) ! { ! *__my_free_list = __p -> _M_free_list_link; ! _S_start_free = (char*)__p; ! _S_end_free = _S_start_free + __i; ! return _S_chunk_alloc(__size, __nobjs); ! // Any leftover piece will eventually make it to the ! // right free list. ! } ! } ! _S_end_free = 0; // In case of exception. ! _S_start_free = (char*)__new_alloc::allocate(__bytes_to_get); ! // This should either throw an exception or remedy the situation. ! // Thus we assume it succeeded. ! } ! _S_heap_size += __bytes_to_get; ! _S_end_free = _S_start_free + __bytes_to_get; ! return _S_chunk_alloc(__size, __nobjs); ! } } ! ! // Returns an object of size __n, and optionally adds to "size // __n"'s free list. We assume that __n is properly aligned. We // hold the allocation lock. *************** template *** 528,941 **** _Obj* __current_obj; _Obj* __next_obj; int __i; ! ! if (1 == __nobjs) return(__chunk); __my_free_list = _S_free_list + _S_freelist_index(__n); ! ! /* Build free list in chunk */ __result = (_Obj*)__chunk; *__my_free_list = __next_obj = (_Obj*)(__chunk + __n); ! for (__i = 1; ; __i++) { ! __current_obj = __next_obj; ! __next_obj = (_Obj*)((char*)__next_obj + __n); ! if (__nobjs - 1 == __i) { ! __current_obj -> _M_free_list_link = 0; ! break; ! } else { ! __current_obj -> _M_free_list_link = __next_obj; ! } ! } ! return(__result); } template void* ! __default_alloc_template::reallocate(void* __p, ! size_t __old_sz, ! size_t __new_sz) { void* __result; size_t __copy_sz; ! ! if (__old_sz > (size_t) _MAX_BYTES && __new_sz > (size_t) _MAX_BYTES) { return(realloc(__p, __new_sz)); ! } ! if (_S_round_up(__old_sz) == _S_round_up(__new_sz)) return(__p); __result = allocate(__new_sz); __copy_sz = __new_sz > __old_sz? __old_sz : __new_sz; memcpy(__result, __p, __copy_sz); deallocate(__p, __old_sz); ! return(__result); } ! template ! _STL_mutex_lock ! __default_alloc_template<__threads, __inst>::_S_node_allocator_lock ! __STL_MUTEX_INITIALIZER; ! template ! char* __default_alloc_template<__threads, __inst>::_S_start_free = 0; ! template ! char* __default_alloc_template<__threads, __inst>::_S_end_free = 0; ! template ! size_t __default_alloc_template<__threads, __inst>::_S_heap_size = 0; ! template ! typename __default_alloc_template<__threads, __inst>::_Obj* volatile ! __default_alloc_template<__threads, __inst>::_S_free_list[_NFREELISTS]; ! ! typedef __default_alloc_template __alloc; ! typedef __default_alloc_template __single_client_alloc; - #endif /* ! __USE_MALLOC */ ! /** ! * This is a "standard" allocator, as per [20.4]. The private _Alloc is ! * "SGI" style. (See comments at the top of stl_alloc.h.) ! * ! * The underlying allocator behaves as follows. ! * - if __USE_MALLOC then ! * - thread safety depends on malloc and is entirely out of our hands ! * - __malloc_alloc_template is used for memory requests ! * - else (the default) ! * - __default_alloc_template is used via two typedefs ! * - "__single_client_alloc" typedef does no locking for threads ! * - "__alloc" typedef is threadsafe via the locks ! * - __new_alloc is used for memory requests ! * ! * (See @link Allocators allocators info @endlink for more.) ! */ ! template ! class allocator ! { ! typedef __alloc _Alloc; // The underlying allocator. ! public: ! typedef size_t size_type; ! typedef ptrdiff_t difference_type; ! typedef _Tp* pointer; ! typedef const _Tp* const_pointer; ! typedef _Tp& reference; ! typedef const _Tp& const_reference; ! typedef _Tp value_type; ! template struct rebind { ! typedef allocator<_Tp1> other; ! }; ! allocator() throw() {} ! allocator(const allocator&) throw() {} ! template allocator(const allocator<_Tp1>&) throw() {} ! ~allocator() throw() {} ! pointer address(reference __x) const { return &__x; } ! const_pointer address(const_reference __x) const { return &__x; } ! // __n is permitted to be 0. The C++ standard says nothing about what ! // the return value is when __n == 0. ! _Tp* allocate(size_type __n, const void* = 0) { ! return __n != 0 ? static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp))) ! : 0; ! } ! // __p is not permitted to be a null pointer. ! void deallocate(pointer __p, size_type __n) ! { _Alloc::deallocate(__p, __n * sizeof(_Tp)); } ! size_type max_size() const throw() ! { return size_t(-1) / sizeof(_Tp); } ! void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); } ! void destroy(pointer __p) { __p->~_Tp(); } ! }; ! template<> ! class allocator { ! public: ! typedef size_t size_type; ! typedef ptrdiff_t difference_type; ! typedef void* pointer; ! typedef const void* const_pointer; ! typedef void value_type; ! template struct rebind { ! typedef allocator<_Tp1> other; ! }; ! }; ! template ! inline bool operator==(const allocator<_T1>&, const allocator<_T2>&) ! { ! return true; ! } ! template ! inline bool operator!=(const allocator<_T1>&, const allocator<_T2>&) ! { ! return false; ! } ! /** ! * @if maint ! * Allocator adaptor to turn an "SGI" style allocator (e.g., __alloc, ! * __malloc_alloc_template) into a "standard" conforming allocator. Note ! * that this adaptor does *not* assume that all objects of the underlying ! * alloc class are identical, nor does it assume that all of the underlying ! * alloc's member functions are static member functions. Note, also, that ! * __allocator<_Tp, __alloc> is essentially the same thing as allocator<_Tp>. ! * @endif ! * (See @link Allocators allocators info @endlink for more.) ! */ ! template ! struct __allocator ! { ! _Alloc __underlying_alloc; ! typedef size_t size_type; ! typedef ptrdiff_t difference_type; ! typedef _Tp* pointer; ! typedef const _Tp* const_pointer; ! typedef _Tp& reference; ! typedef const _Tp& const_reference; ! typedef _Tp value_type; ! template struct rebind { ! typedef __allocator<_Tp1, _Alloc> other; ! }; ! __allocator() throw() {} ! __allocator(const __allocator& __a) throw() ! : __underlying_alloc(__a.__underlying_alloc) {} ! template ! __allocator(const __allocator<_Tp1, _Alloc>& __a) throw() ! : __underlying_alloc(__a.__underlying_alloc) {} ! ~__allocator() throw() {} ! pointer address(reference __x) const { return &__x; } ! const_pointer address(const_reference __x) const { return &__x; } ! // __n is permitted to be 0. ! _Tp* allocate(size_type __n, const void* = 0) { ! return __n != 0 ! ? static_cast<_Tp*>(__underlying_alloc.allocate(__n * sizeof(_Tp))) ! : 0; ! } ! // __p is not permitted to be a null pointer. ! void deallocate(pointer __p, size_type __n) ! { __underlying_alloc.deallocate(__p, __n * sizeof(_Tp)); } ! size_type max_size() const throw() ! { return size_t(-1) / sizeof(_Tp); } ! void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); } ! void destroy(pointer __p) { __p->~_Tp(); } ! }; ! template ! class __allocator { ! typedef size_t size_type; ! typedef ptrdiff_t difference_type; ! typedef void* pointer; ! typedef const void* const_pointer; ! typedef void value_type; ! template struct rebind { ! typedef __allocator<_Tp1, _Alloc> other; ! }; ! }; ! template ! inline bool operator==(const __allocator<_Tp, _Alloc>& __a1, ! const __allocator<_Tp, _Alloc>& __a2) ! { ! return __a1.__underlying_alloc == __a2.__underlying_alloc; ! } ! template ! inline bool operator!=(const __allocator<_Tp, _Alloc>& __a1, ! const __allocator<_Tp, _Alloc>& __a2) ! { ! return __a1.__underlying_alloc != __a2.__underlying_alloc; ! } ! //@{ ! /** Comparison operators for all of the predifined SGI-style allocators. ! * This ensures that __allocator (for example) will work ! * correctly. As required, all allocators compare equal. ! */ ! template ! inline bool operator==(const __malloc_alloc_template&, ! const __malloc_alloc_template&) ! { ! return true; ! } ! template ! inline bool operator!=(const __malloc_alloc_template<__inst>&, ! const __malloc_alloc_template<__inst>&) ! { ! return false; ! } ! template ! inline bool operator==(const __debug_alloc<_Alloc>&, ! const __debug_alloc<_Alloc>&) { ! return true; ! } ! template ! inline bool operator!=(const __debug_alloc<_Alloc>&, ! const __debug_alloc<_Alloc>&) { ! return false; ! } ! //@} ! /** ! * @if maint ! * Another allocator adaptor: _Alloc_traits. This serves two purposes. ! * First, make it possible to write containers that can use either "SGI" ! * style allocators or "standard" allocators. Second, provide a mechanism ! * so that containers can query whether or not the allocator has distinct ! * instances. If not, the container can avoid wasting a word of memory to ! * store an empty object. For examples of use, see stl_vector.h, etc, or ! * any of the other classes derived from this one. ! * ! * This adaptor uses partial specialization. The general case of ! * _Alloc_traits<_Tp, _Alloc> assumes that _Alloc is a ! * standard-conforming allocator, possibly with non-equal instances and ! * non-static members. (It still behaves correctly even if _Alloc has ! * static member and if all instances are equal. Refinements affect ! * performance, not correctness.) ! * ! * There are always two members: allocator_type, which is a standard- ! * conforming allocator type for allocating objects of type _Tp, and ! * _S_instanceless, a static const member of type bool. If ! * _S_instanceless is true, this means that there is no difference ! * between any two instances of type allocator_type. Furthermore, if ! * _S_instanceless is true, then _Alloc_traits has one additional ! * member: _Alloc_type. This type encapsulates allocation and ! * deallocation of objects of type _Tp through a static interface; it ! * has two member functions, whose signatures are ! * ! * - static _Tp* allocate(size_t) ! * - static void deallocate(_Tp*, size_t) ! * ! * The size_t parameters are "standard" style (see top of stl_alloc.h) in ! * that they take counts, not sizes. ! * ! * @endif ! * (See @link Allocators allocators info @endlink for more.) ! */ ! //@{ ! // The fully general version. ! template ! struct _Alloc_traits ! { ! static const bool _S_instanceless = false; ! typedef typename _Allocator::template rebind<_Tp>::other allocator_type; ! }; ! template ! const bool _Alloc_traits<_Tp, _Allocator>::_S_instanceless; ! /// The version for the default allocator. ! template ! struct _Alloc_traits<_Tp, allocator<_Tp1> > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __alloc> _Alloc_type; ! typedef allocator<_Tp> allocator_type; ! }; ! //@} ! //@{ ! /// Versions for the predefined "SGI" style allocators. ! template ! struct _Alloc_traits<_Tp, __malloc_alloc_template<__inst> > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type; ! typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type; ! }; ! #ifndef __USE_MALLOC ! template ! struct _Alloc_traits<_Tp, __default_alloc_template<__threads, __inst> > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __default_alloc_template<__threads, __inst> > ! _Alloc_type; ! typedef __allocator<_Tp, __default_alloc_template<__threads, __inst> > ! allocator_type; ! }; ! #endif ! template ! struct _Alloc_traits<_Tp, __debug_alloc<_Alloc> > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type; ! typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type; ! }; ! //@} ! //@{ ! /// Versions for the __allocator adaptor used with the predefined "SGI" style allocators. ! template ! struct _Alloc_traits<_Tp, ! __allocator<_Tp1, __malloc_alloc_template<__inst> > > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type; ! typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type; ! }; ! #ifndef __USE_MALLOC ! template ! struct _Alloc_traits<_Tp, ! __allocator<_Tp1, ! __default_alloc_template<__thr, __inst> > > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __default_alloc_template<__thr,__inst> > ! _Alloc_type; ! typedef __allocator<_Tp, __default_alloc_template<__thr,__inst> > ! allocator_type; ! }; ! #endif ! template ! struct _Alloc_traits<_Tp, __allocator<_Tp1, __debug_alloc<_Alloc> > > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type; ! typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type; ! }; ! //@} // Inhibit implicit instantiations for required instantiations, ! // which are defined via explicit instantiations elsewhere. // NB: This syntax is a GNU extension. extern template class allocator; extern template class allocator; ! #ifdef __USE_MALLOC ! extern template class __malloc_alloc_template<0>; ! #else ! extern template class __default_alloc_template; ! #endif } // namespace std ! #endif /* __GLIBCPP_INTERNAL_ALLOC_H */ ! ! // Local Variables: ! // mode:C++ ! // End: --- 564,984 ---- _Obj* __current_obj; _Obj* __next_obj; int __i; ! ! if (1 == __nobjs) ! return __chunk; __my_free_list = _S_free_list + _S_freelist_index(__n); ! ! // Build free list in chunk. __result = (_Obj*)__chunk; *__my_free_list = __next_obj = (_Obj*)(__chunk + __n); ! for (__i = 1; ; __i++) ! { ! __current_obj = __next_obj; ! __next_obj = (_Obj*)((char*)__next_obj + __n); ! if (__nobjs - 1 == __i) ! { ! __current_obj -> _M_free_list_link = 0; ! break; ! } ! else ! __current_obj -> _M_free_list_link = __next_obj; ! } ! return __result; } + // _GLIBCPP_DEPRECATED template void* ! __default_alloc_template:: ! reallocate(void* __p, size_t __old_sz, size_t __new_sz) { void* __result; size_t __copy_sz; ! ! if (__old_sz > (size_t) _MAX_BYTES && __new_sz > (size_t) _MAX_BYTES) return(realloc(__p, __new_sz)); ! if (_S_round_up(__old_sz) == _S_round_up(__new_sz)) ! return(__p); __result = allocate(__new_sz); __copy_sz = __new_sz > __old_sz? __old_sz : __new_sz; memcpy(__result, __p, __copy_sz); deallocate(__p, __old_sz); ! return __result; } ! template ! _STL_mutex_lock ! __default_alloc_template<__threads,__inst>::_S_node_allocator_lock ! __STL_MUTEX_INITIALIZER; ! template ! char* __default_alloc_template<__threads,__inst>::_S_start_free = 0; ! template ! char* __default_alloc_template<__threads,__inst>::_S_end_free = 0; ! template ! size_t __default_alloc_template<__threads,__inst>::_S_heap_size = 0; ! template ! typename __default_alloc_template<__threads,__inst>::_Obj* volatile ! __default_alloc_template<__threads,__inst>::_S_free_list[_NFREELISTS]; + typedef __default_alloc_template __alloc; + typedef __default_alloc_template __single_client_alloc; + /** + * @brief The "standard" allocator, as per [20.4]. + * + * The private _Alloc is "SGI" style. (See comments at the top + * of stl_alloc.h.) + * + * The underlying allocator behaves as follows. + * - __default_alloc_template is used via two typedefs + * - "__single_client_alloc" typedef does no locking for threads + * - "__alloc" typedef is threadsafe via the locks + * - __new_alloc is used for memory requests + * + * (See @link Allocators allocators info @endlink for more.) + */ + template + class allocator + { + typedef __alloc _Alloc; // The underlying allocator. + public: + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef _Tp* pointer; + typedef const _Tp* const_pointer; + typedef _Tp& reference; + typedef const _Tp& const_reference; + typedef _Tp value_type; ! template ! struct rebind ! { typedef allocator<_Tp1> other; }; ! allocator() throw() {} ! allocator(const allocator&) throw() {} ! template ! allocator(const allocator<_Tp1>&) throw() {} ! ~allocator() throw() {} ! pointer ! address(reference __x) const { return &__x; } ! const_pointer ! address(const_reference __x) const { return &__x; } ! // NB: __n is permitted to be 0. The C++ standard says nothing ! // about what the return value is when __n == 0. ! _Tp* ! allocate(size_type __n, const void* = 0) ! { ! _Tp* __ret = 0; ! if (__n) ! { ! if (__n <= this->max_size()) ! __ret = static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp))); ! else ! __throw_bad_alloc(); ! } ! return __ret; ! } ! // __p is not permitted to be a null pointer. ! void ! deallocate(pointer __p, size_type __n) ! { _Alloc::deallocate(__p, __n * sizeof(_Tp)); } ! size_type ! max_size() const throw() { return size_t(-1) / sizeof(_Tp); } ! void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); } ! void destroy(pointer __p) { __p->~_Tp(); } ! }; ! template<> ! class allocator ! { ! public: ! typedef size_t size_type; ! typedef ptrdiff_t difference_type; ! typedef void* pointer; ! typedef const void* const_pointer; ! typedef void value_type; ! template ! struct rebind ! { typedef allocator<_Tp1> other; }; ! }; ! template ! inline bool ! operator==(const allocator<_T1>&, const allocator<_T2>&) ! { return true; } ! template ! inline bool ! operator!=(const allocator<_T1>&, const allocator<_T2>&) ! { return false; } ! /** ! * @if maint ! * Allocator adaptor to turn an "SGI" style allocator (e.g., ! * __alloc, __malloc_alloc_template) into a "standard" conforming ! * allocator. Note that this adaptor does *not* assume that all ! * objects of the underlying alloc class are identical, nor does it ! * assume that all of the underlying alloc's member functions are ! * static member functions. Note, also, that __allocator<_Tp, ! * __alloc> is essentially the same thing as allocator<_Tp>. ! * @endif ! * (See @link Allocators allocators info @endlink for more.) ! */ ! template ! struct __allocator ! { ! _Alloc __underlying_alloc; ! ! typedef size_t size_type; ! typedef ptrdiff_t difference_type; ! typedef _Tp* pointer; ! typedef const _Tp* const_pointer; ! typedef _Tp& reference; ! typedef const _Tp& const_reference; ! typedef _Tp value_type; ! template ! struct rebind ! { typedef __allocator<_Tp1, _Alloc> other; }; ! __allocator() throw() {} ! __allocator(const __allocator& __a) throw() ! : __underlying_alloc(__a.__underlying_alloc) {} ! template ! __allocator(const __allocator<_Tp1, _Alloc>& __a) throw() ! : __underlying_alloc(__a.__underlying_alloc) {} ! ~__allocator() throw() {} ! pointer ! address(reference __x) const { return &__x; } ! const_pointer ! address(const_reference __x) const { return &__x; } ! // NB: __n is permitted to be 0. The C++ standard says nothing ! // about what the return value is when __n == 0. ! _Tp* ! allocate(size_type __n, const void* = 0) ! { ! _Tp* __ret = 0; ! if (__n) ! __ret = static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp))); ! return __ret; ! } ! // __p is not permitted to be a null pointer. ! void ! deallocate(pointer __p, size_type __n) ! { __underlying_alloc.deallocate(__p, __n * sizeof(_Tp)); } ! ! size_type ! max_size() const throw() { return size_t(-1) / sizeof(_Tp); } ! ! void ! construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); } ! ! void ! destroy(pointer __p) { __p->~_Tp(); } ! }; ! template ! struct __allocator ! { ! typedef size_t size_type; ! typedef ptrdiff_t difference_type; ! typedef void* pointer; ! typedef const void* const_pointer; ! typedef void value_type; ! template ! struct rebind ! { typedef __allocator<_Tp1, _Alloc> other; }; ! }; ! template ! inline bool ! operator==(const __allocator<_Tp,_Alloc>& __a1, ! const __allocator<_Tp,_Alloc>& __a2) ! { return __a1.__underlying_alloc == __a2.__underlying_alloc; } ! template ! inline bool ! operator!=(const __allocator<_Tp, _Alloc>& __a1, ! const __allocator<_Tp, _Alloc>& __a2) ! { return __a1.__underlying_alloc != __a2.__underlying_alloc; } ! //@{ ! /** Comparison operators for all of the predifined SGI-style allocators. ! * This ensures that __allocator (for example) will work ! * correctly. As required, all allocators compare equal. ! */ ! template ! inline bool ! operator==(const __malloc_alloc_template&, ! const __malloc_alloc_template&) ! { return true; } ! template ! inline bool ! operator!=(const __malloc_alloc_template<__inst>&, ! const __malloc_alloc_template<__inst>&) ! { return false; } ! template ! inline bool ! operator==(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) ! { return true; } ! template ! inline bool ! operator!=(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) ! { return false; } ! //@} ! /** ! * @if maint ! * Another allocator adaptor: _Alloc_traits. This serves two purposes. ! * First, make it possible to write containers that can use either "SGI" ! * style allocators or "standard" allocators. Second, provide a mechanism ! * so that containers can query whether or not the allocator has distinct ! * instances. If not, the container can avoid wasting a word of memory to ! * store an empty object. For examples of use, see stl_vector.h, etc, or ! * any of the other classes derived from this one. ! * ! * This adaptor uses partial specialization. The general case of ! * _Alloc_traits<_Tp, _Alloc> assumes that _Alloc is a ! * standard-conforming allocator, possibly with non-equal instances and ! * non-static members. (It still behaves correctly even if _Alloc has ! * static member and if all instances are equal. Refinements affect ! * performance, not correctness.) ! * ! * There are always two members: allocator_type, which is a standard- ! * conforming allocator type for allocating objects of type _Tp, and ! * _S_instanceless, a static const member of type bool. If ! * _S_instanceless is true, this means that there is no difference ! * between any two instances of type allocator_type. Furthermore, if ! * _S_instanceless is true, then _Alloc_traits has one additional ! * member: _Alloc_type. This type encapsulates allocation and ! * deallocation of objects of type _Tp through a static interface; it ! * has two member functions, whose signatures are ! * ! * - static _Tp* allocate(size_t) ! * - static void deallocate(_Tp*, size_t) ! * ! * The size_t parameters are "standard" style (see top of stl_alloc.h) in ! * that they take counts, not sizes. ! * ! * @endif ! * (See @link Allocators allocators info @endlink for more.) ! */ ! //@{ ! // The fully general version. ! template ! struct _Alloc_traits ! { ! static const bool _S_instanceless = false; ! typedef typename _Allocator::template rebind<_Tp>::other allocator_type; ! }; ! template ! const bool _Alloc_traits<_Tp, _Allocator>::_S_instanceless; ! /// The version for the default allocator. ! template ! struct _Alloc_traits<_Tp, allocator<_Tp1> > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __alloc> _Alloc_type; ! typedef allocator<_Tp> allocator_type; ! }; ! //@} ! //@{ ! /// Versions for the predefined "SGI" style allocators. ! template ! struct _Alloc_traits<_Tp, __malloc_alloc_template<__inst> > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type; ! typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type; ! }; ! template ! struct _Alloc_traits<_Tp, __default_alloc_template<__threads, __inst> > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __default_alloc_template<__threads, __inst> > ! _Alloc_type; ! typedef __allocator<_Tp, __default_alloc_template<__threads, __inst> > ! allocator_type; ! }; ! template ! struct _Alloc_traits<_Tp, __debug_alloc<_Alloc> > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type; ! typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type; ! }; ! //@} ! //@{ ! /// Versions for the __allocator adaptor used with the predefined ! /// "SGI" style allocators. ! template ! struct _Alloc_traits<_Tp, ! __allocator<_Tp1, __malloc_alloc_template<__inst> > > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type; ! typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type; ! }; ! template ! struct _Alloc_traits<_Tp, __allocator<_Tp1, __default_alloc_template<__thr, __inst> > > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __default_alloc_template<__thr,__inst> > ! _Alloc_type; ! typedef __allocator<_Tp, __default_alloc_template<__thr,__inst> > ! allocator_type; ! }; ! template ! struct _Alloc_traits<_Tp, __allocator<_Tp1, __debug_alloc<_Alloc> > > ! { ! static const bool _S_instanceless = true; ! typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type; ! typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type; ! }; ! //@} // Inhibit implicit instantiations for required instantiations, ! // which are defined via explicit instantiations elsewhere. // NB: This syntax is a GNU extension. extern template class allocator; extern template class allocator; ! extern template class __default_alloc_template; } // namespace std ! #endif diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/bits/stl_bvector.h gcc-3.2.2/libstdc++-v3/include/bits/stl_bvector.h *** gcc-3.2.1/libstdc++-v3/include/bits/stl_bvector.h Sat Jun 1 00:51:21 2002 --- gcc-3.2.2/libstdc++-v3/include/bits/stl_bvector.h Mon Dec 2 20:01:53 2002 *************** template *** 611,617 **** } void reserve(size_type __n) { ! if (capacity() < __n) { _Bit_type * __q = _M_bit_alloc(__n); _M_finish = copy(begin(), end(), iterator(__q, 0)); _M_deallocate(); --- 611,619 ---- } void reserve(size_type __n) { ! if (__n > this->max_size()) ! __throw_length_error("vector::reserve"); ! if (this->capacity() < __n) { _Bit_type * __q = _M_bit_alloc(__n); _M_finish = copy(begin(), end(), iterator(__q, 0)); _M_deallocate(); diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/bits/stl_vector.h gcc-3.2.2/libstdc++-v3/include/bits/stl_vector.h *** gcc-3.2.1/libstdc++-v3/include/bits/stl_vector.h Fri Apr 19 07:59:11 2002 --- gcc-3.2.2/libstdc++-v3/include/bits/stl_vector.h Mon Dec 2 20:01:53 2002 *************** public: *** 391,397 **** * reallocation of memory and copy of vector data. */ void reserve(size_type __n) { ! if (capacity() < __n) { const size_type __old_size = size(); pointer __tmp = _M_allocate_and_copy(__n, _M_start, _M_finish); _Destroy(_M_start, _M_finish); --- 391,399 ---- * reallocation of memory and copy of vector data. */ void reserve(size_type __n) { ! if (__n > this->max_size()) ! __throw_length_error("vector::reserve"); ! if (this->capacity() < __n) { const size_type __old_size = size(); pointer __tmp = _M_allocate_and_copy(__n, _M_start, _M_finish); _Destroy(_M_start, _M_finish); diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/bits/streambuf.tcc gcc-3.2.2/libstdc++-v3/include/bits/streambuf.tcc *** gcc-3.2.1/libstdc++-v3/include/bits/streambuf.tcc Tue Nov 5 00:51:35 2002 --- gcc-3.2.2/libstdc++-v3/include/bits/streambuf.tcc Tue Dec 3 16:13:03 2002 *************** namespace std *** 69,75 **** bool __testpos = _M_in_cur && _M_in_beg < _M_in_cur; bool __testne = _M_in_cur && !traits_type::eq(__c, this->gptr()[-1]); if (!__testpos || __testne) ! __ret = pbackfail(traits_type::to_int_type(__c)); else { _M_in_cur_move(-1); --- 69,75 ---- bool __testpos = _M_in_cur && _M_in_beg < _M_in_cur; bool __testne = _M_in_cur && !traits_type::eq(__c, this->gptr()[-1]); if (!__testpos || __testne) ! __ret = this->pbackfail(traits_type::to_int_type(__c)); else { _M_in_cur_move(-1); *************** namespace std *** 209,215 **** { while (__testput && __bufsize != -1) { ! if (__bufsize != 0 && __sbin->gptr() != NULL) { __xtrct = __sbout->sputn(__sbin->gptr(), __bufsize); __ret += __xtrct; --- 209,216 ---- { while (__testput && __bufsize != -1) { ! if (__bufsize != 0 && __sbin->gptr() != NULL ! && __sbin->gptr() + __bufsize <= __sbin->egptr()) { __xtrct = __sbout->sputn(__sbin->gptr(), __bufsize); __ret += __xtrct; *************** namespace std *** 219,226 **** } else { ! _CharT __buf[256]; ! streamsize __charsread = __sbin->sgetn(__buf, sizeof(__buf)); __xtrct = __sbout->sputn(__buf, __charsread); __ret += __xtrct; if (__xtrct != __charsread) --- 220,230 ---- } else { ! size_t __size = ! __sbin->_M_buf_size_opt > 0 ? __sbin->_M_buf_size_opt : 1; ! _CharT* __buf = ! static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __size)); ! streamsize __charsread = __sbin->sgetn(__buf, __size); __xtrct = __sbout->sputn(__buf, __charsread); __ret += __xtrct; if (__xtrct != __charsread) diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/std/std_fstream.h gcc-3.2.2/libstdc++-v3/include/std/std_fstream.h *** gcc-3.2.1/libstdc++-v3/include/std/std_fstream.h Thu Aug 1 21:29:18 2002 --- gcc-3.2.2/libstdc++-v3/include/std/std_fstream.h Sat Jan 11 01:54:19 2003 *************** *** 1,6 **** // File based streams -*- C++ -*- ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,6 ---- // File based streams -*- C++ -*- ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** namespace std *** 141,150 **** _M_underflow_common(bool __bump); virtual int_type ! underflow() { return _M_underflow_common(false); } virtual int_type ! uflow() { return _M_underflow_common(true); } virtual int_type pbackfail(int_type __c = _Traits::eof()); --- 141,150 ---- _M_underflow_common(bool __bump); virtual int_type ! underflow(); virtual int_type ! uflow(); virtual int_type pbackfail(int_type __c = _Traits::eof()); *************** namespace std *** 297,302 **** --- 297,314 ---- basic_filebuf::_M_underflow_common(bool __bump); #endif + // Generic definitions. + template + basic_filebuf<_CharT, _Traits>::int_type + basic_filebuf<_CharT, _Traits>::underflow() + { return _M_underflow_common(false); } + + template + basic_filebuf<_CharT, _Traits>::int_type + basic_filebuf<_CharT, _Traits>::uflow() + { return _M_underflow_common(true); } + + // 27.8.1.5 Template class basic_ifstream /** * Derivation of general input streams, specific to files. diff -Nrc3pad gcc-3.2.1/libstdc++-v3/include/std/std_streambuf.h gcc-3.2.2/libstdc++-v3/include/std/std_streambuf.h *** gcc-3.2.1/libstdc++-v3/include/std/std_streambuf.h Thu Aug 1 21:29:18 2002 --- gcc-3.2.2/libstdc++-v3/include/std/std_streambuf.h Thu Jan 23 23:16:36 2003 *************** *** 1,6 **** // Stream buffer classes -*- C++ -*- ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,6 ---- // Stream buffer classes -*- C++ -*- ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** namespace std *** 243,249 **** _M_buf_size = 0; _M_buf_size_opt = 0; _M_mode = ios_base::openmode(0); - _M_buf_locale_init = false; } // Locales: --- 243,248 ---- *************** namespace std *** 257,268 **** locale getloc() const ! { ! if (_M_buf_locale_init) ! return _M_buf_locale; ! else ! return locale(); ! } // Buffer and positioning: __streambuf_type* --- 256,262 ---- locale getloc() const ! { return _M_buf_locale; } // Buffer and positioning: __streambuf_type* *************** namespace std *** 351,357 **** _M_buf_unified(false), _M_in_beg(0), _M_in_cur(0), _M_in_end(0), _M_out_beg(0), _M_out_cur(0), _M_out_end(0), _M_mode(ios_base::openmode(0)), _M_buf_locale(locale()), ! _M_buf_locale_init(false), _M_pback_cur_save(0), _M_pback_end_save(0), _M_pback_init(false) { } --- 345,351 ---- _M_buf_unified(false), _M_in_beg(0), _M_in_cur(0), _M_in_end(0), _M_out_beg(0), _M_out_cur(0), _M_out_end(0), _M_mode(ios_base::openmode(0)), _M_buf_locale(locale()), ! _M_pback_cur_save(0), _M_pback_end_save(0), _M_pback_init(false) { } *************** namespace std *** 405,411 **** virtual void imbue(const locale& __loc) { - _M_buf_locale_init = true; if (_M_buf_locale != __loc) _M_buf_locale = __loc; } --- 399,404 ---- diff -Nrc3pad gcc-3.2.1/libstdc++-v3/libio/ChangeLog gcc-3.2.2/libstdc++-v3/libio/ChangeLog *** gcc-3.2.1/libstdc++-v3/libio/ChangeLog Tue Nov 19 17:50:14 2002 --- gcc-3.2.2/libstdc++-v3/libio/ChangeLog Wed Feb 5 03:01:58 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-02-05 Release Manager + + * GCC 3.2.2 Released. + 2002-11-19 Release Manager * GCC 3.2.1 Released. diff -Nrc3pad gcc-3.2.1/libstdc++-v3/libio/Makefile.in gcc-3.2.2/libstdc++-v3/libio/Makefile.in *** gcc-3.2.1/libstdc++-v3/libio/Makefile.in Fri Aug 23 02:43:03 2002 --- gcc-3.2.2/libstdc++-v3/libio/Makefile.in Tue Jan 7 03:44:00 2003 *************** CMESSAGES_H = @CMESSAGES_H@ *** 76,81 **** --- 76,82 ---- CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ CSTDIO_H = @CSTDIO_H@ + CTIME_H = @CTIME_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ diff -Nrc3pad gcc-3.2.1/libstdc++-v3/libmath/Makefile.in gcc-3.2.2/libstdc++-v3/libmath/Makefile.in *** gcc-3.2.1/libstdc++-v3/libmath/Makefile.in Fri Sep 13 02:25:49 2002 --- gcc-3.2.2/libstdc++-v3/libmath/Makefile.in Tue Jan 7 03:44:00 2003 *************** CMESSAGES_H = @CMESSAGES_H@ *** 76,81 **** --- 76,82 ---- CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ CSTDIO_H = @CSTDIO_H@ + CTIME_H = @CTIME_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ diff -Nrc3pad gcc-3.2.1/libstdc++-v3/libsupc++/Makefile.in gcc-3.2.2/libstdc++-v3/libsupc++/Makefile.in *** gcc-3.2.1/libstdc++-v3/libsupc++/Makefile.in Fri Aug 23 02:43:04 2002 --- gcc-3.2.2/libstdc++-v3/libsupc++/Makefile.in Tue Jan 7 03:44:00 2003 *************** CMESSAGES_H = @CMESSAGES_H@ *** 75,80 **** --- 75,81 ---- CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ CSTDIO_H = @CSTDIO_H@ + CTIME_H = @CTIME_H@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ DEBUG_FLAGS = @DEBUG_FLAGS@ diff -Nrc3pad gcc-3.2.1/libstdc++-v3/libsupc++/eh_personality.cc gcc-3.2.2/libstdc++-v3/libsupc++/eh_personality.cc *** gcc-3.2.1/libstdc++-v3/libsupc++/eh_personality.cc Sun Mar 31 02:54:08 2002 --- gcc-3.2.2/libstdc++-v3/libsupc++/eh_personality.cc Fri Nov 22 17:54:04 2002 *************** *** 1,5 **** // -*- C++ -*- The GNU C++ exception personality routine. ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of GNU CC. // --- 1,5 ---- // -*- C++ -*- The GNU C++ exception personality routine. ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of GNU CC. // diff -Nrc3pad gcc-3.2.1/libstdc++-v3/libsupc++/tinfo.cc gcc-3.2.2/libstdc++-v3/libsupc++/tinfo.cc *** gcc-3.2.1/libstdc++-v3/libsupc++/tinfo.cc Thu Aug 1 21:29:18 2002 --- gcc-3.2.2/libstdc++-v3/libsupc++/tinfo.cc Tue Jan 28 17:25:50 2003 *************** *** 1,5 **** // Methods for type_info for -*- C++ -*- Run Time Type Identification. ! // Copyright (C) 1994, 1996, 1998, 1999, 2000, 2001, 2002 // Free Software Foundation // // This file is part of GNU CC. --- 1,5 ---- // Methods for type_info for -*- C++ -*- Run Time Type Identification. ! // Copyright (C) 1994, 1996, 1998, 1999, 2000, 2001, 2002, 2003 // Free Software Foundation // // This file is part of GNU CC. *************** __do_dyncast (ptrdiff_t src2dst, *** 465,472 **** result.whole2dst = __sub_kind (result.whole2dst | result2.whole2dst); } ! else if ((result.dst_ptr != 0 | result_ambig) ! && (result2.dst_ptr != 0 | result2_ambig)) { // Found two different DST_TYPE bases, or a valid one and a set of // ambiguous ones, must disambiguate. See whether SRC_PTR is --- 465,473 ---- result.whole2dst = __sub_kind (result.whole2dst | result2.whole2dst); } ! else if ((result.dst_ptr != 0 & result2.dst_ptr != 0) ! || (result.dst_ptr != 0 & result2_ambig) ! || (result2.dst_ptr != 0 & result_ambig)) { // Found two different DST_TYPE bases, or a valid one and a set of // ambiguous ones, must disambiguate. See whether SRC_PTR is diff -Nrc3pad gcc-3.2.1/libstdc++-v3/po/Makefile.in gcc-3.2.2/libstdc++-v3/po/Makefile.in *** gcc-3.2.1/libstdc++-v3/po/Makefile.in Fri Aug 23 02:43:04 2002 --- gcc-3.2.2/libstdc++-v3/po/Makefile.in Tue Jan 7 03:44:01 2003 *************** CMESSAGES_H = @CMESSAGES_H@ *** 76,81 **** --- 76,82 ---- CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ CSTDIO_H = @CSTDIO_H@ + CTIME_H = @CTIME_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ diff -Nrc3pad gcc-3.2.1/libstdc++-v3/src/Makefile.in gcc-3.2.2/libstdc++-v3/src/Makefile.in *** gcc-3.2.1/libstdc++-v3/src/Makefile.in Fri Sep 13 02:25:49 2002 --- gcc-3.2.2/libstdc++-v3/src/Makefile.in Tue Jan 7 03:44:01 2003 *************** CMESSAGES_H = @CMESSAGES_H@ *** 75,80 **** --- 75,81 ---- CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ CSTDIO_H = @CSTDIO_H@ + CTIME_H = @CTIME_H@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ DEBUG_FLAGS = @DEBUG_FLAGS@ diff -Nrc3pad gcc-3.2.1/libstdc++-v3/src/codecvt.cc gcc-3.2.2/libstdc++-v3/src/codecvt.cc *** gcc-3.2.1/libstdc++-v3/src/codecvt.cc Thu Oct 17 02:04:17 2002 --- gcc-3.2.2/libstdc++-v3/src/codecvt.cc Mon Jan 6 18:55:38 2003 *************** namespace std *** 55,66 **** codecvt_base::result codecvt:: do_out(state_type&, const intern_type* __from, ! const intern_type* __from_end, const intern_type*& __from_next, ! extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const { ! size_t __len = min(__from_end - __from, __to_end - __to); ! memcpy(__to, __from, __len); __from_next = __from; __to_next = __to; return noconv; --- 55,67 ---- codecvt_base::result codecvt:: do_out(state_type&, const intern_type* __from, ! const intern_type*, const intern_type*& __from_next, ! extern_type* __to, extern_type*, extern_type*& __to_next) const { ! // _GLIBCPP_RESOLVE_LIB_DEFECTS ! // According to the resolution of DR19, "If returns noconv [...] ! // there are no changes to the values in [to, to_limit)." __from_next = __from; __to_next = __to; return noconv; *************** namespace std *** 78,89 **** codecvt_base::result codecvt:: do_in(state_type&, const extern_type* __from, ! const extern_type* __from_end, const extern_type*& __from_next, ! intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const { ! size_t __len = min(__from_end - __from, __to_end - __to); ! memcpy(__to, __from, __len); __from_next = __from; __to_next = __to; return noconv; --- 79,91 ---- codecvt_base::result codecvt:: do_in(state_type&, const extern_type* __from, ! const extern_type*, const extern_type*& __from_next, ! intern_type* __to, intern_type*, intern_type*& __to_next) const { ! // _GLIBCPP_RESOLVE_LIB_DEFECTS ! // According to the resolution of DR19, "If returns noconv [...] ! // there are no changes to the values in [to, to_limit)." __from_next = __from; __to_next = __to; return noconv; diff -Nrc3pad gcc-3.2.1/libstdc++-v3/src/ios.cc gcc-3.2.2/libstdc++-v3/src/ios.cc *** gcc-3.2.1/libstdc++-v3/src/ios.cc Thu Oct 17 02:04:17 2002 --- gcc-3.2.2/libstdc++-v3/src/ios.cc Mon Dec 2 22:05:20 2002 *************** *** 38,43 **** --- 38,46 ---- #include #include #include + #ifdef _GLIBCPP_HAVE_UNISTD_H + #include + #endif namespace __gnu_cxx { *************** namespace std *** 157,163 **** ios_base::Init::_S_ios_create(bool __sync) { int __out_size = __sync ? 0 : static_cast(BUFSIZ); ! int __in_size = __sync ? 1 : static_cast(BUFSIZ); // NB: The file globals.cc creates the four standard files // with NULL buffers. At this point, we swap out the dummy NULL --- 160,170 ---- ios_base::Init::_S_ios_create(bool __sync) { int __out_size = __sync ? 0 : static_cast(BUFSIZ); ! #ifdef _GLIBCPP_HAVE_ISATTY ! int __in_size = (__sync || isatty (0)) ? 1 : static_cast(BUFSIZ); ! #else ! int __in_size = 1; ! #endif // NB: The file globals.cc creates the four standard files // with NULL buffers. At this point, we swap out the dummy NULL diff -Nrc3pad gcc-3.2.1/libstdc++-v3/src/locale.cc gcc-3.2.2/libstdc++-v3/src/locale.cc *** gcc-3.2.1/libstdc++-v3/src/locale.cc Thu Oct 17 02:04:17 2002 --- gcc-3.2.2/libstdc++-v3/src/locale.cc Tue Jan 7 03:44:01 2003 *************** *** 1,4 **** ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,4 ---- ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** namespace std *** 367,375 **** const locale& locale::classic() { ! static _STL_mutex_lock __lock __STL_MUTEX_INITIALIZER; ! _STL_auto_lock __auto(__lock); ! if (!_S_classic) { try --- 367,373 ---- const locale& locale::classic() { ! // Locking protocol: singleton-called-before-threading-starts if (!_S_classic) { try *************** namespace std *** 453,458 **** --- 451,458 ---- __c_locale locale::facet::_S_c_locale; + char locale::facet::_S_c_name[2]; + locale::facet:: ~facet() { } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/src/localename.cc gcc-3.2.2/libstdc++-v3/src/localename.cc *** gcc-3.2.1/libstdc++-v3/src/localename.cc Thu Oct 17 02:04:17 2002 --- gcc-3.2.2/libstdc++-v3/src/localename.cc Tue Jan 7 03:44:01 2003 *************** namespace std *** 141,176 **** } // Name all the categories. if (!strchr(__s, ';')) { - size_t __len = strlen(__s) + 1; for (size_t __i = 0; __i < _S_categories_size + _S_extra_categories_size; ++__i) { ! _M_names[__i] = new char[__len]; strcpy(_M_names[__i], __s); } } else { ! char* __tmp = strdup(__s); ! __tmp[strlen(__tmp)] = ';'; ! strtok(__tmp, "=;"); for (size_t __i = 0; ! __i < _S_categories_size + _S_extra_categories_size - 1; ++__i) { ! char* __src = strtok(NULL, "=;"); ! char* __new = new char[strlen(__src) + 1]; ! strcpy(__new, __src); _M_names[__i] = __new; - strtok(NULL, "=;"); } - char* __src = strtok(NULL, "=;"); - char* __new = new char[strlen(__src) + 1]; - strcpy(__new, __src); - _M_names[_S_categories_size + _S_extra_categories_size - 1] = __new; - - free(__tmp); } // Construct all standard facets and add them to _M_facets. --- 141,171 ---- } // Name all the categories. + size_t __len = strlen(__s); if (!strchr(__s, ';')) { for (size_t __i = 0; __i < _S_categories_size + _S_extra_categories_size; ++__i) { ! _M_names[__i] = new char[__len + 1]; strcpy(_M_names[__i], __s); } } else { ! const char* __beg = __s; for (size_t __i = 0; ! __i < _S_categories_size + _S_extra_categories_size; ++__i) { ! __beg = strchr(__beg, '=') + 1; ! const char* __end = strchr(__beg, ';'); ! if (!__end) ! __end = __s + __len; ! char* __new = new char[__end - __beg + 1]; ! memcpy(__new, __beg, __end - __beg); ! __new[__end - __beg] = '\0'; _M_names[__i] = __new; } } // Construct all standard facets and add them to _M_facets. *************** namespace std *** 214,220 **** : _M_references(__refs), _M_facets_size(_GLIBCPP_NUM_FACETS) { // Initialize the underlying locale model. ! locale::facet::_S_create_c_locale(locale::facet::_S_c_locale, "C"); _M_facets = new(&facet_vec) facet*[_M_facets_size]; for (size_t __i = 0; __i < _M_facets_size; ++__i) --- 209,218 ---- : _M_references(__refs), _M_facets_size(_GLIBCPP_NUM_FACETS) { // Initialize the underlying locale model. ! locale::facet::_S_c_name[0] = 'C'; ! locale::facet::_S_c_name[1] = '\0'; ! locale::facet::_S_create_c_locale(locale::facet::_S_c_locale, ! locale::facet::_S_c_name); _M_facets = new(&facet_vec) facet*[_M_facets_size]; for (size_t __i = 0; __i < _M_facets_size; ++__i) *************** namespace std *** 225,231 **** __i < _S_categories_size + _S_extra_categories_size; ++__i) { _M_names[__i] = new (&facet_name[__i]) char[2]; ! strcpy(_M_names[__i], "C"); } // This is needed as presently the C++ version of "C" locales --- 223,229 ---- __i < _S_categories_size + _S_extra_categories_size; ++__i) { _M_names[__i] = new (&facet_name[__i]) char[2]; ! strcpy(_M_names[__i], locale::facet::_S_c_name); } // This is needed as presently the C++ version of "C" locales diff -Nrc3pad gcc-3.2.1/libstdc++-v3/src/stl-inst.cc gcc-3.2.2/libstdc++-v3/src/stl-inst.cc *** gcc-3.2.1/libstdc++-v3/src/stl-inst.cc Fri Apr 19 08:28:18 2002 --- gcc-3.2.2/libstdc++-v3/src/stl-inst.cc Thu Dec 5 23:48:55 2002 *************** namespace std *** 39,47 **** template class allocator; template class allocator; - #ifdef __USE_MALLOC - template class __malloc_alloc_template<0>; - #else template class __default_alloc_template; - #endif } // namespace std --- 39,43 ---- diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/20_util/allocator_members.cc gcc-3.2.2/libstdc++-v3/testsuite/20_util/allocator_members.cc *** gcc-3.2.1/libstdc++-v3/testsuite/20_util/allocator_members.cc Tue Aug 7 03:38:27 2001 --- gcc-3.2.2/libstdc++-v3/testsuite/20_util/allocator_members.cc Thu Dec 5 23:48:56 2002 *************** *** 1,6 **** // 2001-06-14 Benjamin Kosnik ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 2001-06-14 Benjamin Kosnik ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 21,26 **** --- 21,27 ---- // 20.4.1.1 allocator members #include + #include #include #include *************** void operator delete(void *v) throw() *** 42,48 **** return std::free(v); } ! int main(void) { bool test = true; std::allocator obj; --- 43,49 ---- return std::free(v); } ! void test01() { bool test = true; std::allocator obj; *************** int main(void) *** 55,60 **** --- 56,89 ---- obj.deallocate(pobj, 256); VERIFY( check_delete ); + } + // libstdc++/8230 + void test02() + { + bool test = true; + try + { + std::allocator alloc; + const std::allocator::size_type n = alloc.max_size(); + int* p = alloc.allocate(n + 1); + p[n] = 2002; + } + catch(const std::bad_alloc& e) + { + // Allowed. + test = true; + } + catch(...) + { + test = false; + } + VERIFY( test ); + } + + int main() + { + test01(); + test02(); return 0; } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/21_strings/capacity.cc gcc-3.2.2/libstdc++-v3/testsuite/21_strings/capacity.cc *** gcc-3.2.1/libstdc++-v3/testsuite/21_strings/capacity.cc Thu Aug 1 21:29:15 2002 --- gcc-3.2.2/libstdc++-v3/testsuite/21_strings/capacity.cc Thu Dec 5 23:48:56 2002 *************** void test01() *** 209,215 **** sz02 = str011.length(); VERIFY( sz02 > sz01 ); ! // trickster allocator (__USE_MALLOC, luke) issues involved with these: std::string str3 = "8-chars_8-chars_"; const char* p3 = str3.c_str(); std::string str4 = str3 + "7-chars"; --- 209,215 ---- sz02 = str011.length(); VERIFY( sz02 > sz01 ); ! // trickster allocator issues involved with these: std::string str3 = "8-chars_8-chars_"; const char* p3 = str3.c_str(); std::string str4 = str3 + "7-chars"; diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc gcc-3.2.2/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc *** gcc-3.2.1/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc Fri Jun 28 08:22:42 2002 --- gcc-3.2.2/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc Sun Jan 5 08:24:56 2003 *************** void test01() *** 36,60 **** const char* from_next; int size = 25; char* c_arr = new char[size]; char* to_next; locale loc; c_codecvt::state_type state; const c_codecvt* cvt = &use_facet(loc); // in result r1 = cvt->in(state, c_lit, c_lit + size, from_next, c_arr, c_arr + size, to_next); VERIFY( r1 == codecvt_base::noconv ); ! VERIFY( !strcmp(c_arr, c_lit) ); VERIFY( from_next == c_lit ); VERIFY( to_next == c_arr ); // out result r2 = cvt->out(state, c_lit, c_lit + size, from_next, c_arr, c_arr + size, to_next); VERIFY( r2 == codecvt_base::noconv ); ! VERIFY( !strcmp(c_arr, c_lit) ); VERIFY( from_next == c_lit ); VERIFY( to_next == c_arr ); --- 36,68 ---- const char* from_next; int size = 25; char* c_arr = new char[size]; + char* c_ref = new char[size]; char* to_next; locale loc; c_codecvt::state_type state; const c_codecvt* cvt = &use_facet(loc); + // According to the resolution of DR19 (see also libstd++/9168), in + // case of degenerate conversion ('noconv'), "there are no changes to + // the values in [to, to_limit)." + memset(c_ref, 'X', size); + // in + memset(c_arr, 'X', size); result r1 = cvt->in(state, c_lit, c_lit + size, from_next, c_arr, c_arr + size, to_next); VERIFY( r1 == codecvt_base::noconv ); ! VERIFY( !memcmp(c_arr, c_ref, size) ); VERIFY( from_next == c_lit ); VERIFY( to_next == c_arr ); // out + memset(c_arr, 'X', size); result r2 = cvt->out(state, c_lit, c_lit + size, from_next, c_arr, c_arr + size, to_next); VERIFY( r2 == codecvt_base::noconv ); ! VERIFY( !memcmp(c_arr, c_ref, size) ); VERIFY( from_next == c_lit ); VERIFY( to_next == c_arr ); *************** void test01() *** 77,82 **** --- 85,91 ---- VERIFY( k == 1 ); delete [] c_arr; + delete [] c_ref; } // libstdc++/5280 diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/23_containers/vector_capacity.cc gcc-3.2.2/libstdc++-v3/testsuite/23_containers/vector_capacity.cc *** gcc-3.2.1/libstdc++-v3/testsuite/23_containers/vector_capacity.cc Tue Aug 7 03:38:30 2001 --- gcc-3.2.2/libstdc++-v3/testsuite/23_containers/vector_capacity.cc Thu Dec 19 01:49:44 2002 *************** *** 1,7 **** // 1999-05-07 // bkoz ! // Copyright (C) 1999 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,7 ---- // 1999-05-07 // bkoz ! // Copyright (C) 1999, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 22,27 **** --- 22,28 ---- // 23.2.4.2 vector capacity #include + #include #include template *************** template *** 29,37 **** struct B { }; ! bool test01() { - // non POD types bool test = true; std::vector< A > vec01; --- 30,37 ---- struct B { }; ! void test01() { // non POD types bool test = true; std::vector< A > vec01; *************** bool test01() *** 51,67 **** vec01.resize(sz01); sz02 = vec01.size(); VERIFY( sz01 == sz02 ); ! #ifdef DEBUG_ASSERT ! assert(test); ! #endif ! ! return test; } int main() { test01(); ! return 0; } --- 51,107 ---- vec01.resize(sz01); sz02 = vec01.size(); VERIFY( sz01 == sz02 ); + } ! // libstdc++/8230 ! void test02() ! { ! bool test = true; ! ! { ! std::vector array; ! const std::size_t size = array.max_size(); ! try ! { ! array.reserve(size); ! } ! catch (const std::length_error& error) ! { ! test &= false; ! } ! catch (const std::bad_alloc& error) ! { ! test &= true; ! } ! catch (...) ! { ! test &= false; ! } ! VERIFY( test ); ! } ! ! { ! std::vector array; ! const std::size_t size = array.max_size() + 1; ! try ! { ! array.reserve(size); ! } ! catch (const std::length_error& error) ! { ! test &= true; ! } ! catch (...) ! { ! test &= false; ! } ! VERIFY( test ); ! } } int main() { test01(); ! test02(); return 0; } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/23_containers/vector_resize.cc gcc-3.2.2/libstdc++-v3/testsuite/23_containers/vector_resize.cc *** gcc-3.2.1/libstdc++-v3/testsuite/23_containers/vector_resize.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/testsuite/23_containers/vector_resize.cc Thu Dec 19 01:49:44 2002 *************** *** 0 **** --- 1,57 ---- + // 1999-05-07 + // bkoz + + // Copyright (C) 1999, 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // 23.2.4.2 vector capacity + + // XXX This test will not work for irix6 because of bug(s) in libc malloc + // XXX for very large allocations. However -lmalloc seems to work. + // See http://gcc.gnu.org/ml/libstdc++/2002-12/msg00131.html + // { dg-options "-lmalloc" { target mips*-*-irix6* } } + + #include + #include + #include + + void test01() + { + bool test = true; + std::vector v; + try + { + v.resize(v.max_size()); + v[v.max_size() - 1] = 2002; + } + catch (const std::bad_alloc& error) + { + test = true; + } + catch (...) + { + test = false; + } + VERIFY( test ); + } + + int main() + { + test01(); + return 0; + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/26_numerics/slice_array_assignment.cc gcc-3.2.2/libstdc++-v3/testsuite/26_numerics/slice_array_assignment.cc *** gcc-3.2.1/libstdc++-v3/testsuite/26_numerics/slice_array_assignment.cc Wed Jun 13 22:16:24 2001 --- gcc-3.2.2/libstdc++-v3/testsuite/26_numerics/slice_array_assignment.cc Tue Dec 10 07:39:51 2002 *************** *** 1,6 **** // 20010613 gdr ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 20010613 gdr ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 30,44 **** // This is DR-253. Test for accessible assignment-operators. #include int main() { ! std::valarray v(10), w(10); ! std::slice s(0, 0, 0); ! v[s] = w[s]; // dg-do compile ! std::slice_array t = v[s]; return 0; } --- 30,50 ---- // This is DR-253. Test for accessible assignment-operators. #include + #include int main() { ! using std::valarray; ! using std::slice; ! valarray v(1, 10), w(2, 10); ! w[slice(0, 3, 3)] = v[slice(2, 3, 3)]; ! VERIFY(v[0] == 1 && w[0] == 1); ! VERIFY(v[3] == 1 && w[3] == 1); ! VERIFY(v[6] == 1 && w[6] == 1); ! ! std::slice_array t = v[slice(0, 10, 1)]; return 0; } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc Thu Aug 1 21:29:16 2002 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc Thu Jan 23 23:16:36 2003 *************** *** 1,6 **** // 2001-05-21 Benjamin Kosnik ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 2001-05-21 Benjamin Kosnik ! // Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 21,26 **** --- 21,27 ---- // 27.8.1.4 Overridden virtual functions #include + #include #include // @require@ %-*.tst %-*.txt *************** void test06() *** 514,519 **** --- 515,542 ---- VERIFY( buffer[0] == 'a' ); } + // libstdc++/9322 + void test07() + { + using std::locale; + bool test = true; + + locale loc; + std::filebuf ob; + VERIFY( ob.getloc() == loc ); + + locale::global(locale("en_US")); + VERIFY( ob.getloc() == loc ); + + locale loc_de ("de_DE"); + locale ret = ob.pubimbue(loc_de); + VERIFY( ob.getloc() == loc_de ); + VERIFY( ret == loc ); + + locale::global(loc); + VERIFY( ob.getloc() == loc_de ); + } + main() { test01(); *************** main() *** 524,528 **** --- 547,552 ---- test05(); test06(); + test07(); return 0; } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/ios_base_storage.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/ios_base_storage.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/ios_base_storage.cc Tue Apr 30 08:27:20 2002 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/ios_base_storage.cc Thu Dec 19 01:49:44 2002 *************** *** 20,25 **** --- 20,31 ---- // 27.4.2.5 ios_base storage functions + // XXX This test will not work for some versions of irix6 because of + // XXX bug(s) in libc malloc for very large allocations. However + // XXX -lmalloc seems to work. + // See http://gcc.gnu.org/ml/gcc/2002-05/msg01012.html + // { dg-options "-lmalloc" { target mips*-*-irix6* } } + #include #include diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/01.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/01.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/01.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/01.cc Mon Jan 6 14:29:18 2003 *************** *** 0 **** --- 1,134 ---- + // 1999-04-12 bkoz + + // Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // 27.6.1.2.2 arithmetic extractors + + #include // for printf + #include + #include + #include + #include + #include + + std::string str_01; + std::string str_02("true false 0 1 110001"); + std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"); + std::string str_04("0123"); + + std::stringbuf isbuf_01(std::ios_base::in); + std::stringbuf isbuf_02(str_02, std::ios_base::in); + std::stringbuf isbuf_03(str_03, std::ios_base::in); + std::stringbuf isbuf_04(str_04, std::ios_base::in); + + std::istream is_01(NULL); + std::istream is_02(&isbuf_02); + std::istream is_03(&isbuf_03); + std::istream is_04(&isbuf_04); + std::stringstream ss_01(str_01); + + // minimal sanity check + bool test01() { + + bool test = true; + + // Integral Types: + bool b1 = false; + bool b2 = false; + short s1 = 0; + int i1 = 0; + long l1 = 0; + unsigned short us1 = 0; + unsigned int ui1 = 0; + unsigned long ul1 = 0; + + // Floating-point Types: + float f1 = 0; + double d1 = 0; + long double ld1 = 0; + + // process alphanumeric versions of bool values + std::ios_base::fmtflags fmt = is_02.flags(); + bool testfmt = fmt & std::ios_base::boolalpha; + is_02.setf(std::ios_base::boolalpha); + fmt = is_02.flags(); + testfmt = fmt & std::ios_base::boolalpha; + is_02 >> b1; + VERIFY( b1 == 1 ); + is_02 >> b1; + VERIFY( b1 == 0 ); + + // process numeric versions of of bool values + is_02.unsetf(std::ios_base::boolalpha); + fmt = is_02.flags(); + testfmt = fmt & std::ios_base::boolalpha; + is_02 >> b1; + VERIFY( b1 == 0 ); + is_02 >> b1; + VERIFY( b1 == 1 ); + + // is_03 == "-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5" + is_03 >> l1; + VERIFY( l1 == -19999999 ); + is_03 >> ul1; + VERIFY( ul1 == 777777 ); + is_03 >> i1; + VERIFY( i1 == -234234 ); + is_03 >> ui1; + VERIFY( ui1 == 233 ); + is_03 >> s1; + VERIFY( s1 == -234 ); + is_03 >> us1; + VERIFY( us1 == 33 ); + is_03 >> b1; + VERIFY( b1 == 1 ); + is_03 >> ld1; + VERIFY( ld1 == 66300.25 ); + is_03 >> d1; + VERIFY( d1 == .315 ); + is_03 >> f1; + VERIFY( f1 == 1.5 ); + + is_04 >> std::hex >> i1; + std::printf ("%d %d %d\n", i1, i1 == 0x123, test); + VERIFY( i1 == 0x123 ); + std::printf ("%d %d %d\n", i1, i1 == 0x123, test); + + // test void pointers + int i = 55; + void* po = &i; + void* pi; + + ss_01 << po; + ss_01 >> pi; + std::printf ("%x %x\n", pi, po); + VERIFY( po == pi ); + + #ifdef DEBUG_ASSERT + assert(test); + #endif + + return test; + } + + int main() + { + test01(); + return 0; + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/02.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/02.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/02.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/02.cc Mon Jan 6 14:29:19 2003 *************** *** 0 **** --- 1,71 ---- + // 1999-04-12 bkoz + + // Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // 27.6.1.2.2 arithmetic extractors + + #include // for printf + #include + #include + #include + #include + #include + + std::string str_01; + std::string str_02("true false 0 1 110001"); + std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"); + std::string str_04("0123"); + + std::stringbuf isbuf_01(std::ios_base::in); + std::stringbuf isbuf_02(str_02, std::ios_base::in); + std::stringbuf isbuf_03(str_03, std::ios_base::in); + std::stringbuf isbuf_04(str_04, std::ios_base::in); + + std::istream is_01(NULL); + std::istream is_02(&isbuf_02); + std::istream is_03(&isbuf_03); + std::istream is_04(&isbuf_04); + std::stringstream ss_01(str_01); + + // elaborated test for ints + bool test02() { + + bool test = true; + const std::string str_01("20000AB"); + std::stringbuf strb_01(str_01, std::ios_base::in); + std::istream is(&strb_01); + + int n = 15; + is >> n; + VERIFY( n == 20000 ); + char c = is.peek(); + VERIFY( c == 65 ); + + #ifdef DEBUG_ASSERT + assert(test); + #endif + + return test; + } + + int main() + { + test02(); + return 0; + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/03.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/03.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/03.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/03.cc Mon Jan 6 14:29:19 2003 *************** *** 0 **** --- 1,70 ---- + // 1999-04-12 bkoz + + // Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // 27.6.1.2.2 arithmetic extractors + + #include // for printf + #include + #include + #include + #include + #include + + std::string str_01; + std::string str_02("true false 0 1 110001"); + std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"); + std::string str_04("0123"); + + std::stringbuf isbuf_01(std::ios_base::in); + std::stringbuf isbuf_02(str_02, std::ios_base::in); + std::stringbuf isbuf_03(str_03, std::ios_base::in); + std::stringbuf isbuf_04(str_04, std::ios_base::in); + + std::istream is_01(NULL); + std::istream is_02(&isbuf_02); + std::istream is_03(&isbuf_03); + std::istream is_04(&isbuf_04); + std::stringstream ss_01(str_01); + + bool test03() + { + std::stringbuf sbuf; + std::istream istr(&sbuf); + std::ostream ostr(&sbuf); + + bool test = true; + long l01; + ostr << "12220101"; + istr >> l01; // _M_in_end set completely incorrectly here. + VERIFY( l01 == 12220101 ); + VERIFY( istr.rdstate() == std::ios_base::eofbit ); + + #ifdef DEBUG_ASSERT + assert(test); + #endif + + return test; + } + + int main() + { + test03(); + return 0; + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/06.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/06.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/06.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/06.cc Mon Jan 6 14:29:19 2003 *************** *** 0 **** --- 1,83 ---- + // 1999-04-12 bkoz + + // Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // 27.6.1.2.2 arithmetic extractors + + #include // for printf + #include + #include + #include + #include + #include + + std::string str_01; + std::string str_02("true false 0 1 110001"); + std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"); + std::string str_04("0123"); + + std::stringbuf isbuf_01(std::ios_base::in); + std::stringbuf isbuf_02(str_02, std::ios_base::in); + std::stringbuf isbuf_03(str_03, std::ios_base::in); + std::stringbuf isbuf_04(str_04, std::ios_base::in); + + std::istream is_01(NULL); + std::istream is_02(&isbuf_02); + std::istream is_03(&isbuf_03); + std::istream is_04(&isbuf_04); + std::stringstream ss_01(str_01); + + // http://gcc.gnu.org/ml/libstdc++/2000-q1/msg00081.html + // Jim Parsons + void test06() + { + // default locale, grouping is turned off + bool test = true; + unsigned int h4, h3, h2; + char c; + std::string s("205,199,144"); + std::istringstream is(s); + + is >> h4; // 205 + VERIFY( h4 == 205 ); + is >> c; // ',' + VERIFY( c == ',' ); + + is >> h4; // 199 + VERIFY( h4 == 199 ); + is >> c; // ',' + VERIFY( c == ',' ); + + is >> h4; // 144 + VERIFY( is.rdstate() == std::ios_base::eofbit ); + VERIFY( h4 == 144 ); + is >> c; // EOF + VERIFY( c == ',' ); + VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); + + #ifdef DEBUG_ASSERT + assert(test); + #endif + } + + int main() + { + test06(); + return 0; + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/07.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/07.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/07.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/07.cc Mon Jan 6 14:29:19 2003 *************** *** 0 **** --- 1,169 ---- + // 1999-04-12 bkoz + + // Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // 27.6.1.2.2 arithmetic extractors + + #include // for printf + #include + #include + #include + #include + #include + + std::string str_01; + std::string str_02("true false 0 1 110001"); + std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"); + std::string str_04("0123"); + + std::stringbuf isbuf_01(std::ios_base::in); + std::stringbuf isbuf_02(str_02, std::ios_base::in); + std::stringbuf isbuf_03(str_03, std::ios_base::in); + std::stringbuf isbuf_04(str_04, std::ios_base::in); + + std::istream is_01(NULL); + std::istream is_02(&isbuf_02); + std::istream is_03(&isbuf_03); + std::istream is_04(&isbuf_04); + std::stringstream ss_01(str_01); + + namespace std { + class test_numpunct1 : public numpunct + { + protected: + string + do_grouping() const + { return string(1, '\003'); } + }; + } // namespace std + + void test07() + { + // manufactured locale, grouping is turned on + bool test = true; + unsigned int h4 = 0, h3 = 0, h2 = 0; + float f1 = 0.0; + const std::string s1("205,199 23,445.25 1,024,365 123,22,24"); + std::istringstream is(s1); + is.imbue(std::locale(std::locale(), new std::test_numpunct1)); + + // Basic operation. + is >> h4; + VERIFY( h4 == 205199 ); + VERIFY( is.good() ); + + is.clear(); + is >> f1; + VERIFY( f1 == 23445.25 ); + VERIFY( is.good() ); + + is.clear(); + is >> h3; + VERIFY( h3 == 1024365 ); + VERIFY( is.good() ); + + is.clear(); + is >> h2; + VERIFY( h2 == 0 ); + VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); + VERIFY( static_cast(is.rdstate() & std::ios_base::eofbit) ); + + // Stress tests for explicit errors in grouping corner cases. The + // validity of these tests and results have been hammered out in + // private email between bkoz and ncm between Jan 25 and Jan 27, 2000. + // Thanks nate -- benjamin + const std::string s2(",111 4,,4 0.25,345 5..25 156,, 1,000000 1000000 1234,567"); + h3 = h4 = h2 = 0; + f1 = 0.0; + const char c_control = '?'; + char c = c_control; + is.clear(); + is.str(s2); + + is >> h4; + VERIFY( h4 == 0 ); + VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); + is.clear(); + is >> c; + VERIFY( c == ',' ); + VERIFY( is.good() ); + + is.ignore(3); + is >> f1; + VERIFY( f1 == 0.0 ); + VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); + is.clear(); + is >> c; + VERIFY( c == ',' ); + is >> c; + VERIFY( c == '4' ); + VERIFY( is.good() ); + + is >> f1; + VERIFY( f1 == 0.25 ); + VERIFY( is.good() ); + is >> c; + VERIFY( c == ',' ); + is >> h2; + VERIFY( h2 == 345 ); + VERIFY( is.good() ); + f1 = 0.0; + h2 = 0; + + is >> f1; + VERIFY( f1 == 5.0 ); + VERIFY( is.good() ); + is >> f1; + VERIFY( f1 == .25 ); + VERIFY( is.good() ); + + is >> h3; + VERIFY( h3 == 0 ); + VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); + is.clear(); + is >> c; + VERIFY( c == ',' ); // second one + VERIFY( is.good() ); + + is >> h2; + VERIFY( h2 == 0 ); + VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); + is.clear(); + + is >> h2; + VERIFY( h2 == 1000000 ); + VERIFY( is.good() ); + h2 = 0; + + is >> h2; + VERIFY( h2 == 0 ); + VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); + VERIFY( static_cast(is.rdstate() & std::ios_base::eofbit) ); + is.clear(); + + #ifdef DEBUG_ASSERT + assert(test); + #endif + } + + int main() + { + test07(); + return 0; + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/08.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/08.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/08.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/08.cc Mon Jan 6 14:29:19 2003 *************** *** 0 **** --- 1,93 ---- + // 1999-04-12 bkoz + + // Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // 27.6.1.2.2 arithmetic extractors + + #include // for printf + #include + #include + #include + #include + #include + + std::string str_01; + std::string str_02("true false 0 1 110001"); + std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"); + std::string str_04("0123"); + + std::stringbuf isbuf_01(std::ios_base::in); + std::stringbuf isbuf_02(str_02, std::ios_base::in); + std::stringbuf isbuf_03(str_03, std::ios_base::in); + std::stringbuf isbuf_04(str_04, std::ios_base::in); + + std::istream is_01(NULL); + std::istream is_02(&isbuf_02); + std::istream is_03(&isbuf_03); + std::istream is_04(&isbuf_04); + std::stringstream ss_01(str_01); + + namespace std { + class test_numpunct2 : public numpunct + { + protected: + string + do_grouping() const + { return string("\002\003"); } + }; + } // namespace std + + void test08() + { + // manufactured locale, grouping is turned on + bool test = true; + unsigned int h4 = 0, h3 = 0, h2 = 0; + float f1 = 0.0; + const std::string s1("1,22 205,19 22,123,22"); + const std::string s2("1,220 2050,19 202,123,22"); + + std::istringstream is(s1); + is.imbue(std::locale(std::locale(), new std::test_numpunct2)); + + // Basic operation. + is >> h4; + VERIFY( h4 == 122 ); + VERIFY( is.good() ); + + is.clear(); + is >> h3; + VERIFY( h3 == 20519 ); + VERIFY( is.good() ); + + is.clear(); + is >> h2; + VERIFY( h2 == 2212322 ); + VERIFY( static_cast(is.rdstate() & std::ios_base::eofbit) ); + + + #ifdef DEBUG_ASSERT + assert(test); + #endif + } + + int main() + { + test08(); + return 0; + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/09.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/09.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/09.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/09.cc Mon Jan 6 14:29:19 2003 *************** *** 0 **** --- 1,72 ---- + // 1999-04-12 bkoz + + // Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // 27.6.1.2.2 arithmetic extractors + + #include // for printf + #include + #include + #include + #include + #include + + std::string str_01; + std::string str_02("true false 0 1 110001"); + std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"); + std::string str_04("0123"); + + std::stringbuf isbuf_01(std::ios_base::in); + std::stringbuf isbuf_02(str_02, std::ios_base::in); + std::stringbuf isbuf_03(str_03, std::ios_base::in); + std::stringbuf isbuf_04(str_04, std::ios_base::in); + + std::istream is_01(NULL); + std::istream is_02(&isbuf_02); + std::istream is_03(&isbuf_03); + std::istream is_04(&isbuf_04); + std::stringstream ss_01(str_01); + + bool test09() + { + bool test = true; + + std::string st("2.456e3-+0.567e-2"); + std::stringbuf sb(st); + std::istream is(&sb); + double f1 = 0, f2 = 0; + char c; + (is>>std::ws) >> f1; + (is>>std::ws) >> c; + (is>>std::ws) >> f2; + test = f1 == 2456; + VERIFY( f2 == 0.00567 ); + VERIFY( c == '-' ); + #ifdef DEBUG_ASSERT + assert(test); + #endif + + return test; + } + + int main() + { + test09(); + return 0; + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/10.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/10.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/10.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/10.cc Mon Jan 6 14:29:19 2003 *************** *** 0 **** --- 1,154 ---- + // 1999-04-12 bkoz + + // Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // 27.6.1.2.2 arithmetic extractors + + #include // for printf + #include + #include + #include + #include + #include + + std::string str_01; + std::string str_02("true false 0 1 110001"); + std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"); + std::string str_04("0123"); + + std::stringbuf isbuf_01(std::ios_base::in); + std::stringbuf isbuf_02(str_02, std::ios_base::in); + std::stringbuf isbuf_03(str_03, std::ios_base::in); + std::stringbuf isbuf_04(str_04, std::ios_base::in); + + std::istream is_01(NULL); + std::istream is_02(&isbuf_02); + std::istream is_03(&isbuf_03); + std::istream is_04(&isbuf_04); + std::stringstream ss_01(str_01); + + bool test10() { + std::string str_01("0 00 000 +0 +0 -0"); + std::stringbuf isbuf_01(str_01); + std::istream is_01(&isbuf_01); + + bool test = true; + + int n = 365; + is_01 >> n; + VERIFY( n == 0 ); + n = 364; + is_01 >> n; + VERIFY( n == 0 ); + n = 363; + is_01 >> n; + VERIFY( n == 0 ); + n = 362; + is_01 >> n; + VERIFY( n == 0 ); + n = 361; + is_01 >> n; + VERIFY( n == 0 ); + n = 360; + is_01 >> n; + VERIFY( n == 0 ); + VERIFY( is_01.rdstate() == std::ios_base::eofbit ); + + std::string str_02("0x32 0X33 033 33"); + std::stringbuf isbuf_02(str_02); + std::istream is_02(&isbuf_02); + is_02.unsetf(std::ios_base::basefield); + is_02 >> n; + VERIFY( n == 50 ); + is_02 >> n; + VERIFY( n == 51 ); + is_02 >> n; + VERIFY( n == 27 ); + is_02 >> n; + VERIFY( n == 33 ); + VERIFY( is_02.rdstate() == std::ios_base::eofbit ); + + std::stringbuf isbuf_03(str_02); + std::istream is_03(&isbuf_03); + char c; + int m; + + is_03 >> std::dec >> n >> c >> m; + VERIFY( n == 0 ); + VERIFY( c == 'x' ); + VERIFY( m == 32 ); + + is_03 >> std::oct >> m >> c >> n; + VERIFY( m == 0 ); + VERIFY( c == 'X' ); + VERIFY( n == 27 ); + + is_03 >> std::dec >> m >> n; + VERIFY( m == 33 ); + VERIFY( n == 33 ); + VERIFY( is_03.rdstate() == std::ios_base::eofbit ); + + std::string str_04("3. 4.5E+2a5E-3 .6E1"); + std::stringbuf isbuf_04(str_04); + std::istream is_04(&isbuf_04); + + double f; + is_04 >> f; + VERIFY( f == 3.0 ); + is_04 >> f; + VERIFY( f == 450.0 ); + is_04.ignore(); + is_04 >> f; + VERIFY( f == 0.005 ); + is_04 >> f; + VERIFY( f == 6 ); + VERIFY( is_03.rdstate() == std::ios_base::eofbit ); + + std::string str_05("0E20 5Ea E16"); + std::stringbuf isbuf_05(str_05); + std::istream is_05(&isbuf_05); + + is_05 >> f; + VERIFY( f == 0 ); + is_05 >> f; + VERIFY( f == 0 ); + VERIFY( is_05.rdstate() == std::ios_base::failbit ); + is_05.clear(); + is_05 >> c; + VERIFY( c == 'a' ); + is_05 >> f; + VERIFY( f == 0 ); + VERIFY( is_05.rdstate() == std::ios_base::failbit ); + is_05.clear(); + is_05.ignore(); + is_05 >> n; + VERIFY( n == 16 ); + + #ifdef DEBUG_ASSERT + assert(test); + #endif + + return test; + } + + int main() + { + test10(); + return 0; + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/11.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/11.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/11.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/11.cc Mon Jan 6 14:29:19 2003 *************** *** 0 **** --- 1,73 ---- + // 1999-04-12 bkoz + + // Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // 27.6.1.2.2 arithmetic extractors + + #include // for printf + #include + #include + #include + #include + #include + + std::string str_01; + std::string str_02("true false 0 1 110001"); + std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"); + std::string str_04("0123"); + + std::stringbuf isbuf_01(std::ios_base::in); + std::stringbuf isbuf_02(str_02, std::ios_base::in); + std::stringbuf isbuf_03(str_03, std::ios_base::in); + std::stringbuf isbuf_04(str_04, std::ios_base::in); + + std::istream is_01(NULL); + std::istream is_02(&isbuf_02); + std::istream is_03(&isbuf_03); + std::istream is_04(&isbuf_04); + std::stringstream ss_01(str_01); + + // In the presence of no fmtflags, the input operator should behave + // like strtol(x, y, 0) + // libstdc++/90 + bool test11() + { + bool test = true; + const char* cstrlit = "0x2a"; + + // sanity check via 'C' library call + char* err; + long l = std::strtol(cstrlit, &err, 0); + + std::istringstream iss(cstrlit); + iss.setf(std::ios::fmtflags(0), std::ios::basefield); + int i; + iss >> i; + + VERIFY (!iss.fail()); + VERIFY (l == i); + + return test; + } + + int main() + { + test11(); + return 0; + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/12.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/12.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/12.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/12.cc Mon Jan 6 14:29:19 2003 *************** *** 0 **** --- 1,94 ---- + // 1999-04-12 bkoz + + // Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // 27.6.1.2.2 arithmetic extractors + + // XXX This test fails on sparc-solaris2 because of a bug in libc + // XXX sscanf for very long input. See: + // XXX http://gcc.gnu.org/ml/gcc/2002-12/msg01422.html + // { dg-do run { xfail sparc*-*-solaris2* } } + + #include // for printf + #include + #include + #include + #include + #include + + std::string str_01; + std::string str_02("true false 0 1 110001"); + std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"); + std::string str_04("0123"); + + std::stringbuf isbuf_01(std::ios_base::in); + std::stringbuf isbuf_02(str_02, std::ios_base::in); + std::stringbuf isbuf_03(str_03, std::ios_base::in); + std::stringbuf isbuf_04(str_04, std::ios_base::in); + + std::istream is_01(NULL); + std::istream is_02(&isbuf_02); + std::istream is_03(&isbuf_03); + std::istream is_04(&isbuf_04); + std::stringstream ss_01(str_01); + + // libstdc++/3720 + // excess input should not cause a core dump + template + bool test12_aux(bool integer_type) + { + bool test = true; + + int digits_overflow; + if (integer_type) + // This many digits will overflow integer types in base 10. + digits_overflow = std::numeric_limits::digits10 + 2; + else + // This might do it, unsure. + digits_overflow = std::numeric_limits::max_exponent10 + 1; + + std::string st; + std::string part = "1234567890123456789012345678901234567890"; + for (int i = 0; i < digits_overflow / part.size() + 1; ++i) + st += part; + std::stringbuf sb(st); + std::istream is(&sb); + T t; + is >> t; + VERIFY(is.fail()); + return test; + } + + bool test12() + { + bool test = true; + VERIFY(test12_aux(true)); + VERIFY(test12_aux(true)); + VERIFY(test12_aux(true)); + VERIFY(test12_aux(false)); + VERIFY(test12_aux(false)); + VERIFY(test12_aux(false)); + return test; + } + + int main() + { + test12(); + return 0; + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/13.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/13.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith/13.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith/13.cc Mon Jan 6 14:29:19 2003 *************** *** 0 **** --- 1,88 ---- + // 1999-04-12 bkoz + + // Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // 27.6.1.2.2 arithmetic extractors + + #include // for printf + #include + #include + #include + #include + #include + + std::string str_01; + std::string str_02("true false 0 1 110001"); + std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"); + std::string str_04("0123"); + + std::stringbuf isbuf_01(std::ios_base::in); + std::stringbuf isbuf_02(str_02, std::ios_base::in); + std::stringbuf isbuf_03(str_03, std::ios_base::in); + std::stringbuf isbuf_04(str_04, std::ios_base::in); + + std::istream is_01(NULL); + std::istream is_02(&isbuf_02); + std::istream is_03(&isbuf_03); + std::istream is_04(&isbuf_04); + std::stringstream ss_01(str_01); + + // libstdc++/3720 part two + void test13() + { + using namespace std; + bool test = true; + const char* l1 = "12345678901234567890123456789012345678901234567890123456"; + const char* l2 = "1.2345678901234567890123456789012345678901234567890123456" + " " + "1246.9"; + + // 1 + // used to core. + double d; + istringstream iss1(l2); + iss1 >> d; + iss1 >> d; + VERIFY (d > 1246 && d < 1247); + + // 2 + // quick test for failbit on maximum length extraction. + int i; + int max_digits = numeric_limits::digits10 + 1; + string digits; + for (int j = 0; j < max_digits; ++j) + digits += '1'; + istringstream iss2(digits); + iss2 >> i; + VERIFY( !iss2.fail() ); + + digits += '1'; + i = 0; + iss2.str(digits); + iss2.clear(); + iss2 >> i; + VERIFY( i == 0 ); + VERIFY( iss2.fail() ); + } + + int main() + { + test13(); + return 0; + } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc Fri Jun 28 08:22:45 2002 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc Thu Jan 1 00:00:00 1970 *************** *** 1,611 **** - // 1999-04-12 bkoz - - // Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. - // - // This file is part of the GNU ISO C++ Library. This library is free - // software; you can redistribute it and/or modify it under the - // terms of the GNU General Public License as published by the - // Free Software Foundation; either version 2, or (at your option) - // any later version. - - // This library is distributed in the hope that it will be useful, - // but WITHOUT ANY WARRANTY; without even the implied warranty of - // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - // GNU General Public License for more details. - - // You should have received a copy of the GNU General Public License along - // with this library; see the file COPYING. If not, write to the Free - // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - // USA. - - // 27.6.1.2.2 arithmetic extractors - - #include // for printf - #include - #include - #include - #include - #include - - std::string str_01; - std::string str_02("true false 0 1 110001"); - std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"); - std::string str_04("0123"); - - std::stringbuf isbuf_01(std::ios_base::in); - std::stringbuf isbuf_02(str_02, std::ios_base::in); - std::stringbuf isbuf_03(str_03, std::ios_base::in); - std::stringbuf isbuf_04(str_04, std::ios_base::in); - - std::istream is_01(NULL); - std::istream is_02(&isbuf_02); - std::istream is_03(&isbuf_03); - std::istream is_04(&isbuf_04); - std::stringstream ss_01(str_01); - - // minimal sanity check - bool test01() { - - bool test = true; - - // Integral Types: - bool b1 = false; - bool b2 = false; - short s1 = 0; - int i1 = 0; - long l1 = 0; - unsigned short us1 = 0; - unsigned int ui1 = 0; - unsigned long ul1 = 0; - - // Floating-point Types: - float f1 = 0; - double d1 = 0; - long double ld1 = 0; - - // process alphanumeric versions of bool values - std::ios_base::fmtflags fmt = is_02.flags(); - bool testfmt = fmt & std::ios_base::boolalpha; - is_02.setf(std::ios_base::boolalpha); - fmt = is_02.flags(); - testfmt = fmt & std::ios_base::boolalpha; - is_02 >> b1; - VERIFY( b1 == 1 ); - is_02 >> b1; - VERIFY( b1 == 0 ); - - // process numeric versions of of bool values - is_02.unsetf(std::ios_base::boolalpha); - fmt = is_02.flags(); - testfmt = fmt & std::ios_base::boolalpha; - is_02 >> b1; - VERIFY( b1 == 0 ); - is_02 >> b1; - VERIFY( b1 == 1 ); - - // is_03 == "-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5" - is_03 >> l1; - VERIFY( l1 == -19999999 ); - is_03 >> ul1; - VERIFY( ul1 == 777777 ); - is_03 >> i1; - VERIFY( i1 == -234234 ); - is_03 >> ui1; - VERIFY( ui1 == 233 ); - is_03 >> s1; - VERIFY( s1 == -234 ); - is_03 >> us1; - VERIFY( us1 == 33 ); - is_03 >> b1; - VERIFY( b1 == 1 ); - is_03 >> ld1; - VERIFY( ld1 == 66300.25 ); - is_03 >> d1; - VERIFY( d1 == .315 ); - is_03 >> f1; - VERIFY( f1 == 1.5 ); - - is_04 >> std::hex >> i1; - std::printf ("%d %d %d\n", i1, i1 == 0x123, test); - VERIFY( i1 == 0x123 ); - std::printf ("%d %d %d\n", i1, i1 == 0x123, test); - - // test void pointers - int i = 55; - void* po = &i; - void* pi; - - ss_01 << po; - ss_01 >> pi; - std::printf ("%x %x\n", pi, po); - VERIFY( po == pi ); - - #ifdef DEBUG_ASSERT - assert(test); - #endif - - return test; - } - - // elaborated test for ints - bool test02() { - - bool test = true; - const std::string str_01("20000AB"); - std::stringbuf strb_01(str_01, std::ios_base::in); - std::istream is(&strb_01); - - int n = 15; - is >> n; - VERIFY( n == 20000 ); - char c = is.peek(); - VERIFY( c == 65 ); - - #ifdef DEBUG_ASSERT - assert(test); - #endif - - return test; - } - - bool test03() - { - std::stringbuf sbuf; - std::istream istr(&sbuf); - std::ostream ostr(&sbuf); - - bool test = true; - long l01; - ostr << "12220101"; - istr >> l01; // _M_in_end set completely incorrectly here. - VERIFY( l01 == 12220101 ); - VERIFY( istr.rdstate() == std::ios_base::eofbit ); - - #ifdef DEBUG_ASSERT - assert(test); - #endif - - return test; - } - - // http://gcc.gnu.org/ml/libstdc++/2000-q1/msg00081.html - // Jim Parsons - void test06() - { - // default locale, grouping is turned off - bool test = true; - unsigned int h4, h3, h2; - char c; - std::string s("205,199,144"); - std::istringstream is(s); - - is >> h4; // 205 - VERIFY( h4 == 205 ); - is >> c; // ',' - VERIFY( c == ',' ); - - is >> h4; // 199 - VERIFY( h4 == 199 ); - is >> c; // ',' - VERIFY( c == ',' ); - - is >> h4; // 144 - VERIFY( is.rdstate() == std::ios_base::eofbit ); - VERIFY( h4 == 144 ); - is >> c; // EOF - VERIFY( c == ',' ); - VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); - - #ifdef DEBUG_ASSERT - assert(test); - #endif - } - - namespace std { - class test_numpunct1 : public numpunct - { - protected: - string - do_grouping() const - { return string(1, '\003'); } - }; - } // namespace std - - void test07() - { - // manufactured locale, grouping is turned on - bool test = true; - unsigned int h4 = 0, h3 = 0, h2 = 0; - float f1 = 0.0; - const std::string s1("205,199 23,445.25 1,024,365 123,22,24"); - std::istringstream is(s1); - is.imbue(std::locale(std::locale(), new std::test_numpunct1)); - - // Basic operation. - is >> h4; - VERIFY( h4 == 205199 ); - VERIFY( is.good() ); - - is.clear(); - is >> f1; - VERIFY( f1 == 23445.25 ); - VERIFY( is.good() ); - - is.clear(); - is >> h3; - VERIFY( h3 == 1024365 ); - VERIFY( is.good() ); - - is.clear(); - is >> h2; - VERIFY( h2 == 0 ); - VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); - VERIFY( static_cast(is.rdstate() & std::ios_base::eofbit) ); - - // Stress tests for explicit errors in grouping corner cases. The - // validity of these tests and results have been hammered out in - // private email between bkoz and ncm between Jan 25 and Jan 27, 2000. - // Thanks nate -- benjamin - const std::string s2(",111 4,,4 0.25,345 5..25 156,, 1,000000 1000000 1234,567"); - h3 = h4 = h2 = 0; - f1 = 0.0; - const char c_control = '?'; - char c = c_control; - is.clear(); - is.str(s2); - - is >> h4; - VERIFY( h4 == 0 ); - VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); - is.clear(); - is >> c; - VERIFY( c == ',' ); - VERIFY( is.good() ); - - is.ignore(3); - is >> f1; - VERIFY( f1 == 0.0 ); - VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); - is.clear(); - is >> c; - VERIFY( c == ',' ); - is >> c; - VERIFY( c == '4' ); - VERIFY( is.good() ); - - is >> f1; - VERIFY( f1 == 0.25 ); - VERIFY( is.good() ); - is >> c; - VERIFY( c == ',' ); - is >> h2; - VERIFY( h2 == 345 ); - VERIFY( is.good() ); - f1 = 0.0; - h2 = 0; - - is >> f1; - VERIFY( f1 == 5.0 ); - VERIFY( is.good() ); - is >> f1; - VERIFY( f1 == .25 ); - VERIFY( is.good() ); - - is >> h3; - VERIFY( h3 == 0 ); - VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); - is.clear(); - is >> c; - VERIFY( c == ',' ); // second one - VERIFY( is.good() ); - - is >> h2; - VERIFY( h2 == 0 ); - VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); - is.clear(); - - is >> h2; - VERIFY( h2 == 1000000 ); - VERIFY( is.good() ); - h2 = 0; - - is >> h2; - VERIFY( h2 == 0 ); - VERIFY( static_cast(is.rdstate() & std::ios_base::failbit) ); - VERIFY( static_cast(is.rdstate() & std::ios_base::eofbit) ); - is.clear(); - - #ifdef DEBUG_ASSERT - assert(test); - #endif - } - - namespace std { - class test_numpunct2 : public numpunct - { - protected: - string - do_grouping() const - { return string("\002\003"); } - }; - } // namespace std - - void test08() - { - // manufactured locale, grouping is turned on - bool test = true; - unsigned int h4 = 0, h3 = 0, h2 = 0; - float f1 = 0.0; - const std::string s1("1,22 205,19 22,123,22"); - const std::string s2("1,220 2050,19 202,123,22"); - - std::istringstream is(s1); - is.imbue(std::locale(std::locale(), new std::test_numpunct2)); - - // Basic operation. - is >> h4; - VERIFY( h4 == 122 ); - VERIFY( is.good() ); - - is.clear(); - is >> h3; - VERIFY( h3 == 20519 ); - VERIFY( is.good() ); - - is.clear(); - is >> h2; - VERIFY( h2 == 2212322 ); - VERIFY( static_cast(is.rdstate() & std::ios_base::eofbit) ); - - - #ifdef DEBUG_ASSERT - assert(test); - #endif - } - - - bool test09() - { - bool test = true; - - std::string st("2.456e3-+0.567e-2"); - std::stringbuf sb(st); - std::istream is(&sb); - double f1 = 0, f2 = 0; - char c; - (is>>std::ws) >> f1; - (is>>std::ws) >> c; - (is>>std::ws) >> f2; - test = f1 == 2456; - VERIFY( f2 == 0.00567 ); - VERIFY( c == '-' ); - #ifdef DEBUG_ASSERT - assert(test); - #endif - - return test; - } - - bool test10() { - std::string str_01("0 00 000 +0 +0 -0"); - std::stringbuf isbuf_01(str_01); - std::istream is_01(&isbuf_01); - - bool test = true; - - int n = 365; - is_01 >> n; - VERIFY( n == 0 ); - n = 364; - is_01 >> n; - VERIFY( n == 0 ); - n = 363; - is_01 >> n; - VERIFY( n == 0 ); - n = 362; - is_01 >> n; - VERIFY( n == 0 ); - n = 361; - is_01 >> n; - VERIFY( n == 0 ); - n = 360; - is_01 >> n; - VERIFY( n == 0 ); - VERIFY( is_01.rdstate() == std::ios_base::eofbit ); - - std::string str_02("0x32 0X33 033 33"); - std::stringbuf isbuf_02(str_02); - std::istream is_02(&isbuf_02); - is_02.unsetf(std::ios_base::basefield); - is_02 >> n; - VERIFY( n == 50 ); - is_02 >> n; - VERIFY( n == 51 ); - is_02 >> n; - VERIFY( n == 27 ); - is_02 >> n; - VERIFY( n == 33 ); - VERIFY( is_02.rdstate() == std::ios_base::eofbit ); - - std::stringbuf isbuf_03(str_02); - std::istream is_03(&isbuf_03); - char c; - int m; - - is_03 >> std::dec >> n >> c >> m; - VERIFY( n == 0 ); - VERIFY( c == 'x' ); - VERIFY( m == 32 ); - - is_03 >> std::oct >> m >> c >> n; - VERIFY( m == 0 ); - VERIFY( c == 'X' ); - VERIFY( n == 27 ); - - is_03 >> std::dec >> m >> n; - VERIFY( m == 33 ); - VERIFY( n == 33 ); - VERIFY( is_03.rdstate() == std::ios_base::eofbit ); - - std::string str_04("3. 4.5E+2a5E-3 .6E1"); - std::stringbuf isbuf_04(str_04); - std::istream is_04(&isbuf_04); - - double f; - is_04 >> f; - VERIFY( f == 3.0 ); - is_04 >> f; - VERIFY( f == 450.0 ); - is_04.ignore(); - is_04 >> f; - VERIFY( f == 0.005 ); - is_04 >> f; - VERIFY( f == 6 ); - VERIFY( is_03.rdstate() == std::ios_base::eofbit ); - - std::string str_05("0E20 5Ea E16"); - std::stringbuf isbuf_05(str_05); - std::istream is_05(&isbuf_05); - - is_05 >> f; - VERIFY( f == 0 ); - is_05 >> f; - VERIFY( f == 0 ); - VERIFY( is_05.rdstate() == std::ios_base::failbit ); - is_05.clear(); - is_05 >> c; - VERIFY( c == 'a' ); - is_05 >> f; - VERIFY( f == 0 ); - VERIFY( is_05.rdstate() == std::ios_base::failbit ); - is_05.clear(); - is_05.ignore(); - is_05 >> n; - VERIFY( n == 16 ); - - #ifdef DEBUG_ASSERT - assert(test); - #endif - - return test; - } - - // In the presence of no fmtflags, the input operator should behave - // like strtol(x, y, 0) - // libstdc++/90 - bool test11() - { - bool test = true; - const char* cstrlit = "0x2a"; - - // sanity check via 'C' library call - char* err; - long l = std::strtol(cstrlit, &err, 0); - - std::istringstream iss(cstrlit); - iss.setf(std::ios::fmtflags(0), std::ios::basefield); - int i; - iss >> i; - - VERIFY (!iss.fail()); - VERIFY (l == i); - - return test; - } - - // libstdc++/3720 - // excess input should not cause a core dump - template - bool test12_aux(bool integer_type) - { - bool test = true; - - int digits_overflow; - if (integer_type) - // This many digits will overflow integer types in base 10. - digits_overflow = std::numeric_limits::digits10 + 2; - else - // This might do it, unsure. - digits_overflow = std::numeric_limits::max_exponent10 + 1; - - std::string st; - std::string part = "1234567890123456789012345678901234567890"; - for (int i = 0; i < digits_overflow / part.size() + 1; ++i) - st += part; - std::stringbuf sb(st); - std::istream is(&sb); - T t; - is >> t; - VERIFY(is.fail()); - return test; - } - - bool test12() - { - bool test = true; - VERIFY(test12_aux(true)); - VERIFY(test12_aux(true)); - VERIFY(test12_aux(true)); - VERIFY(test12_aux(false)); - VERIFY(test12_aux(false)); - VERIFY(test12_aux(false)); - return test; - } - - // libstdc++/3720 part two - void test13() - { - using namespace std; - bool test = true; - const char* l1 = "12345678901234567890123456789012345678901234567890123456"; - const char* l2 = "1.2345678901234567890123456789012345678901234567890123456" - " " - "1246.9"; - - // 1 - // used to core. - double d; - istringstream iss1(l2); - iss1 >> d; - iss1 >> d; - VERIFY (d > 1246 && d < 1247); - - // 2 - // quick test for failbit on maximum length extraction. - int i; - int max_digits = numeric_limits::digits10 + 1; - string digits; - for (int j = 0; j < max_digits; ++j) - digits += '1'; - istringstream iss2(digits); - iss2 >> i; - VERIFY( !iss2.fail() ); - - digits += '1'; - i = 0; - iss2.str(digits); - iss2.clear(); - iss2 >> i; - VERIFY( i == 0 ); - VERIFY( iss2.fail() ); - } - - int main() - { - test01(); - test02(); - test03(); - - test06(); - test07(); - test08(); - test09(); - test10(); - - test11(); - test12(); - test13(); - return 0; - } - - // paul miller was right on with riddim warfare! --- 0 ---- diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc Mon Mar 11 20:08:38 2002 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc Mon Jan 6 15:51:49 2003 *************** test05() *** 368,374 **** istringstream istr (sval); double d; istr >> d; ! VERIFY (abs(pi-d)/pi < DBL_EPSILON); return 0; } --- 368,393 ---- istringstream istr (sval); double d; istr >> d; ! VERIFY( abs(pi-d)/pi < DBL_EPSILON ); ! return 0; ! } ! ! ! // libstdc++/9151 ! int ! test06() ! { ! int prec = numeric_limits::digits10 + 2; ! double oval = numeric_limits::min(); ! ! stringstream ostr; ! ostr.precision(prec); ! ostr << oval; ! string sval = ostr.str(); ! istringstream istr (sval); ! double ival; ! istr >> ival; ! VERIFY( abs(oval-ival)/oval < DBL_EPSILON ); return 0; } *************** main() *** 380,385 **** --- 399,405 ---- test03(); test04(); test05(); + test06(); #ifdef TEST_NUMPUT_VERBOSE cout << "Test passed!" << endl; #endif diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc Fri Oct 11 08:15:58 2002 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc Mon Dec 2 22:05:21 2002 *************** private: *** 198,203 **** --- 198,225 ---- std::string::const_iterator it; }; + class test_buffer_4 : public std::streambuf { + public: + test_buffer_4(const std::string& s) : str(s), it(str.begin()) + { + if (it != str.end()) { + buf[0] = *it++; + setg(buf, buf, buf+1); + } + } + + protected: + virtual int underflow() { return (it != str.end() ? *it : EOF); } + virtual int uflow() { return (it != str.end() ? *it++ : EOF); } + virtual std::streamsize showmanyc() { + std::streamsize ret = std::distance(it, str.end()); + return ret > 0 ? ret : -1; + } + private: + const std::string str; + std::string::const_iterator it; + char buf[1]; + }; void test(const std::string& str, std::streambuf& buf) { *************** void test(const std::string& str, std::s *** 218,225 **** // Jonathan Lennox void test05() { - std::ostringstream out_1, out_2, out_3, out_4; - std::string string_a("Hello, world!"); std::string string_b(""); --- 240,245 ---- *************** void test05() *** 232,237 **** --- 252,260 ---- test_buffer_3 buf3a(string_a); test_buffer_3 buf3b(string_b); + test_buffer_4 buf4a(string_a); + test_buffer_4 buf4b(string_b); + test(string_a, buf1a); test(string_b, buf1b); *************** void test05() *** 240,245 **** --- 263,271 ---- test(string_a, buf3a); test(string_b, buf3b); + + test(string_a, buf4a); + test(string_b, buf4b); } int diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/streambuf_members.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/streambuf_members.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/streambuf_members.cc Fri Jul 26 23:23:44 2002 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/streambuf_members.cc Thu Jan 23 23:16:36 2003 *************** *** 1,6 **** // 1999-10-11 bkoz ! // Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 1999-10-11 bkoz ! // Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** test07() *** 364,369 **** --- 364,391 ---- VERIFY(out.good()); } + // libstdc++/9322 + void test08() + { + using std::locale; + bool test = true; + + locale loc; + testbuf2 ob; + VERIFY( ob.getloc() == loc ); + + locale::global(locale("en_US")); + VERIFY( ob.getloc() == loc ); + + locale loc_de ("de_DE"); + locale ret = ob.pubimbue(loc_de); + VERIFY( ob.getloc() == loc_de ); + VERIFY( ret == loc ); + + locale::global(loc); + VERIFY( ob.getloc() == loc_de ); + } + int main() { test01(); *************** int main() *** 374,378 **** --- 396,401 ---- test05(); test07(); + test08(); return 0; } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/27_io/stringbuf_virtuals.cc gcc-3.2.2/libstdc++-v3/testsuite/27_io/stringbuf_virtuals.cc *** gcc-3.2.1/libstdc++-v3/testsuite/27_io/stringbuf_virtuals.cc Tue Apr 9 07:27:32 2002 --- gcc-3.2.2/libstdc++-v3/testsuite/27_io/stringbuf_virtuals.cc Thu Jan 23 23:16:36 2003 *************** *** 1,6 **** // 2001-05-21 Benjamin Kosnik ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 2001-05-21 Benjamin Kosnik ! // Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** void test02(std::stringbuf& in, bool pas *** 70,75 **** --- 70,97 ---- VERIFY( p == bad ); } + // libstdc++/9322 + void test08() + { + using std::locale; + bool test = true; + + locale loc; + std::stringbuf ob; + VERIFY( ob.getloc() == loc ); + + locale::global(locale("en_US")); + VERIFY( ob.getloc() == loc ); + + locale loc_de ("de_DE"); + locale ret = ob.pubimbue(loc_de); + VERIFY( ob.getloc() == loc_de ); + VERIFY( ret == loc ); + + locale::global(loc); + VERIFY( ob.getloc() == loc_de ); + } + int main() { using namespace std; *************** int main() *** 83,87 **** --- 105,110 ---- test02(in2, false); test02(in3, false); + test08(); return 0; } diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/Makefile.in gcc-3.2.2/libstdc++-v3/testsuite/Makefile.in *** gcc-3.2.1/libstdc++-v3/testsuite/Makefile.in Fri Sep 13 01:21:42 2002 --- gcc-3.2.2/libstdc++-v3/testsuite/Makefile.in Tue Jan 7 03:44:01 2003 *************** CMESSAGES_H = @CMESSAGES_H@ *** 76,81 **** --- 76,82 ---- CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ CSTDIO_H = @CSTDIO_H@ + CTIME_H = @CTIME_H@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ DEBUG_FLAGS = @DEBUG_FLAGS@ diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/abi_check.cc gcc-3.2.2/libstdc++-v3/testsuite/abi_check.cc *** gcc-3.2.1/libstdc++-v3/testsuite/abi_check.cc Thu Nov 7 00:24:48 2002 --- gcc-3.2.2/libstdc++-v3/testsuite/abi_check.cc Thu Dec 5 23:48:56 2002 *************** const char* *** 134,140 **** demangle(const std::string& mangled) { const char* name; ! if (mangled[0] != '_' && mangled[1] != 'Z') { // This is not a mangled symbol, thus has "C" linkage. name = mangled.c_str(); --- 134,140 ---- demangle(const std::string& mangled) { const char* name; ! if (mangled[0] != '_' || mangled[1] != 'Z') { // This is not a mangled symbol, thus has "C" linkage. name = mangled.c_str(); *************** main(int argc, char** argv) *** 321,327 **** exit(2); } - #ifndef _ARCH_PWR // Sort out names. // Assuming baseline_names, test_names are both unique w/ no duplicates. // --- 321,326 ---- *************** main(int argc, char** argv) *** 366,371 **** --- 365,372 ---- { vector compatible_versions; compatible_versions.push_back("GLIBCPP_3.2.1"); + compatible_versions.push_back("GLIBCPP_3.2.2"); + compatible_versions.push_back("CXXABI_1.2.1"); symbol_info test = test_symbols[added_names[i]]; vector::iterator end = compatible_versions.end(); *************** main(int argc, char** argv) *** 405,411 **** // Second, report reason or reasons incompatible. check_compatible(base, test, true); } - #endif return 0; } --- 406,411 ---- diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/ext/allocators.cc gcc-3.2.2/libstdc++-v3/testsuite/ext/allocators.cc *** gcc-3.2.1/libstdc++-v3/testsuite/ext/allocators.cc Tue Dec 11 19:04:58 2001 --- gcc-3.2.2/libstdc++-v3/testsuite/ext/allocators.cc Thu Dec 5 23:48:57 2002 *************** *** 1,6 **** // 2001-11-25 Phil Edwards // ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 2001-11-25 Phil Edwards // ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 20,26 **** // 20.4.1.1 allocator members - #undef __USE_MALLOC #include #include #include --- 20,25 ---- *************** void test() *** 75,81 **** std::__allocator a; big *p = a.allocate(10); ! if (uses_global_new_and_delete) VERIFY (requested >= (10*15*sizeof(long))); // Touch the far end of supposedly-allocated memory to check that we got // all of it. Why "3"? Because it's my favorite integer between e and pi. p[9].f[14] = 3; --- 74,81 ---- std::__allocator a; big *p = a.allocate(10); ! if (uses_global_new_and_delete) ! VERIFY (requested >= (10 * 15 * sizeof(long))); // Touch the far end of supposedly-allocated memory to check that we got // all of it. Why "3"? Because it's my favorite integer between e and pi. p[9].f[14] = 3; diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp gcc-3.2.2/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp *** gcc-3.2.1/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Wed May 29 10:59:21 2002 --- gcc-3.2.2/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Mon Jan 6 14:29:17 2003 *************** proc libstdc++-v3-init { args } { *** 54,61 **** set dg-do-what-default run # Copy any required data files. ! libstdc++-v3-copy-files [glob -nocomplain "$srcdir/*/*.tst"] $outdir ! libstdc++-v3-copy-files [glob -nocomplain "$srcdir/*/*.txt"] $outdir # set LD_LIBRARY_PATH so that libgcc_s, libstdc++ binaries can be found. # locate libgcc.a so we don't need to account for different values of --- 54,61 ---- set dg-do-what-default run # Copy any required data files. ! libstdc++-v3-copy-files [glob -nocomplain "$srcdir/{,*/}*/*.tst"] $outdir ! libstdc++-v3-copy-files [glob -nocomplain "$srcdir/{,*/}*/*.txt"] $outdir # set LD_LIBRARY_PATH so that libgcc_s, libstdc++ binaries can be found. # locate libgcc.a so we don't need to account for different values of diff -Nrc3pad gcc-3.2.1/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp gcc-3.2.2/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp *** gcc-3.2.1/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp Sat May 12 17:49:16 2001 --- gcc-3.2.2/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp Mon Jan 6 14:29:18 2003 *************** remote_exec host ${shell-ulimit-command} *** 40,46 **** remote_exec host ${shell-ulimit-command} "-v ${maximum-memory-usage}" # Main loop. ! dg-runtest [lsort [glob -nocomplain $srcdir/*/*.cc]] \ "" $DEFAULT_CXXFLAGS # All done. --- 40,46 ---- remote_exec host ${shell-ulimit-command} "-v ${maximum-memory-usage}" # Main loop. ! dg-runtest [lsort [glob -nocomplain $srcdir/{,*/}*/*.cc]] \ "" $DEFAULT_CXXFLAGS # All done.