diff -urN gcc-2.95.2.org/config/mt-v810 gcc-2.95.2/config/mt-v810 --- gcc-2.95.2.org/config/mt-v810 1997-08-21 15:58:47.000000000 -0700 +++ gcc-2.95.2/config/mt-v810 2011-03-20 04:03:11.000000000 -0700 @@ -1,4 +1,4 @@ -CC_FOR_TARGET = ca732 -ansi -AS_FOR_TARGET = as732 -AR_FOR_TARGET = ar732 -RANLIB_FOR_TARGET = true +#CC_FOR_TARGET = ca732 -ansi +#AS_FOR_TARGET = as732 +#AR_FOR_TARGET = ar732 +#RANLIB_FOR_TARGET = true diff -urN gcc-2.95.2.org/configure.in gcc-2.95.2/configure.in --- gcc-2.95.2.org/configure.in 1999-06-22 15:44:40.000000000 -0700 +++ gcc-2.95.2/configure.in 2011-03-20 04:03:11.000000000 -0700 @@ -787,7 +787,7 @@ fi ;; v810-*-*) - noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libio target-libg++ target-libstdc++ opcodes target-libgloss" + noconfigdirs="$noconfigdirs target-libiberty target-libf2c target-libchill target-libobjc target-libio target-libg++ target-libstdc++ target-libgloss" ;; v850-*-*) noconfigdirs="$noconfigdirs target-libgloss" diff -urN gcc-2.95.2.org/gcc/autom4te.cache/output.0 gcc-2.95.2/gcc/autom4te.cache/output.0 --- gcc-2.95.2.org/gcc/autom4te.cache/output.0 1969-12-31 16:00:00.000000000 -0800 +++ gcc-2.95.2/gcc/autom4te.cache/output.0 2011-03-20 04:04:29.000000000 -0700 @@ -0,0 +1,12204 @@ +@%:@! /bin/sh +@%:@ Guess values for system-dependent variables and create Makefiles. +@%:@ Generated by GNU Autoconf 2.68. +@%:@ +@%:@ +@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +@%:@ Foundation, Inc. +@%:@ +@%:@ +@%:@ This configure script is free software; the Free Software Foundation +@%:@ gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in @%:@( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in @%:@( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIB@&t@OBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME= +PACKAGE_TARNAME= +PACKAGE_VERSION= +PACKAGE_STRING= +PACKAGE_BUGREPORT= +PACKAGE_URL= + +ac_unique_file="tree.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_header_list= +ac_subst_vars='LTLIBOBJS +LIB@&t@OBJS +cross_defines +will_use_collect2 +tm_file_list +thread_file +symbolic_link +stage_prefix_set_by_configure +out_object_file +out_file +objc_boehm_gc +md_file +maybe_use_collect2 +local_prefix +lang_tree_files +lang_specs_files +lang_options_files +JAVAGC +install +host_xm_file_list +host_extra_gcc_objs +host_exeext +gcc_version_trigger +gcc_version +gcc_gxx_include_dir +float_h_file +fixinc_defs +extra_programs +extra_passes +extra_parts +extra_objs +extra_headers_list +extra_cxx_objs +extra_cpp_objs +extra_c_objs +extra_c_flags +dep_tmake_file +dep_host_xmake_file +cpp_main +cpp_install_dir +quoted_cc_set_by_configure +cc_set_by_configure +build_xm_file_list +build_install_headers_dir +build_exeext +all_stagestuff +all_lib2funcs +all_languages +all_lang_makefiles +all_headers +all_diff_excludes +all_compilers +all_boot_languages +subdirs +objdir +dollar +gcc_tooldir +sched_cflags +sched_prefix +inhibit_libc +target_subdir +host_canonical +build_canonical +gthread_flags +l +MKINSTALLDIRS +GT_YES +GT_NO +INCLUDE_LOCALE_H +POSUB +POFILES +INTLOBJS +INTLLIBS +INTLDEPS +INSTOBJEXT +GMOFILES +DATADIRNAME +CATOBJEXT +CATALOGS +USE_INCLUDED_LIBINTL +GENCAT +XGETTEXT +GMSGFMT +MSGFMT +USE_NLS +ALLOCA +VERSION +PACKAGE +objext +manext +doprint +vfprintf +gnat +EGREP +GREP +CPP +INSTALL_DATA +INSTALL_PROGRAM +INSTALL +YFLAGS +YACC +RANLIB +LN_S +LN +LEXLIB +LEX_OUTPUT_ROOT +LEX +AWK +SET_MAKE +stage1_warn_cflags +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +target_os +target_vendor +target_cpu +target +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='target_overrides +host_overrides +cross_overrides +build_overrides +language_fragments +language_hooks' +ac_user_opts=' +enable_option_checking +with_gnu_ld +with_ld +with_gnu_as +with_as +with_stabs +with_elf +with_local_prefix +with_gxx_include_dir +enable_checking +enable_cpp +with_cpp_install_dir +enable_cpplib +enable_c_cpplib +enable_c_mbchar +enable_fast_fixincludes +enable_haifa +enable_threads +enable_objc_gc +enable_java_gc +with_dwarf2 +enable_nls +with_included_gettext +with_catgets +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +YACC +YFLAGS +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures this package to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + @<:@@S|@ac_default_prefix@:>@ + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + @<:@PREFIX@:>@ + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root @<:@DATAROOTDIR/doc/PACKAGE@:>@ + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] + --target=TARGET configure for building compilers for TARGET [HOST] +_ACEOF +fi + +if test -n "$ac_init_help"; then + + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-checking enable expensive run-time checks. + --disable-cpp don't provide a user-visible C preprocessor. + --enable-cpplib use cpplib for the C preprocessor. + --enable-c-cpplib link cpplib directly into C and C++ compilers + (EXPERIMENTAL) (implies --enable-cpplib). + --enable-c-mbchar enable multibyte characters for C and C++. + --disable-fast-fixincludes + Disable the new fast fixincludes. + Run the old fixincludes script unconditionally + --enable-haifa use the experimental scheduler. + --disable-haifa don't use the experimental scheduler for the + targets which normally enable it. + --enable-threads enable thread usage for target GCC. + --enable-threads=LIB use LIB thread package for target GCC. + --enable-objc-gc enable the use of Boehm's garbage collector with + the GNU Objective-C runtime. + --enable-java-gc=TYPE choose garbage collector boehm + --enable-nls use Native Language Support (disabled by default) + --disable-nls do not use Native Language Support + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-gnu-ld arrange to work with GNU ld. + --with-ld arrange to use the specified ld (full pathname). + --with-gnu-as arrange to work with GNU as. + --with-as arrange to use the specified as (full pathname). + --with-stabs arrange to use stabs instead of host debug format. + --with-elf arrange to use ELF instead of host debug format. + --with-local-prefix=DIR specifies directory to put local include. + --with-gxx-include-dir=DIR + specifies directory to put g++ header files. + --with-cpp-install-dir=DIR + install the user visible C preprocessor in DIR + (relative to PREFIX) as well as PREFIX/bin. + --enable-dwarf2 enable DWARF2 debugging as default. + --with-included-gettext use the GNU gettext library included here + --with-catgets use catgets functions if available + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + YACC The `Yet Another Compiler Compiler' implementation to use. + Defaults to the first program found out of: `bison -y', `byacc', + `yacc'. + YFLAGS The list of arguments that will be passed by default to @S|@YACC. + This script will default YFLAGS to the empty string to avoid a + default value of `-d' given by some make applications. + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to the package provider. +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +configure +generated by GNU Autoconf 2.68 + +Copyright (C) 2010 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +@%:@ ac_fn_c_try_compile LINENO +@%:@ -------------------------- +@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_compile + +@%:@ ac_fn_c_try_link LINENO +@%:@ ----------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_link + +@%:@ ac_fn_c_try_cpp LINENO +@%:@ ---------------------- +@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_cpp + +@%:@ ac_fn_c_try_run LINENO +@%:@ ---------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes +@%:@ that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_run + +@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using +@%:@ the include files in INCLUDES and setting the cache variable VAR +@%:@ accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_mongrel + +@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists and can be compiled using the include files in +@%:@ INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_compile + +@%:@ ac_fn_c_check_func LINENO FUNC VAR +@%:@ ---------------------------------- +@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* 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_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_func + +@%:@ ac_fn_c_check_type LINENO TYPE VAR INCLUDES +@%:@ ------------------------------------------- +@%:@ Tests whether TYPE exists after having included INCLUDES, setting cache +@%:@ variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_type + +@%:@ ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +@%:@ --------------------------------------------- +@%:@ Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +@%:@ accordingly. +ac_fn_c_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +@%:@ifndef $as_decl_name +@%:@ifdef __cplusplus + (void) $as_decl_use; +@%:@else + (void) $as_decl_name; +@%:@endif +@%:@endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_decl +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by $as_me, which was +generated by GNU Autoconf 2.68. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in @%:@(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +as_fn_append ac_header_list " stdlib.h" +as_fn_append ac_header_list " unistd.h" +as_fn_append ac_header_list " sys/param.h" +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_config_headers="$ac_config_headers auto-host.h:config.in" + + +remove=rm +hard_link=ln +symbolic_link='ln -s' +copy=cp + +# Check for bogus environment variables. +# Test if LIBRARY_PATH contains the notation for the current directory +# since this would lead to problems installing/building glibc. +# LIBRARY_PATH contains the current directory if one of the following +# is true: +# - one of the terminals (":" and ";") is the first or last sign +# - two terminals occur directly after each other +# - the path contains an element with a dot in it +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBRARY_PATH variable" >&5 +$as_echo_n "checking LIBRARY_PATH variable... " >&6; } +case ${LIBRARY_PATH} in + [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) + library_path_setting="contains current directory" + ;; + *) + library_path_setting="ok" + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $library_path_setting" >&5 +$as_echo "$library_path_setting" >&6; } +if test "$library_path_setting" != "ok"; then +as_fn_error $? " +*** LIBRARY_PATH shouldn't contain the current directory when +*** building gcc. Please change the environment variable +*** and run configure again." "$LINENO" 5 +fi + +# Test if GCC_EXEC_PREFIX contains the notation for the current directory +# since this would lead to problems installing/building glibc. +# GCC_EXEC_PREFIX contains the current directory if one of the following +# is true: +# - one of the terminals (":" and ";") is the first or last sign +# - two terminals occur directly after each other +# - the path contains an element with a dot in it +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking GCC_EXEC_PREFIX variable" >&5 +$as_echo_n "checking GCC_EXEC_PREFIX variable... " >&6; } +case ${GCC_EXEC_PREFIX} in + [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) + gcc_exec_prefix_setting="contains current directory" + ;; + *) + gcc_exec_prefix_setting="ok" + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_exec_prefix_setting" >&5 +$as_echo "$gcc_exec_prefix_setting" >&6; } +if test "$gcc_exec_prefix_setting" != "ok"; then +as_fn_error $? " +*** GCC_EXEC_PREFIX shouldn't contain the current directory when +*** building gcc. Please change the environment variable +*** and run configure again." "$LINENO" 5 +fi + +# Check for additional parameters + +# With GNU ld + +@%:@ Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; gnu_ld_flag="$with_gnu_ld" +else + gnu_ld_flag=no +fi + + +# With pre-defined ld + +@%:@ Check whether --with-ld was given. +if test "${with_ld+set}" = set; then : + withval=$with_ld; DEFAULT_LINKER="$with_ld" +fi + +if test x"${DEFAULT_LINKER+set}" = x"set"; then + if test ! -x "$DEFAULT_LINKER"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER" >&5 +$as_echo "$as_me: WARNING: cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER" >&2;} + elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then + gnu_ld_flag=yes + fi + cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_LINKER "$DEFAULT_LINKER" +_ACEOF + +fi + +# With GNU as + +@%:@ Check whether --with-gnu-as was given. +if test "${with_gnu_as+set}" = set; then : + withval=$with_gnu_as; gas_flag="$with_gnu_as" +else + gas_flag=no +fi + + + +@%:@ Check whether --with-as was given. +if test "${with_as+set}" = set; then : + withval=$with_as; DEFAULT_ASSEMBLER="$with_as" +fi + +if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then + if test ! -x "$DEFAULT_ASSEMBLER"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER" >&5 +$as_echo "$as_me: WARNING: cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER" >&2;} + elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then + gas_flag=yes + fi + cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_ASSEMBLER "$DEFAULT_ASSEMBLER" +_ACEOF + +fi + +# With stabs + +@%:@ Check whether --with-stabs was given. +if test "${with_stabs+set}" = set; then : + withval=$with_stabs; stabs="$with_stabs" +else + stabs=no +fi + + +# With ELF + +@%:@ Check whether --with-elf was given. +if test "${with_elf+set}" = set; then : + withval=$with_elf; elf="$with_elf" +else + elf=no +fi + + +# Specify the local prefix +local_prefix= + +@%:@ Check whether --with-local-prefix was given. +if test "${with_local_prefix+set}" = set; then : + withval=$with_local_prefix; case "${withval}" in +yes) as_fn_error $? "bad value ${withval} given for local include directory prefix" "$LINENO" 5 ;; +no) ;; +*) local_prefix=$with_local_prefix ;; +esac +fi + + +# Default local prefix if it is empty +if test x$local_prefix = x; then + local_prefix=/usr/local +fi + +# Don't set gcc_gxx_include_dir to gxx_include_dir since that's only +# passed in by the toplevel make and thus we'd get different behavior +# depending on where we built the sources. +gcc_gxx_include_dir= +# Specify the g++ header file directory + +@%:@ Check whether --with-gxx-include-dir was given. +if test "${with_gxx_include_dir+set}" = set; then : + withval=$with_gxx_include_dir; case "${withval}" in +yes) as_fn_error $? "bad value ${withval} given for g++ include directory" "$LINENO" 5 ;; +no) ;; +*) gcc_gxx_include_dir=$with_gxx_include_dir ;; +esac +fi + + +if test x${gcc_gxx_include_dir} = x; then + if test x${enable_version_specific_runtime_libs} = xyes; then + gcc_gxx_include_dir='${libsubdir}/include/g++' + else + topsrcdir=${srcdir}/.. . ${srcdir}/../config.if + gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/g++"-${libstdcxx_interface} + fi +fi + +# Enable expensive internal checks +@%:@ Check whether --enable-checking was given. +if test "${enable_checking+set}" = set; then : + enableval=$enable_checking; case "${enableval}" in +yes) $as_echo "@%:@define ENABLE_CHECKING 1" >>confdefs.h + ;; +no) ;; +*) as_fn_error $? "bad value ${enableval} given for checking option" "$LINENO" 5 ;; +esac +fi + + +@%:@ Check whether --enable-cpp was given. +if test "${enable_cpp+set}" = set; then : + enableval=$enable_cpp; +else + enable_cpp=yes +fi + + + +@%:@ Check whether --with-cpp_install_dir was given. +if test "${with_cpp_install_dir+set}" = set; then : + withval=$with_cpp_install_dir; if test x$withval = xyes; then + as_fn_error $? "option --with-cpp-install-dir requires an argument" "$LINENO" 5 +elif test x$withval != xno; then + cpp_install_dir=$withval +fi +fi + + +# Use cpplib+cppmain for the preprocessor, but don't link it with the compiler. +cpp_main=cccp +@%:@ Check whether --enable-cpplib was given. +if test "${enable_cpplib+set}" = set; then : + enableval=$enable_cpplib; if test x$enable_cpplib != xno; then + cpp_main=cppmain +fi +fi + + +# Link cpplib into the compiler proper, for C/C++/ObjC. +@%:@ Check whether --enable-c-cpplib was given. +if test "${enable_c_cpplib+set}" = set; then : + enableval=$enable_c_cpplib; if test x$enable_c_cpplib != xno; then + extra_c_objs="${extra_c_objs} libcpp.a" + extra_cxx_objs="${extra_cxx_objs} ../libcpp.a" + extra_c_flags="${extra_c_flags} -DUSE_CPPLIB=1" + cpp_main=cppmain +fi +fi + + +# Enable Multibyte Characters for C/C++ +@%:@ Check whether --enable-c-mbchar was given. +if test "${enable_c_mbchar+set}" = set; then : + enableval=$enable_c_mbchar; if test x$enable_c_mbchar != xno; then + extra_c_flags=-DMULTIBYTE_CHARS=1 +fi +fi + + +# Disable fast fixincludes +@%:@ Check whether --enable-fast-fixincludes was given. +if test "${enable_fast_fixincludes+set}" = set; then : + enableval=$enable_fast_fixincludes; if test x$enable_fast_fixincludes = xno ; then + cp $srcdir/fixincludes ./fixinc.sh +fi +fi + + +# Enable Haifa scheduler. +@%:@ Check whether --enable-haifa was given. +if test "${enable_haifa+set}" = set; then : + enableval=$enable_haifa; +fi + + +# Enable threads +# Pass with no value to take the default +# Pass with a value to specify a thread package +@%:@ Check whether --enable-threads was given. +if test "${enable_threads+set}" = set; then : + enableval=$enable_threads; if test x$enable_threads = xno; then + enable_threads='' +fi +else + enable_threads='' +fi + + +enable_threads_flag=$enable_threads +# Check if a valid thread package +case x${enable_threads_flag} in + x | xno) + # No threads + target_thread_file='single' + ;; + xyes) + # default + target_thread_file='' + ;; + xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \ + xsolaris | xwin32 | xdce | xvxworks) + target_thread_file=$enable_threads_flag + ;; + *) + echo "$enable_threads is an unknown thread package" 1>&2 + exit 1 + ;; +esac + +@%:@ Check whether --enable-objc-gc was given. +if test "${enable_objc_gc+set}" = set; then : + enableval=$enable_objc_gc; if [ x$enable_objc_gc = xno ]; then + objc_boehm_gc='' +else + objc_boehm_gc=1 +fi +else + objc_boehm_gc='' +fi + + +@%:@ Check whether --enable-java-gc was given. +if test "${enable_java_gc+set}" = set; then : + enableval=$enable_java_gc; + JAVAGC=$enableval +else + JAVAGC=boehm +fi + + + +@%:@ Check whether --with-dwarf2 was given. +if test "${with_dwarf2+set}" = set; then : + withval=$with_dwarf2; dwarf2="$with_dwarf2" +else + dwarf2=no +fi + + +# Determine the host, build, and target systems +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 +$as_echo_n "checking target system type... " >&6; } +if ${ac_cv_target+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 +$as_echo "$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + + +# Find the native compiler +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $@%:@ != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# If the native compiler is GCC, we can enable warnings even in stage1. +# That's useful for people building cross-compilers, or just running a +# quick `make'. +if test "x$GCC" = "xyes"; then + stage1_warn_cflags='$(WARN_CFLAGS)' +else + stage1_warn_cflags="" +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a default assembler was specified" >&5 +$as_echo_n "checking whether a default assembler was specified... " >&6; } +if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then + if test x"$gas_flag" = x"no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($DEFAULT_ASSEMBLER)" >&5 +$as_echo "yes ($DEFAULT_ASSEMBLER)" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($DEFAULT_ASSEMBLER - GNU as)" >&5 +$as_echo "yes ($DEFAULT_ASSEMBLER - GNU as)" >&6; } + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a default linker was specified" >&5 +$as_echo_n "checking whether a default linker was specified... " >&6; } +if test x"${DEFAULT_LINKER+set}" = x"set"; then + if test x"$gnu_ld_flag" = x"no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($DEFAULT_LINKER)" >&5 +$as_echo "yes ($DEFAULT_LINKER)" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($DEFAULT_LINKER - GNU ld)" >&5 +$as_echo "yes ($DEFAULT_LINKER - GNU ld)" >&6; } + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +# Find some useful tools +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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + + +for ac_prog in flex lex +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LEX"; then + ac_cv_prog_LEX="$LEX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LEX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LEX=$ac_cv_prog_LEX +if test -n "$LEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 +$as_echo "$LEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$LEX" && break +done +test -n "$LEX" || LEX=":" + +if test "x$LEX" != "x:"; then + cat >conftest.l <<_ACEOF +%% +a { ECHO; } +b { REJECT; } +c { yymore (); } +d { yyless (1); } +e { yyless (input () != 0); } +f { unput (yytext[0]); } +. { BEGIN INITIAL; } +%% +#ifdef YYTEXT_POINTER +extern char *yytext; +#endif +int +main (void) +{ + return ! yylex () + ! yywrap (); +} +_ACEOF +{ { ac_try="$LEX conftest.l" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$LEX conftest.l") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 +$as_echo_n "checking lex output file root... " >&6; } +if ${ac_cv_prog_lex_root+:} false; then : + $as_echo_n "(cached) " >&6 +else + +if test -f lex.yy.c; then + ac_cv_prog_lex_root=lex.yy +elif test -f lexyy.c; then + ac_cv_prog_lex_root=lexyy +else + as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 +$as_echo "$ac_cv_prog_lex_root" >&6; } +LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root + +if test -z "${LEXLIB+set}"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 +$as_echo_n "checking lex library... " >&6; } +if ${ac_cv_lib_lex+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ac_save_LIBS=$LIBS + ac_cv_lib_lex='none needed' + for ac_lib in '' -lfl -ll; do + LIBS="$ac_lib $ac_save_LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +`cat $LEX_OUTPUT_ROOT.c` +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_lex=$ac_lib +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + test "$ac_cv_lib_lex" != 'none needed' && break + done + LIBS=$ac_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 +$as_echo "$ac_cv_lib_lex" >&6; } + test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 +$as_echo_n "checking whether yytext is a pointer... " >&6; } +if ${ac_cv_prog_lex_yytext_pointer+:} false; then : + $as_echo_n "(cached) " >&6 +else + # POSIX says lex can declare yytext either as a pointer or an array; the +# default is implementation-dependent. Figure out which it is, since +# not all implementations provide the %pointer and %array declarations. +ac_cv_prog_lex_yytext_pointer=no +ac_save_LIBS=$LIBS +LIBS="$LEXLIB $ac_save_LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define YYTEXT_POINTER 1 +`cat $LEX_OUTPUT_ROOT.c` +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_prog_lex_yytext_pointer=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_save_LIBS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 +$as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; } +if test $ac_cv_prog_lex_yytext_pointer = yes; then + +$as_echo "@%:@define YYTEXT_POINTER 1" >>confdefs.h + +fi +rm -f conftest.l $LEX_OUTPUT_ROOT.c + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln works" >&5 +$as_echo_n "checking whether ln works... " >&6; } +if ${gcc_cv_prog_LN+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f conftestdata_t +echo >conftestdata_f +if ln conftestdata_f conftestdata_t 2>/dev/null +then + gcc_cv_prog_LN="ln" +else + if ln -s conftestdata_f conftestdata_t 2>/dev/null + then + gcc_cv_prog_LN="ln -s" + else + gcc_cv_prog_LN=cp + fi +fi +rm -f conftestdata_f conftestdata_t + +fi +LN="$gcc_cv_prog_LN" +if test "$gcc_cv_prog_LN" = "ln"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + if test "$gcc_cv_prog_LN" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using ln -s" >&5 +$as_echo "no, using ln -s" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, and neither does ln -s, so using cp" >&5 +$as_echo "no, and neither does ln -s, so using cp" >&6; } + fi +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +if ${gcc_cv_prog_LN_S+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f conftestdata_t +echo >conftestdata_f +if ln -s conftestdata_f conftestdata_t 2>/dev/null +then + gcc_cv_prog_LN_S="ln -s" +else + if ln conftestdata_f conftestdata_t 2>/dev/null + then + gcc_cv_prog_LN_S=ln + else + gcc_cv_prog_LN_S=cp + fi +fi +rm -f conftestdata_f conftestdata_t + +fi +LN_S="$gcc_cv_prog_LN_S" +if test "$gcc_cv_prog_LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + if test "$gcc_cv_prog_LN_S" = "ln"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using ln" >&5 +$as_echo "no, using ln" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, and neither does ln, so using cp" >&5 +$as_echo "no, and neither does ln, so using cp" >&6; } + fi +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for volatile" >&5 +$as_echo_n "checking for volatile... " >&6; } +if ${gcc_cv_c_volatile+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +volatile int foo; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gcc_cv_c_volatile=yes +else + gcc_cv_c_volatile=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_c_volatile" >&5 +$as_echo "$gcc_cv_c_volatile" >&6; } +if test $gcc_cv_c_volatile = yes ; then + $as_echo "@%:@define HAVE_VOLATILE 1" >>confdefs.h + +fi + +if test -n "$ac_tool_prefix"; then + # 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +for ac_prog in 'bison -y' byacc +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_YACC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$YACC"; then + ac_cv_prog_YACC="$YACC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_YACC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +YACC=$ac_cv_prog_YACC +if test -n "$YACC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 +$as_echo "$YACC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$YACC" && break +done +test -n "$YACC" || YACC="yacc" + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD compatible install" >&5 +$as_echo_n "checking for a BSD compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + # OSF/1 installbsd also uses dspmsg, but is usable. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 +$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } +if ${ac_cv_header_time+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include + +int +main () +{ +if ((struct tm *) 0) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_time=yes +else + ac_cv_header_time=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 +$as_echo "$ac_cv_header_time" >&6; } +if test $ac_cv_header_time = yes; then + +$as_echo "@%:@define TIME_WITH_SYS_TIME 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether string.h and strings.h may both be included" >&5 +$as_echo_n "checking whether string.h and strings.h may both be included... " >&6; } +if ${gcc_cv_header_string+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gcc_cv_header_string=yes +else + gcc_cv_header_string=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_header_string" >&5 +$as_echo "$gcc_cv_header_string" >&6; } +if test $gcc_cv_header_string = yes; then + $as_echo "@%:@define STRING_WITH_STRINGS 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 +$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } +if ${ac_cv_header_sys_wait_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#ifndef WEXITSTATUS +# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) +#endif +#ifndef WIFEXITED +# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) +#endif + +int +main () +{ + int s; + wait (&s); + s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_sys_wait_h=yes +else + ac_cv_header_sys_wait_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5 +$as_echo "$ac_cv_header_sys_wait_h" >&6; } +if test $ac_cv_header_sys_wait_h = yes; then + +$as_echo "@%:@define HAVE_SYS_WAIT_H 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in limits.h stddef.h string.h strings.h stdlib.h time.h fcntl.h unistd.h stab.h sys/file.h sys/time.h sys/resource.h sys/param.h sys/times.h sys/stat.h direct.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +# Check for thread headers. +ac_fn_c_check_header_mongrel "$LINENO" "thread.h" "ac_cv_header_thread_h" "$ac_includes_default" +if test "x$ac_cv_header_thread_h" = xyes; then : + have_thread_h=yes +else + have_thread_h= +fi + + +ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes; then : + have_pthread_h=yes +else + have_pthread_h= +fi + + + +# See if GNAT has been installed +# Extract the first word of "gnatbind", so it can be a program name with args. +set dummy gnatbind; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_gnat+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$gnat"; then + ac_cv_prog_gnat="$gnat" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_gnat="yes" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_gnat" && ac_cv_prog_gnat="no" +fi +fi +gnat=$ac_cv_prog_gnat +if test -n "$gnat"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gnat" >&5 +$as_echo "$gnat" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + +# See if the system preprocessor understands the ANSI C preprocessor +# stringification operator. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cpp understands the stringify operator" >&5 +$as_echo_n "checking whether cpp understands the stringify operator... " >&6; } +if ${gcc_cv_c_have_stringify+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#define S(x) #x +char *test = S(foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gcc_cv_c_have_stringify=yes +else + gcc_cv_c_have_stringify=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_c_have_stringify" >&5 +$as_echo "$gcc_cv_c_have_stringify" >&6; } +if test $gcc_cv_c_have_stringify = yes; then + $as_echo "@%:@define HAVE_CPP_STRINGIFY 1" >>confdefs.h + +fi + +# Use only if it exists, +# doesn't clash with , and declares intmax_t. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 +$as_echo_n "checking for inttypes.h... " >&6; } +if ${gcc_cv_header_inttypes_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +int +main () +{ +intmax_t i = -1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gcc_cv_header_inttypes_h=yes +else + gcc_cv_header_inttypes_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_header_inttypes_h" >&5 +$as_echo "$gcc_cv_header_inttypes_h" >&6; } +if test $gcc_cv_header_inttypes_h = yes; then + $as_echo "@%:@define HAVE_INTTYPES_H 1" >>confdefs.h + +fi + +for ac_func in strtoul bsearch strerror putenv popen bcopy bzero bcmp \ + index rindex strchr strrchr kill getrlimit setrlimit atoll atoq \ + sysconf isascii gettimeofday strsignal putc_unlocked fputc_unlocked \ + fputs_unlocked +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +# Make sure wchar_t is available +#AC_CHECK_TYPE(wchar_t, unsigned int) + +for ac_func in vprintf +do : + ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" +if test "x$ac_cv_func_vprintf" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_VPRINTF 1 +_ACEOF + +ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" +if test "x$ac_cv_func__doprnt" = xyes; then : + +$as_echo "@%:@define HAVE_DOPRNT 1" >>confdefs.h + +fi + +fi +done + + +vfprintf= +doprint= +if test $ac_cv_func_vprintf != yes ; then + vfprintf=vfprintf.o + if test $ac_cv_func__doprnt != yes ; then + doprint=doprint.o + fi +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the printf functions support %p" >&5 +$as_echo_n "checking whether the printf functions support %p... " >&6; } +if ${gcc_cv_func_printf_ptr+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + gcc_cv_func_printf_ptr=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +main() +{ + char buf[64]; + char *p = buf, *q = NULL; + sprintf(buf, "%p", p); + sscanf(buf, "%p", &q); + exit (p != q); +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gcc_cv_func_printf_ptr=yes +else + gcc_cv_func_printf_ptr=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +rm -f core core.* *.core +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_func_printf_ptr" >&5 +$as_echo "$gcc_cv_func_printf_ptr" >&6; } +if test $gcc_cv_func_printf_ptr = yes ; then + $as_echo "@%:@define HAVE_PRINTF_PTR 1" >>confdefs.h + +fi + + +case "${host}" in +*-*-uwin*) + # Under some versions of uwin, vfork is notoriously buggy and the test + # can hang configure; on other versions, vfork exists just as a stub. + # FIXME: This should be removed once vfork in uwin's runtime is fixed. + ac_cv_func_vfork_works=no + ;; +esac +ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" +if test "x$ac_cv_type_pid_t" = xyes; then : + +else + +cat >>confdefs.h <<_ACEOF +@%:@define pid_t int +_ACEOF + +fi + +for ac_header in vfork.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" +if test "x$ac_cv_header_vfork_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_VFORK_H 1 +_ACEOF + +fi + +done + +for ac_func in fork vfork +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +if test "x$ac_cv_func_fork" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 +$as_echo_n "checking for working fork... " >&6; } +if ${ac_cv_func_fork_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_func_fork_works=cross +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* By Ruediger Kuhlmann. */ + return fork () < 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_fork_works=yes +else + ac_cv_func_fork_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5 +$as_echo "$ac_cv_func_fork_works" >&6; } + +else + ac_cv_func_fork_works=$ac_cv_func_fork +fi +if test "x$ac_cv_func_fork_works" = xcross; then + case $host in + *-*-amigaos* | *-*-msdosdjgpp*) + # Override, as these systems have only a dummy fork() stub + ac_cv_func_fork_works=no + ;; + *) + ac_cv_func_fork_works=yes + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 +$as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} +fi +ac_cv_func_vfork_works=$ac_cv_func_vfork +if test "x$ac_cv_func_vfork" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 +$as_echo_n "checking for working vfork... " >&6; } +if ${ac_cv_func_vfork_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_func_vfork_works=cross +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Thanks to Paul Eggert for this test. */ +$ac_includes_default +#include +#ifdef HAVE_VFORK_H +# include +#endif +/* On some sparc systems, changes by the child to local and incoming + argument registers are propagated back to the parent. The compiler + is told about this with #include , but some compilers + (e.g. gcc -O) don't grok . Test for this by using a + static variable whose address is put into a register that is + clobbered by the vfork. */ +static void +#ifdef __cplusplus +sparc_address_test (int arg) +# else +sparc_address_test (arg) int arg; +#endif +{ + static pid_t child; + if (!child) { + child = vfork (); + if (child < 0) { + perror ("vfork"); + _exit(2); + } + if (!child) { + arg = getpid(); + write(-1, "", 0); + _exit (arg); + } + } +} + +int +main () +{ + pid_t parent = getpid (); + pid_t child; + + sparc_address_test (0); + + child = vfork (); + + if (child == 0) { + /* Here is another test for sparc vfork register problems. This + test uses lots of local variables, at least as many local + variables as main has allocated so far including compiler + temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris + 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should + reuse the register of parent for one of the local variables, + since it will think that parent can't possibly be used any more + in this routine. Assigning to the local variable will thus + munge parent in the parent process. */ + pid_t + p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), + p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); + /* Convince the compiler that p..p7 are live; otherwise, it might + use the same hardware register for all 8 local variables. */ + if (p != p1 || p != p2 || p != p3 || p != p4 + || p != p5 || p != p6 || p != p7) + _exit(1); + + /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent + from child file descriptors. If the child closes a descriptor + before it execs or exits, this munges the parent's descriptor + as well. Test for this by closing stdout in the child. */ + _exit(close(fileno(stdout)) != 0); + } else { + int status; + struct stat st; + + while (wait(&status) != child) + ; + return ( + /* Was there some problem with vforking? */ + child < 0 + + /* Did the child fail? (This shouldn't happen.) */ + || status + + /* Did the vfork/compiler bug occur? */ + || parent != getpid() + + /* Did the file descriptor bug occur? */ + || fstat(fileno(stdout), &st) != 0 + ); + } +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_vfork_works=yes +else + ac_cv_func_vfork_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5 +$as_echo "$ac_cv_func_vfork_works" >&6; } + +fi; +if test "x$ac_cv_func_fork_works" = xcross; then + ac_cv_func_vfork_works=$ac_cv_func_vfork + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 +$as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} +fi + +if test "x$ac_cv_func_vfork_works" = xyes; then + +$as_echo "@%:@define HAVE_WORKING_VFORK 1" >>confdefs.h + +else + +$as_echo "@%:@define vfork fork" >>confdefs.h + +fi +if test "x$ac_cv_func_fork_works" = xyes; then + +$as_echo "@%:@define HAVE_WORKING_FORK 1" >>confdefs.h + +fi + + +for ac_func in malloc realloc calloc free bcopy bzero bcmp \ + index rindex getenv atol sbrk abort atof strerror getcwd getwd \ + strsignal putc_unlocked fputs_unlocked strstr +do +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $ac_func must be declared" >&5 +$as_echo_n "checking whether $ac_func must be declared... " >&6; } +if eval \${gcc_cv_decl_needed_$ac_func+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef STRING_WITH_STRINGS +# include +# include +#else +# ifdef HAVE_STRING_H +# include +# else +# ifdef HAVE_STRINGS_H +# include +# endif +# endif +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +#ifndef HAVE_RINDEX +#define rindex strrchr +#endif +#ifndef HAVE_INDEX +#define index strchr +#endif + +int +main () +{ +char *(*pfn) = (char *(*)) $ac_func + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "gcc_cv_decl_needed_$ac_func=no" +else + eval "gcc_cv_decl_needed_$ac_func=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +if eval "test \"`echo '$gcc_cv_decl_needed_'$ac_func`\" = yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + gcc_tr_decl=NEED_DECLARATION_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >>confdefs.h <<_ACEOF +@%:@define $gcc_tr_decl 1 +_ACEOF + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +done + + +for ac_func in getrlimit setrlimit +do +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $ac_func must be declared" >&5 +$as_echo_n "checking whether $ac_func must be declared... " >&6; } +if eval \${gcc_cv_decl_needed_$ac_func+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef STRING_WITH_STRINGS +# include +# include +#else +# ifdef HAVE_STRING_H +# include +# else +# ifdef HAVE_STRINGS_H +# include +# endif +# endif +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +#ifndef HAVE_RINDEX +#define rindex strrchr +#endif +#ifndef HAVE_INDEX +#define index strchr +#endif +#include +#ifdef HAVE_SYS_RESOURCE_H +#include +#endif + +int +main () +{ +char *(*pfn) = (char *(*)) $ac_func + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "gcc_cv_decl_needed_$ac_func=no" +else + eval "gcc_cv_decl_needed_$ac_func=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +if eval "test \"`echo '$gcc_cv_decl_needed_'$ac_func`\" = yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + gcc_tr_decl=NEED_DECLARATION_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >>confdefs.h <<_ACEOF +@%:@define $gcc_tr_decl 1 +_ACEOF + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +done + + +ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "#include +/* NetBSD declares sys_siglist in unistd.h. */ +#ifdef HAVE_UNISTD_H +# include +#endif + +" +if test "x$ac_cv_have_decl_sys_siglist" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +@%:@define HAVE_DECL_SYS_SIGLIST $ac_have_decl +_ACEOF + + + +# mkdir takes a single argument on some systems. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if mkdir takes one argument" >&5 +$as_echo_n "checking if mkdir takes one argument... " >&6; } +if ${gcc_cv_mkdir_takes_one_arg+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif +#ifdef HAVE_DIRECT_H +# include +#endif +int +main () +{ +mkdir ("foo", 0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gcc_cv_mkdir_takes_one_arg=no +else + gcc_cv_mkdir_takes_one_arg=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_mkdir_takes_one_arg" >&5 +$as_echo "$gcc_cv_mkdir_takes_one_arg" >&6; } +if test $gcc_cv_mkdir_takes_one_arg = yes ; then + $as_echo "@%:@define MKDIR_TAKES_ONE_ARG 1" >>confdefs.h + +fi + + +# File extensions +manext='.1' +objext='.o' + + + +build_xm_file= +build_xm_defines= +build_install_headers_dir=install-headers-tar +build_exeext= +host_xm_file= +host_xm_defines= +host_xmake_file= +host_truncate_target= +host_exeext= + +# Decode the host machine, then the target machine. +# For the host machine, we save the xm_file variable as host_xm_file; +# then we decode the target machine and forget everything else +# that came from the host machine. +for machine in $build $host $target; do + + out_file= + xmake_file= + tmake_file= + extra_headers= + extra_passes= + extra_parts= + extra_programs= + extra_objs= + extra_host_objs= + extra_gcc_objs= + xm_defines= + float_format= + # Set this to force installation and use of collect2. + use_collect2= + # Set this to override the default target model. + target_cpu_default= + # Set this to control how the header file directory is installed. + install_headers_dir=install-headers-tar + # Set this to a non-empty list of args to pass to cpp if the target + # wants its .md file passed through cpp. + md_cppflags= + # Set this if directory names should be truncated to 14 characters. + truncate_target= + # Set this if gdb needs a dir command with `dirname $out_file` + gdb_needs_out_file_path= + # Set this if the build machine requires executables to have a + # file name suffix. + exeext= + # Set this to control which thread package will be used. + thread_file= + # Reinitialize these from the flag values every loop pass, since some + # configure entries modify them. + gas="$gas_flag" + gnu_ld="$gnu_ld_flag" + enable_threads=$enable_threads_flag + + # Set default cpu_type, tm_file and xm_file so it can be updated in + # each machine entry. + cpu_type=`echo $machine | sed 's/-.*$//'` + case $machine in + alpha*-*-*) + cpu_type=alpha + ;; + arm*-*-*) + cpu_type=arm + ;; + c*-convex-*) + cpu_type=convex + ;; + i[34567]86-*-*) + cpu_type=i386 + ;; + hppa*-*-*) + cpu_type=pa + ;; + m68000-*-*) + cpu_type=m68k + ;; + mips*-*-*) + cpu_type=mips + ;; + powerpc*-*-*) + cpu_type=rs6000 + ;; + pyramid-*-*) + cpu_type=pyr + ;; + sparc*-*-*) + cpu_type=sparc + ;; + esac + + tm_file=${cpu_type}/${cpu_type}.h + xm_file=${cpu_type}/xm-${cpu_type}.h + + # Common parts for linux-gnu and openbsd systems + case $machine in + *-*-linux-gnu*) + xm_defines="HAVE_ATEXIT POSIX BSTRING" + ;; + *-*-openbsd*) + tm_file=${cpu_type}/openbsd.h + tmake_file="t-libc-ok t-openbsd" + # avoid surprises, always provide an xm-openbsd file + xm_file=${cpu_type}/xm-openbsd.h + # don't depend on processor x-fragments as well + xmake_file=none + if test x$enable_threads = xyes; then + thread_file='posix' + tmake_file="${tmake_file} t-openbsd-thread" + fi + ;; + esac + + case $machine in + # Support site-specific machine types. + *local*) + cpu_type=`echo $machine | sed -e 's/-.*//'` + rest=`echo $machine | sed -e "s/$cpu_type-//"` + xm_file=${cpu_type}/xm-$rest.h + tm_file=${cpu_type}/$rest.h + if test -f $srcdir/config/${cpu_type}/x-$rest; \ + then xmake_file=${cpu_type}/x-$rest; \ + else true; \ + fi + if test -f $srcdir/config/${cpu_type}/t-$rest; \ + then tmake_file=${cpu_type}/t-$rest; \ + else true; \ + fi + ;; + 1750a-*-*) + ;; + a29k-*-bsd* | a29k-*-sym1*) + tm_file="${tm_file} a29k/unix.h" + xm_defines=USG + xmake_file=a29k/x-unix + use_collect2=yes + ;; + a29k-*-udi | a29k-*-coff) + tm_file="${tm_file} dbxcoff.h a29k/udi.h" + tmake_file=a29k/t-a29kbare + ;; + a29k-wrs-vxworks*) + tm_file="${tm_file} dbxcoff.h a29k/udi.h a29k/vx29k.h" + tmake_file=a29k/t-vx29k + extra_parts="crtbegin.o crtend.o" + thread_file='vxworks' + ;; + a29k-*-*) # Default a29k environment. + use_collect2=yes + ;; + alpha-*-interix) + tm_file="${tm_file} alpha/alpha32.h interix.h alpha/alpha-interix.h" + + # GAS + IEEE_CONFORMANT+IEEE (no inexact); + #target_cpu_default="MASK_GAS|MASK_IEEE_CONFORMANT|MASK_IEEE" + + # GAS + IEEE_CONFORMANT + target_cpu_default="MASK_GAS|MASK_IEEE_CONFORMANT" + + xm_file="alpha/xm-alpha-interix.h xm-interix.h" + xmake_file="x-interix alpha/t-pe" + tmake_file="alpha/t-interix alpha/t-ieee" + if test x$enable_threads = xyes ; then + thread_file='posix' + fi + if test x$stabs = xyes ; then + tm_file="${tm_file} dbxcoff.h" + fi + #prefix='$$INTERIX_ROOT'/usr/contrib + #local_prefix='$$INTERIX_ROOT'/usr/contrib + ;; + alpha*-*-linux-gnuecoff*) + tm_file="${tm_file} alpha/linux-ecoff.h alpha/linux.h" + target_cpu_default="MASK_GAS" + tmake_file="alpha/t-ieee" + gas=no + xmake_file=none + gas=yes gnu_ld=yes + ;; + alpha*-*-linux-gnulibc1*) + tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h" + target_cpu_default="MASK_GAS" + tmake_file="t-linux t-linux-gnulibc1 alpha/t-linux alpha/t-crtbe alpha/t-ieee" + extra_parts="crtbegin.o crtend.o" + xmake_file=none + gas=yes gnu_ld=yes + if test x$enable_threads = xyes; then + thread_file='posix' + fi + ;; + alpha*-*-linux-gnu*) + tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h" + target_cpu_default="MASK_GAS" + tmake_file="t-linux alpha/t-linux alpha/t-crtbe alpha/t-ieee" + extra_parts="crtbegin.o crtend.o" + xmake_file=none + gas=yes gnu_ld=yes + if test x$enable_threads = xyes; then + thread_file='posix' + fi + ;; + alpha*-*-netbsd*) + tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h" + target_cpu_default="MASK_GAS" + tmake_file="alpha/t-crtbe alpha/t-ieee" + extra_parts="crtbegin.o crtend.o" + xmake_file=none + gas=yes gnu_ld=yes + ;; + + alpha*-*-openbsd*) + # default x-alpha is only appropriate for dec-osf. + target_cpu_default="MASK_GAS" + tmake_file="alpha/t-ieee" + ;; + + alpha*-dec-osf*) + if test x$stabs = xyes + then + tm_file="${tm_file} dbx.h" + fi + if test x$gas != xyes + then + extra_passes="mips-tfile mips-tdump" + fi + use_collect2=yes + tmake_file="alpha/t-ieee" + case $machine in + *-*-osf1*) + tm_file="${tm_file} alpha/osf.h alpha/osf12.h alpha/osf2or3.h" + ;; + *-*-osf[23]*) + tm_file="${tm_file} alpha/osf.h alpha/osf2or3.h" + ;; + *-*-osf4*) + tm_file="${tm_file} alpha/osf.h" + # Some versions of OSF4 (specifically X4.0-9 296.7) have + # a broken tar, so we use cpio instead. + install_headers_dir=install-headers-cpio + ;; + esac + case $machine in + *-*-osf4.0[b-z] | *-*-osf4.[1-9]*) + target_cpu_default=MASK_SUPPORT_ARCH + ;; + esac + ;; + alpha*-*-vxworks*) + tm_file="${tm_file} dbx.h alpha/vxworks.h" + tmake_file="alpha/t-ieee" + if x$gas != xyes + then + extra_passes="mips-tfile mips-tdump" + fi + use_collect2=yes + thread_file='vxworks' + ;; + alpha*-*-winnt*) + tm_file="${tm_file} alpha/alpha32.h alpha/win-nt.h winnt/win-nt.h" + xm_file="${xm_file} config/winnt/xm-winnt.h alpha/xm-winnt.h" + tmake_file="t-libc-ok alpha/t-ieee" + xmake_file=winnt/x-winnt + extra_host_objs=oldnames.o + extra_gcc_objs="spawnv.o oldnames.o" + if test x$gnu_ld != xyes + then + extra_programs=ld.exe + fi + if test x$enable_threads = xyes; then + thread_file='win32' + fi + ;; + alpha*-dec-vms*) + tm_file=alpha/vms.h + xm_file="${xm_file} alpha/xm-vms.h" + tmake_file="alpha/t-vms alpha/t-ieee" + ;; + arc-*-elf*) + extra_parts="crtinit.o crtfini.o" + ;; + arm-*-coff* | armel-*-coff*) + tm_file=arm/coff.h + tmake_file=arm/t-bare + ;; + arm-*-vxworks*) + tm_file=arm/vxarm.h + tmake_file=arm/t-bare + thread_file='vxworks' + ;; + arm-*-riscix1.[01]*) # Acorn RISC machine (early versions) + tm_file=arm/riscix1-1.h + use_collect2=yes + ;; + arm-*-riscix*) # Acorn RISC machine + if test x$gas = xyes + then + tm_file=arm/rix-gas.h + else + tm_file=arm/riscix.h + fi + xmake_file=arm/x-riscix + tmake_file=arm/t-riscix + use_collect2=yes + ;; + arm-semi-aout | armel-semi-aout) + tm_file=arm/semi.h + tmake_file=arm/t-semi + ;; + arm-semi-aof | armel-semi-aof) + tm_file=arm/semiaof.h + tmake_file=arm/t-semiaof + ;; + arm*-*-netbsd*) + tm_file=arm/netbsd.h + xm_file="arm/xm-netbsd.h ${xm_file}" + tmake_file="t-netbsd arm/t-netbsd" + use_collect2=yes + ;; + arm*-*-linux-gnuaout*) # ARM GNU/Linux with a.out + cpu_type=arm + xmake_file=x-linux + tm_file=arm/linux-aout.h + tmake_file=arm/t-linux + gnu_ld=yes + ;; + arm*-*-linux-gnu*) # ARM GNU/Linux with ELF + xm_file=arm/xm-linux.h + xmake_file=x-linux + case $machine in + armv2*-*-*) + tm_file=arm/linux-elf26.h + ;; + *) + tm_file=arm/linux-elf.h + ;; + esac + tmake_file="t-linux arm/t-linux" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + gnu_ld=yes + case x${enable_threads} in + x | xyes | xpthreads | xposix) + thread_file='posix' + ;; + esac + ;; + arm*-*-aout) + tm_file=arm/aout.h + tmake_file=arm/t-bare + ;; + arm*-*-ecos-elf) + tm_file=arm/ecos-elf.h + tmake_file=arm/t-elf + ;; + arm*-*-elf) + tm_file=arm/unknown-elf.h + tmake_file=arm/t-arm-elf + ;; + arm*-*-oabi) + tm_file=arm/unknown-elf-oabi.h + tmake_file=arm/t-arm-elf + ;; + c1-convex-*) # Convex C1 + target_cpu_default=1 + use_collect2=yes + ;; + c2-convex-*) # Convex C2 + target_cpu_default=2 + use_collect2=yes + ;; + c32-convex-*) + target_cpu_default=4 + use_collect2=yes + ;; + c34-convex-*) + target_cpu_default=8 + use_collect2=yes + ;; + c38-convex-*) + target_cpu_default=16 + use_collect2=yes + ;; + c4x-*) + cpu_type=c4x + tmake_file=c4x/t-c4x + ;; + clipper-intergraph-clix*) + tm_file="${tm_file} svr3.h clipper/clix.h" + xm_file=clipper/xm-clix.h + xmake_file=clipper/x-clix + extra_headers=va-clipper.h + extra_parts="crtbegin.o crtend.o" + install_headers_dir=install-headers-cpio + ;; + dsp16xx-*) + ;; + elxsi-elxsi-*) + use_collect2=yes + ;; +# This hasn't been upgraded to GCC 2. +# fx80-alliant-*) # Alliant FX/80 +# ;; + h8300-*-*) + float_format=i32 + ;; + hppa*-*-openbsd*) + target_cpu_default="MASK_PA_11" + tmake_file=pa/t-openbsd + ;; + hppa1.1-*-pro*) + tm_file="pa/pa-pro.h ${tm_file} pa/pa-pro-end.h libgloss.h" + xm_file=pa/xm-papro.h + tmake_file=pa/t-pro + ;; + hppa1.1-*-osf*) + target_cpu_default="MASK_PA_11" + tm_file="${tm_file} pa/pa-osf.h" + use_collect2=yes + ;; + hppa1.1-*-rtems*) + tm_file="pa/pa-pro.h ${tm_file} pa/pa-pro-end.h libgloss.h pa/rtems.h" + xm_file=pa/xm-papro.h + tmake_file=pa/t-pro + ;; + hppa1.0-*-osf*) + tm_file="${tm_file} pa/pa-osf.h" + use_collect2=yes + ;; + hppa1.1-*-bsd*) + target_cpu_default="MASK_PA_11" + use_collect2=yes + ;; + hppa1.0-*-bsd*) + use_collect2=yes + ;; + hppa1.0-*-hpux7*) + tm_file="pa/pa-oldas.h ${tm_file} pa/pa-hpux7.h" + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + if test x$gas = xyes + then + tm_file="${tm_file} pa/gas.h" + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + ;; + hppa1.0-*-hpux8.0[0-2]*) + tm_file="${tm_file} pa/pa-hpux.h" + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + if test x$gas = xyes + then + tm_file="${tm_file} pa/pa-gas.h" + else + tm_file="pa/pa-oldas.h ${tm_file}" + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + ;; + hppa1.1-*-hpux8.0[0-2]*) + target_cpu_default="MASK_PA_11" + tm_file="${tm_file} pa/pa-hpux.h" + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + if test x$gas = xyes + then + tm_file="${tm_file} pa/pa-gas.h" + else + tm_file="pa/pa-oldas.h ${tm_file}" + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + ;; + hppa1.1-*-hpux8*) + target_cpu_default="MASK_PA_11" + tm_file="${tm_file} pa/pa-hpux.h" + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + if test x$gas = xyes + then + tm_file="${tm_file} pa/pa-gas.h" + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + ;; + hppa1.0-*-hpux8*) + tm_file="${tm_file} pa/pa-hpux.h" + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + if test x$gas = xyes + then + tm_file="${tm_file} pa/pa-gas.h" + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + ;; + hppa1.1-*-hpux10* | hppa2*-*-hpux10*) + target_cpu_default="MASK_PA_11" + tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux10.h" + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + tmake_file=pa/t-pa + if test x$gas = xyes + then + tm_file="${tm_file} pa/pa-gas.h" + fi + if test x$enable_threads = x; then + enable_threads=$have_pthread_h + fi + if test x$enable_threads = xyes; then + thread_file='dce' + tmake_file="${tmake_file} pa/t-dce-thr" + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + ;; + hppa1.0-*-hpux10*) + tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux10.h" + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + tmake_file=pa/t-pa + if test x$gas = xyes + then + tm_file="${tm_file} pa/pa-gas.h" + fi + if test x$enable_threads = x; then + enable_threads=$have_pthread_h + fi + if test x$enable_threads = xyes; then + thread_file='dce' + tmake_file="${tmake_file} pa/t-dce-thr" + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + ;; + hppa1.1-*-hpux* | hppa2*-*-hpux*) + target_cpu_default="MASK_PA_11" + tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux9.h" + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + if test x$gas = xyes + then + tm_file="${tm_file} pa/pa-gas.h" + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + ;; + hppa1.0-*-hpux*) + tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux9.h" + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + if test x$gas = xyes + then + tm_file="${tm_file} pa/pa-gas.h" + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + ;; + hppa1.1-*-hiux* | hppa2*-*-hiux*) + target_cpu_default="MASK_PA_11" + tm_file="${tm_file} pa/pa-hpux.h pa/pa-hiux.h" + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + if test x$gas = xyes + then + tm_file="${tm_file} pa/pa-gas.h" + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + ;; + hppa1.0-*-hiux*) + tm_file="${tm_file} pa/pa-hpux.h pa/pa-hiux.h" + xm_file=pa/xm-pahpux.h + xmake_file=pa/x-pa-hpux + if test x$gas = xyes + then + tm_file="${tm_file} pa/pa-gas.h" + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + ;; + hppa*-*-lites*) + target_cpu_default="MASK_PA_11" + use_collect2=yes + ;; + i370-*-mvs*) + ;; + i[34567]86-ibm-aix*) # IBM PS/2 running AIX + if test x$gas = xyes + then + tm_file=i386/aix386.h + extra_parts="crtbegin.o crtend.o" + tmake_file=i386/t-crtstuff + else + tm_file=i386/aix386ng.h + use_collect2=yes + fi + xm_file="xm-alloca.h i386/xm-aix.h ${xm_file}" + xm_defines=USG + xmake_file=i386/x-aix + ;; + i[34567]86-ncr-sysv4*) # NCR 3000 - ix86 running system V.4 + xm_file="xm-siglist.h xm-alloca.h ${xm_file}" + xm_defines="USG POSIX SMALL_ARG_MAX" + xmake_file=i386/x-ncr3000 + if test x$stabs = xyes -a x$gas = xyes + then + tm_file=i386/sysv4gdb.h + else + tm_file=i386/sysv4.h + fi + extra_parts="crtbegin.o crtend.o" + tmake_file=i386/t-crtpic + ;; + i[34567]86-next-*) + tm_file=i386/next.h + xm_file=i386/xm-next.h + tmake_file=i386/t-next + xmake_file=i386/x-next + extra_objs=nextstep.o + extra_parts="crtbegin.o crtend.o" + if test x$enable_threads = xyes; then + thread_file='mach' + fi + ;; + i[34567]86-sequent-bsd*) # 80386 from Sequent + use_collect2=yes + if test x$gas = xyes + then + tm_file=i386/seq-gas.h + else + tm_file=i386/sequent.h + fi + ;; + i[34567]86-sequent-ptx1*) + xm_defines="USG SVR3" + xmake_file=i386/x-sysv3 + tm_file=i386/seq-sysv3.h + tmake_file=i386/t-crtstuff + extra_parts="crtbegin.o crtend.o" + install_headers_dir=install-headers-cpio + ;; + i[34567]86-sequent-ptx2* | i[34567]86-sequent-sysv3*) + xm_defines="USG SVR3" + xmake_file=i386/x-sysv3 + tm_file=i386/seq2-sysv3.h + tmake_file=i386/t-crtstuff + extra_parts="crtbegin.o crtend.o" + install_headers_dir=install-headers-cpio + ;; + i[34567]86-sequent-ptx4* | i[34567]86-sequent-sysv4*) + xm_file="xm-siglist.h xm-alloca.h ${xm_file}" + xm_defines="USG POSIX SMALL_ARG_MAX" + xmake_file=x-svr4 + tm_file=i386/ptx4-i.h + tmake_file=t-svr4 + extra_parts="crtbegin.o crtend.o" + install_headers_dir=install-headers-cpio + ;; + i386-sun-sunos*) # Sun i386 roadrunner + xm_defines=USG + tm_file=i386/sun.h + use_collect2=yes + ;; + i[34567]86-wrs-vxworks*) + tm_file=i386/vxi386.h + tmake_file=i386/t-i386bare + thread_file='vxworks' + ;; + i[34567]86-*-aout*) + tm_file=i386/i386-aout.h + tmake_file=i386/t-i386bare + ;; + i[34567]86-*-bsdi* | i[34567]86-*-bsd386*) + tm_file=i386/bsd386.h +# tmake_file=t-libc-ok + ;; + i[34567]86-*-bsd*) + tm_file=i386/386bsd.h +# tmake_file=t-libc-ok +# Next line turned off because both 386BSD and BSD/386 use GNU ld. +# use_collect2=yes + ;; + i[34567]86-*-freebsdelf*) + tm_file="i386/i386.h i386/att.h svr4.h i386/freebsd-elf.h i386/perform.h" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + tmake_file=t-freebsd + gas=yes + gnu_ld=yes + stabs=yes + ;; + i[34567]86-*-freebsd*) + tm_file=i386/freebsd.h + tmake_file=t-freebsd + ;; + i[34567]86-*-netbsd*) + tm_file=i386/netbsd.h + tmake_file=t-netbsd + use_collect2=yes + ;; + i[34567]86-*-openbsd*) + # we need collect2 until our bug is fixed... + use_collect2=yes + ;; + i[34567]86-*-coff*) + tm_file=i386/i386-coff.h + tmake_file=i386/t-i386bare + ;; + i[34567]86-*-isc*) # 80386 running ISC system + xm_file="${xm_file} i386/xm-isc.h" + xm_defines="USG SVR3" + case $machine in + i[34567]86-*-isc[34]*) + xmake_file=i386/x-isc3 + ;; + *) + xmake_file=i386/x-isc + ;; + esac + if test x$gas = xyes -a x$stabs = xyes + then + tm_file=i386/iscdbx.h + tmake_file=i386/t-svr3dbx + extra_parts="svr3.ifile svr3z.ifile" + else + tm_file=i386/isccoff.h + tmake_file=i386/t-crtstuff + extra_parts="crtbegin.o crtend.o" + fi + install_headers_dir=install-headers-cpio + ;; + i[34567]86-*-linux-gnuoldld*) # Intel 80386's running GNU/Linux + # pre BFD linkers + xmake_file=x-linux-aout + tmake_file="t-linux-aout i386/t-crtstuff" + tm_file=i386/linux-oldld.h + gnu_ld=yes + float_format=i386 + ;; + i[34567]86-*-linux-gnuaout*) # Intel 80386's running GNU/Linux + xmake_file=x-linux-aout + tmake_file="t-linux-aout i386/t-crtstuff" + tm_file=i386/linux-aout.h + gnu_ld=yes + float_format=i386 + ;; + i[34567]86-*-linux-gnulibc1) # Intel 80386's running GNU/Linux + # GNU/Linux C library 5 + xmake_file=x-linux + tm_file=i386/linux.h + tmake_file="t-linux t-linux-gnulibc1 i386/t-crtstuff" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + gnu_ld=yes + float_format=i386 + if test x$enable_threads = xyes; then + thread_file='single' + fi + ;; + i[34567]86-*-linux-gnu*) # Intel 80386's running GNU/Linux + # aka GNU/Linux C library 6 + xmake_file=x-linux + tm_file=i386/linux.h + tmake_file="t-linux i386/t-crtstuff" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + gnu_ld=yes + float_format=i386 + if test x$enable_threads = xyes; then + thread_file='posix' + fi + ;; + i[34567]86-*-gnu*) + float_format=i386 + ;; + i[34567]86-go32-msdos | i[34567]86-*-go32*) + echo "GO32/DJGPP V1.X is no longer supported. Use *-pc-msdosdjgpp for DJGPP V2.X instead." + exit 1 + ;; + i[34567]86-pc-msdosdjgpp*) + xm_file=i386/xm-djgpp.h + tm_file=i386/djgpp.h + tmake_file=i386/t-djgpp + xmake_file=i386/x-djgpp + gnu_ld=yes + gas=yes + exeext=.exe + case $host in *pc-msdosdjgpp*) + target_alias=djgpp + ;; + esac + ;; + i[34567]86-moss-msdos* | i[34567]86-*-moss*) + tm_file=i386/moss.h + tmake_file=t-libc-ok + gnu_ld=yes + gas=yes + ;; + i[34567]86-*-lynxos*) + if test x$gas = xyes + then + tm_file=i386/lynx.h + else + tm_file=i386/lynx-ng.h + fi + xm_file=i386/xm-lynx.h + tmake_file=i386/t-i386bare + xmake_file=x-lynx + ;; + i[34567]86-*-mach*) + tm_file=i386/mach.h +# tmake_file=t-libc-ok + use_collect2=yes + ;; + i[34567]86-*-osfrose*) # 386 using OSF/rose + if test x$elf = xyes + then + tm_file=i386/osfelf.h + use_collect2= + else + tm_file=i386/osfrose.h + use_collect2=yes + fi + xm_file="i386/xm-osf.h ${xm_file}" + xmake_file=i386/x-osfrose + tmake_file=i386/t-osf + extra_objs=halfpic.o + ;; + i[34567]86-go32-rtems*) + cpu_type=i386 + xm_file=i386/xm-go32.h + tm_file=i386/go32-rtems.h + tmake_file="i386/t-go32 t-rtems" + ;; + i[34567]86-*-rtemself*) + cpu_type=i386 + tm_file=i386/rtemself.h + tmake_file="i386/t-i386bare t-rtems" + ;; + i[34567]86-*-rtems*) + cpu_type=i386 + tm_file=i386/rtems.h + tmake_file="i386/t-i386bare t-rtems" + ;; + i[34567]86-*-sco3.2v5*) # 80386 running SCO Open Server 5 + xm_file="xm-siglist.h xm-alloca.h ${xm_file} i386/xm-sco5.h" + xm_defines="USG SVR3" + xmake_file=i386/x-sco5 + install_headers_dir=install-headers-cpio + tm_file=i386/sco5.h + if test x$gas = xyes + then + tm_file="i386/sco5gas.h ${tm_file}" + tmake_file=i386/t-sco5gas + else + tmake_file=i386/t-sco5 + fi + extra_parts="crti.o crtbegin.o crtend.o crtbeginS.o crtendS.o" + ;; + i[34567]86-*-sco3.2v4*) # 80386 running SCO 3.2v4 system + xm_file="${xm_file} i386/xm-sco.h" + xm_defines="USG SVR3 BROKEN_LDEXP SMALL_ARG_MAX NO_SYS_SIGLIST" + xmake_file=i386/x-sco4 + install_headers_dir=install-headers-cpio + if test x$stabs = xyes + then + tm_file=i386/sco4dbx.h + tmake_file=i386/t-svr3dbx + extra_parts="svr3.ifile svr3z.rfile" + else + tm_file=i386/sco4.h + tmake_file=i386/t-crtstuff + extra_parts="crtbegin.o crtend.o" + fi + truncate_target=yes + ;; + i[34567]86-*-sco*) # 80386 running SCO system + xm_file=i386/xm-sco.h + xmake_file=i386/x-sco + install_headers_dir=install-headers-cpio + if test x$stabs = xyes + then + tm_file=i386/scodbx.h + tmake_file=i386/t-svr3dbx + extra_parts="svr3.ifile svr3z.rfile" + else + tm_file=i386/sco.h + extra_parts="crtbegin.o crtend.o" + tmake_file=i386/t-crtstuff + fi + truncate_target=yes + ;; + i[34567]86-*-solaris2*) + xm_file="xm-siglist.h xm-alloca.h ${xm_file}" + xm_defines="USG POSIX SMALL_ARG_MAX" + if test x$gas = xyes; then + # Only needed if gas does not support -s + tm_file=i386/sol2gas.h + else + tm_file=i386/sol2.h + fi + tmake_file=i386/t-sol2 + extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o" + xmake_file=x-svr4 + if test x$enable_threads = xyes; then + thread_file='solaris' + fi + ;; + i[34567]86-*-sysv5*) # Intel x86 on System V Release 5 + xm_file="xm-alloca.h xm-siglist.h ${xm_file}" + xm_defines="USG POSIX" + tm_file=i386/sysv5.h + if test x$stabs = xyes + then + tm_file="${tm_file} dbx.h" + fi + tmake_file=i386/t-crtpic + xmake_file=x-svr4 + extra_parts="crtbegin.o crtend.o" + if test x$enable_threads = xyes; then + thread_file='posix' + fi + ;; + i[34567]86-*-sysv4*) # Intel 80386's running system V.4 + xm_file="xm-siglist.h xm-alloca.h ${xm_file}" + xm_defines="USG POSIX SMALL_ARG_MAX" + tm_file=i386/sysv4.h + if test x$stabs = xyes + then + tm_file="${tm_file} dbx.h" + fi + tmake_file=i386/t-crtpic + xmake_file=x-svr4 + extra_parts="crtbegin.o crtend.o" + ;; + i[34567]86-*-udk*) # Intel x86 on SCO UW/OSR5 Dev Kit + xm_file="xm-alloca.h xm-siglist.h ${xm_file}" + xm_defines="USG POSIX" + tm_file=i386/udk.h + tmake_file="i386/t-crtpic i386/t-udk" + xmake_file=x-svr4 + extra_parts="crtbegin.o crtend.o" + install_headers_dir=install-headers-cpio + ;; + i[34567]86-*-osf1*) # Intel 80386's running OSF/1 1.3+ + cpu_type=i386 + xm_file="${xm_file} xm-svr4.h i386/xm-sysv4.h i386/xm-osf1elf.h" + xm_defines="USE_C_ALLOCA SMALL_ARG_MAX" + if test x$stabs = xyes + then + tm_file=i386/osf1elfgdb.h + else + tm_file=i386/osf1elf.h + fi + tmake_file=i386/t-osf1elf + xmake_file=i386/x-osf1elf + extra_parts="crti.o crtn.o crtbegin.o crtend.o" + ;; + i[34567]86-*-sysv*) # Intel 80386's running system V + xm_defines="USG SVR3" + xmake_file=i386/x-sysv3 + if test x$gas = xyes + then + if test x$stabs = xyes + then + tm_file=i386/svr3dbx.h + tmake_file=i386/t-svr3dbx + extra_parts="svr3.ifile svr3z.rfile" + else + tm_file=i386/svr3gas.h + extra_parts="crtbegin.o crtend.o" + tmake_file=i386/t-crtstuff + fi + else + tm_file=i386/sysv3.h + extra_parts="crtbegin.o crtend.o" + tmake_file=i386/t-crtstuff + fi + ;; + i386-*-vsta) # Intel 80386's running VSTa kernel + xm_file="${xm_file} i386/xm-vsta.h" + tm_file=i386/vsta.h + tmake_file=i386/t-vsta + xmake_file=i386/x-vsta + ;; + i[34567]86-*-win32) + xm_file="${xm_file} i386/xm-cygwin.h" + tmake_file=i386/t-cygwin + tm_file=i386/win32.h + xmake_file=i386/x-cygwin + extra_objs=winnt.o + if test x$enable_threads = xyes; then + thread_file='win32' + fi + exeext=.exe + ;; + i[34567]86-*-pe | i[34567]86-*-cygwin*) + xm_file="${xm_file} i386/xm-cygwin.h" + tmake_file=i386/t-cygwin + tm_file=i386/cygwin.h + xmake_file=i386/x-cygwin + extra_objs=winnt.o + if test x$enable_threads = xyes; then + thread_file='win32' + fi + exeext=.exe + ;; + i[34567]86-*-mingw32*) + tm_file=i386/mingw32.h + xm_file="${xm_file} i386/xm-mingw32.h" + tmake_file="i386/t-cygwin i386/t-mingw32" + extra_objs=winnt.o + xmake_file=i386/x-cygwin + if test x$enable_threads = xyes; then + thread_file='win32' + fi + exeext=.exe + case $machine in + *mingw32msv*) + ;; + *minwg32crt* | *mingw32*) + tm_file="${tm_file} i386/crtdll.h" + ;; + esac + ;; + i[34567]86-*-uwin*) + tm_file=i386/uwin.h + xm_file="${xm_file} i386/xm-uwin.h" + xm_defines="USG NO_STAB_H NO_SYS_SIGLIST" + tmake_file="i386/t-cygwin i386/t-uwin" + extra_objs=winnt.o + xmake_file=i386/x-cygwin + if test x$enable_threads = xyes; then + thread_file='win32' + fi + exeext=.exe + ;; + i[34567]86-*-interix*) + tm_file="i386/i386-interix.h interix.h" + xm_file="i386/xm-i386-interix.h xm-interix.h" + xm_defines="USG NO_SYS_SIGLIST" + tmake_file="i386/t-interix" + extra_objs=interix.o + xmake_file=x-interix + if test x$enable_threads = xyes ; then + thread_file='posix' + fi + if test x$stabs = xyes ; then + tm_file="${tm_file} dbxcoff.h" + fi + ;; + i[34567]86-*-winnt3*) + tm_file=i386/win-nt.h + out_file=i386/i386.c + xm_file="xm-winnt.h ${xm_file}" + xmake_file=winnt/x-winnt + tmake_file=i386/t-winnt + extra_host_objs="winnt.o oldnames.o" + extra_gcc_objs="spawnv.o oldnames.o" + if test x$gnu_ld != xyes + then + extra_programs=ld.exe + fi + if test x$enable_threads = xyes; then + thread_file='win32' + fi + ;; + i[34567]86-dg-dgux*) + xm_file="xm-alloca.h xm-siglist.h ${xm_file}" + xm_defines="USG POSIX" + out_file=i386/dgux.c + tm_file=i386/dgux.h + tmake_file=i386/t-dgux + xmake_file=i386/x-dgux + install_headers_dir=install-headers-cpio + ;; + i860-alliant-*) # Alliant FX/2800 + tm_file="${tm_file} svr4.h i860/sysv4.h i860/fx2800.h" + xm_file="${xm_file}" + xmake_file=i860/x-fx2800 + tmake_file=i860/t-fx2800 + extra_parts="crtbegin.o crtend.o" + ;; + i860-*-bsd*) + tm_file="${tm_file} i860/bsd.h" + if test x$gas = xyes + then + tm_file="${tm_file} i860/bsd-gas.h" + fi + use_collect2=yes + ;; + i860-*-mach*) + tm_file="${tm_file} i860/mach.h" + tmake_file=t-libc-ok + ;; + i860-*-osf*) # Intel Paragon XP/S, OSF/1AD + tm_file="${tm_file} svr3.h i860/paragon.h" + xm_defines="USG SVR3" + tmake_file=t-osf + ;; + i860-*-sysv3*) + tm_file="${tm_file} svr3.h i860/sysv3.h" + xm_defines="USG SVR3" + xmake_file=i860/x-sysv3 + extra_parts="crtbegin.o crtend.o" + ;; + i860-*-sysv4*) + tm_file="${tm_file} svr4.h i860/sysv4.h" + xm_defines="USG SVR3" + xmake_file=i860/x-sysv4 + tmake_file=t-svr4 + extra_parts="crtbegin.o crtend.o" + ;; + i960-wrs-vxworks5 | i960-wrs-vxworks5.0*) + tm_file="${tm_file} i960/vx960.h" + tmake_file=i960/t-vxworks960 + use_collect2=yes + thread_file='vxworks' + ;; + i960-wrs-vxworks5* | i960-wrs-vxworks) + tm_file="${tm_file} dbxcoff.h i960/i960-coff.h i960/vx960-coff.h" + tmake_file=i960/t-vxworks960 + use_collect2=yes + thread_file='vxworks' + ;; + i960-wrs-vxworks*) + tm_file="${tm_file} i960/vx960.h" + tmake_file=i960/t-vxworks960 + use_collect2=yes + thread_file='vxworks' + ;; + i960-*-coff*) + tm_file="${tm_file} dbxcoff.h i960/i960-coff.h libgloss.h" + tmake_file=i960/t-960bare + use_collect2=yes + ;; + i960-*-rtems) + tmake_file="i960/t-960bare t-rtems" + tm_file="${tm_file} dbxcoff.h i960/rtems.h" + use_collect2=yes + ;; + i960-*-*) # Default i960 environment. + use_collect2=yes + ;; + m32r-*-elf*) + extra_parts="crtinit.o crtfini.o" + ;; + m68000-convergent-sysv*) + tm_file=m68k/ctix.h + xm_file="m68k/xm-3b1.h ${xm_file}" + xm_defines=USG + use_collect2=yes + extra_headers=math-68881.h + ;; + m68000-hp-bsd*) # HP 9000/200 running BSD + tm_file=m68k/hp2bsd.h + xmake_file=m68k/x-hp2bsd + use_collect2=yes + extra_headers=math-68881.h + ;; + m68000-hp-hpux*) # HP 9000 series 300 + xm_file="xm_alloca.h ${xm_file}" + xm_defines="USG NO_SYS_SIGLIST" + if test x$gas = xyes + then + xmake_file=m68k/x-hp320g + tm_file=m68k/hp310g.h + else + xmake_file=m68k/x-hp320 + tm_file=m68k/hp310.h + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + extra_headers=math-68881.h + ;; + m68000-sun-sunos3*) + tm_file=m68k/sun2.h + use_collect2=yes + extra_headers=math-68881.h + ;; + m68000-sun-sunos4*) + tm_file=m68k/sun2o4.h + use_collect2=yes + extra_headers=math-68881.h + ;; + m68000-att-sysv*) + xm_file="m68k/xm-3b1.h ${xm_file}" + xm_defines=USG + if test x$gas = xyes + then + tm_file=m68k/3b1g.h + else + tm_file=m68k/3b1.h + fi + use_collect2=yes + extra_headers=math-68881.h + ;; + m68k-apple-aux*) # Apple Macintosh running A/UX + xm_defines="USG AUX" + tmake_file=m68k/t-aux + install_headers_dir=install-headers-cpio + extra_headers=math-68881.h + extra_parts="crt1.o mcrt1.o maccrt1.o crt2.o crtn.o" + tm_file= + if test "$gnu_ld" = yes + then + tm_file="${tm_file} m68k/auxgld.h" + else + tm_file="${tm_file} m68k/auxld.h" + fi + if test "$gas" = yes + then + tm_file="${tm_file} m68k/auxgas.h" + else + tm_file="${tm_file} m68k/auxas.h" + fi + tm_file="${tm_file} m68k/a-ux.h" + float_format=m68k + ;; + m68k-apollo-*) + tm_file=m68k/apollo68.h + xmake_file=m68k/x-apollo68 + use_collect2=yes + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-altos-sysv*) # Altos 3068 + if test x$gas = xyes + then + tm_file=m68k/altos3068.h + xm_defines=USG + else + echo "The Altos is supported only with the GNU assembler" 1>&2 + exit 1 + fi + extra_headers=math-68881.h + ;; + m68k-bull-sysv*) # Bull DPX/2 + if test x$gas = xyes + then + if test x$stabs = xyes + then + tm_file=m68k/dpx2cdbx.h + else + tm_file=m68k/dpx2g.h + fi + else + tm_file=m68k/dpx2.h + fi + xm_file="xm-alloca.h ${xm_file}" + xm_defines=USG + xmake_file=m68k/x-dpx2 + use_collect2=yes + extra_headers=math-68881.h + ;; + m68k-atari-sysv4*) # Atari variant of V.4. + tm_file=m68k/atari.h + xm_file="xm-alloca.h ${xm_file}" + xm_defines="USG FULL_PROTOTYPES" + tmake_file=t-svr4 + extra_parts="crtbegin.o crtend.o" + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-motorola-sysv*) + tm_file=m68k/mot3300.h + xm_file="xm-alloca.h m68k/xm-mot3300.h ${xm_file}" + xm_defines=NO_SYS_SIGLIST + if test x$gas = xyes + then + xmake_file=m68k/x-mot3300-gas + if test x$gnu_ld = xyes + then + tmake_file=m68k/t-mot3300-gald + else + tmake_file=m68k/t-mot3300-gas + use_collect2=yes + fi + else + xmake_file=m68k/x-mot3300 + if test x$gnu_ld = xyes + then + tmake_file=m68k/t-mot3300-gld + else + tmake_file=m68k/t-mot3300 + use_collect2=yes + fi + fi + gdb_needs_out_file_path=yes + extra_parts="crt0.o mcrt0.o" + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-ncr-sysv*) # NCR Tower 32 SVR3 + tm_file=m68k/tower-as.h + xm_defines="USG SVR3" + xmake_file=m68k/x-tower + extra_parts="crtbegin.o crtend.o" + extra_headers=math-68881.h + ;; + m68k-plexus-sysv*) + tm_file=m68k/plexus.h + xm_file="xm-alloca.h m68k/xm-plexus.h ${xm_file}" + xm_defines=USG + use_collect2=yes + extra_headers=math-68881.h + ;; + m68k-tti-*) + tm_file=m68k/pbb.h + xm_file="xm-alloca.h ${xm_file}" + xm_defines=USG + extra_headers=math-68881.h + ;; + m68k-crds-unos*) + xm_file="xm-alloca.h m68k/xm-crds.h ${xm_file}" + xm_defines="USG unos" + xmake_file=m68k/x-crds + tm_file=m68k/crds.h + use_collect2=yes + extra_headers=math-68881.h + ;; + m68k-cbm-sysv4*) # Commodore variant of V.4. + tm_file=m68k/amix.h + xm_file="xm-alloca.h ${xm_file}" + xm_defines="USG FULL_PROTOTYPES" + xmake_file=m68k/x-amix + tmake_file=t-svr4 + extra_parts="crtbegin.o crtend.o" + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-ccur-rtu) + tm_file=m68k/ccur-GAS.h + xmake_file=m68k/x-ccur + extra_headers=math-68881.h + use_collect2=yes + float_format=m68k + ;; + m68k-hp-bsd4.4*) # HP 9000/3xx running 4.4bsd + tm_file=m68k/hp3bsd44.h + use_collect2=yes + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-hp-bsd*) # HP 9000/3xx running Berkeley Unix + tm_file=m68k/hp3bsd.h + use_collect2=yes + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-isi-bsd*) + if test x$with_fp = xno + then + tm_file=m68k/isi-nfp.h + else + tm_file=m68k/isi.h + float_format=m68k + fi + use_collect2=yes + extra_headers=math-68881.h + ;; + m68k-hp-hpux7*) # HP 9000 series 300 running HPUX version 7. + xm_file="xm_alloca.h ${xm_file}" + xm_defines="USG NO_SYS_SIGLIST" + if test x$gas = xyes + then + xmake_file=m68k/x-hp320g + tm_file=m68k/hp320g.h + else + xmake_file=m68k/x-hp320 + tm_file=m68k/hpux7.h + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-hp-hpux*) # HP 9000 series 300 + xm_file="xm_alloca.h ${xm_file}" + xm_defines="USG NO_SYS_SIGLIST" + if test x$gas = xyes + then + xmake_file=m68k/x-hp320g + tm_file=m68k/hp320g.h + else + xmake_file=m68k/x-hp320 + tm_file=m68k/hp320.h + fi + install_headers_dir=install-headers-cpio + use_collect2=yes + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-sun-mach*) + tm_file=m68k/sun3mach.h + use_collect2=yes + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-sony-newsos3*) + if test x$gas = xyes + then + tm_file=m68k/news3gas.h + else + tm_file=m68k/news3.h + fi + use_collect2=yes + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-sony-bsd* | m68k-sony-newsos*) + if test x$gas = xyes + then + tm_file=m68k/newsgas.h + else + tm_file=m68k/news.h + fi + use_collect2=yes + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-next-nextstep2*) + tm_file=m68k/next21.h + xm_file="m68k/xm-next.h ${xm_file}" + tmake_file=m68k/t-next + xmake_file=m68k/x-next + extra_objs=nextstep.o + extra_headers=math-68881.h + use_collect2=yes + float_format=m68k + ;; + m68k-next-nextstep3*) + tm_file=m68k/next.h + xm_file="m68k/xm-next.h ${xm_file}" + tmake_file=m68k/t-next + xmake_file=m68k/x-next + extra_objs=nextstep.o + extra_parts="crtbegin.o crtend.o" + extra_headers=math-68881.h + float_format=m68k + if test x$enable_threads = xyes; then + thread_file='mach' + fi + ;; + m68k-sun-sunos3*) + if test x$with_fp = xno + then + tm_file=m68k/sun3n3.h + else + tm_file=m68k/sun3o3.h + float_format=m68k + fi + use_collect2=yes + extra_headers=math-68881.h + ;; + m68k-sun-sunos*) # For SunOS 4 (the default). + if test x$with_fp = xno + then + tm_file=m68k/sun3n.h + else + tm_file=m68k/sun3.h + float_format=m68k + fi + use_collect2=yes + extra_headers=math-68881.h + ;; + m68k-wrs-vxworks*) + tm_file=m68k/vxm68k.h + tmake_file=m68k/t-vxworks68 + extra_headers=math-68881.h + thread_file='vxworks' + float_format=m68k + ;; + m68k-*-aout*) + tmake_file=m68k/t-m68kbare + tm_file="m68k/m68k-aout.h libgloss.h" + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-*-coff*) + tmake_file=m68k/t-m68kbare + tm_file="m68k/m68k-coff.h dbx.h libgloss.h" + extra_headers=math-68881.h + float_format=m68k + ;; + m68020-*-elf* | m68k-*-elf*) + tm_file="m68k/m68020-elf.h libgloss.h" + xm_file=m68k/xm-m68kv.h + tmake_file=m68k/t-m68kelf + header_files=math-68881.h + ;; + m68k-*-lynxos*) + if test x$gas = xyes + then + tm_file=m68k/lynx.h + else + tm_file=m68k/lynx-ng.h + fi + xm_file=m68k/xm-lynx.h + xmake_file=x-lynx + tmake_file=m68k/t-lynx + extra_headers=math-68881.h + float_format=m68k + ;; + m68k*-*-netbsd*) + tm_file=m68k/netbsd.h + tmake_file=t-netbsd + float_format=m68k + use_collect2=yes + ;; + m68k*-*-openbsd*) + float_format=m68k + # we need collect2 until our bug is fixed... + use_collect2=yes + ;; + m68k-*-sysv3*) # Motorola m68k's running system V.3 + xm_file="xm-alloca.h ${xm_file}" + xm_defines=USG + xmake_file=m68k/x-m68kv + extra_parts="crtbegin.o crtend.o" + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-*-sysv4*) # Motorola m68k's running system V.4 + tm_file=m68k/m68kv4.h + xm_file="xm-alloca.h ${xm_file}" + xm_defines=USG + tmake_file=t-svr4 + extra_parts="crtbegin.o crtend.o" + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-*-linux-gnuaout*) # Motorola m68k's running GNU/Linux + # with a.out format + xmake_file=x-linux + tm_file=m68k/linux-aout.h + tmake_file="t-linux-aout m68k/t-linux-aout" + extra_headers=math-68881.h + float_format=m68k + gnu_ld=yes + ;; + m68k-*-linux-gnulibc1) # Motorola m68k's running GNU/Linux + # with ELF format using the + # GNU/Linux C library 5 + xmake_file=x-linux + tm_file=m68k/linux.h + tmake_file="t-linux t-linux-gnulibc1 m68k/t-linux" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + extra_headers=math-68881.h + float_format=m68k + gnu_ld=yes + ;; + m68k-*-linux-gnu*) # Motorola m68k's running GNU/Linux + # with ELF format using glibc 2 + # aka the GNU/Linux C library 6. + xmake_file=x-linux + tm_file=m68k/linux.h + tmake_file="t-linux m68k/t-linux" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + extra_headers=math-68881.h + float_format=m68k + gnu_ld=yes + if test x$enable_threads = xyes; then + thread_file='posix' + fi + ;; + m68k-*-psos*) + tmake_file=m68k/t-m68kbare + tm_file=m68k/m68k-psos.h + extra_headers=math-68881.h + float_format=m68k + ;; + m68k-*-rtems*) + tmake_file="m68k/t-m68kbare t-rtems" + tm_file=m68k/rtems.h + extra_headers=math-68881.h + float_format=m68k + ;; + + m88k-dg-dgux*) + case $machine in + m88k-dg-dguxbcs*) + tm_file=m88k/dguxbcs.h + tmake_file=m88k/t-dguxbcs + ;; + *) + tm_file=m88k/dgux.h + tmake_file=m88k/t-dgux + ;; + esac + extra_parts="crtbegin.o bcscrtbegin.o crtend.o m88kdgux.ld" + xmake_file=m88k/x-dgux + if test x$gas = xyes + then + tmake_file=m88k/t-dgux-gas + fi + ;; + m88k-dolphin-sysv3*) + tm_file=m88k/dolph.h + extra_parts="crtbegin.o crtend.o" + xm_file="m88k/xm-sysv3.h ${xm_file}" + xmake_file=m88k/x-dolph + if test x$gas = xyes + then + tmake_file=m88k/t-m88k-gas + fi + ;; + m88k-tektronix-sysv3) + tm_file=m88k/tekXD88.h + extra_parts="crtbegin.o crtend.o" + xm_file="m88k/xm-sysv3.h ${xm_file}" + xmake_file=m88k/x-tekXD88 + if test x$gas = xyes + then + tmake_file=m88k/t-m88k-gas + fi + ;; + m88k-*-aout*) + tm_file=m88k/m88k-aout.h + ;; + m88k-*-coff*) + tm_file=m88k/m88k-coff.h + tmake_file=m88k/t-bug + ;; + m88k-*-luna*) + tm_file=m88k/luna.h + extra_parts="crtbegin.o crtend.o" + if test x$gas = xyes + then + tmake_file=m88k/t-luna-gas + else + tmake_file=m88k/t-luna + fi + ;; + m88k-*-openbsd*) + tmake_file="${tmake_file} m88k/t-luna-gas" + ;; + m88k-*-sysv3*) + tm_file=m88k/sysv3.h + extra_parts="crtbegin.o crtend.o" + xm_file="m88k/xm-sysv3.h ${xm_file}" + xmake_file=m88k/x-sysv3 + if test x$gas = xyes + then + tmake_file=m88k/t-m88k-gas + fi + ;; + m88k-*-sysv4*) + tm_file=m88k/sysv4.h + extra_parts="crtbegin.o crtend.o" + xmake_file=m88k/x-sysv4 + tmake_file=m88k/t-sysv4 + ;; + mips-sgi-irix6*) # SGI System V.4., IRIX 6 + tm_file=mips/iris6.h + xm_file=mips/xm-iris6.h + xmake_file=mips/x-iris6 + tmake_file=mips/t-iris6 +# if test x$enable_threads = xyes; then +# thread_file='irix' +# fi + ;; + mips-wrs-vxworks) + tm_file="mips/elf.h libgloss.h mips/vxworks.h" + tmake_file=mips/t-ecoff + gas=yes + gnu_ld=yes + extra_parts="crtbegin.o crtend.o" + thread_file='vxworks' + ;; + mips-sgi-irix5cross64) # Irix5 host, Irix 6 target, cross64 + tm_file="mips/iris6.h mips/cross64.h" + xm_defines=USG + xm_file="mips/xm-iris5.h" + xmake_file=mips/x-iris + tmake_file=mips/t-cross64 + # See comment in mips/iris[56].h files. + use_collect2=yes +# if test x$enable_threads = xyes; then +# thread_file='irix' +# fi + ;; + mips-sni-sysv4) + if test x$gas = xyes + then + if test x$stabs = xyes + then + tm_file=mips/iris5gdb.h + else + tm_file="mips/sni-svr4.h mips/sni-gas.h" + fi + else + tm_file=mips/sni-svr4.h + fi + xm_defines=USG + xmake_file=mips/x-sni-svr4 + tmake_file=mips/t-mips-gas + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mips-sgi-irix5*) # SGI System V.4., IRIX 5 + if test x$gas = xyes + then + tm_file="mips/iris5.h mips/iris5gas.h" + if test x$stabs = xyes + then + tm_file="${tm_file} dbx.h" + fi + else + tm_file=mips/iris5.h + fi + xm_defines=USG + xm_file="mips/xm-iris5.h" + xmake_file=mips/x-iris + # mips-tfile doesn't work yet + tmake_file=mips/t-mips-gas + # See comment in mips/iris5.h file. + use_collect2=yes +# if test x$enable_threads = xyes; then +# thread_file='irix' +# fi + ;; + mips-sgi-irix4loser*) # Mostly like a MIPS. + tm_file="mips/iris4loser.h mips/iris3.h ${tm_file} mips/iris4.h" + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + xm_defines=USG + xmake_file=mips/x-iris + if test x$gas = xyes + then + tmake_file=mips/t-mips-gas + else + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi +# if test x$enable_threads = xyes; then +# thread_file='irix' +# fi + ;; + mips-sgi-irix4*) # Mostly like a MIPS. + tm_file="mips/iris3.h ${tm_file} mips/iris4.h" + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + xm_defines=USG + xmake_file=mips/x-iris + if test x$gas = xyes + then + tmake_file=mips/t-mips-gas + else + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi +# if test x$enable_threads = xyes; then +# thread_file='irix' +# fi + ;; + mips-sgi-*) # Mostly like a MIPS. + tm_file="mips/iris3.h ${tm_file}" + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + xm_defines=USG + xmake_file=mips/x-iris3 + if test x$gas = xyes + then + tmake_file=mips/t-mips-gas + else + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mips-dec-osfrose*) # Decstation running OSF/1 reference port with OSF/rose. + tm_file="mips/osfrose.h ${tm_file}" + xmake_file=mips/x-osfrose + tmake_file=mips/t-osfrose + extra_objs=halfpic.o + use_collect2=yes + ;; + mips-dec-osf*) # Decstation running OSF/1 as shipped by DIGITAL + tm_file=mips/dec-osf1.h + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + xmake_file=mips/x-dec-osf1 + if test x$gas = xyes + then + tmake_file=mips/t-mips-gas + else + tmake_file=mips/t-ultrix + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mips-dec-bsd*) # Decstation running 4.4 BSD + tm_file=mips/dec-bsd.h + if test x$gas = xyes + then + tmake_file=mips/t-mips-gas + else + tmake_file=mips/t-ultrix + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mipsel-*-netbsd* | mips-dec-netbsd*) # Decstation running NetBSD + tm_file=mips/netbsd.h + # On NetBSD, the headers are already okay, except for math.h. + tmake_file=t-netbsd + ;; + mips*-*-linux*) # Linux MIPS, either endian. + xmake_file=x-linux + xm_file="xm-siglist.h ${xm_file}" + case $machine in + mipsel-*) tm_file="mips/elfl.h mips/linux.h" ;; + *) tm_file="mips/elf.h mips/linux.h" ;; + esac + extra_parts="crtbegin.o crtend.o" + gnu_ld=yes + gas=yes + ;; + mips*el-*-openbsd*) # mips little endian + target_cpu_default="MASK_GAS|MASK_ABICALLS" + tm_file=mips/openbsd.h + ;; + mips*-*-openbsd*) # mips big endian + target_cpu_default="MASK_GAS|MASK_ABICALLS" + tm_file=mips/openbsd-be.h + ;; + mips-sony-bsd* | mips-sony-newsos*) # Sony NEWS 3600 or risc/news. + tm_file="mips/news4.h ${tm_file}" + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + if test x$gas = xyes + then + tmake_file=mips/t-mips-gas + else + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + xmake_file=mips/x-sony + ;; + mips-sony-sysv*) # Sony NEWS 3800 with NEWSOS5.0. + # That is based on svr4. + # t-svr4 is not right because this system doesn't use ELF. + tm_file="mips/news5.h ${tm_file}" + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + xm_file="xm-siglist.h ${xm_file}" + xm_defines=USG + if test x$gas = xyes + then + tmake_file=mips/t-mips-gas + else + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mips-tandem-sysv4*) # Tandem S2 running NonStop UX + tm_file="mips/svr4-5.h mips/svr4-t.h" + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + xm_file="xm-siglist.h ${xm_file}" + xm_defines=USG + xmake_file=mips/x-sysv + if test x$gas = xyes + then + tmake_file=mips/t-mips-gas + extra_parts="crtbegin.o crtend.o" + else + tmake_file=mips/t-mips + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mips-*-ultrix* | mips-dec-mach3) # Decstation. + tm_file="mips/ultrix.h ${tm_file}" + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + xmake_file=mips/x-ultrix + if test x$gas = xyes + then + tmake_file=mips/t-mips-gas + else + tmake_file=mips/t-ultrix + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mips-*-riscos[56789]bsd*) + tm_file=mips/bsd-5.h # MIPS BSD 4.3, RISC-OS 5.0 + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + if test x$gas = xyes + then + tmake_file=mips/t-bsd-gas + else + tmake_file=mips/t-bsd + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mips-*-bsd* | mips-*-riscosbsd* | mips-*-riscos[1234]bsd*) + tm_file="mips/bsd-4.h ${tm_file}" # MIPS BSD 4.3, RISC-OS 4.0 + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + if test x$gas = xyes + then + tmake_file=mips/t-bsd-gas + else + tmake_file=mips/t-bsd + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mips-*-riscos[56789]sysv4*) + tm_file=mips/svr4-5.h # MIPS System V.4., RISC-OS 5.0 + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + xm_file="xm-siglist.h ${xm_file}" + xmake_file=mips/x-sysv + if test x$gas = xyes + then + tmake_file=mips/t-svr4-gas + else + tmake_file=mips/t-svr4 + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mips-*-sysv4* | mips-*-riscos[1234]sysv4* | mips-*-riscossysv4*) + tm_file="mips/svr4-4.h ${tm_file}" + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + xm_defines=USG + xmake_file=mips/x-sysv + if test x$gas = xyes + then + tmake_file=mips/t-svr4-gas + else + tmake_file=mips/t-svr4 + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mips-*-riscos[56789]sysv*) + tm_file=mips/svr3-5.h # MIPS System V.3, RISC-OS 5.0 + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + xm_defines=USG + xmake_file=mips/x-sysv + if test x$gas = xyes + then + tmake_file=mips/t-svr3-gas + else + tmake_file=mips/t-svr3 + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mips-*-sysv* | mips-*-riscos*sysv*) + tm_file="mips/svr3-4.h ${tm_file}" + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + xm_defines=USG + xmake_file=mips/x-sysv + if test x$gas = xyes + then + tmake_file=mips/t-svr3-gas + else + tmake_file=mips/t-svr3 + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mips-*-riscos[56789]*) # Default MIPS RISC-OS 5.0. + tm_file=mips/mips-5.h + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + if test x$gas = xyes + then + tmake_file=mips/t-mips-gas + else + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mips-*-gnu*) + ;; + mipsel-*-ecoff*) + tm_file=mips/ecoffl.h + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + tmake_file=mips/t-ecoff + ;; + mips-*-ecoff*) + tm_file="gofast.h mips/ecoff.h" + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + tmake_file=mips/t-ecoff + ;; + mipsel-*-elf*) + tm_file="mips/elfl.h libgloss.h" + tmake_file=mips/t-elf + ;; + mips-*-elf*) + tm_file="mips/elf.h" + tmake_file=mips/t-elf + ;; + mips64el-*-elf*) + tm_file="mips/elfl64.h" + tmake_file=mips/t-elf + ;; + mips64orionel-*-elf*) + tm_file="mips/elforion.h mips/elfl64.h libgloss.h" + tmake_file=mips/t-elf + ;; + mips64-*-elf*) + tm_file="mips/elf64.h" + tmake_file=mips/t-elf + ;; + mips64orion-*-elf*) + tm_file="mips/elforion.h mips/elf64.h libgloss.h" + tmake_file=mips/t-elf + ;; + mips64orion-*-rtems*) + tm_file="mips/elforion.h mips/elf64.h mips/rtems64.h" + tmake_file="mips/t-ecoff t-rtems" + ;; + mipstx39el-*-elf*) + tm_file="mips/r3900.h mips/elfl.h mips/abi64.h" + tmake_file=mips/t-r3900 + ;; + mipstx39-*-elf*) + tm_file="mips/r3900.h mips/elf.h mips/abi64.h" + tmake_file=mips/t-r3900 + ;; + mips-*-*) # Default MIPS RISC-OS 4.0. + if test x$stabs = xyes; then + tm_file="${tm_file} dbx.h" + fi + if test x$gas = xyes + then + tmake_file=mips/t-mips-gas + else + extra_passes="mips-tfile mips-tdump" + fi + if test x$gnu_ld != xyes + then + use_collect2=yes + fi + ;; + mn10200-*-*) + cpu_type=mn10200 + tm_file="mn10200/mn10200.h" + if test x$stabs = xyes + then + tm_file="${tm_file} dbx.h" + fi + use_collect2=no + ;; + mn10300-*-*) + cpu_type=mn10300 + tm_file="mn10300/mn10300.h" + if test x$stabs = xyes + then + tm_file="${tm_file} dbx.h" + fi + use_collect2=no + ;; + ns32k-encore-bsd*) + tm_file=ns32k/encore.h + use_collect2=yes + ;; + ns32k-sequent-bsd*) + tm_file=ns32k/sequent.h + use_collect2=yes + ;; + ns32k-tek6100-bsd*) + tm_file=ns32k/tek6100.h + use_collect2=yes + ;; + ns32k-tek6200-bsd*) + tm_file=ns32k/tek6200.h + use_collect2=yes + ;; +# This has not been updated to GCC 2. +# ns32k-ns-genix*) +# xm_defines=USG +# xmake_file=ns32k/x-genix +# tm_file=ns32k/genix.h +# use_collect2=yes +# ;; + ns32k-merlin-*) + tm_file=ns32k/merlin.h + use_collect2=yes + ;; + ns32k-pc532-mach*) + tm_file=ns32k/pc532-mach.h + use_collect2=yes + ;; + ns32k-pc532-minix*) + tm_file=ns32k/pc532-min.h + xm_file="ns32k/xm-pc532-min.h ${xm-file}" + xm_defines=USG + use_collect2=yes + ;; + ns32k-*-netbsd*) + tm_file=ns32k/netbsd.h + xm_file="ns32k/xm-netbsd.h ${xm_file}" + # On NetBSD, the headers are already okay, except for math.h. + tmake_file=t-netbsd + use_collect2=yes + ;; + pdp11-*-bsd) + tm_file="${tm_file} pdp11/2bsd.h" + ;; + pdp11-*-*) + ;; + ns32k-*-openbsd*) + # Nothing special + ;; + pyramid-*-*) + cpu_type=pyr + xmake_file=pyr/x-pyr + use_collect2=yes + ;; + romp-*-aos*) + use_collect2=yes + ;; + romp-*-mach*) + xmake_file=romp/x-mach + use_collect2=yes + ;; + romp-*-openbsd*) + # Nothing special + ;; + powerpc-*-openbsd*) + tmake_file="${tmake_file} rs6000/t-rs6000 rs6000/t-openbsd" + ;; + powerpc-*-beos*) + cpu_type=rs6000 + tm_file=rs6000/beos.h + xm_file=rs6000/xm-beos.h + tmake_file=rs6000/t-beos + xmake_file=rs6000/x-beos + ;; + powerpc-*-sysv* | powerpc-*-elf*) + tm_file=rs6000/sysv4.h + xm_file="xm-siglist.h rs6000/xm-sysv4.h" + xm_defines="USG POSIX" + extra_headers=ppc-asm.h + if test x$gas = xyes + then + tmake_file="rs6000/t-ppcos rs6000/t-ppccomm" + else + tmake_file="rs6000/t-ppc rs6000/t-ppccomm" + fi + xmake_file=rs6000/x-sysv4 + ;; + powerpc-*-eabiaix*) + tm_file=rs6000/eabiaix.h + tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm" + extra_headers=ppc-asm.h + ;; + powerpc-*-eabisim*) + tm_file=rs6000/eabisim.h + tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm" + extra_headers=ppc-asm.h + ;; + powerpc-*-eabi*) + tm_file=rs6000/eabi.h + if test x$gas = xyes + then + tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm" + else + tmake_file="rs6000/t-ppc rs6000/t-ppccomm" + fi + extra_headers=ppc-asm.h + ;; + powerpc-*-rtems*) + tm_file=rs6000/rtems.h + if test x$gas = xyes + then + tmake_file="rs6000/t-ppcgas t-rtems rs6000/t-ppccomm" + else + tmake_file="rs6000/t-ppc t-rtems rs6000/t-ppccomm" + fi + extra_headers=ppc-asm.h + ;; + powerpc-*-linux-gnulibc1) + tm_file=rs6000/linux.h + xm_file=rs6000/xm-sysv4.h + out_file=rs6000/rs6000.c + if test x$gas = xyes + then + tmake_file="rs6000/t-ppcos t-linux t-linux-gnulibc1 rs6000/t-ppccomm" + else + tmake_file="rs6000/t-ppc t-linux t-linux-gnulibc1 rs6000/t-ppccomm" + fi + xmake_file=x-linux + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + extra_headers=ppc-asm.h + if test x$enable_threads = xyes; then + thread_file='posix' + fi + ;; + powerpc-*-linux-gnu*) + tm_file=rs6000/linux.h + xm_file="xm-siglist.h rs6000/xm-sysv4.h" + xm_defines="USG ${xm_defines}" + out_file=rs6000/rs6000.c + if test x$gas = xyes + then + tmake_file="rs6000/t-ppcos t-linux rs6000/t-ppccomm" + else + tmake_file="rs6000/t-ppc t-linux rs6000/t-ppccomm" + fi + xmake_file=x-linux + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + extra_headers=ppc-asm.h + if test x$enable_threads = xyes; then + thread_file='posix' + fi + ;; + powerpc-wrs-vxworks*) + cpu_type=rs6000 + xm_file="xm-siglist.h rs6000/xm-sysv4.h" + xm_defines="USG POSIX" + tm_file=rs6000/vxppc.h + tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm" + extra_headers=ppc-asm.h + thread_file='vxworks' + ;; + powerpcle-*-sysv* | powerpcle-*-elf*) + tm_file=rs6000/sysv4le.h + xm_file="xm-siglist.h rs6000/xm-sysv4.h" + xm_defines="USG POSIX" + if test x$gas = xyes + then + tmake_file="rs6000/t-ppcos rs6000/t-ppccomm" + else + tmake_file="rs6000/t-ppc rs6000/t-ppccomm" + fi + xmake_file=rs6000/x-sysv4 + extra_headers=ppc-asm.h + ;; + powerpcle-*-eabisim*) + tm_file=rs6000/eabilesim.h + tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm" + extra_headers=ppc-asm.h + ;; + powerpcle-*-eabi*) + tm_file=rs6000/eabile.h + if test x$gas = xyes + then + tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm" + else + tmake_file="rs6000/t-ppc rs6000/t-ppccomm" + fi + extra_headers=ppc-asm.h + ;; + powerpcle-*-winnt* ) + tm_file=rs6000/win-nt.h + tmake_file=rs6000/t-winnt +# extra_objs=pe.o + if test x$enable_threads = xyes; then + thread_file='win32' + fi + extra_headers=ppc-asm.h + ;; + powerpcle-*-pe | powerpcle-*-cygwin*) + tm_file=rs6000/cygwin.h + xm_file="rs6000/xm-cygwin.h ${xm_file}" + tmake_file=rs6000/t-winnt + xmake_file=rs6000/x-cygwin +# extra_objs=pe.o + if test x$enable_threads = xyes; then + thread_file='win32' + fi + exeext=.exe + extra_headers=ppc-asm.h + ;; + powerpcle-*-solaris2*) + tm_file=rs6000/sol2.h + xm_file="xm-siglist.h rs6000/xm-sysv4.h" + xm_defines="USG POSIX" + if test x$gas = xyes + then + tmake_file="rs6000/t-ppcos rs6000/t-ppccomm" + else + tmake_file="rs6000/t-ppc rs6000/t-ppccomm" + fi + xmake_file=rs6000/x-sysv4 + extra_headers=ppc-asm.h + ;; + rs6000-ibm-aix3.[01]*) + tm_file=rs6000/aix31.h + xmake_file=rs6000/x-aix31 + float_format=none + use_collect2=yes + ;; + rs6000-ibm-aix3.2.[456789]* | powerpc-ibm-aix3.2.[456789]*) + tm_file=rs6000/aix3newas.h + if test x$host != x$target + then + tmake_file=rs6000/t-xnewas + else + tmake_file=rs6000/t-newas + fi + float_format=none + use_collect2=yes + ;; + rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*) + tm_file=rs6000/aix41.h + if test x$host != x$target + then + tmake_file=rs6000/t-xnewas + else + tmake_file=rs6000/t-newas + fi + if test "$gnu_ld" = yes + then + xmake_file=rs6000/x-aix41-gld + else + xmake_file=rs6000/x-aix41 + fi + float_format=none + use_collect2=yes + ;; + rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*) + tm_file=rs6000/aix43.h + if test x$host != x$target + then + tmake_file=rs6000/t-xaix43 + else + tmake_file=rs6000/t-aix43 + fi + xmake_file=rs6000/x-aix43 + float_format=none + use_collect2=yes + ;; + rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) + tm_file=rs6000/aix43.h + if test x$host != x$target + then + tmake_file=rs6000/t-xaix43 + else + tmake_file=rs6000/t-aix43 + fi + xmake_file=rs6000/x-aix43 + float_format=none + use_collect2=yes + ;; + rs6000-ibm-aix*) + float_format=none + use_collect2=yes + ;; + rs6000-bull-bosx) + float_format=none + use_collect2=yes + ;; + rs6000-*-mach*) + tm_file=rs6000/mach.h + xm_file="${xm_file} rs6000/xm-mach.h" + xmake_file=rs6000/x-mach + use_collect2=yes + ;; + rs6000-*-lynxos*) + tm_file=rs6000/lynx.h + xm_file=rs6000/xm-lynx.h + tmake_file=rs6000/t-rs6000 + xmake_file=rs6000/x-lynx + use_collect2=yes + ;; + sh-*-elf*) + tm_file=sh/elf.h + float_format=sh + ;; + sh-*-rtemself*) + tmake_file="sh/t-sh t-rtems" + tm_file=sh/rtemself.h + float_format=sh + ;; + sh-*-rtems*) + tmake_file="sh/t-sh t-rtems" + tm_file=sh/rtems.h + float_format=sh + ;; + sh-*-*) + float_format=sh + ;; + sparc-tti-*) + tm_file=sparc/pbd.h + xm_file="xm-alloca.h ${xm_file}" + xm_defines=USG + ;; + sparc-wrs-vxworks* | sparclite-wrs-vxworks*) + tm_file=sparc/vxsparc.h + tmake_file=sparc/t-vxsparc + use_collect2=yes + thread_file='vxworks' + ;; + sparc-*-aout*) + tmake_file=sparc/t-sparcbare + tm_file="sparc/aout.h libgloss.h" + ;; + sparc-*-netbsd*) + tm_file=sparc/netbsd.h + tmake_file=t-netbsd + use_collect2=yes + ;; + sparc-*-openbsd*) + # we need collect2 until our bug is fixed... + use_collect2=yes + ;; + sparc-*-bsd*) + tm_file=sparc/bsd.h + ;; + sparc-*-elf*) + tm_file=sparc/elf.h + tmake_file=sparc/t-elf + extra_parts="crti.o crtn.o crtbegin.o crtend.o" + #float_format=i128 + float_format=i64 + ;; + sparc-*-linux-gnuaout*) # Sparc's running GNU/Linux, a.out + xm_file="${xm_file} sparc/xm-linux.h" + tm_file=sparc/linux-aout.h + xmake_file=x-linux + gnu_ld=yes + ;; + sparc-*-linux-gnulibc1*) # Sparc's running GNU/Linux, libc5 + xm_file="${xm_file} sparc/xm-linux.h" + xmake_file=x-linux + tm_file=sparc/linux.h + tmake_file="t-linux t-linux-gnulibc1" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + gnu_ld=yes + ;; + sparc-*-linux-gnu*) # Sparc's running GNU/Linux, libc6 + xm_file="${xm_file} sparc/xm-linux.h" + xmake_file=x-linux + tm_file=sparc/linux.h + tmake_file="t-linux" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + gnu_ld=yes + if test x$enable_threads = xyes; then + thread_file='posix' + fi + ;; + sparc-*-lynxos*) + if test x$gas = xyes + then + tm_file=sparc/lynx.h + else + tm_file=sparc/lynx-ng.h + fi + xm_file=sparc/xm-lynx.h + tmake_file=sparc/t-sunos41 + xmake_file=x-lynx + ;; + sparc-*-rtems*) + tmake_file="sparc/t-sparcbare t-rtems" + tm_file=sparc/rtems.h + ;; + sparcv9-*-solaris2*) + tm_file=sparc/sol2-sld-64.h + xm_file="sparc/xm-sysv4-64.h sparc/xm-sol2.h" + xm_defines="USG POSIX" + tmake_file="sparc/t-sol2 sparc/t-sol2-64" + xmake_file=sparc/x-sysv4 + extra_parts="crt1.o crti.o crtn.o gcrt1.o crtbegin.o crtend.o" + float_format=none + if test x${enable_threads} = x ; then + enable_threads=$have_pthread_h + if test x${enable_threads} = x ; then + enable_threads=$have_thread_h + fi + fi + if test x${enable_threads} = xyes ; then + if test x${have_pthread_h} = xyes ; then + thread_file='posix' + else + thread_file='solaris' + fi + fi + ;; + sparc-hal-solaris2*) + xm_file="xm-siglist.h sparc/xm-sysv4.h sparc/xm-sol2.h" + xm_defines="USG POSIX" + tm_file="sparc/sol2.h sparc/hal.h" + tmake_file="sparc/t-halos sparc/t-sol2" + xmake_file=sparc/x-sysv4 + extra_parts="crt1.o crti.o crtn.o gmon.o crtbegin.o crtend.o" + case $machine in + *-*-solaris2.0-4) + float_format=i128 + ;; + *) + float_format=none + ;; + esac + thread_file='solaris' + ;; + sparc-*-solaris2*) + if test x$gnu_ld = xyes + then + tm_file=sparc/sol2.h + else + tm_file=sparc/sol2-sld.h + fi + xm_file="xm-siglist.h sparc/xm-sysv4.h sparc/xm-sol2.h" + xm_defines="USG POSIX" + tmake_file=sparc/t-sol2 + xmake_file=sparc/x-sysv4 + extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o" + case $machine in + *-*-solaris2.[0-4]) + float_format=i128 + ;; + *) + float_format=none + ;; + esac + if test x${enable_threads} = x; then + enable_threads=$have_pthread_h + if test x${enable_threads} = x; then + enable_threads=$have_thread_h + fi + fi + if test x${enable_threads} = xyes; then + if test x${have_pthread_h} = xyes; then + thread_file='posix' + else + thread_file='solaris' + fi + fi + ;; + sparc-*-sunos4.0*) + tm_file=sparc/sunos4.h + tmake_file=sparc/t-sunos40 + use_collect2=yes + ;; + sparc-*-sunos4*) + tm_file=sparc/sunos4.h + tmake_file=sparc/t-sunos41 + use_collect2=yes + if test x$gas = xyes; then + tm_file="${tm_file} sparc/sun4gas.h" + fi + ;; + sparc-*-sunos3*) + tm_file=sparc/sun4o3.h + use_collect2=yes + ;; + sparc-*-sysv4*) + tm_file=sparc/sysv4.h + xm_file="xm-siglist.h sparc/xm-sysv4.h" + xm_defines="USG POSIX" + tmake_file=t-svr4 + xmake_file=sparc/x-sysv4 + extra_parts="crtbegin.o crtend.o" + ;; + sparc-*-vxsim*) + xm_file="xm-siglist.h sparc/xm-sysv4.h sparc/xm-sol2.h" + xm_defines="USG POSIX" + tm_file=sparc/vxsim.h + tmake_file=sparc/t-vxsparc + xmake_file=sparc/x-sysv4 + ;; + sparclet-*-aout*) + tm_file="sparc/splet.h libgloss.h" + tmake_file=sparc/t-splet + ;; + sparclite-*-coff*) + tm_file="sparc/litecoff.h libgloss.h" + tmake_file=sparc/t-sparclite + ;; + sparclite-*-aout*) + tm_file="sparc/lite.h aoutos.h libgloss.h" + tmake_file=sparc/t-sparclite + ;; + sparc64-*-aout*) + tmake_file=sparc/t-sp64 + tm_file=sparc/sp64-aout.h + ;; + sparc64-*-elf*) + tmake_file=sparc/t-sp64 + tm_file=sparc/sp64-elf.h + extra_parts="crtbegin.o crtend.o" + ;; + sparc64-*-linux*) # 64-bit Sparc's running GNU/Linux + tmake_file="t-linux sparc/t-linux64" + xm_file="sparc/xm-sp64.h sparc/xm-linux.h" + tm_file=sparc/linux64.h + xmake_file=x-linux + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + gnu_ld=yes + ;; +# This hasn't been upgraded to GCC 2. +# tahoe-harris-*) # Harris tahoe, using COFF. +# tm_file=tahoe/harris.h +# ;; +# tahoe-*-bsd*) # tahoe running BSD +# ;; + thumb-*-coff* | thumbel-*-coff*) + tm_file=arm/tcoff.h + out_file=arm/thumb.c + xm_file=arm/xm-thumb.h + md_file=arm/thumb.md + tmake_file=arm/t-thumb + ;; + thumb-wrs-vxworks) + tm_file=arm/tcoff.h + out_file=arm/thumb.c + xm_file=arm/xm-thumb.h + md_file=arm/thumb.md + tmake_file=arm/t-thumb + thread_file='vxworks' + ;; +# This hasn't been upgraded to GCC 2. +# tron-*-*) +# cpu_type=gmicro +# use_collect2=yes +# ;; + v810-*-*) + cpu_type=v810 + tm_file="v810/v810.h" + xm_file="v810/xm-v810.h" + tmake_file=v810/t-v810 + if test x$stabs = xyes + then + tm_file="${tm_file} dbx.h" + fi + use_collect2=no + ;; + v850-*-*) + cpu_type=v850 + tm_file="v850/v850.h" + xm_file="v850/xm-v850.h" + tmake_file=v850/t-v850 + if test x$stabs = xyes + then + tm_file="${tm_file} dbx.h" + fi + use_collect2=no + ;; + vax-*-bsd*) # vaxen running BSD + use_collect2=yes + float_format=vax + ;; + vax-*-sysv*) # vaxen running system V + tm_file="${tm_file} vax/vaxv.h" + xm_defines=USG + float_format=vax + ;; + vax-*-netbsd*) + tm_file="${tm_file} netbsd.h vax/netbsd.h" + tmake_file=t-netbsd + float_format=vax + use_collect2=yes + ;; + vax-*-openbsd*) + tmake_file="${tmake_file} vax/t-openbsd" + ;; + vax-*-ultrix*) # vaxen running ultrix + tm_file="${tm_file} vax/ultrix.h" + use_collect2=yes + float_format=vax + ;; + vax-*-vms*) # vaxen running VMS + xm_file=vax/xm-vms.h + tm_file=vax/vms.h + float_format=vax + ;; + vax-*-*) # vax default entry + float_format=vax + ;; + we32k-att-sysv*) + xm_file="${xm_file} xm-svr3" + use_collect2=yes + ;; + *) + echo "Configuration $machine not supported" 1>&2 + exit 1 + ;; + esac + + case $machine in + *-*-linux-gnu*) + ;; # Existing GNU/Linux systems do not use the GNU setup. + *-*-gnu*) + # On the GNU system, the setup is just about the same on + # each different CPU. The specific machines that GNU + # supports are matched above and just set $cpu_type. + xm_file="xm-gnu.h ${xm_file}" + tm_file=${cpu_type}/gnu.h + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" + # GNU always uses ELF. + elf=yes + # GNU tools are the only tools. + gnu_ld=yes + gas=yes + xmake_file=x-linux # These details are the same as Linux. + tmake_file=t-gnu # These are not. + ;; + *-*-sysv4*) + xmake_try_sysv=x-sysv + install_headers_dir=install-headers-cpio + ;; + *-*-sysv*) + install_headers_dir=install-headers-cpio + ;; + esac + + # Distinguish i[34567]86 + # Also, do not run mips-tfile on MIPS if using gas. + # Process --with-cpu= for PowerPC/rs6000 + target_cpu_default2= + case $machine in + i486-*-*) + target_cpu_default2=1 + ;; + i586-*-*) + case $target_alias in + k6-*) + target_cpu_default2=4 + ;; + *) + target_cpu_default2=2 + ;; + esac + ;; + i686-*-* | i786-*-*) + target_cpu_default2=3 + ;; + alpha*-*-*) + case $machine in + alphaev6*) + target_cpu_default2="MASK_CPU_EV6|MASK_BWX|MASK_MAX|MASK_FIX" + ;; + alphapca56*) + target_cpu_default2="MASK_CPU_EV5|MASK_BWX|MASK_MAX" + ;; + alphaev56*) + target_cpu_default2="MASK_CPU_EV5|MASK_BWX" + ;; + alphaev5*) + target_cpu_default2="MASK_CPU_EV5" + ;; + esac + + if test x$gas = xyes + then + if test "$target_cpu_default2" = "" + then + target_cpu_default2="MASK_GAS" + else + target_cpu_default2="${target_cpu_default2}|MASK_GAS" + fi + fi + ;; + arm*-*-*) + case "x$with_cpu" in + x) + # The most generic + target_cpu_default2="TARGET_CPU_generic" + ;; + + # Distinguish cores, and major variants + # arm7m doesn't exist, but D & I don't affect code + xarm23678 | xarm250 | xarm67010 \ + | xarm7m | xarm7dm | xarm7dmi | xarm7tdmi \ + | xarm7100 | xarm7500 | xarm7500fe | xarm810 \ + | xstrongarm | xstrongarm110 | xstrongarm1100) + target_cpu_default2="TARGET_CPU_$with_cpu" + ;; + + xyes | xno) + echo "--with-cpu must be passed a value" 1>&2 + exit 1 + ;; + + *) + if test x$pass2done = xyes + then + echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2 + exit 1 + fi + ;; + esac + ;; + + mips*-*-ecoff* | mips*-*-elf*) + if test x$gas = xyes + then + if test x$gnu_ld = xyes + then + target_cpu_default2=20 + else + target_cpu_default2=16 + fi + fi + ;; + mips*-*-*) + if test x$gas = xyes + then + target_cpu_default2=16 + fi + ;; + powerpc*-*-* | rs6000-*-*) + case "x$with_cpu" in + x) + ;; + + xcommon | xpower | xpower2 | xpowerpc | xrios \ + | xrios1 | xrios2 | xrsc | xrsc1 \ + | x601 | x602 | x603 | x603e | x604 | x604e | x620 \ + | xec603e | x740 | x750 | x401 \ + | x403 | x505 | x801 | x821 | x823 | x860) + target_cpu_default2="\"$with_cpu\"" + ;; + + xyes | xno) + echo "--with-cpu must be passed a value" 1>&2 + exit 1 + ;; + + *) + if test x$pass2done = xyes + then + echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2 + exit 1 + fi + ;; + esac + ;; + sparc*-*-*) + case ".$with_cpu" in + .) + target_cpu_default2=TARGET_CPU_"`echo $machine | sed 's/-.*$//'`" + ;; + .supersparc | .hypersparc | .ultrasparc | .v7 | .v8 | .v9) + target_cpu_default2="TARGET_CPU_$with_cpu" + ;; + *) + if test x$pass2done = xyes + then + echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2 + exit 1 + fi + ;; + esac + ;; + esac + + if test "$target_cpu_default2" != "" + then + if test "$target_cpu_default" != "" + then + target_cpu_default="(${target_cpu_default}|${target_cpu_default2})" + else + target_cpu_default=$target_cpu_default2 + fi + fi + + # No need for collect2 if we have the GNU linker. + # Actually, there is now; GNU ld doesn't handle the EH info or + # collecting for shared libraries. + #case x$gnu_ld in + #xyes) + # use_collect2= + # ;; + #esac + +# Save data on machine being used to compile GCC in build_xm_file. +# Save data on host machine in vars host_xm_file and host_xmake_file. + if test x$pass1done = x + then + if test x"$xm_file" = x + then build_xm_file=$cpu_type/xm-$cpu_type.h + else build_xm_file=$xm_file + fi + build_xm_defines=$xm_defines + build_install_headers_dir=$install_headers_dir + build_exeext=$exeext + pass1done=yes + else + if test x$pass2done = x + then + if test x"$xm_file" = x + then host_xm_file=$cpu_type/xm-$cpu_type.h + else host_xm_file=$xm_file + fi + host_xm_defines=$xm_defines + if test x"$xmake_file" = x + then xmake_file=$cpu_type/x-$cpu_type + fi + host_xmake_file="$xmake_file" + host_truncate_target=$truncate_target + host_extra_gcc_objs=$extra_gcc_objs + host_extra_objs=$extra_host_objs + host_exeext=$exeext + pass2done=yes + fi + fi +done + +extra_objs="${host_extra_objs} ${extra_objs}" + +# Default the target-machine variables that were not explicitly set. +if test x"$tm_file" = x +then tm_file=$cpu_type/$cpu_type.h; fi + +if test x$extra_headers = x +then extra_headers=; fi + +if test x"$xm_file" = x +then xm_file=$cpu_type/xm-$cpu_type.h; fi + +if test x$md_file = x +then md_file=$cpu_type/$cpu_type.md; fi + +if test x$out_file = x +then out_file=$cpu_type/$cpu_type.c; fi + +if test x"$tmake_file" = x +then tmake_file=$cpu_type/t-$cpu_type +fi + +if test x"$dwarf2" = xyes +then tm_file="tm-dwarf2.h $tm_file" +fi + +if test x$float_format = x +then float_format=i64 +fi + +if test $float_format = none +then float_h_file=Makefile.in +else float_h_file=float-$float_format.h +fi + +if test x$enable_haifa = x +then + case $target in + alpha*-* | hppa*-* | powerpc*-* | rs6000-* | *sparc*-* | m32r*-*) + enable_haifa=yes;; + esac +fi + +# Handle cpp installation. +if test x$enable_cpp != xno +then + tmake_file="$tmake_file t-install-cpp" +fi + +# Say what files are being used for the output code and MD file. +echo "Using \`$srcdir/config/$out_file' to output insns." +echo "Using \`$srcdir/config/$md_file' as machine description file." + +count=a +for f in $tm_file; do + count=${count}x +done +if test $count = ax; then + echo "Using \`$srcdir/config/$tm_file' as target machine macro file." +else + echo "Using the following target machine macro files:" + for f in $tm_file; do + echo " $srcdir/config/$f" + done +fi + +count=a +for f in $host_xm_file; do + count=${count}x +done +if test $count = ax; then + echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file." +else + echo "Using the following host machine macro files:" + for f in $host_xm_file; do + echo " $srcdir/config/$f" + done +fi + +if test "$host_xm_file" != "$build_xm_file"; then + count=a + for f in $build_xm_file; do + count=${count}x + done + if test $count = ax; then + echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file." + else + echo "Using the following build machine macro files:" + for f in $build_xm_file; do + echo " $srcdir/config/$f" + done + fi +fi + +if test x$thread_file = x; then + if test x$target_thread_file != x; then + thread_file=$target_thread_file + else + thread_file='single' + fi +fi + +# Set up the header files. +# $links is the list of header files to create. +# $vars is the list of shell variables with file names to include. +# auto-host.h is the file containing items generated by autoconf and is +# the first file included by config.h. +null_defines= +host_xm_file="auto-host.h gansidecl.h ${host_xm_file} hwint.h" + +# If host=build, it is correct to have hconfig include auto-host.h +# as well. If host!=build, we are in error and need to do more +# work to find out the build config parameters. +if test x$host = x$build +then + build_xm_file="auto-host.h gansidecl.h ${build_xm_file} hwint.h" +else + # We create a subdir, then run autoconf in the subdir. + # To prevent recursion we set host and build for the new + # invocation of configure to the build for this invocation + # of configure. + tempdir=build.$$ + rm -rf $tempdir + mkdir $tempdir + cd $tempdir + case ${srcdir} in + /*) realsrcdir=${srcdir};; + *) realsrcdir=../${srcdir};; + esac + CC=${CC_FOR_BUILD} ${realsrcdir}/configure \ + --target=$target --host=$build --build=$build + + # We just finished tests for the build machine, so rename + # the file auto-build.h in the gcc directory. + mv auto-host.h ../auto-build.h + cd .. + rm -rf $tempdir + build_xm_file="auto-build.h gansidecl.h ${build_xm_file} hwint.h" +fi + +xm_file="gansidecl.h ${xm_file}" +tm_file="gansidecl.h ${tm_file}" + +vars="host_xm_file tm_file xm_file build_xm_file" +links="config.h tm.h tconfig.h hconfig.h" +defines="host_xm_defines null_defines xm_defines build_xm_defines" + +rm -f config.bak +if test -f config.status; then mv -f config.status config.bak; fi + +# Make the links. +while test -n "$vars" +do + set $vars; var=$1; shift; vars=$* + set $links; link=$1; shift; links=$* + set $defines; define=$1; shift; defines=$* + + rm -f $link + + # Define TARGET_CPU_DEFAULT if the system wants one. + # This substitutes for lots of *.h files. + if test "$target_cpu_default" != "" -a $link = tm.h + then + echo "#define TARGET_CPU_DEFAULT ($target_cpu_default)" >>$link + fi + + for file in `eval echo '$'$var`; do + case $file in + auto-config.h) + ;; + *) + echo '#ifdef IN_GCC' >>$link + ;; + esac + echo "#include \"$file\"" >>$link + case $file in + auto-config.h) + ;; + *) + echo '#endif' >>$link + ;; + esac + done + + for def in `eval echo '$'$define`; do + echo "#ifndef $def" >>$link + echo "#define $def" >>$link + echo "#endif" >>$link + done +done + +# Truncate the target if necessary +if test x$host_truncate_target != x; then + target=`echo $target | sed -e 's/\(..............\).*/\1/'` +fi + +# Get the version trigger filename from the toplevel +if test "${with_gcc_version_trigger+set}" = set; then + gcc_version_trigger=$with_gcc_version_trigger +else + gcc_version_trigger=${srcdir}/version.c +fi +gcc_version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ${gcc_version_trigger}` + +# Internationalization +PACKAGE=gcc +VERSION="$gcc_version" +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE "$PACKAGE" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define VERSION "$VERSION" +_ACEOF + + + + +ALL_LINGUAS="en_UK" + +# NLS support is still experimental, so disable it by default for now. +@%:@ Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then : + enableval=$enable_nls; +else + enable_nls=no +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strerror in -lcposix" >&5 +$as_echo_n "checking for strerror in -lcposix... " >&6; } +if ${ac_cv_lib_cposix_strerror+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcposix $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strerror (); +int +main () +{ +return strerror (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_cposix_strerror=yes +else + ac_cv_lib_cposix_strerror=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cposix_strerror" >&5 +$as_echo "$ac_cv_lib_cposix_strerror" >&6; } +if test "x$ac_cv_lib_cposix_strerror" = xyes; then : + LIBS="$LIBS -lcposix" +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if ${ac_cv_c_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +/* FIXME: Include the comments suggested by Paul. */ +#ifndef __cplusplus + /* Ultrix mips cc rejects this. */ + typedef int charset[2]; + const charset cs; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; }; + struct s *b; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_const=yes +else + ac_cv_c_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +$as_echo "@%:@define const /**/" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + +ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" +if test "x$ac_cv_type_off_t" = xyes; then : + +else + +cat >>confdefs.h <<_ACEOF +@%:@define off_t long int +_ACEOF + +fi + +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = xyes; then : + +else + +cat >>confdefs.h <<_ACEOF +@%:@define size_t unsigned int +_ACEOF + +fi + +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +# for constant arguments. Useless! +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 +$as_echo_n "checking for working alloca.h... " >&6; } +if ${ac_cv_working_alloca_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +int +main () +{ +char *p = (char *) alloca (2 * sizeof (int)); + if (p) return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_working_alloca_h=yes +else + ac_cv_working_alloca_h=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 +$as_echo "$ac_cv_working_alloca_h" >&6; } +if test $ac_cv_working_alloca_h = yes; then + +$as_echo "@%:@define HAVE_ALLOCA_H 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 +$as_echo_n "checking for alloca... " >&6; } +if ${ac_cv_func_alloca_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __GNUC__ +# define alloca __builtin_alloca +#else +# ifdef _MSC_VER +# include +# define alloca _alloca +# else +# ifdef HAVE_ALLOCA_H +# include +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +void *alloca (size_t); +# endif +# endif +# endif +# endif +#endif + +int +main () +{ +char *p = (char *) alloca (1); + if (p) return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_func_alloca_works=yes +else + ac_cv_func_alloca_works=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 +$as_echo "$ac_cv_func_alloca_works" >&6; } + +if test $ac_cv_func_alloca_works = yes; then + +$as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h + +else + # The SVR3 libPW and SVR4 libucb both contain incompatible functions +# that cause trouble. Some versions do not even contain alloca or +# contain a buggy version. If you still want to use their alloca, +# use ar to extract alloca.o from them instead of compiling alloca.c. + +ALLOCA=\${LIBOBJDIR}alloca.$ac_objext + +$as_echo "@%:@define C_ALLOCA 1" >>confdefs.h + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 +$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } +if ${ac_cv_os_cray+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined CRAY && ! defined CRAY2 +webecray +#else +wenotbecray +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "webecray" >/dev/null 2>&1; then : + ac_cv_os_cray=yes +else + ac_cv_os_cray=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 +$as_echo "$ac_cv_os_cray" >&6; } +if test $ac_cv_os_cray = yes; then + for ac_func in _getb67 GETB67 getb67; do + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + +cat >>confdefs.h <<_ACEOF +@%:@define CRAY_STACKSEG_END $ac_func +_ACEOF + + break +fi + + done +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 +$as_echo_n "checking stack direction for C alloca... " >&6; } +if ${ac_cv_c_stack_direction+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_c_stack_direction=0 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +find_stack_direction () +{ + static char *addr = 0; + auto char dummy; + if (addr == 0) + { + addr = &dummy; + return find_stack_direction (); + } + else + return (&dummy > addr) ? 1 : -1; +} + +int +main () +{ + return find_stack_direction () < 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_stack_direction=1 +else + ac_cv_c_stack_direction=-1 +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 +$as_echo "$ac_cv_c_stack_direction" >&6; } +cat >>confdefs.h <<_ACEOF +@%:@define STACK_DIRECTION $ac_cv_c_stack_direction +_ACEOF + + +fi + + + + + for ac_header in $ac_header_list +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + + + +for ac_func in getpagesize +do : + ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" +if test "x$ac_cv_func_getpagesize" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_GETPAGESIZE 1 +_ACEOF + +fi +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 +$as_echo_n "checking for working mmap... " >&6; } +if ${ac_cv_func_mmap_fixed_mapped+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_func_mmap_fixed_mapped=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +/* malloc might have been renamed as rpl_malloc. */ +#undef malloc + +/* Thanks to Mike Haertel and Jim Avera for this test. + Here is a matrix of mmap possibilities: + mmap private not fixed + mmap private fixed at somewhere currently unmapped + mmap private fixed at somewhere already mapped + mmap shared not fixed + mmap shared fixed at somewhere currently unmapped + mmap shared fixed at somewhere already mapped + For private mappings, we should verify that changes cannot be read() + back from the file, nor mmap's back from the file at a different + address. (There have been systems where private was not correctly + implemented like the infamous i386 svr4.0, and systems where the + VM page cache was not coherent with the file system buffer cache + like early versions of FreeBSD and possibly contemporary NetBSD.) + For shared mappings, we should conversely verify that changes get + propagated back to all the places they're supposed to be. + + Grep wants private fixed already mapped. + The main things grep needs to know about mmap are: + * does it exist and is it safe to write into the mmap'd area + * how to use it (BSD variants) */ + +#include +#include + +#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H +char *malloc (); +#endif + +/* This mess was copied from the GNU getpagesize.h. */ +#ifndef HAVE_GETPAGESIZE +# ifdef _SC_PAGESIZE +# define getpagesize() sysconf(_SC_PAGESIZE) +# else /* no _SC_PAGESIZE */ +# ifdef HAVE_SYS_PARAM_H +# include +# ifdef EXEC_PAGESIZE +# define getpagesize() EXEC_PAGESIZE +# else /* no EXEC_PAGESIZE */ +# ifdef NBPG +# define getpagesize() NBPG * CLSIZE +# ifndef CLSIZE +# define CLSIZE 1 +# endif /* no CLSIZE */ +# else /* no NBPG */ +# ifdef NBPC +# define getpagesize() NBPC +# else /* no NBPC */ +# ifdef PAGESIZE +# define getpagesize() PAGESIZE +# endif /* PAGESIZE */ +# endif /* no NBPC */ +# endif /* no NBPG */ +# endif /* no EXEC_PAGESIZE */ +# else /* no HAVE_SYS_PARAM_H */ +# define getpagesize() 8192 /* punt totally */ +# endif /* no HAVE_SYS_PARAM_H */ +# endif /* no _SC_PAGESIZE */ + +#endif /* no HAVE_GETPAGESIZE */ + +int +main () +{ + char *data, *data2, *data3; + const char *cdata2; + int i, pagesize; + int fd, fd2; + + pagesize = getpagesize (); + + /* First, make a file with some known garbage in it. */ + data = (char *) malloc (pagesize); + if (!data) + return 1; + for (i = 0; i < pagesize; ++i) + *(data + i) = rand (); + umask (0); + fd = creat ("conftest.mmap", 0600); + if (fd < 0) + return 2; + if (write (fd, data, pagesize) != pagesize) + return 3; + close (fd); + + /* Next, check that the tail of a page is zero-filled. File must have + non-zero length, otherwise we risk SIGBUS for entire page. */ + fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); + if (fd2 < 0) + return 4; + cdata2 = ""; + if (write (fd2, cdata2, 1) != 1) + return 5; + data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); + if (data2 == MAP_FAILED) + return 6; + for (i = 0; i < pagesize; ++i) + if (*(data2 + i)) + return 7; + close (fd2); + if (munmap (data2, pagesize)) + return 8; + + /* Next, try to mmap the file at a fixed address which already has + something else allocated at it. If we can, also make sure that + we see the same garbage. */ + fd = open ("conftest.mmap", O_RDWR); + if (fd < 0) + return 9; + if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_FIXED, fd, 0L)) + return 10; + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data2 + i)) + return 11; + + /* Finally, make sure that changes to the mapped area do not + percolate back to the file as seen by read(). (This is a bug on + some variants of i386 svr4.0.) */ + for (i = 0; i < pagesize; ++i) + *(data2 + i) = *(data2 + i) + 1; + data3 = (char *) malloc (pagesize); + if (!data3) + return 12; + if (read (fd, data3, pagesize) != pagesize) + return 13; + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data3 + i)) + return 14; + close (fd); + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_mmap_fixed_mapped=yes +else + ac_cv_func_mmap_fixed_mapped=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 +$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } +if test $ac_cv_func_mmap_fixed_mapped = yes; then + +$as_echo "@%:@define HAVE_MMAP 1" >>confdefs.h + +fi +rm -f conftest.mmap conftest.txt + + + for ac_header in argz.h limits.h locale.h nl_types.h malloc.h string.h \ +unistd.h sys/param.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + for ac_func in getcwd munmap putenv setenv setlocale strchr strcasecmp \ +strdup __argz_count __argz_stringify __argz_next +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + if test "${ac_cv_func_stpcpy+set}" != "set"; then + for ac_func in stpcpy +do : + ac_fn_c_check_func "$LINENO" "stpcpy" "ac_cv_func_stpcpy" +if test "x$ac_cv_func_stpcpy" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_STPCPY 1 +_ACEOF + +fi +done + + fi + if test "${ac_cv_func_stpcpy}" = "yes"; then + $as_echo "@%:@define HAVE_STPCPY 1" >>confdefs.h + + fi + + if test $ac_cv_header_locale_h = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 +$as_echo_n "checking for LC_MESSAGES... " >&6; } +if ${am_cv_val_LC_MESSAGES+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +return LC_MESSAGES + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_val_LC_MESSAGES=yes +else + am_cv_val_LC_MESSAGES=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 +$as_echo "$am_cv_val_LC_MESSAGES" >&6; } + if test $am_cv_val_LC_MESSAGES = yes; then + $as_echo "@%:@define HAVE_LC_MESSAGES 1" >>confdefs.h + + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + @%:@ Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then : + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + + + USE_INCLUDED_LIBINTL=no + + if test "$USE_NLS" = "yes"; then + $as_echo "@%:@define ENABLE_NLS 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether included gettext is requested" >&5 +$as_echo_n "checking whether included gettext is requested... " >&6; } + +@%:@ Check whether --with-included-gettext was given. +if test "${with_included_gettext+set}" = set; then : + withval=$with_included_gettext; nls_cv_force_use_gnu_gettext=$withval +else + nls_cv_force_use_gnu_gettext=no +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nls_cv_force_use_gnu_gettext" >&5 +$as_echo "$nls_cv_force_use_gnu_gettext" >&6; } + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + nls_cv_header_intl= + nls_cv_header_libgt= + CATOBJEXT=NONE + + ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" +if test "x$ac_cv_header_libintl_h" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettext in libc" >&5 +$as_echo_n "checking for gettext in libc... " >&6; } +if ${gt_cv_func_gettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +return (int) gettext ("") + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_gettext_libc=yes +else + gt_cv_func_gettext_libc=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gettext_libc" >&5 +$as_echo "$gt_cv_func_gettext_libc" >&6; } + + if test "$gt_cv_func_gettext_libc" != "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 +$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } +if ${ac_cv_lib_intl_bindtextdomain+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char bindtextdomain (); +int +main () +{ +return bindtextdomain (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_bindtextdomain=yes +else + ac_cv_lib_intl_bindtextdomain=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 +$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } +if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettext in libintl" >&5 +$as_echo_n "checking for gettext in libintl... " >&6; } +if ${gt_cv_func_gettext_libintl+:} false; then : + $as_echo_n "(cached) " >&6 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettext in -lintl" >&5 +$as_echo_n "checking for gettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_gettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gettext (); +int +main () +{ +return gettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_gettext=yes +else + ac_cv_lib_intl_gettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_gettext" >&5 +$as_echo "$ac_cv_lib_intl_gettext" >&6; } +if test "x$ac_cv_lib_intl_gettext" = xyes; then : + gt_cv_func_gettext_libintl=yes +else + gt_cv_func_gettext_libintl=no +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gettext_libintl" >&5 +$as_echo "$gt_cv_func_gettext_libintl" >&6; } +fi + + fi + + if test "$gt_cv_func_gettext_libc" = "yes" \ + || test "$gt_cv_func_gettext_libintl" = "yes"; then + $as_echo "@%:@define HAVE_GETTEXT 1" >>confdefs.h + + # Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGFMT" in + /*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then + ac_cv_path_MSGFMT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test -n "$MSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + if test "$MSGFMT" != "no"; then + for ac_func in dcgettext +do : + ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" +if test "x$ac_cv_func_dcgettext" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_DCGETTEXT 1 +_ACEOF + +fi +done + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$XGETTEXT" in + /*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test -n "$XGETTEXT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + CATOBJEXT=.gmo + DATADIRNAME=share +else + CATOBJEXT=.mo + DATADIRNAME=lib +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + INSTOBJEXT=.mo + fi + fi + +fi + + + + if test "$CATOBJEXT" = "NONE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether catgets can be used" >&5 +$as_echo_n "checking whether catgets can be used... " >&6; } + +@%:@ Check whether --with-catgets was given. +if test "${with_catgets+set}" = set; then : + withval=$with_catgets; nls_cv_use_catgets=$withval +else + nls_cv_use_catgets=no +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nls_cv_use_catgets" >&5 +$as_echo "$nls_cv_use_catgets" >&6; } + + if test "$nls_cv_use_catgets" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -li" >&5 +$as_echo_n "checking for main in -li... " >&6; } +if ${ac_cv_lib_i_main+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-li $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +int +main () +{ +return main (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_i_main=yes +else + ac_cv_lib_i_main=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_i_main" >&5 +$as_echo "$ac_cv_lib_i_main" >&6; } +if test "x$ac_cv_lib_i_main" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_LIBI 1 +_ACEOF + + LIBS="-li $LIBS" + +fi + + ac_fn_c_check_func "$LINENO" "catgets" "ac_cv_func_catgets" +if test "x$ac_cv_func_catgets" = xyes; then : + $as_echo "@%:@define HAVE_CATGETS 1" >>confdefs.h + + INTLOBJS="\$(CATOBJS)" + # Extract the first word of "gencat", so it can be a program name with args. +set dummy gencat; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GENCAT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GENCAT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GENCAT="$GENCAT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GENCAT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GENCAT" && ac_cv_path_GENCAT="no" + ;; +esac +fi +GENCAT=$ac_cv_path_GENCAT +if test -n "$GENCAT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GENCAT" >&5 +$as_echo "$GENCAT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "$GENCAT" != "no"; then + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$GMSGFMT" = "no"; then + # Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$GMSGFMT" in + /*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then + ac_cv_path_GMSGFMT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no" + ;; +esac +fi +GMSGFMT="$ac_cv_path_GMSGFMT" +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + fi + # Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$XGETTEXT" in + /*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test -n "$XGETTEXT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + USE_INCLUDED_LIBINTL=yes + CATOBJEXT=.cat + INSTOBJEXT=.cat + DATADIRNAME=lib + INTLDEPS='$(top_builddir)/intl/libintl.a' + INTLLIBS=$INTLDEPS + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi +fi + + fi + fi + + if test "$CATOBJEXT" = "NONE"; then + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + INTLOBJS="\$(GETTOBJS)" + # Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGFMT" in + /*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then + ac_cv_path_MSGFMT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test -n "$MSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$XGETTEXT" in + /*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test -n "$XGETTEXT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + USE_INCLUDED_LIBINTL=yes + CATOBJEXT=.gmo + INSTOBJEXT=.mo + DATADIRNAME=share + INTLDEPS='$(top_builddir)/intl/libintl.a' + INTLLIBS=$INTLDEPS + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi + + if test "$XGETTEXT" != ":"; then + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 +$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + else + DATADIRNAME=share + nls_cv_header_intl=intl/libintl.h + nls_cv_header_libgt=intl/libgettext.h + fi + ac_sources="$nls_cv_header_libgt" +ac_dests="$nls_cv_header_intl" +while test -n "$ac_sources"; do + set $ac_dests; ac_dest=$1; shift; ac_dests=$* + set $ac_sources; ac_source=$1; shift; ac_sources=$* + ac_config_links_1="$ac_config_links_1 $ac_dest:$ac_source" +done +ac_config_links="$ac_config_links $ac_config_links_1" + + ac_config_commands="$ac_config_commands default-1" + + + + # If this is used in GNU gettext we have to set USE_NLS to `yes' + # because some of the sources are only built for this goal. + if test "$PACKAGE" = gettext; then + USE_NLS=yes + USE_INCLUDED_LIBINTL=yes + fi + + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + + + + + + + + + + + + + + if test "x$CATOBJEXT" != "x"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 +$as_echo_n "checking for catalogs to be installed... " >&6; } + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in + *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; + esac + done + LINGUAS=$NEW_LINGUAS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 +$as_echo "$LINGUAS" >&6; } + fi + + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + if test $ac_cv_header_locale_h = yes; then + INCLUDE_LOCALE_H="#include " + else + INCLUDE_LOCALE_H="\ +/* The system does not provide the header . Take care yourself. */" + fi + + + test -d intl || mkdir intl + if test "$CATOBJEXT" = ".cat"; then + ac_fn_c_check_header_mongrel "$LINENO" "linux/version.h" "ac_cv_header_linux_version_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_version_h" = xyes; then : + msgformat=linux +else + msgformat=xopen +fi + + + + sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed + fi + sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ + $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed + + if test "$PACKAGE" = "gettext"; then + GT_NO="#NO#" + GT_YES= + else + GT_NO= + GT_YES="#YES#" + fi + + + + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + + + l= + + + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + +XGETTEXT="AWK='$AWK' \$(SHELL) \$(top_srcdir)/exgettext $XGETTEXT" + +# Get an absolute path to the GCC top-level source directory +holddir=`pwd` +cd $srcdir +topdir=`pwd` +cd $holddir + +# Conditionalize the makefile for this host machine. +# Make-host contains the concatenation of all host makefile fragments +# [there can be more than one]. This file is built by configure.frag. +host_overrides=Make-host +dep_host_xmake_file= +for f in .. ${host_xmake_file} +do + if test -f ${srcdir}/config/$f + then + dep_host_xmake_file="${dep_host_xmake_file} ${srcdir}/config/$f" + fi +done + +# Conditionalize the makefile for this target machine. +# Make-target contains the concatenation of all host makefile fragments +# [there can be more than one]. This file is built by configure.frag. +target_overrides=Make-target +dep_tmake_file= +for f in .. ${tmake_file} +do + if test -f ${srcdir}/config/$f + then + dep_tmake_file="${dep_tmake_file} ${srcdir}/config/$f" + fi +done + +# If the host doesn't support symlinks, modify CC in +# FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works. +# Otherwise, we can use "CC=$(CC)". +rm -f symtest.tem +if $symbolic_link $srcdir/gcc.c symtest.tem 2>/dev/null +then + cc_set_by_configure="\$(CC)" + quoted_cc_set_by_configure="\$(CC)" + stage_prefix_set_by_configure="\$(STAGE_PREFIX)" +else + rm -f symtest.tem + if cp -p $srcdir/gcc.c symtest.tem 2>/dev/null + then + symbolic_link="cp -p" + else + symbolic_link="cp" + fi + cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`" + quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`" + stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`" +fi +rm -f symtest.tem + +out_object_file=`basename $out_file .c`.o + +tm_file_list= +for f in $tm_file; do + case $f in + gansidecl.h ) + tm_file_list="${tm_file_list} $f" ;; + *) tm_file_list="${tm_file_list} \$(srcdir)/config/$f" ;; + esac +done + +host_xm_file_list= +for f in $host_xm_file; do + case $f in + auto-host.h | gansidecl.h | hwint.h ) + host_xm_file_list="${host_xm_file_list} $f" ;; + *) host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f" ;; + esac +done + +build_xm_file_list= +for f in $build_xm_file; do + case $f in + auto-build.h | auto-host.h | gansidecl.h | hwint.h ) + build_xm_file_list="${build_xm_file_list} $f" ;; + *) build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f" ;; + esac +done + +# Define macro CROSS_COMPILE in compilation +# if this is a cross-compiler. +# Also use all.cross instead of all.internal +# and add cross-make to Makefile. +cross_overrides="/dev/null" +if test x$host != x$target +then + cross_defines="CROSS=-DCROSS_COMPILE" + cross_overrides="${topdir}/cross-make" +fi + +# When building gcc with a cross-compiler, we need to fix a few things. +# This must come after cross-make as we want all.build to override +# all.cross. +build_overrides="/dev/null" +if test x$build != x$host +then + build_overrides="${topdir}/build-make" +fi + +# Expand extra_headers to include complete path. +# This substitutes for lots of t-* files. +extra_headers_list= +if test "x$extra_headers" = x +then true +else + # Prepend ${srcdir}/ginclude/ to every entry in extra_headers. + for file in $extra_headers; + do + extra_headers_list="${extra_headers_list} \$(srcdir)/ginclude/${file}" + done +fi + +if test x$use_collect2 = xno; then + use_collect2= +fi + +# Add a definition of USE_COLLECT2 if system wants one. +# Also tell toplev.c what to do. +# This substitutes for lots of t-* files. +if test x$use_collect2 = x +then + will_use_collect2= + maybe_use_collect2= +else + will_use_collect2="collect2" + maybe_use_collect2="-DUSE_COLLECT2" +fi + +# NEED TO CONVERT +# Set MD_DEPS if the real md file is in md.pre-cpp. +# Set MD_CPP to the cpp to pass the md file through. Md files use ';' +# for line oriented comments, so we must always use a GNU cpp. If +# building gcc with a cross compiler, use the cross compiler just +# built. Otherwise, we can use the cpp just built. +md_file_sub= +if test "x$md_cppflags" = x +then + md_file_sub=$srcdir/config/$md_file +else + md_file=md +fi + +# If we have gas in the build tree, make a link to it. +if test -f ../gas/Makefile; then + rm -f as; $symbolic_link ../gas/as-new$host_exeext as$host_exeext 2>/dev/null +fi + +# If we have nm in the build tree, make a link to it. +if test -f ../binutils/Makefile; then + rm -f nm; $symbolic_link ../binutils/nm-new$host_exeext nm$host_exeext 2>/dev/null +fi + +# If we have ld in the build tree, make a link to it. +if test -f ../ld/Makefile; then +# if test x$use_collect2 = x; then +# rm -f ld; $symbolic_link ../ld/ld-new$host_exeext ld$host_exeext 2>/dev/null +# else + rm -f collect-ld; $symbolic_link ../ld/ld-new$host_exeext collect-ld$host_exeext 2>/dev/null +# fi +fi + +# Figure out what assembler alignment features are present. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler alignment features" >&5 +$as_echo_n "checking assembler alignment features... " >&6; } +gcc_cv_as= +gcc_cv_as_alignment_features= +gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas +if test -x "$DEFAULT_ASSEMBLER"; then + gcc_cv_as="$DEFAULT_ASSEMBLER" +elif test -x "$AS"; then + gcc_cv_as="$AS" +elif test -x as$host_exeext; then + # Build using assembler in the current directory. + gcc_cv_as=./as$host_exeext +elif test -f $gcc_cv_as_gas_srcdir/configure.in -a -f ../gas/Makefile; then + # Single tree build which includes gas. + for f in $gcc_cv_as_gas_srcdir/configure $gcc_cv_as_gas_srcdir/configure.in $gcc_cv_as_gas_srcdir/Makefile.in + do + gcc_cv_gas_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f` + if test x$gcc_cv_gas_version != x; then + break + fi + done + gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([0-9]*\)"` + gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.\([0-9]*\)"` + if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then + # Gas version 2.6 and later support for .balign and .p2align. + # bytes to skip when using .p2align. + if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 6 -o "$gcc_cv_gas_major_version" -gt 2; then + gcc_cv_as_alignment_features=".balign and .p2align" + $as_echo "@%:@define HAVE_GAS_BALIGN_AND_P2ALIGN 1" >>confdefs.h + + fi + # Gas version 2.8 and later support specifying the maximum + # bytes to skip when using .p2align. + if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 8 -o "$gcc_cv_gas_major_version" -gt 2; then + gcc_cv_as_alignment_features=".p2align including maximum skip" + $as_echo "@%:@define HAVE_GAS_MAX_SKIP_P2ALIGN 1" >>confdefs.h + + fi + fi +elif test x$host = x$target; then + # Native build. + # Search the same directories that the installed compiler will + # search. Else we may find the wrong assembler and lose. If we + # do not find a suitable assembler binary, then try the user's + # path. + # + # Also note we have to check MD_EXEC_PREFIX before checking the + # user's path. Unfortunately, there is no good way to get at the + # value of MD_EXEC_PREFIX here. So we do a brute force search + # through all the known MD_EXEC_PREFIX values. Ugh. This needs + # to be fixed as part of the make/configure rewrite too. + + if test "x$exec_prefix" = xNONE; then + if test "x$prefix" = xNONE; then + test_prefix=/usr/local + else + test_prefix=$prefix + fi + else + test_prefix=$exec_prefix + fi + + # If the loop below does not find an assembler, then use whatever + # one we can find in the users's path. + # user's path. + as=as$host_exeext + + test_dirs="$test_prefix/lib/gcc-lib/$target/$gcc_version \ + $test_prefix/lib/gcc-lib/$target \ + /usr/lib/gcc/$target/$gcc_version \ + /usr/lib/gcc/$target \ + $test_prefix/$target/bin/$target/$gcc_version \ + $test_prefix/$target/bin \ + /usr/libexec \ + /usr/ccs/gcc \ + /usr/ccs/bin \ + /udk/usr/ccs/bin \ + /bsd43/usr/lib/cmplrs/cc \ + /usr/cross64/usr/bin \ + /usr/lib/cmplrs/cc \ + /sysv/usr/lib/cmplrs/cc \ + /svr4/usr/lib/cmplrs/cc \ + /usr/bin" + + for dir in $test_dirs; do + if test -f $dir/as$host_exeext; then + gcc_cv_as=$dir/as$host_exeext + break; + fi + done +fi +if test x$gcc_cv_as != x; then + # Check if we have .balign and .p2align + echo ".balign 4" > conftest.s + echo ".p2align 2" >> conftest.s + if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then + gcc_cv_as_alignment_features=".balign and .p2align" + $as_echo "@%:@define HAVE_GAS_BALIGN_AND_P2ALIGN 1" >>confdefs.h + + fi + rm -f conftest.s conftest.o + # Check if specifying the maximum bytes to skip when + # using .p2align is supported. + echo ".p2align 4,,7" > conftest.s + if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then + gcc_cv_as_alignment_features=".p2align including maximum skip" + $as_echo "@%:@define HAVE_GAS_MAX_SKIP_P2ALIGN 1" >>confdefs.h + + fi + rm -f conftest.s conftest.o +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_alignment_features" >&5 +$as_echo "$gcc_cv_as_alignment_features" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler subsection support" >&5 +$as_echo_n "checking assembler subsection support... " >&6; } +gcc_cv_as_subsections= +if test x$gcc_cv_as != x; then + # Check if we have .subsection + echo ".subsection 1" > conftest.s + if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then + gcc_cv_as_subsections=".subsection" + if test -x nm$host_exeext; then + gcc_cv_nm=./nm$host_exeext + elif test x$host = x$target; then + # Native build. + gcc_cv_nm=nm$host_exeext + fi + if test x$gcc_cv_nm != x; then + cat > conftest.s < /dev/null 2>&1; then + $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1 + $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2 + if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1; then + : + else + gcc_cv_as_subsections="working .subsection -1" + $as_echo "@%:@define HAVE_GAS_SUBSECTION_ORDERING 1" >>confdefs.h + + fi + fi + fi + fi + rm -f conftest.s conftest.o conftest.nm1 conftest.nm2 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_subsections" >&5 +$as_echo "$gcc_cv_as_subsections" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler instructions" >&5 +$as_echo_n "checking assembler instructions... " >&6; } +gcc_cv_as_instructions= +if test x$gcc_cv_as != x; then + set "filds fists" "filds mem; fists mem" + while test $# -gt 0 + do + echo "$2" > conftest.s + if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then + gcc_cv_as_instructions=${gcc_cv_as_instructions}$1" " + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_GAS_`echo "$1" | tr 'a-z ' 'A-Z_'` 1 +_ACEOF + + fi + shift 2 + done + rm -f conftest.s conftest.o +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_instructions" >&5 +$as_echo "$gcc_cv_as_instructions" >&6; } + +# Figure out what language subdirectories are present. +# Look if the user specified --enable-languages="..."; if not, use +# the environment variable $LANGUAGES if defined. $LANGUAGES might +# go away some day. +if test x"${enable_languages+set}" != xset; then + if test x"${LANGUAGES+set}" = xset; then + enable_languages="`echo ${LANGUAGES} | tr ' ' ','`" + else + enable_languages=all + fi +fi +subdirs= +for lang in ${srcdir}/*/config-lang.in .. +do + case $lang in + ..) ;; + # The odd quoting in the next line works around + # an apparent bug in bash 1.12 on linux. + ${srcdir}/[*]/config-lang.in) ;; + *) + lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang` + if test "x$lang_alias" = x + then + echo "$lang doesn't set \$language." 1>&2 + exit 1 + fi + if test x"${enable_languages}" = xall; then + add_this_lang=yes + else + case "${enable_languages}" in + ${lang_alias} | "${lang_alias},"* | *",${lang_alias},"* | *",${lang_alias}" ) + add_this_lang=yes + ;; + * ) + add_this_lang=no + ;; + esac + fi + if test x"${add_this_lang}" = xyes; then + case $lang in + ${srcdir}/ada/config-lang.in) + if test x$gnat = xyes ; then + subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" + fi + ;; + *) + subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" + ;; + esac + fi + ;; + esac +done + +# Make gthr-default.h if we have a thread file. +gthread_flags= +if test $thread_file != single; then + rm -f gthr-default.h + echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h + gthread_flags=-DHAVE_GTHR_DEFAULT +fi + + +# Make empty files to contain the specs and options for each language. +# Then add #include lines to for a compiler that has specs and/or options. + +lang_specs_files= +lang_options_files= +lang_tree_files= +rm -f specs.h options.h gencheck.h +touch specs.h options.h gencheck.h +for subdir in . $subdirs +do + if test -f $srcdir/$subdir/lang-specs.h; then + echo "#include \"$subdir/lang-specs.h\"" >>specs.h + lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h" + fi + if test -f $srcdir/$subdir/lang-options.h; then + echo "#include \"$subdir/lang-options.h\"" >>options.h + lang_options_files="$lang_options_files $srcdir/$subdir/lang-options.h" + fi + if test -f $srcdir/$subdir/$subdir-tree.def; then + echo "#include \"$subdir/$subdir-tree.def\"" >>gencheck.h + lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def" + fi +done + +# These (without "all_") are set in each config-lang.in. +# `language' must be a single word so is spelled singularly. +all_languages= +all_boot_languages= +all_compilers= +all_stagestuff= +all_diff_excludes= +all_outputs='Makefile intl/Makefile po/Makefile.in fixinc/Makefile' +# List of language makefile fragments. +all_lang_makefiles= +all_headers= +all_lib2funcs= + +# Add the language fragments. +# Languages are added via two mechanisms. Some information must be +# recorded in makefile variables, these are defined in config-lang.in. +# We accumulate them and plug them into the main Makefile. +# The other mechanism is a set of hooks for each of the main targets +# like `clean', `install', etc. + +language_fragments="Make-lang" +language_hooks="Make-hooks" +oldstyle_subdirs= + +for s in .. $subdirs +do + if test $s != ".." + then + language= + boot_language= + compilers= + stagestuff= + diff_excludes= + headers= + outputs= + lib2funcs= + . ${srcdir}/$s/config-lang.in + if test "x$language" = x + then + echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2 + exit 1 + fi + all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in ${srcdir}/$s/Makefile.in" + all_languages="$all_languages $language" + if test "x$boot_language" = xyes + then + all_boot_languages="$all_boot_languages $language" + fi + all_compilers="$all_compilers $compilers" + all_stagestuff="$all_stagestuff $stagestuff" + all_diff_excludes="$all_diff_excludes $diff_excludes" + all_headers="$all_headers $headers" + all_outputs="$all_outputs $outputs" + if test x$outputs = x + then + oldstyle_subdirs="$oldstyle_subdirs $s" + fi + all_lib2funcs="$all_lib2funcs $lib2funcs" + fi +done + +# Since we can't use `::' targets, we link each language in +# with a set of hooks, reached indirectly via lang.${target}. + +rm -f Make-hooks +touch Make-hooks +target_list="all.build all.cross start.encap rest.encap \ + info dvi \ + install-normal install-common install-info install-man \ + uninstall distdir \ + mostlyclean clean distclean extraclean maintainer-clean \ + stage1 stage2 stage3 stage4" +for t in $target_list +do + x= + for lang in .. $all_languages + do + if test $lang != ".."; then + x="$x $lang.$t" + fi + done + echo "lang.$t: $x" >> Make-hooks +done + +# If we're not building in srcdir, create .gdbinit. + +if test ! -f Makefile.in; then + echo "dir ." > .gdbinit + echo "dir ${srcdir}" >> .gdbinit + if test x$gdb_needs_out_file_path = xyes + then + echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit + fi + if test "x$subdirs" != x; then + for s in $subdirs + do + echo "dir ${srcdir}/$s" >> .gdbinit + done + fi + echo "source ${srcdir}/.gdbinit" >> .gdbinit +fi + +# Define variables host_canonical and build_canonical +# because some Cygnus local changes in the Makefile depend on them. +build_canonical=${build} +host_canonical=${host} +target_subdir= +if test "${host}" != "${target}" ; then + target_subdir=${target}/ +fi + + + + +# If this is using newlib, then define inhibit_libc in +# LIBGCC2_CFLAGS. This will cause __eprintf to be left out of +# libgcc.a, but that's OK because newib should have its own version of +# assert.h. +inhibit_libc= +if test x$with_newlib = xyes; then + inhibit_libc=-Dinhibit_libc +fi + + +# Override SCHED_OBJ and SCHED_CFLAGS to enable the Haifa scheduler. +sched_prefix= +sched_cflags= +if test x$enable_haifa = xyes; then + echo "Using the Haifa scheduler." + sched_prefix=haifa- + sched_cflags=-DHAIFA +fi + + +if test x$enable_haifa != x; then + # Explicitly remove files that need to be recompiled for the Haifa scheduler. + for x in genattrtab.o toplev.o *sched.o; do + if test -f $x; then + echo "Removing $x" + rm -f $x + fi + done +fi + +# If $(exec_prefix) exists and is not the same as $(prefix), then compute an +# absolute path for gcc_tooldir based on inserting the number of up-directory +# movements required to get from $(exec_prefix) to $(prefix) into the basic +# $(libsubdir)/@(unlibsubdir) based path. +# Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel +# make and thus we'd get different behavior depending on where we built the +# sources. +if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then + gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_alias)' +else +# An explanation of the sed strings: +# -e 's|^\$(prefix)||' matches and eliminates 'prefix' from 'exec_prefix' +# -e 's|/$||' match a trailing forward slash and eliminates it +# -e 's|^[^/]|/|' forces the string to start with a forward slash (*) +# -e 's|/[^/]*|../|g' replaces each occurance of / with ../ +# +# (*) Note this pattern overwrites the first character of the string +# with a forward slash if one is not already present. This is not a +# problem because the exact names of the sub-directories concerned is +# unimportant, just the number of them matters. +# +# The practical upshot of these patterns is like this: +# +# prefix exec_prefix result +# ------ ----------- ------ +# /foo /foo/bar ../ +# /foo/ /foo/bar ../ +# /foo /foo/bar/ ../ +# /foo/ /foo/bar/ ../ +# /foo /foo/bar/ugg ../../ +# + dollar='$$' + gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_alias)" +fi + + + +# Nothing to do for FLOAT_H, float_format already handled. +objdir=`pwd` + + +# Process the language and host/target makefile fragments. +${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xmake_file" "$dep_tmake_file" + +# Substitute configuration variables + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# Echo that links are built +if test x$host = x$target +then + str1="native " +else + str1="cross-" + str2=" from $host" +fi + +if test x$host != x$build +then + str3=" on a $build system" +fi + +if test "x$str2" != x || test "x$str3" != x +then + str4= +fi + +echo "Links are now set up to build a ${str1}compiler for ${target}$str4" 1>&2 + +if test "x$str2" != x || test "x$str3" != x +then + echo " ${str2}${str3}." 1>&2 +fi + +# Truncate the target if necessary +if test x$host_truncate_target != x; then + target=`echo $target | sed -e 's/\(..............\).*/\1/'` +fi + +# Configure the subdirectories +# AC_CONFIG_SUBDIRS($subdirs) + +# Create the Makefile +# and configure language subdirectories +ac_config_files="$ac_config_files $all_outputs" + +ac_config_commands="$ac_config_commands default" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIB@&t@OBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in @%:@( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by $as_me, which was +generated by GNU Autoconf 2.68. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_links="$ac_config_links" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration links: +$config_links + +Configuration commands: +$config_commands + +Report bugs to the package provider." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +config.status +configured by $0, generated by GNU Autoconf 2.68, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2010 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX +@%:@@%:@ Running $as_me. @%:@@%:@ +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# + + +host='${host}' +build='${build}' +target='${target}' +target_alias='${target_alias}' +srcdir='${srcdir}' +subdirs='${subdirs}' +oldstyle_subdirs='${oldstyle_subdirs}' +symbolic_link='${symbolic_link}' +program_transform_set='${program_transform_set}' +program_transform_name='${program_transform_name}' +dep_host_xmake_file='${dep_host_xmake_file}' +host_xmake_file='${host_xmake_file}' +dep_tmake_file='${dep_tmake_file}' +tmake_file='${tmake_file}' +thread_file='${thread_file}' +gcc_version='${gcc_version}' +gcc_version_trigger='${gcc_version_trigger}' +local_prefix='${local_prefix}' +build_install_headers_dir='${build_install_headers_dir}' +build_exeext='${build_exeext}' +host_exeext='${host_exeext}' +out_file='${out_file}' +gdb_needs_out_file_path='${gdb_needs_out_file_path}' +SET_MAKE='${SET_MAKE}' +target_list='${target_list}' +target_overrides='${target_overrides}' +host_overrides='${host_overrides}' +cross_defines='${cross_defines}' +cross_overrides='${cross_overrides}' +build_overrides='${build_overrides}' +cpp_install_dir='${cpp_install_dir}' + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "auto-host.h") CONFIG_HEADERS="$CONFIG_HEADERS auto-host.h:config.in" ;; + "$ac_config_links_1") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_1" ;; + "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; + "$all_outputs") CONFIG_FILES="$CONFIG_FILES $all_outputs" ;; + "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + +if $AWK 'BEGIN { getline <"/dev/null" }' /dev/null; then + ac_cs_awk_getline=: + ac_cs_awk_pipe_init= + ac_cs_awk_read_file=' + while ((getline aline < (F[key])) > 0) + print(aline) + close(F[key])' + ac_cs_awk_pipe_fini= +else + ac_cs_awk_getline=false + ac_cs_awk_pipe_init="print \"cat <<'|#_!!_#|' &&\"" + ac_cs_awk_read_file=' + print "|#_!!_#|" + print "cat " F[key] " &&" + '$ac_cs_awk_pipe_init + # The final `:' finishes the AND list. + ac_cs_awk_pipe_fini='END { print "|#_!!_#|"; print ":" }' +fi +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + +# Create commands to substitute file output variables. +{ + echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" && + echo 'cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&' && + echo "$ac_subst_files" | sed 's/.*/F@<:@"&"@:>@="$&"/' && + echo "_ACAWK" && + echo "_ACEOF" +} >conf$$files.sh && +. ./conf$$files.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +rm -f conf$$files.sh + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + \$ac_cs_awk_pipe_init +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + if (nfields == 3 && !substed) { + key = field[2] + if (F[key] != "" && line ~ /^[ ]*@.*@[ ]*$/) { + \$ac_cs_awk_read_file + next + } + } + print line +} +\$ac_cs_awk_pipe_fini +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | +if $ac_cs_awk_getline; then + $AWK -f "$ac_tmp/subs.awk" +else + $AWK -f "$ac_tmp/subs.awk" | $SHELL +fi \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi + ;; + :L) + # + # CONFIG_LINK + # + + if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then + : + else + # Prefer the file from the source tree if names are identical. + if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then + ac_source=$srcdir/$ac_source + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5 +$as_echo "$as_me: linking $ac_source to $ac_file" >&6;} + + if test ! -r "$ac_source"; then + as_fn_error $? "$ac_source: file not found" "$LINENO" 5 + fi + rm -f "$ac_file" + + # Try a relative symlink, then a hard link, then a copy. + case $ac_source in + [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; + *) ac_rel_source=$ac_top_build_prefix$ac_source ;; + esac + ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || + ln "$ac_source" "$ac_file" 2>/dev/null || + cp -p "$ac_source" "$ac_file" || + as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 + fi + ;; + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac ;; + "default":C) +. $srcdir/configure.lang +case x$CONFIG_HEADERS in +xauto-host.h:config.in) +echo > cstamp-h ;; +esac +# If the host supports symlinks, point stage[1234] at ../stage[1234] so +# bootstrapping and the installation procedure can still use +# CC="stage1/xgcc -Bstage1/". If the host doesn't support symlinks, +# FLAGS_TO_PASS has been modified to solve the problem there. +# This is virtually a duplicate of what happens in configure.lang; we do +# an extra check to make sure this only happens if ln -s can be used. +if test "$symbolic_link" = "ln -s"; then + for d in .. ${subdirs} ; do + if test $d != ..; then + STARTDIR=`pwd` + cd $d + for t in stage1 stage2 stage3 stage4 include + do + rm -f $t + $symbolic_link ../$t $t 2>/dev/null + done + cd $STARTDIR + fi + done +else true ; fi +# Avoid having to add intl to our include paths. +if test -f intl/libintl.h; then + echo creating libintl.h + echo '#include "intl/libintl.h"' >libintl.h +fi + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + diff -urN gcc-2.95.2.org/gcc/autom4te.cache/requests gcc-2.95.2/gcc/autom4te.cache/requests --- gcc-2.95.2.org/gcc/autom4te.cache/requests 1969-12-31 16:00:00.000000000 -0800 +++ gcc-2.95.2/gcc/autom4te.cache/requests 2011-03-20 04:04:29.000000000 -0700 @@ -0,0 +1,76 @@ +# This file was generated. +# It contains the lists of macros which have been traced. +# It can be safely removed. + +@request = ( + bless( [ + '0', + 1, + [ + '/usr/share/autoconf' + ], + [ + '/usr/share/autoconf/autoconf/autoconf.m4f', + 'aclocal.m4', + 'configure.in' + ], + { + '_LT_AC_TAGCONFIG' => 1, + 'AM_PROG_F77_C_O' => 1, + 'AC_INIT' => 1, + 'm4_pattern_forbid' => 1, + '_AM_COND_IF' => 1, + 'AC_CANONICAL_TARGET' => 1, + 'AC_SUBST' => 1, + 'AC_CONFIG_LIBOBJ_DIR' => 1, + 'AC_FC_SRCEXT' => 1, + 'AC_CANONICAL_HOST' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AM_PATH_GUILE' => 1, + 'AC_CONFIG_SUBDIRS' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AC_REQUIRE_AUX_FILE' => 1, + 'AC_CONFIG_LINKS' => 1, + 'm4_sinclude' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'AM_NLS' => 1, + 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, + 'AM_MAKEFILE_INCLUDE' => 1, + '_m4_warn' => 1, + 'AM_PROG_CXX_C_O' => 1, + '_AM_COND_ENDIF' => 1, + '_AM_MAKEFILE_INCLUDE' => 1, + 'AM_ENABLE_MULTILIB' => 1, + 'AM_SILENT_RULES' => 1, + 'AM_PROG_MOC' => 1, + 'AC_CONFIG_FILES' => 1, + 'include' => 1, + 'LT_INIT' => 1, + 'AM_PROG_AR' => 1, + 'AM_GNU_GETTEXT' => 1, + 'AC_LIBSOURCE' => 1, + 'AM_PROG_FC_C_O' => 1, + 'AC_CANONICAL_BUILD' => 1, + 'AC_FC_FREEFORM' => 1, + 'AH_OUTPUT' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'AC_CONFIG_AUX_DIR' => 1, + 'sinclude' => 1, + 'AM_PROG_CC_C_O' => 1, + 'm4_pattern_allow' => 1, + 'AM_XGETTEXT_OPTION' => 1, + 'AC_CANONICAL_SYSTEM' => 1, + 'AM_CONDITIONAL' => 1, + 'AC_CONFIG_HEADERS' => 1, + 'AC_DEFINE_TRACE_LITERAL' => 1, + 'AM_POT_TOOLS' => 1, + 'm4_include' => 1, + '_AM_COND_ELSE' => 1, + 'AC_SUBST_TRACE' => 1 + } + ], 'Autom4te::Request' ) + ); + diff -urN gcc-2.95.2.org/gcc/autom4te.cache/traces.0 gcc-2.95.2/gcc/autom4te.cache/traces.0 --- gcc-2.95.2.org/gcc/autom4te.cache/traces.0 1969-12-31 16:00:00.000000000 -0800 +++ gcc-2.95.2/gcc/autom4te.cache/traces.0 2011-03-20 04:04:29.000000000 -0700 @@ -0,0 +1,1009 @@ +m4trace:configure.in:25: -1- AC_INIT([tree.c]) +m4trace:configure.in:25: -1- m4_pattern_forbid([^_?A[CHUM]_]) +m4trace:configure.in:25: -1- m4_pattern_forbid([_AC_]) +m4trace:configure.in:25: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) +m4trace:configure.in:25: -1- m4_pattern_allow([^AS_FLAGS$]) +m4trace:configure.in:25: -1- m4_pattern_forbid([^_?m4_]) +m4trace:configure.in:25: -1- m4_pattern_forbid([^dnl$]) +m4trace:configure.in:25: -1- m4_pattern_forbid([^_?AS_]) +m4trace:configure.in:25: -1- AC_SUBST([SHELL]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([SHELL]) +m4trace:configure.in:25: -1- m4_pattern_allow([^SHELL$]) +m4trace:configure.in:25: -1- AC_SUBST([PATH_SEPARATOR]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([PATH_SEPARATOR]) +m4trace:configure.in:25: -1- m4_pattern_allow([^PATH_SEPARATOR$]) +m4trace:configure.in:25: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([PACKAGE_NAME]) +m4trace:configure.in:25: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.in:25: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([PACKAGE_TARNAME]) +m4trace:configure.in:25: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.in:25: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([PACKAGE_VERSION]) +m4trace:configure.in:25: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.in:25: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([PACKAGE_STRING]) +m4trace:configure.in:25: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.in:25: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT]) +m4trace:configure.in:25: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.in:25: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([PACKAGE_URL]) +m4trace:configure.in:25: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.in:25: -1- AC_SUBST([exec_prefix], [NONE]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([exec_prefix]) +m4trace:configure.in:25: -1- m4_pattern_allow([^exec_prefix$]) +m4trace:configure.in:25: -1- AC_SUBST([prefix], [NONE]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([prefix]) +m4trace:configure.in:25: -1- m4_pattern_allow([^prefix$]) +m4trace:configure.in:25: -1- AC_SUBST([program_transform_name], [s,x,x,]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([program_transform_name]) +m4trace:configure.in:25: -1- m4_pattern_allow([^program_transform_name$]) +m4trace:configure.in:25: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([bindir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^bindir$]) +m4trace:configure.in:25: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([sbindir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^sbindir$]) +m4trace:configure.in:25: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([libexecdir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^libexecdir$]) +m4trace:configure.in:25: -1- AC_SUBST([datarootdir], ['${prefix}/share']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([datarootdir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^datarootdir$]) +m4trace:configure.in:25: -1- AC_SUBST([datadir], ['${datarootdir}']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([datadir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^datadir$]) +m4trace:configure.in:25: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([sysconfdir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^sysconfdir$]) +m4trace:configure.in:25: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([sharedstatedir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^sharedstatedir$]) +m4trace:configure.in:25: -1- AC_SUBST([localstatedir], ['${prefix}/var']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([localstatedir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^localstatedir$]) +m4trace:configure.in:25: -1- AC_SUBST([includedir], ['${prefix}/include']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([includedir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^includedir$]) +m4trace:configure.in:25: -1- AC_SUBST([oldincludedir], ['/usr/include']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([oldincludedir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^oldincludedir$]) +m4trace:configure.in:25: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], + ['${datarootdir}/doc/${PACKAGE_TARNAME}'], + ['${datarootdir}/doc/${PACKAGE}'])]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([docdir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^docdir$]) +m4trace:configure.in:25: -1- AC_SUBST([infodir], ['${datarootdir}/info']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([infodir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^infodir$]) +m4trace:configure.in:25: -1- AC_SUBST([htmldir], ['${docdir}']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([htmldir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^htmldir$]) +m4trace:configure.in:25: -1- AC_SUBST([dvidir], ['${docdir}']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([dvidir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^dvidir$]) +m4trace:configure.in:25: -1- AC_SUBST([pdfdir], ['${docdir}']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([pdfdir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^pdfdir$]) +m4trace:configure.in:25: -1- AC_SUBST([psdir], ['${docdir}']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([psdir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^psdir$]) +m4trace:configure.in:25: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([libdir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^libdir$]) +m4trace:configure.in:25: -1- AC_SUBST([localedir], ['${datarootdir}/locale']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([localedir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^localedir$]) +m4trace:configure.in:25: -1- AC_SUBST([mandir], ['${datarootdir}/man']) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([mandir]) +m4trace:configure.in:25: -1- m4_pattern_allow([^mandir$]) +m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) +m4trace:configure.in:25: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.in:25: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ +@%:@undef PACKAGE_NAME]) +m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) +m4trace:configure.in:25: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.in:25: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ +@%:@undef PACKAGE_TARNAME]) +m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) +m4trace:configure.in:25: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.in:25: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ +@%:@undef PACKAGE_VERSION]) +m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) +m4trace:configure.in:25: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.in:25: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ +@%:@undef PACKAGE_STRING]) +m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) +m4trace:configure.in:25: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.in:25: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ +@%:@undef PACKAGE_BUGREPORT]) +m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL]) +m4trace:configure.in:25: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.in:25: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */ +@%:@undef PACKAGE_URL]) +m4trace:configure.in:25: -1- AC_SUBST([DEFS]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([DEFS]) +m4trace:configure.in:25: -1- m4_pattern_allow([^DEFS$]) +m4trace:configure.in:25: -1- AC_SUBST([ECHO_C]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([ECHO_C]) +m4trace:configure.in:25: -1- m4_pattern_allow([^ECHO_C$]) +m4trace:configure.in:25: -1- AC_SUBST([ECHO_N]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([ECHO_N]) +m4trace:configure.in:25: -1- m4_pattern_allow([^ECHO_N$]) +m4trace:configure.in:25: -1- AC_SUBST([ECHO_T]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([ECHO_T]) +m4trace:configure.in:25: -1- m4_pattern_allow([^ECHO_T$]) +m4trace:configure.in:25: -1- AC_SUBST([LIBS]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([LIBS]) +m4trace:configure.in:25: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.in:25: -1- AC_SUBST([build_alias]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([build_alias]) +m4trace:configure.in:25: -1- m4_pattern_allow([^build_alias$]) +m4trace:configure.in:25: -1- AC_SUBST([host_alias]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([host_alias]) +m4trace:configure.in:25: -1- m4_pattern_allow([^host_alias$]) +m4trace:configure.in:25: -1- AC_SUBST([target_alias]) +m4trace:configure.in:25: -1- AC_SUBST_TRACE([target_alias]) +m4trace:configure.in:25: -1- m4_pattern_allow([^target_alias$]) +m4trace:configure.in:26: -1- AC_CONFIG_HEADERS([auto-host.h:config.in]) +m4trace:configure.in:104: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_LINKER]) +m4trace:configure.in:104: -1- m4_pattern_allow([^DEFAULT_LINKER$]) +m4trace:configure.in:122: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_ASSEMBLER]) +m4trace:configure.in:122: -1- m4_pattern_allow([^DEFAULT_ASSEMBLER$]) +m4trace:configure.in:178: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_CHECKING]) +m4trace:configure.in:178: -1- m4_pattern_allow([^ENABLE_CHECKING$]) +m4trace:configure.in:296: -1- AC_CANONICAL_SYSTEM +m4trace:configure.in:296: -1- _m4_warn([obsolete], [The macro `AC_CANONICAL_SYSTEM' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:1858: AC_CANONICAL_SYSTEM is expanded from... +configure.in:296: the top level]) +m4trace:configure.in:296: -1- AC_CANONICAL_TARGET +m4trace:configure.in:296: -1- AC_CANONICAL_HOST +m4trace:configure.in:296: -1- AC_CANONICAL_BUILD +m4trace:configure.in:296: -1- AC_REQUIRE_AUX_FILE([config.sub]) +m4trace:configure.in:296: -1- AC_REQUIRE_AUX_FILE([config.guess]) +m4trace:configure.in:296: -1- AC_SUBST([build], [$ac_cv_build]) +m4trace:configure.in:296: -1- AC_SUBST_TRACE([build]) +m4trace:configure.in:296: -1- m4_pattern_allow([^build$]) +m4trace:configure.in:296: -1- AC_SUBST([build_cpu], [$[1]]) +m4trace:configure.in:296: -1- AC_SUBST_TRACE([build_cpu]) +m4trace:configure.in:296: -1- m4_pattern_allow([^build_cpu$]) +m4trace:configure.in:296: -1- AC_SUBST([build_vendor], [$[2]]) +m4trace:configure.in:296: -1- AC_SUBST_TRACE([build_vendor]) +m4trace:configure.in:296: -1- m4_pattern_allow([^build_vendor$]) +m4trace:configure.in:296: -1- AC_SUBST([build_os]) +m4trace:configure.in:296: -1- AC_SUBST_TRACE([build_os]) +m4trace:configure.in:296: -1- m4_pattern_allow([^build_os$]) +m4trace:configure.in:296: -1- AC_SUBST([host], [$ac_cv_host]) +m4trace:configure.in:296: -1- AC_SUBST_TRACE([host]) +m4trace:configure.in:296: -1- m4_pattern_allow([^host$]) +m4trace:configure.in:296: -1- AC_SUBST([host_cpu], [$[1]]) +m4trace:configure.in:296: -1- AC_SUBST_TRACE([host_cpu]) +m4trace:configure.in:296: -1- m4_pattern_allow([^host_cpu$]) +m4trace:configure.in:296: -1- AC_SUBST([host_vendor], [$[2]]) +m4trace:configure.in:296: -1- AC_SUBST_TRACE([host_vendor]) +m4trace:configure.in:296: -1- m4_pattern_allow([^host_vendor$]) +m4trace:configure.in:296: -1- AC_SUBST([host_os]) +m4trace:configure.in:296: -1- AC_SUBST_TRACE([host_os]) +m4trace:configure.in:296: -1- m4_pattern_allow([^host_os$]) +m4trace:configure.in:296: -1- AC_SUBST([target], [$ac_cv_target]) +m4trace:configure.in:296: -1- AC_SUBST_TRACE([target]) +m4trace:configure.in:296: -1- m4_pattern_allow([^target$]) +m4trace:configure.in:296: -1- AC_SUBST([target_cpu], [$[1]]) +m4trace:configure.in:296: -1- AC_SUBST_TRACE([target_cpu]) +m4trace:configure.in:296: -1- m4_pattern_allow([^target_cpu$]) +m4trace:configure.in:296: -1- AC_SUBST([target_vendor], [$[2]]) +m4trace:configure.in:296: -1- AC_SUBST_TRACE([target_vendor]) +m4trace:configure.in:296: -1- m4_pattern_allow([^target_vendor$]) +m4trace:configure.in:296: -1- AC_SUBST([target_os]) +m4trace:configure.in:296: -1- AC_SUBST_TRACE([target_os]) +m4trace:configure.in:296: -1- m4_pattern_allow([^target_os$]) +m4trace:configure.in:299: -1- AC_SUBST([CC]) +m4trace:configure.in:299: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.in:299: -1- m4_pattern_allow([^CC$]) +m4trace:configure.in:299: -1- AC_SUBST([CFLAGS]) +m4trace:configure.in:299: -1- AC_SUBST_TRACE([CFLAGS]) +m4trace:configure.in:299: -1- m4_pattern_allow([^CFLAGS$]) +m4trace:configure.in:299: -1- AC_SUBST([LDFLAGS]) +m4trace:configure.in:299: -1- AC_SUBST_TRACE([LDFLAGS]) +m4trace:configure.in:299: -1- m4_pattern_allow([^LDFLAGS$]) +m4trace:configure.in:299: -1- AC_SUBST([LIBS]) +m4trace:configure.in:299: -1- AC_SUBST_TRACE([LIBS]) +m4trace:configure.in:299: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.in:299: -1- AC_SUBST([CPPFLAGS]) +m4trace:configure.in:299: -1- AC_SUBST_TRACE([CPPFLAGS]) +m4trace:configure.in:299: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.in:299: -1- AC_SUBST([CC]) +m4trace:configure.in:299: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.in:299: -1- m4_pattern_allow([^CC$]) +m4trace:configure.in:299: -1- AC_SUBST([CC]) +m4trace:configure.in:299: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.in:299: -1- m4_pattern_allow([^CC$]) +m4trace:configure.in:299: -1- AC_SUBST([CC]) +m4trace:configure.in:299: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.in:299: -1- m4_pattern_allow([^CC$]) +m4trace:configure.in:299: -1- AC_SUBST([CC]) +m4trace:configure.in:299: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.in:299: -1- m4_pattern_allow([^CC$]) +m4trace:configure.in:299: -1- AC_SUBST([ac_ct_CC]) +m4trace:configure.in:299: -1- AC_SUBST_TRACE([ac_ct_CC]) +m4trace:configure.in:299: -1- m4_pattern_allow([^ac_ct_CC$]) +m4trace:configure.in:299: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) +m4trace:configure.in:299: -1- AC_SUBST_TRACE([EXEEXT]) +m4trace:configure.in:299: -1- m4_pattern_allow([^EXEEXT$]) +m4trace:configure.in:299: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) +m4trace:configure.in:299: -1- AC_SUBST_TRACE([OBJEXT]) +m4trace:configure.in:299: -1- m4_pattern_allow([^OBJEXT$]) +m4trace:configure.in:309: -1- AC_SUBST([stage1_warn_cflags]) +m4trace:configure.in:309: -1- AC_SUBST_TRACE([stage1_warn_cflags]) +m4trace:configure.in:309: -1- m4_pattern_allow([^stage1_warn_cflags$]) +m4trace:configure.in:311: -1- AC_SUBST([SET_MAKE]) +m4trace:configure.in:311: -1- AC_SUBST_TRACE([SET_MAKE]) +m4trace:configure.in:311: -1- m4_pattern_allow([^SET_MAKE$]) +m4trace:configure.in:336: -1- AC_SUBST([AWK]) +m4trace:configure.in:336: -1- AC_SUBST_TRACE([AWK]) +m4trace:configure.in:336: -1- m4_pattern_allow([^AWK$]) +m4trace:configure.in:337: -1- AC_SUBST([LEX]) +m4trace:configure.in:337: -1- AC_SUBST_TRACE([LEX]) +m4trace:configure.in:337: -1- m4_pattern_allow([^LEX$]) +m4trace:configure.in:337: -1- AC_SUBST([LEX_OUTPUT_ROOT], [$ac_cv_prog_lex_root]) +m4trace:configure.in:337: -1- AC_SUBST_TRACE([LEX_OUTPUT_ROOT]) +m4trace:configure.in:337: -1- m4_pattern_allow([^LEX_OUTPUT_ROOT$]) +m4trace:configure.in:337: -1- AC_SUBST([LEXLIB]) +m4trace:configure.in:337: -1- AC_SUBST_TRACE([LEXLIB]) +m4trace:configure.in:337: -1- m4_pattern_allow([^LEXLIB$]) +m4trace:configure.in:337: -1- AC_DEFINE_TRACE_LITERAL([YYTEXT_POINTER]) +m4trace:configure.in:337: -1- m4_pattern_allow([^YYTEXT_POINTER$]) +m4trace:configure.in:337: -1- AH_OUTPUT([YYTEXT_POINTER], [/* Define to 1 if `lex\' declares `yytext\' as a `char *\' by default, not a + `char@<:@@:>@\'. */ +@%:@undef YYTEXT_POINTER]) +m4trace:configure.in:338: -1- AC_SUBST([LN]) +m4trace:configure.in:338: -1- AC_SUBST_TRACE([LN]) +m4trace:configure.in:338: -1- m4_pattern_allow([^LN$]) +m4trace:configure.in:339: -1- AC_SUBST([LN_S]) +m4trace:configure.in:339: -1- AC_SUBST_TRACE([LN_S]) +m4trace:configure.in:339: -1- m4_pattern_allow([^LN_S$]) +m4trace:configure.in:340: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... +aclocal.m4:166: GCC_C_VOLATILE is expanded from... +configure.in:340: the top level]) +m4trace:configure.in:340: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VOLATILE]) +m4trace:configure.in:340: -1- m4_pattern_allow([^HAVE_VOLATILE$]) +m4trace:configure.in:341: -1- AC_SUBST([RANLIB]) +m4trace:configure.in:341: -1- AC_SUBST_TRACE([RANLIB]) +m4trace:configure.in:341: -1- m4_pattern_allow([^RANLIB$]) +m4trace:configure.in:342: -1- AC_SUBST([YACC]) +m4trace:configure.in:342: -1- AC_SUBST_TRACE([YACC]) +m4trace:configure.in:342: -1- m4_pattern_allow([^YACC$]) +m4trace:configure.in:342: -1- AC_SUBST([YACC]) +m4trace:configure.in:342: -1- AC_SUBST_TRACE([YACC]) +m4trace:configure.in:342: -1- m4_pattern_allow([^YACC$]) +m4trace:configure.in:342: -1- AC_SUBST([YFLAGS]) +m4trace:configure.in:342: -1- AC_SUBST_TRACE([YFLAGS]) +m4trace:configure.in:342: -1- m4_pattern_allow([^YFLAGS$]) +m4trace:configure.in:343: -1- AC_SUBST([INSTALL]) +m4trace:configure.in:343: -1- AC_SUBST_TRACE([INSTALL]) +m4trace:configure.in:343: -1- m4_pattern_allow([^INSTALL$]) +m4trace:configure.in:343: -1- AC_SUBST([INSTALL_PROGRAM]) +m4trace:configure.in:343: -1- AC_SUBST_TRACE([INSTALL_PROGRAM]) +m4trace:configure.in:343: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) +m4trace:configure.in:343: -1- AC_SUBST([INSTALL_DATA]) +m4trace:configure.in:343: -1- AC_SUBST_TRACE([INSTALL_DATA]) +m4trace:configure.in:343: -1- m4_pattern_allow([^INSTALL_DATA$]) +m4trace:configure.in:345: -1- AC_SUBST([CPP]) +m4trace:configure.in:345: -1- AC_SUBST_TRACE([CPP]) +m4trace:configure.in:345: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.in:345: -1- AC_SUBST([CPPFLAGS]) +m4trace:configure.in:345: -1- AC_SUBST_TRACE([CPPFLAGS]) +m4trace:configure.in:345: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.in:345: -1- AC_SUBST([CPP]) +m4trace:configure.in:345: -1- AC_SUBST_TRACE([CPP]) +m4trace:configure.in:345: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.in:345: -1- AC_SUBST([GREP]) +m4trace:configure.in:345: -1- AC_SUBST_TRACE([GREP]) +m4trace:configure.in:345: -1- m4_pattern_allow([^GREP$]) +m4trace:configure.in:345: -1- AC_SUBST([EGREP]) +m4trace:configure.in:345: -1- AC_SUBST_TRACE([EGREP]) +m4trace:configure.in:345: -1- m4_pattern_allow([^EGREP$]) +m4trace:configure.in:345: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) +m4trace:configure.in:345: -1- m4_pattern_allow([^STDC_HEADERS$]) +m4trace:configure.in:345: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ +@%:@undef STDC_HEADERS]) +m4trace:configure.in:346: -1- AC_DEFINE_TRACE_LITERAL([TIME_WITH_SYS_TIME]) +m4trace:configure.in:346: -1- m4_pattern_allow([^TIME_WITH_SYS_TIME$]) +m4trace:configure.in:346: -1- AH_OUTPUT([TIME_WITH_SYS_TIME], [/* Define to 1 if you can safely include both and . */ +@%:@undef TIME_WITH_SYS_TIME]) +m4trace:configure.in:347: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... +aclocal.m4:2: GCC_HEADER_STRING is expanded from... +configure.in:347: the top level]) +m4trace:configure.in:347: -1- AC_DEFINE_TRACE_LITERAL([STRING_WITH_STRINGS]) +m4trace:configure.in:347: -1- m4_pattern_allow([^STRING_WITH_STRINGS$]) +m4trace:configure.in:348: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_WAIT_H]) +m4trace:configure.in:348: -1- m4_pattern_allow([^HAVE_SYS_WAIT_H$]) +m4trace:configure.in:348: -1- AH_OUTPUT([HAVE_SYS_WAIT_H], [/* Define to 1 if you have that is POSIX.1 compatible. */ +@%:@undef HAVE_SYS_WAIT_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_LIMITS_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STDDEF_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STRING_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STRINGS_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STDLIB_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_TIME_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_TIME_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_FCNTL_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_UNISTD_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_STAB_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STAB_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_SYS_FILE_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_FILE_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_TIME_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_SYS_RESOURCE_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_RESOURCE_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_PARAM_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_SYS_TIMES_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_TIMES_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_STAT_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_DIRECT_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_DIRECT_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_TYPES_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_STAT_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STDLIB_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STRING_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_MEMORY_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STRINGS_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_INTTYPES_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STDINT_H]) +m4trace:configure.in:349: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_UNISTD_H]) +m4trace:configure.in:356: -1- AC_SUBST([gnat]) +m4trace:configure.in:356: -1- AC_SUBST_TRACE([gnat]) +m4trace:configure.in:356: -1- m4_pattern_allow([^gnat$]) +m4trace:configure.in:361: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +configure.in:361: the top level]) +m4trace:configure.in:368: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CPP_STRINGIFY]) +m4trace:configure.in:368: -1- m4_pattern_allow([^HAVE_CPP_STRINGIFY$]) +m4trace:configure.in:374: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +configure.in:374: the top level]) +m4trace:configure.in:383: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H]) +m4trace:configure.in:383: -1- m4_pattern_allow([^HAVE_INTTYPES_H$]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ +@%:@undef HAVE_STRTOUL]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_BSEARCH], [/* Define to 1 if you have the `bsearch\' function. */ +@%:@undef HAVE_BSEARCH]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the `strerror\' function. */ +@%:@undef HAVE_STRERROR]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ +@%:@undef HAVE_PUTENV]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_POPEN], [/* Define to 1 if you have the `popen\' function. */ +@%:@undef HAVE_POPEN]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_BCOPY], [/* Define to 1 if you have the `bcopy\' function. */ +@%:@undef HAVE_BCOPY]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_BZERO], [/* Define to 1 if you have the `bzero\' function. */ +@%:@undef HAVE_BZERO]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_BCMP], [/* Define to 1 if you have the `bcmp\' function. */ +@%:@undef HAVE_BCMP]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_INDEX], [/* Define to 1 if you have the `index\' function. */ +@%:@undef HAVE_INDEX]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_RINDEX], [/* Define to 1 if you have the `rindex\' function. */ +@%:@undef HAVE_RINDEX]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_STRCHR], [/* Define to 1 if you have the `strchr\' function. */ +@%:@undef HAVE_STRCHR]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_STRRCHR], [/* Define to 1 if you have the `strrchr\' function. */ +@%:@undef HAVE_STRRCHR]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_KILL], [/* Define to 1 if you have the `kill\' function. */ +@%:@undef HAVE_KILL]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_GETRLIMIT], [/* Define to 1 if you have the `getrlimit\' function. */ +@%:@undef HAVE_GETRLIMIT]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_SETRLIMIT], [/* Define to 1 if you have the `setrlimit\' function. */ +@%:@undef HAVE_SETRLIMIT]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_ATOLL], [/* Define to 1 if you have the `atoll\' function. */ +@%:@undef HAVE_ATOLL]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_ATOQ], [/* Define to 1 if you have the `atoq\' function. */ +@%:@undef HAVE_ATOQ]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_SYSCONF], [/* Define to 1 if you have the `sysconf\' function. */ +@%:@undef HAVE_SYSCONF]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_ISASCII], [/* Define to 1 if you have the `isascii\' function. */ +@%:@undef HAVE_ISASCII]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */ +@%:@undef HAVE_GETTIMEOFDAY]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_STRSIGNAL], [/* Define to 1 if you have the `strsignal\' function. */ +@%:@undef HAVE_STRSIGNAL]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_PUTC_UNLOCKED], [/* Define to 1 if you have the `putc_unlocked\' function. */ +@%:@undef HAVE_PUTC_UNLOCKED]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_FPUTC_UNLOCKED], [/* Define to 1 if you have the `fputc_unlocked\' function. */ +@%:@undef HAVE_FPUTC_UNLOCKED]) +m4trace:configure.in:386: -1- AH_OUTPUT([HAVE_FPUTS_UNLOCKED], [/* Define to 1 if you have the `fputs_unlocked\' function. */ +@%:@undef HAVE_FPUTS_UNLOCKED]) +m4trace:configure.in:394: -1- AH_OUTPUT([HAVE_VPRINTF], [/* Define to 1 if you have the `vprintf\' function. */ +@%:@undef HAVE_VPRINTF]) +m4trace:configure.in:394: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VPRINTF]) +m4trace:configure.in:394: -1- m4_pattern_allow([^HAVE_VPRINTF$]) +m4trace:configure.in:394: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DOPRNT]) +m4trace:configure.in:394: -1- m4_pattern_allow([^HAVE_DOPRNT$]) +m4trace:configure.in:394: -1- AH_OUTPUT([HAVE_DOPRNT], [/* Define to 1 if you don\'t have `vprintf\' but do have `_doprnt.\' */ +@%:@undef HAVE_DOPRNT]) +m4trace:configure.in:394: -1- AC_SUBST([vfprintf]) +m4trace:configure.in:394: -1- AC_SUBST_TRACE([vfprintf]) +m4trace:configure.in:394: -1- m4_pattern_allow([^vfprintf$]) +m4trace:configure.in:394: -1- AC_SUBST([doprint]) +m4trace:configure.in:394: -1- AC_SUBST_TRACE([doprint]) +m4trace:configure.in:394: -1- m4_pattern_allow([^doprint$]) +m4trace:configure.in:395: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... +aclocal.m4:81: GCC_FUNC_PRINTF_PTR is expanded from... +configure.in:395: the top level]) +m4trace:configure.in:395: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PRINTF_PTR]) +m4trace:configure.in:395: -1- m4_pattern_allow([^HAVE_PRINTF_PTR$]) +m4trace:configure.in:405: -1- _m4_warn([obsolete], [The macro `AC_FUNC_VFORK' is obsolete. +You should run autoupdate.], [../../lib/autoconf/functions.m4:1948: AC_FUNC_VFORK is expanded from... +configure.in:405: the top level]) +m4trace:configure.in:405: -1- AC_DEFINE_TRACE_LITERAL([pid_t]) +m4trace:configure.in:405: -1- m4_pattern_allow([^pid_t$]) +m4trace:configure.in:405: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if does not define. */ +@%:@undef pid_t]) +m4trace:configure.in:405: -1- AH_OUTPUT([HAVE_VFORK_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_VFORK_H]) +m4trace:configure.in:405: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VFORK_H]) +m4trace:configure.in:405: -1- m4_pattern_allow([^HAVE_VFORK_H$]) +m4trace:configure.in:405: -1- AH_OUTPUT([HAVE_FORK], [/* Define to 1 if you have the `fork\' function. */ +@%:@undef HAVE_FORK]) +m4trace:configure.in:405: -1- AH_OUTPUT([HAVE_VFORK], [/* Define to 1 if you have the `vfork\' function. */ +@%:@undef HAVE_VFORK]) +m4trace:configure.in:405: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WORKING_VFORK]) +m4trace:configure.in:405: -1- m4_pattern_allow([^HAVE_WORKING_VFORK$]) +m4trace:configure.in:405: -1- AH_OUTPUT([HAVE_WORKING_VFORK], [/* Define to 1 if `vfork\' works. */ +@%:@undef HAVE_WORKING_VFORK]) +m4trace:configure.in:405: -1- AC_DEFINE_TRACE_LITERAL([vfork]) +m4trace:configure.in:405: -1- m4_pattern_allow([^vfork$]) +m4trace:configure.in:405: -1- AH_OUTPUT([vfork], [/* Define as `fork\' if `vfork\' does not work. */ +@%:@undef vfork]) +m4trace:configure.in:405: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WORKING_FORK]) +m4trace:configure.in:405: -1- m4_pattern_allow([^HAVE_WORKING_FORK$]) +m4trace:configure.in:405: -1- AH_OUTPUT([HAVE_WORKING_FORK], [/* Define to 1 if `fork\' works. */ +@%:@undef HAVE_WORKING_FORK]) +m4trace:configure.in:407: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +aclocal.m4:14: GCC_NEED_DECLARATION is expanded from... +aclocal.m4:57: GCC_NEED_DECLARATIONS is expanded from... +configure.in:407: the top level]) +m4trace:configure.in:411: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +aclocal.m4:14: GCC_NEED_DECLARATION is expanded from... +aclocal.m4:57: GCC_NEED_DECLARATIONS is expanded from... +configure.in:411: the top level]) +m4trace:configure.in:418: -1- _m4_warn([obsolete], [The macro `AC_DECL_SYS_SIGLIST' is obsolete. +You should run autoupdate.], [../../lib/autoconf/specific.m4:41: AC_DECL_SYS_SIGLIST is expanded from... +configure.in:418: the top level]) +m4trace:configure.in:418: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST]) +m4trace:configure.in:418: -1- m4_pattern_allow([^HAVE_DECL_SYS_SIGLIST$]) +m4trace:configure.in:418: -1- AH_OUTPUT([HAVE_DECL_SYS_SIGLIST], [/* Define to 1 if you have the declaration of `sys_siglist\', and to 0 if you + don\'t. */ +@%:@undef HAVE_DECL_SYS_SIGLIST]) +m4trace:configure.in:421: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... +aclocal.m4:177: GCC_FUNC_MKDIR_TAKES_ONE_ARG is expanded from... +configure.in:421: the top level]) +m4trace:configure.in:421: -1- AC_DEFINE_TRACE_LITERAL([MKDIR_TAKES_ONE_ARG]) +m4trace:configure.in:421: -1- m4_pattern_allow([^MKDIR_TAKES_ONE_ARG$]) +m4trace:configure.in:426: -1- AC_SUBST([manext]) +m4trace:configure.in:426: -1- AC_SUBST_TRACE([manext]) +m4trace:configure.in:426: -1- m4_pattern_allow([^manext$]) +m4trace:configure.in:427: -1- AC_SUBST([objext]) +m4trace:configure.in:427: -1- AC_SUBST_TRACE([objext]) +m4trace:configure.in:427: -1- m4_pattern_allow([^objext$]) +m4trace:configure.in:3737: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE]) +m4trace:configure.in:3737: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.in:3738: -1- AC_DEFINE_TRACE_LITERAL([VERSION]) +m4trace:configure.in:3738: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.in:3739: -1- AC_SUBST([PACKAGE]) +m4trace:configure.in:3739: -1- AC_SUBST_TRACE([PACKAGE]) +m4trace:configure.in:3739: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.in:3740: -1- AC_SUBST([VERSION]) +m4trace:configure.in:3740: -1- AC_SUBST_TRACE([VERSION]) +m4trace:configure.in:3740: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.in:3749: -1- AM_GNU_GETTEXT +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([const]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^const$]) +m4trace:configure.in:3749: -1- AH_OUTPUT([const], [/* Define to empty if `const\' does not conform to ANSI C. */ +@%:@undef const]) +m4trace:configure.in:3749: -1- AH_OUTPUT([inline], [/* Define to `__inline__\' or `__inline\' if that\'s what the C compiler + calls it, or to nothing if \'inline\' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([off_t]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^off_t$]) +m4trace:configure.in:3749: -1- AH_OUTPUT([off_t], [/* Define to `long int\' if does not define. */ +@%:@undef off_t]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([size_t]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^size_t$]) +m4trace:configure.in:3749: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if does not define. */ +@%:@undef size_t]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^HAVE_ALLOCA_H$]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have and it should be used (not on Ultrix). + */ +@%:@undef HAVE_ALLOCA_H]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^HAVE_ALLOCA$]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ +@%:@undef HAVE_ALLOCA]) +m4trace:configure.in:3749: -1- AC_LIBSOURCE([alloca.c]) +m4trace:configure.in:3749: -1- AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([ALLOCA]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^ALLOCA$]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^C_ALLOCA$]) +m4trace:configure.in:3749: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ +@%:@undef C_ALLOCA]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^CRAY_STACKSEG_END$]) +m4trace:configure.in:3749: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP + systems. This function is required for `alloca.c\' support on those systems. + */ +@%:@undef CRAY_STACKSEG_END]) +m4trace:configure.in:3749: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at runtime. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +@%:@undef STACK_DIRECTION]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^STACK_DIRECTION$]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STDLIB_H]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_UNISTD_H]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_PARAM_H]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ +@%:@undef HAVE_GETPAGESIZE]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPAGESIZE]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^HAVE_GETPAGESIZE$]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^HAVE_MMAP$]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */ +@%:@undef HAVE_MMAP]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_ARGZ_H]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_LIMITS_H]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_LOCALE_H]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_NL_TYPES_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_NL_TYPES_H]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_MALLOC_H]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STRING_H]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_UNISTD_H]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_PARAM_H]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ +@%:@undef HAVE_GETCWD]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */ +@%:@undef HAVE_MUNMAP]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ +@%:@undef HAVE_PUTENV]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */ +@%:@undef HAVE_SETENV]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ +@%:@undef HAVE_SETLOCALE]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_STRCHR], [/* Define to 1 if you have the `strchr\' function. */ +@%:@undef HAVE_STRCHR]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ +@%:@undef HAVE_STRCASECMP]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ +@%:@undef HAVE_STRDUP]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */ +@%:@undef HAVE___ARGZ_COUNT]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */ +@%:@undef HAVE___ARGZ_STRINGIFY]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */ +@%:@undef HAVE___ARGZ_NEXT]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */ +@%:@undef HAVE_STPCPY]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STPCPY]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^HAVE_STPCPY$]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STPCPY]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^HAVE_STPCPY$]) +m4trace:configure.in:3749: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... +aclocal.m4:603: AM_LC_MESSAGES is expanded from... +aclocal.m4:472: AM_GNU_GETTEXT is expanded from... +configure.in:3749: the top level]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LC_MESSAGES]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^HAVE_LC_MESSAGES$]) +m4trace:configure.in:3749: -1- AC_SUBST([USE_NLS]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([USE_NLS]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^USE_NLS$]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_NLS]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^ENABLE_NLS$]) +m4trace:configure.in:3749: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... +../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... +../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... +aclocal.m4:287: AM_WITH_NLS is expanded from... +aclocal.m4:472: AM_GNU_GETTEXT is expanded from... +configure.in:3749: the top level]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETTEXT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^HAVE_GETTEXT$]) +m4trace:configure.in:3749: -1- AC_SUBST([MSGFMT]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([MSGFMT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^MSGFMT$]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define to 1 if you have the `dcgettext\' function. */ +@%:@undef HAVE_DCGETTEXT]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DCGETTEXT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^HAVE_DCGETTEXT$]) +m4trace:configure.in:3749: -1- AC_SUBST([GMSGFMT]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([GMSGFMT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^GMSGFMT$]) +m4trace:configure.in:3749: -1- AC_SUBST([XGETTEXT]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([XGETTEXT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^XGETTEXT$]) +m4trace:configure.in:3749: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... +../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... +../../lib/autoconf/headers.m4:129: _AC_CHECK_HEADER_MONGREL is expanded from... +../../lib/autoconf/headers.m4:67: AC_CHECK_HEADER is expanded from... +aclocal.m4:287: AM_WITH_NLS is expanded from... +aclocal.m4:472: AM_GNU_GETTEXT is expanded from... +configure.in:3749: the top level]) +m4trace:configure.in:3749: -1- AH_OUTPUT([HAVE_LIBI], [/* Define to 1 if you have the `i\' library (-li). */ +@%:@undef HAVE_LIBI]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBI]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^HAVE_LIBI$]) +m4trace:configure.in:3749: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CATGETS]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^HAVE_CATGETS$]) +m4trace:configure.in:3749: -1- AC_SUBST([GENCAT]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([GENCAT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^GENCAT$]) +m4trace:configure.in:3749: -1- AC_SUBST([GMSGFMT]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([GMSGFMT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^GMSGFMT$]) +m4trace:configure.in:3749: -1- AC_SUBST([GMSGFMT]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([GMSGFMT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^GMSGFMT$]) +m4trace:configure.in:3749: -1- AC_SUBST([XGETTEXT]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([XGETTEXT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^XGETTEXT$]) +m4trace:configure.in:3749: -1- AC_SUBST([MSGFMT]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([MSGFMT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^MSGFMT$]) +m4trace:configure.in:3749: -1- AC_SUBST([GMSGFMT]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([GMSGFMT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^GMSGFMT$]) +m4trace:configure.in:3749: -1- AC_SUBST([XGETTEXT]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([XGETTEXT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^XGETTEXT$]) +m4trace:configure.in:3749: -1- AC_SUBST([MSGFMT]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([MSGFMT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^MSGFMT$]) +m4trace:configure.in:3749: -1- _m4_warn([obsolete], [The macro `AC_LINK_FILES' is obsolete. +You should run autoupdate.], [../../lib/autoconf/status.m4:940: AC_LINK_FILES is expanded from... +aclocal.m4:287: AM_WITH_NLS is expanded from... +aclocal.m4:472: AM_GNU_GETTEXT is expanded from... +configure.in:3749: the top level]) +m4trace:configure.in:3749: -1- AC_CONFIG_LINKS([$ac_config_links_1]) +m4trace:configure.in:3749: -1- _m4_warn([obsolete], [The macro `AC_OUTPUT_COMMANDS' is obsolete. +You should run autoupdate.], [../../lib/autoconf/status.m4:1028: AC_OUTPUT_COMMANDS is expanded from... +aclocal.m4:287: AM_WITH_NLS is expanded from... +aclocal.m4:472: AM_GNU_GETTEXT is expanded from... +configure.in:3749: the top level]) +m4trace:configure.in:3749: -1- AC_SUBST([USE_INCLUDED_LIBINTL]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([USE_INCLUDED_LIBINTL]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^USE_INCLUDED_LIBINTL$]) +m4trace:configure.in:3749: -1- AC_SUBST([CATALOGS]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([CATALOGS]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^CATALOGS$]) +m4trace:configure.in:3749: -1- AC_SUBST([CATOBJEXT]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([CATOBJEXT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^CATOBJEXT$]) +m4trace:configure.in:3749: -1- AC_SUBST([DATADIRNAME]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([DATADIRNAME]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^DATADIRNAME$]) +m4trace:configure.in:3749: -1- AC_SUBST([GMOFILES]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([GMOFILES]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^GMOFILES$]) +m4trace:configure.in:3749: -1- AC_SUBST([INSTOBJEXT]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([INSTOBJEXT]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^INSTOBJEXT$]) +m4trace:configure.in:3749: -1- AC_SUBST([INTLDEPS]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([INTLDEPS]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^INTLDEPS$]) +m4trace:configure.in:3749: -1- AC_SUBST([INTLLIBS]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([INTLLIBS]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^INTLLIBS$]) +m4trace:configure.in:3749: -1- AC_SUBST([INTLOBJS]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([INTLOBJS]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^INTLOBJS$]) +m4trace:configure.in:3749: -1- AC_SUBST([POFILES]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([POFILES]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^POFILES$]) +m4trace:configure.in:3749: -1- AC_SUBST([POSUB]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([POSUB]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^POSUB$]) +m4trace:configure.in:3749: -1- AC_SUBST([INCLUDE_LOCALE_H]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([INCLUDE_LOCALE_H]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^INCLUDE_LOCALE_H$]) +m4trace:configure.in:3749: -1- AC_SUBST([GT_NO]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([GT_NO]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^GT_NO$]) +m4trace:configure.in:3749: -1- AC_SUBST([GT_YES]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([GT_YES]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^GT_YES$]) +m4trace:configure.in:3749: -1- AC_SUBST([MKINSTALLDIRS]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([MKINSTALLDIRS]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^MKINSTALLDIRS$]) +m4trace:configure.in:3749: -1- AC_SUBST([l]) +m4trace:configure.in:3749: -1- AC_SUBST_TRACE([l]) +m4trace:configure.in:3749: -1- m4_pattern_allow([^l$]) +m4trace:configure.in:3950: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_BALIGN_AND_P2ALIGN]) +m4trace:configure.in:3950: -1- m4_pattern_allow([^HAVE_GAS_BALIGN_AND_P2ALIGN$]) +m4trace:configure.in:3956: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_MAX_SKIP_P2ALIGN]) +m4trace:configure.in:3956: -1- m4_pattern_allow([^HAVE_GAS_MAX_SKIP_P2ALIGN$]) +m4trace:configure.in:4017: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_BALIGN_AND_P2ALIGN]) +m4trace:configure.in:4017: -1- m4_pattern_allow([^HAVE_GAS_BALIGN_AND_P2ALIGN$]) +m4trace:configure.in:4025: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_MAX_SKIP_P2ALIGN]) +m4trace:configure.in:4025: -1- m4_pattern_allow([^HAVE_GAS_MAX_SKIP_P2ALIGN$]) +m4trace:configure.in:4058: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_SUBSECTION_ORDERING]) +m4trace:configure.in:4058: -1- m4_pattern_allow([^HAVE_GAS_SUBSECTION_ORDERING$]) +m4trace:configure.in:4147: -1- AC_SUBST([gthread_flags]) +m4trace:configure.in:4147: -1- AC_SUBST_TRACE([gthread_flags]) +m4trace:configure.in:4147: -1- m4_pattern_allow([^gthread_flags$]) +m4trace:configure.in:4283: -1- AC_SUBST([build_canonical]) +m4trace:configure.in:4283: -1- AC_SUBST_TRACE([build_canonical]) +m4trace:configure.in:4283: -1- m4_pattern_allow([^build_canonical$]) +m4trace:configure.in:4284: -1- AC_SUBST([host_canonical]) +m4trace:configure.in:4284: -1- AC_SUBST_TRACE([host_canonical]) +m4trace:configure.in:4284: -1- m4_pattern_allow([^host_canonical$]) +m4trace:configure.in:4285: -1- AC_SUBST([target_subdir]) +m4trace:configure.in:4285: -1- AC_SUBST_TRACE([target_subdir]) +m4trace:configure.in:4285: -1- m4_pattern_allow([^target_subdir$]) +m4trace:configure.in:4295: -1- AC_SUBST([inhibit_libc]) +m4trace:configure.in:4295: -1- AC_SUBST_TRACE([inhibit_libc]) +m4trace:configure.in:4295: -1- m4_pattern_allow([^inhibit_libc$]) +m4trace:configure.in:4305: -1- AC_SUBST([sched_prefix]) +m4trace:configure.in:4305: -1- AC_SUBST_TRACE([sched_prefix]) +m4trace:configure.in:4305: -1- m4_pattern_allow([^sched_prefix$]) +m4trace:configure.in:4306: -1- AC_SUBST([sched_cflags]) +m4trace:configure.in:4306: -1- AC_SUBST_TRACE([sched_cflags]) +m4trace:configure.in:4306: -1- m4_pattern_allow([^sched_cflags$]) +m4trace:configure.in:4353: -1- AC_SUBST([gcc_tooldir]) +m4trace:configure.in:4353: -1- AC_SUBST_TRACE([gcc_tooldir]) +m4trace:configure.in:4353: -1- m4_pattern_allow([^gcc_tooldir$]) +m4trace:configure.in:4354: -1- AC_SUBST([dollar]) +m4trace:configure.in:4354: -1- AC_SUBST_TRACE([dollar]) +m4trace:configure.in:4354: -1- m4_pattern_allow([^dollar$]) +m4trace:configure.in:4358: -1- AC_SUBST([objdir]) +m4trace:configure.in:4358: -1- AC_SUBST_TRACE([objdir]) +m4trace:configure.in:4358: -1- m4_pattern_allow([^objdir$]) +m4trace:configure.in:4364: -1- AC_SUBST([subdirs]) +m4trace:configure.in:4364: -1- AC_SUBST_TRACE([subdirs]) +m4trace:configure.in:4364: -1- m4_pattern_allow([^subdirs$]) +m4trace:configure.in:4365: -1- AC_SUBST([all_boot_languages]) +m4trace:configure.in:4365: -1- AC_SUBST_TRACE([all_boot_languages]) +m4trace:configure.in:4365: -1- m4_pattern_allow([^all_boot_languages$]) +m4trace:configure.in:4366: -1- AC_SUBST([all_compilers]) +m4trace:configure.in:4366: -1- AC_SUBST_TRACE([all_compilers]) +m4trace:configure.in:4366: -1- m4_pattern_allow([^all_compilers$]) +m4trace:configure.in:4367: -1- AC_SUBST([all_diff_excludes]) +m4trace:configure.in:4367: -1- AC_SUBST_TRACE([all_diff_excludes]) +m4trace:configure.in:4367: -1- m4_pattern_allow([^all_diff_excludes$]) +m4trace:configure.in:4368: -1- AC_SUBST([all_headers]) +m4trace:configure.in:4368: -1- AC_SUBST_TRACE([all_headers]) +m4trace:configure.in:4368: -1- m4_pattern_allow([^all_headers$]) +m4trace:configure.in:4369: -1- AC_SUBST([all_lang_makefiles]) +m4trace:configure.in:4369: -1- AC_SUBST_TRACE([all_lang_makefiles]) +m4trace:configure.in:4369: -1- m4_pattern_allow([^all_lang_makefiles$]) +m4trace:configure.in:4370: -1- AC_SUBST([all_languages]) +m4trace:configure.in:4370: -1- AC_SUBST_TRACE([all_languages]) +m4trace:configure.in:4370: -1- m4_pattern_allow([^all_languages$]) +m4trace:configure.in:4371: -1- AC_SUBST([all_lib2funcs]) +m4trace:configure.in:4371: -1- AC_SUBST_TRACE([all_lib2funcs]) +m4trace:configure.in:4371: -1- m4_pattern_allow([^all_lib2funcs$]) +m4trace:configure.in:4372: -1- AC_SUBST([all_stagestuff]) +m4trace:configure.in:4372: -1- AC_SUBST_TRACE([all_stagestuff]) +m4trace:configure.in:4372: -1- m4_pattern_allow([^all_stagestuff$]) +m4trace:configure.in:4373: -1- AC_SUBST([build_exeext]) +m4trace:configure.in:4373: -1- AC_SUBST_TRACE([build_exeext]) +m4trace:configure.in:4373: -1- m4_pattern_allow([^build_exeext$]) +m4trace:configure.in:4374: -1- AC_SUBST([build_install_headers_dir]) +m4trace:configure.in:4374: -1- AC_SUBST_TRACE([build_install_headers_dir]) +m4trace:configure.in:4374: -1- m4_pattern_allow([^build_install_headers_dir$]) +m4trace:configure.in:4375: -1- AC_SUBST([build_xm_file_list]) +m4trace:configure.in:4375: -1- AC_SUBST_TRACE([build_xm_file_list]) +m4trace:configure.in:4375: -1- m4_pattern_allow([^build_xm_file_list$]) +m4trace:configure.in:4376: -1- AC_SUBST([cc_set_by_configure]) +m4trace:configure.in:4376: -1- AC_SUBST_TRACE([cc_set_by_configure]) +m4trace:configure.in:4376: -1- m4_pattern_allow([^cc_set_by_configure$]) +m4trace:configure.in:4377: -1- AC_SUBST([quoted_cc_set_by_configure]) +m4trace:configure.in:4377: -1- AC_SUBST_TRACE([quoted_cc_set_by_configure]) +m4trace:configure.in:4377: -1- m4_pattern_allow([^quoted_cc_set_by_configure$]) +m4trace:configure.in:4378: -1- AC_SUBST([cpp_install_dir]) +m4trace:configure.in:4378: -1- AC_SUBST_TRACE([cpp_install_dir]) +m4trace:configure.in:4378: -1- m4_pattern_allow([^cpp_install_dir$]) +m4trace:configure.in:4379: -1- AC_SUBST([cpp_main]) +m4trace:configure.in:4379: -1- AC_SUBST_TRACE([cpp_main]) +m4trace:configure.in:4379: -1- m4_pattern_allow([^cpp_main$]) +m4trace:configure.in:4380: -1- AC_SUBST([dep_host_xmake_file]) +m4trace:configure.in:4380: -1- AC_SUBST_TRACE([dep_host_xmake_file]) +m4trace:configure.in:4380: -1- m4_pattern_allow([^dep_host_xmake_file$]) +m4trace:configure.in:4381: -1- AC_SUBST([dep_tmake_file]) +m4trace:configure.in:4381: -1- AC_SUBST_TRACE([dep_tmake_file]) +m4trace:configure.in:4381: -1- m4_pattern_allow([^dep_tmake_file$]) +m4trace:configure.in:4382: -1- AC_SUBST([extra_c_flags]) +m4trace:configure.in:4382: -1- AC_SUBST_TRACE([extra_c_flags]) +m4trace:configure.in:4382: -1- m4_pattern_allow([^extra_c_flags$]) +m4trace:configure.in:4383: -1- AC_SUBST([extra_c_objs]) +m4trace:configure.in:4383: -1- AC_SUBST_TRACE([extra_c_objs]) +m4trace:configure.in:4383: -1- m4_pattern_allow([^extra_c_objs$]) +m4trace:configure.in:4384: -1- AC_SUBST([extra_cpp_objs]) +m4trace:configure.in:4384: -1- AC_SUBST_TRACE([extra_cpp_objs]) +m4trace:configure.in:4384: -1- m4_pattern_allow([^extra_cpp_objs$]) +m4trace:configure.in:4385: -1- AC_SUBST([extra_cxx_objs]) +m4trace:configure.in:4385: -1- AC_SUBST_TRACE([extra_cxx_objs]) +m4trace:configure.in:4385: -1- m4_pattern_allow([^extra_cxx_objs$]) +m4trace:configure.in:4386: -1- AC_SUBST([extra_headers_list]) +m4trace:configure.in:4386: -1- AC_SUBST_TRACE([extra_headers_list]) +m4trace:configure.in:4386: -1- m4_pattern_allow([^extra_headers_list$]) +m4trace:configure.in:4387: -1- AC_SUBST([extra_objs]) +m4trace:configure.in:4387: -1- AC_SUBST_TRACE([extra_objs]) +m4trace:configure.in:4387: -1- m4_pattern_allow([^extra_objs$]) +m4trace:configure.in:4388: -1- AC_SUBST([extra_parts]) +m4trace:configure.in:4388: -1- AC_SUBST_TRACE([extra_parts]) +m4trace:configure.in:4388: -1- m4_pattern_allow([^extra_parts$]) +m4trace:configure.in:4389: -1- AC_SUBST([extra_passes]) +m4trace:configure.in:4389: -1- AC_SUBST_TRACE([extra_passes]) +m4trace:configure.in:4389: -1- m4_pattern_allow([^extra_passes$]) +m4trace:configure.in:4390: -1- AC_SUBST([extra_programs]) +m4trace:configure.in:4390: -1- AC_SUBST_TRACE([extra_programs]) +m4trace:configure.in:4390: -1- m4_pattern_allow([^extra_programs$]) +m4trace:configure.in:4391: -1- AC_SUBST([fixinc_defs]) +m4trace:configure.in:4391: -1- AC_SUBST_TRACE([fixinc_defs]) +m4trace:configure.in:4391: -1- m4_pattern_allow([^fixinc_defs$]) +m4trace:configure.in:4392: -1- AC_SUBST([float_h_file]) +m4trace:configure.in:4392: -1- AC_SUBST_TRACE([float_h_file]) +m4trace:configure.in:4392: -1- m4_pattern_allow([^float_h_file$]) +m4trace:configure.in:4393: -1- AC_SUBST([gcc_gxx_include_dir]) +m4trace:configure.in:4393: -1- AC_SUBST_TRACE([gcc_gxx_include_dir]) +m4trace:configure.in:4393: -1- m4_pattern_allow([^gcc_gxx_include_dir$]) +m4trace:configure.in:4394: -1- AC_SUBST([gcc_version]) +m4trace:configure.in:4394: -1- AC_SUBST_TRACE([gcc_version]) +m4trace:configure.in:4394: -1- m4_pattern_allow([^gcc_version$]) +m4trace:configure.in:4395: -1- AC_SUBST([gcc_version_trigger]) +m4trace:configure.in:4395: -1- AC_SUBST_TRACE([gcc_version_trigger]) +m4trace:configure.in:4395: -1- m4_pattern_allow([^gcc_version_trigger$]) +m4trace:configure.in:4396: -1- AC_SUBST([host_exeext]) +m4trace:configure.in:4396: -1- AC_SUBST_TRACE([host_exeext]) +m4trace:configure.in:4396: -1- m4_pattern_allow([^host_exeext$]) +m4trace:configure.in:4397: -1- AC_SUBST([host_extra_gcc_objs]) +m4trace:configure.in:4397: -1- AC_SUBST_TRACE([host_extra_gcc_objs]) +m4trace:configure.in:4397: -1- m4_pattern_allow([^host_extra_gcc_objs$]) +m4trace:configure.in:4398: -1- AC_SUBST([host_xm_file_list]) +m4trace:configure.in:4398: -1- AC_SUBST_TRACE([host_xm_file_list]) +m4trace:configure.in:4398: -1- m4_pattern_allow([^host_xm_file_list$]) +m4trace:configure.in:4399: -1- AC_SUBST([install]) +m4trace:configure.in:4399: -1- AC_SUBST_TRACE([install]) +m4trace:configure.in:4399: -1- m4_pattern_allow([^install$]) +m4trace:configure.in:4400: -1- AC_SUBST([JAVAGC]) +m4trace:configure.in:4400: -1- AC_SUBST_TRACE([JAVAGC]) +m4trace:configure.in:4400: -1- m4_pattern_allow([^JAVAGC$]) +m4trace:configure.in:4401: -1- AC_SUBST([lang_options_files]) +m4trace:configure.in:4401: -1- AC_SUBST_TRACE([lang_options_files]) +m4trace:configure.in:4401: -1- m4_pattern_allow([^lang_options_files$]) +m4trace:configure.in:4402: -1- AC_SUBST([lang_specs_files]) +m4trace:configure.in:4402: -1- AC_SUBST_TRACE([lang_specs_files]) +m4trace:configure.in:4402: -1- m4_pattern_allow([^lang_specs_files$]) +m4trace:configure.in:4403: -1- AC_SUBST([lang_tree_files]) +m4trace:configure.in:4403: -1- AC_SUBST_TRACE([lang_tree_files]) +m4trace:configure.in:4403: -1- m4_pattern_allow([^lang_tree_files$]) +m4trace:configure.in:4404: -1- AC_SUBST([local_prefix]) +m4trace:configure.in:4404: -1- AC_SUBST_TRACE([local_prefix]) +m4trace:configure.in:4404: -1- m4_pattern_allow([^local_prefix$]) +m4trace:configure.in:4405: -1- AC_SUBST([maybe_use_collect2]) +m4trace:configure.in:4405: -1- AC_SUBST_TRACE([maybe_use_collect2]) +m4trace:configure.in:4405: -1- m4_pattern_allow([^maybe_use_collect2$]) +m4trace:configure.in:4406: -1- AC_SUBST([md_file]) +m4trace:configure.in:4406: -1- AC_SUBST_TRACE([md_file]) +m4trace:configure.in:4406: -1- m4_pattern_allow([^md_file$]) +m4trace:configure.in:4407: -1- AC_SUBST([objc_boehm_gc]) +m4trace:configure.in:4407: -1- AC_SUBST_TRACE([objc_boehm_gc]) +m4trace:configure.in:4407: -1- m4_pattern_allow([^objc_boehm_gc$]) +m4trace:configure.in:4408: -1- AC_SUBST([out_file]) +m4trace:configure.in:4408: -1- AC_SUBST_TRACE([out_file]) +m4trace:configure.in:4408: -1- m4_pattern_allow([^out_file$]) +m4trace:configure.in:4409: -1- AC_SUBST([out_object_file]) +m4trace:configure.in:4409: -1- AC_SUBST_TRACE([out_object_file]) +m4trace:configure.in:4409: -1- m4_pattern_allow([^out_object_file$]) +m4trace:configure.in:4410: -1- AC_SUBST([stage_prefix_set_by_configure]) +m4trace:configure.in:4410: -1- AC_SUBST_TRACE([stage_prefix_set_by_configure]) +m4trace:configure.in:4410: -1- m4_pattern_allow([^stage_prefix_set_by_configure$]) +m4trace:configure.in:4411: -1- AC_SUBST([symbolic_link]) +m4trace:configure.in:4411: -1- AC_SUBST_TRACE([symbolic_link]) +m4trace:configure.in:4411: -1- m4_pattern_allow([^symbolic_link$]) +m4trace:configure.in:4412: -1- AC_SUBST([thread_file]) +m4trace:configure.in:4412: -1- AC_SUBST_TRACE([thread_file]) +m4trace:configure.in:4412: -1- m4_pattern_allow([^thread_file$]) +m4trace:configure.in:4413: -1- AC_SUBST([tm_file_list]) +m4trace:configure.in:4413: -1- AC_SUBST_TRACE([tm_file_list]) +m4trace:configure.in:4413: -1- m4_pattern_allow([^tm_file_list$]) +m4trace:configure.in:4414: -1- AC_SUBST([will_use_collect2]) +m4trace:configure.in:4414: -1- AC_SUBST_TRACE([will_use_collect2]) +m4trace:configure.in:4414: -1- m4_pattern_allow([^will_use_collect2$]) +m4trace:configure.in:4417: -1- m4_pattern_allow([^target_overrides$]) +m4trace:configure.in:4418: -1- m4_pattern_allow([^host_overrides$]) +m4trace:configure.in:4419: -1- AC_SUBST([cross_defines]) +m4trace:configure.in:4419: -1- AC_SUBST_TRACE([cross_defines]) +m4trace:configure.in:4419: -1- m4_pattern_allow([^cross_defines$]) +m4trace:configure.in:4420: -1- m4_pattern_allow([^cross_overrides$]) +m4trace:configure.in:4421: -1- m4_pattern_allow([^build_overrides$]) +m4trace:configure.in:4422: -1- m4_pattern_allow([^language_fragments$]) +m4trace:configure.in:4423: -1- m4_pattern_allow([^language_hooks$]) +m4trace:configure.in:4461: -1- AC_CONFIG_FILES([$all_outputs]) +m4trace:configure.in:4461: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. +You should run autoupdate.], []) +m4trace:configure.in:4461: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) +m4trace:configure.in:4461: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) +m4trace:configure.in:4461: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.in:4461: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) +m4trace:configure.in:4461: -1- AC_SUBST_TRACE([LTLIBOBJS]) +m4trace:configure.in:4461: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.in:4461: -1- AC_SUBST_TRACE([top_builddir]) +m4trace:configure.in:4461: -1- AC_SUBST_TRACE([top_build_prefix]) +m4trace:configure.in:4461: -1- AC_SUBST_TRACE([srcdir]) +m4trace:configure.in:4461: -1- AC_SUBST_TRACE([abs_srcdir]) +m4trace:configure.in:4461: -1- AC_SUBST_TRACE([top_srcdir]) +m4trace:configure.in:4461: -1- AC_SUBST_TRACE([abs_top_srcdir]) +m4trace:configure.in:4461: -1- AC_SUBST_TRACE([builddir]) +m4trace:configure.in:4461: -1- AC_SUBST_TRACE([abs_builddir]) +m4trace:configure.in:4461: -1- AC_SUBST_TRACE([abs_top_builddir]) diff -urN gcc-2.95.2.org/gcc/ch/decl.c gcc-2.95.2/gcc/ch/decl.c --- gcc-2.95.2.org/gcc/ch/decl.c 1999-01-31 09:46:27.000000000 -0800 +++ gcc-2.95.2/gcc/ch/decl.c 2011-03-20 04:07:51.000000000 -0700 @@ -4446,7 +4446,7 @@ tree start_struct (code, name) - enum chill_tree_code code; + enum tree_code code; tree name ATTRIBUTE_UNUSED; { /* If there is already a tag defined at this binding level diff -urN gcc-2.95.2.org/gcc/ch/expr.c gcc-2.95.2/gcc/ch/expr.c --- gcc-2.95.2.org/gcc/ch/expr.c 1999-01-19 14:32:32.000000000 -0800 +++ gcc-2.95.2/gcc/ch/expr.c 2011-03-20 04:08:45.000000000 -0700 @@ -3490,7 +3490,7 @@ int compare_int_csts (op, val1, val2) - enum tree_code op; + enum chill_tree_code op; tree val1, val2; { int result; diff -urN gcc-2.95.2.org/gcc/config/v810/lib1funcs.asm gcc-2.95.2/gcc/config/v810/lib1funcs.asm --- gcc-2.95.2.org/gcc/config/v810/lib1funcs.asm 1969-12-31 16:00:00.000000000 -0800 +++ gcc-2.95.2/gcc/config/v810/lib1funcs.asm 2011-03-20 04:03:11.000000000 -0700 @@ -0,0 +1,1010 @@ +/* libgcc1 routines for NEC V810. + Copyright (C) 1996, 1997 Free Software Foundation, Inc. + +This file is part of GNU CC. + +GNU CC 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. + +In addition to the permissions in the GNU General Public License, the +Free Software Foundation gives you unlimited permission to link the +compiled version of this file with other programs, and to distribute +those programs without any restriction coming from the use of this +file. (The General Public License restrictions do apply in other +respects; for example, they cover modification of the file, and +distribution when not linked into another program.) + +This file 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; 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, if you link this library with files + compiled with GCC to produce an executable, this does not 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. */ + +#ifdef L_save_2 + .text + .align 2 + .globl __save_r2_r29 + .type __save_r2_r29,@function + /* Allocate space and save registers 2, 20 .. 29 on the stack */ + /* Called via: jalr __save_r2_r29,r10 */ +__save_r2_r29: + addi -44,sp,sp + mov r31,r1 + mov r10,r31 + st.w r29,0[sp] + st.w r28,4[sp] + st.w r27,8[sp] + st.w r26,12[sp] + st.w r25,16[sp] + st.w r24,20[sp] + st.w r23,24[sp] + st.w r22,28[sp] + st.w r21,32[sp] + st.w r20,36[sp] + st.w r2,40[sp] + jmp [r1] + .size __save_r2_r29,.-__save_r2_r29 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r2_r29 */ + .align 2 + .globl __return_r2_r29 + .type __return_r2_r29,@function +__return_r2_r29: + ld.w 0[sp],r29 + ld.w 4[sp],r28 + ld.w 8[sp],r27 + ld.w 12[sp],r26 + ld.w 16[sp],r25 + ld.w 20[sp],r24 + ld.w 24[sp],r23 + ld.w 28[sp],r22 + ld.w 32[sp],r21 + ld.w 36[sp],r20 + ld.w 40[sp],r2 + addi 44,sp,sp + jmp [r31] + .size __return_r2_r29,.-__return_r2_r29 +#endif /* L_save_2 */ + +#ifdef L_save_20 + .text + .align 2 + .globl __save_r20_r29 + .type __save_r20_r29,@function + /* Allocate space and save registers 20 .. 29 on the stack */ + /* Called via: jalr __save_r20_r29,r10 */ +__save_r20_r29: + addi -40,sp,sp + mov r31,r1 + mov r10,r31 + st.w r29,0[sp] + st.w r28,4[sp] + st.w r27,8[sp] + st.w r26,12[sp] + st.w r25,16[sp] + st.w r24,20[sp] + st.w r23,24[sp] + st.w r22,28[sp] + st.w r21,32[sp] + st.w r20,36[sp] + jmp [r1] + .size __save_r20_r29,.-__save_r20_r29 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r20_r29 */ + .align 2 + .globl __return_r20_r29 + .type __return_r20_r29,@function +__return_r20_r29: + ld.w 0[sp],r29 + ld.w 4[sp],r28 + ld.w 8[sp],r27 + ld.w 12[sp],r26 + ld.w 16[sp],r25 + ld.w 20[sp],r24 + ld.w 24[sp],r23 + ld.w 28[sp],r22 + ld.w 32[sp],r21 + ld.w 36[sp],r20 + addi 40,sp,sp + jmp [r31] + .size __return_r20_r29,.-__return_r20_r29 +#endif /* L_save_20 */ + +#ifdef L_save_21 + .text + .align 2 + .globl __save_r21_r29 + .type __save_r21_r29,@function + /* Allocate space and save registers 21 .. 29 on the stack */ + /* Called via: jalr __save_r21_r29,r10 */ +__save_r21_r29: + addi -36,sp,sp + mov r31,r1 + mov r10,r31 + st.w r29,0[sp] + st.w r28,4[sp] + st.w r27,8[sp] + st.w r26,12[sp] + st.w r25,16[sp] + st.w r24,20[sp] + st.w r23,24[sp] + st.w r22,28[sp] + st.w r21,32[sp] + jmp [r1] + .size __save_r21_r29,.-__save_r21_r29 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r21_r29 */ + .align 2 + .globl __return_r21_r29 + .type __return_r21_r29,@function +__return_r21_r29: + ld.w 0[sp],r29 + ld.w 4[sp],r28 + ld.w 8[sp],r27 + ld.w 12[sp],r26 + ld.w 16[sp],r25 + ld.w 20[sp],r24 + ld.w 24[sp],r23 + ld.w 28[sp],r22 + ld.w 32[sp],r21 + addi 36,sp,sp + jmp [r31] + .size __return_r21_r29,.-__return_r21_r29 +#endif /* L_save_21 */ + +#ifdef L_save_22 + .text + .align 2 + .globl __save_r22_r29 + .type __save_r22_r29,@function + /* Allocate space and save registers 22 .. 29 on the stack */ + /* Called via: jalr __save_r22_r29,r10 */ +__save_r22_r29: + addi -32,sp,sp + mov r31,r1 + mov r10,r31 + st.w r29,0[sp] + st.w r28,4[sp] + st.w r27,8[sp] + st.w r26,12[sp] + st.w r25,16[sp] + st.w r24,20[sp] + st.w r23,24[sp] + st.w r22,28[sp] + jmp [r1] + .size __save_r22_r29,.-__save_r22_r29 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r22_r29 */ + .align 2 + .globl __return_r22_r29 + .type __return_r22_r29,@function +__return_r22_r29: + ld.w 0[sp],r29 + ld.w 4[sp],r28 + ld.w 8[sp],r27 + ld.w 12[sp],r26 + ld.w 16[sp],r25 + ld.w 20[sp],r24 + ld.w 24[sp],r23 + ld.w 28[sp],r22 + addi 32,sp,sp + jmp [r31] + .size __return_r22_r29,.-__return_r22_r29 +#endif /* L_save_22 */ + +#ifdef L_save_23 + .text + .align 2 + .globl __save_r23_r29 + .type __save_r23_r29,@function + /* Allocate space and save registers 23 .. 29 on the stack */ + /* Called via: jalr __save_r23_r29,r10 */ +__save_r23_r29: + addi -28,sp,sp + mov r31,r1 + mov r10,r31 + st.w r29,0[sp] + st.w r28,4[sp] + st.w r27,8[sp] + st.w r26,12[sp] + st.w r25,16[sp] + st.w r24,20[sp] + st.w r23,24[sp] + jmp [r1] + .size __save_r23_r29,.-__save_r23_r29 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r23_r29 */ + .align 2 + .globl __return_r23_r29 + .type __return_r23_r29,@function +__return_r23_r29: + ld.w 0[sp],r29 + ld.w 4[sp],r28 + ld.w 8[sp],r27 + ld.w 12[sp],r26 + ld.w 16[sp],r25 + ld.w 20[sp],r24 + ld.w 24[sp],r23 + addi 28,sp,sp + jmp [r31] + .size __return_r23_r29,.-__return_r23_r29 +#endif /* L_save_23 */ + +#ifdef L_save_24 + .text + .align 2 + .globl __save_r24_r29 + .type __save_r24_r29,@function + /* Allocate space and save registers 24 .. 29 on the stack */ + /* Called via: jalr __save_r24_r29,r10 */ +__save_r24_r29: + addi -24,sp,sp + mov r31,r1 + mov r10,r31 + st.w r29,0[sp] + st.w r28,4[sp] + st.w r27,8[sp] + st.w r26,12[sp] + st.w r25,16[sp] + st.w r24,20[sp] + jmp [r1] + .size __save_r24_r29,.-__save_r24_r29 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r24_r29 */ + .align 2 + .globl __return_r24_r29 + .type __return_r24_r29,@function +__return_r24_r29: + ld.w 0[sp],r29 + ld.w 4[sp],r28 + ld.w 8[sp],r27 + ld.w 12[sp],r26 + ld.w 16[sp],r25 + ld.w 20[sp],r24 + addi 24,sp,sp + jmp [r31] + .size __return_r24_r29,.-__return_r24_r29 +#endif /* L_save_24 */ + +#ifdef L_save_25 + .text + .align 2 + .globl __save_r25_r29 + .type __save_r25_r29,@function + /* Allocate space and save registers 25 .. 29 on the stack */ + /* Called via: jalr __save_r25_r29,r10 */ +__save_r25_r29: + addi -20,sp,sp + mov r31,r1 + mov r10,r31 + st.w r29,0[sp] + st.w r28,4[sp] + st.w r27,8[sp] + st.w r26,12[sp] + st.w r25,16[sp] + jmp [r1] + .size __save_r25_r29,.-__save_r25_r29 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r25_r29 */ + .align 2 + .globl __return_r25_r29 + .type __return_r25_r29,@function +__return_r25_r29: + ld.w 0[sp],r29 + ld.w 4[sp],r28 + ld.w 8[sp],r27 + ld.w 12[sp],r26 + ld.w 16[sp],r25 + addi 20,sp,sp + jmp [r31] + .size __return_r25_r29,.-__return_r25_r29 +#endif /* L_save_25 */ + +#ifdef L_save_26 + .text + .align 2 + .globl __save_r26_r29 + .type __save_r26_r29,@function + /* Allocate space and save registers 26 .. 29 on the stack */ + /* Called via: jalr __save_r26_r29,r10 */ +__save_r26_r29: + add -16,sp + mov r31,r1 + mov r10,r31 + st.w r29,0[sp] + st.w r28,4[sp] + st.w r27,8[sp] + st.w r26,12[sp] + jmp [r1] + .size __save_r26_r29,.-__save_r26_r29 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r26_r29 */ + .align 2 + .globl __return_r26_r29 + .type __return_r26_r29,@function +__return_r26_r29: + ld.w 0[sp],r29 + ld.w 4[sp],r28 + ld.w 8[sp],r27 + ld.w 12[sp],r26 + addi 16,sp,sp + jmp [r31] + .size __return_r26_r29,.-__return_r26_r29 +#endif /* L_save_26 */ + +#ifdef L_save_27 + .text + .align 2 + .globl __save_r27_r29 + .type __save_r27_r29,@function + /* Allocate space and save registers 27 .. 29 on the stack */ + /* Called via: jalr __save_r27_r29,r10 */ +__save_r27_r29: + add -12,sp + mov r31,r1 + mov r10,r31 + st.w r29,0[sp] + st.w r28,4[sp] + st.w r27,8[sp] + jmp [r1] + .size __save_r27_r29,.-__save_r27_r29 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r27_r29 */ + .align 2 + .globl __return_r27_r29 + .type __return_r27_r29,@function +__return_r27_r29: + ld.w 0[sp],r29 + ld.w 4[sp],r28 + ld.w 8[sp],r27 + add 12,sp + jmp [r31] + .size __return_r27_r29,.-__return_r27_r29 +#endif /* L_save_27 */ + +#ifdef L_save_28 + .text + .align 2 + .globl __save_r28_r29 + .type __save_r28_r29,@function + /* Allocate space and save registers 28,29 on the stack */ + /* Called via: jalr __save_r28_r29,r10 */ +__save_r28_r29: + add -8,sp + mov r31,r1 + mov r10,r31 + st.w r29,0[sp] + st.w r28,4[sp] + jmp [r1] + .size __save_r28_r29,.-__save_r28_r29 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r28_r29 */ + .align 2 + .globl __return_r28_r29 + .type __return_r28_r29,@function +__return_r28_r29: + ld.w 0[sp],r29 + ld.w 4[sp],r28 + add 8,sp + jmp [r31] + .size __return_r28_r29,.-__return_r28_r29 +#endif /* L_save_28 */ + +#ifdef L_save_29 + .text + .align 2 + .globl __save_r29 + .type __save_r29,@function + /* Allocate space and save register 29 on the stack */ + /* Called via: jalr __save_r29,r10 */ +__save_r29: + add -4,sp + mov r31,r1 + mov r10,r31 + st.w r29,0[sp] + jmp [r1] + .size __save_r29,.-__save_r29 + + /* Restore saved register 29, deallocate stack and return to the user */ + /* Called via: jr __return_r29 */ + .align 2 + .globl __return_r29 + .type __return_r29,@function +__return_r29: + ld.w 0[sp],r29 + add 4,sp + jmp [r31] + .size __return_r29,.-__return_r29 +#endif /* L_save_29 */ + +#ifdef L_save_2c + .text + .align 2 + .globl __save_r2_r31 + .type __save_r2_r31,@function + /* Allocate space and save registers 20 .. 29, 31 on the stack */ + /* Also allocate space for the argument save area */ + /* Called via: jalr __save_r2_r31,r10 */ +__save_r2_r31: + addi -64,sp,sp + st.w r29,16[sp] + st.w r28,20[sp] + st.w r27,24[sp] + st.w r26,28[sp] + st.w r25,32[sp] + st.w r24,36[sp] + st.w r23,40[sp] + st.w r22,44[sp] + st.w r21,48[sp] + st.w r20,52[sp] + st.w r2,56[sp] + st.w r10,60[sp] + jmp [r31] + .size __save_r2_r31,.-__save_r2_r31 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r20_r31 */ + .align 2 + .globl __return_r2_r31 + .type __return_r2_r31,@function +__return_r2_r31: + ld.w 16[sp],r29 + ld.w 20[sp],r28 + ld.w 24[sp],r27 + ld.w 28[sp],r26 + ld.w 32[sp],r25 + ld.w 36[sp],r24 + ld.w 40[sp],r23 + ld.w 44[sp],r22 + ld.w 48[sp],r21 + ld.w 52[sp],r20 + ld.w 56[sp],r2 + ld.w 60[sp],r31 + addi 64,sp,sp + jmp [r31] + .size __return_r2_r31,.-__return_r2_r31 +#endif /* L_save_2c */ + +#ifdef L_save_20c + .text + .align 2 + .globl __save_r20_r31 + .type __save_r20_r31,@function + /* Allocate space and save registers 20 .. 29, 31 on the stack */ + /* Also allocate space for the argument save area */ + /* Called via: jalr __save_r20_r31,r10 */ +__save_r20_r31: + addi -60,sp,sp + st.w r29,16[sp] + st.w r28,20[sp] + st.w r27,24[sp] + st.w r26,28[sp] + st.w r25,32[sp] + st.w r24,36[sp] + st.w r23,40[sp] + st.w r22,44[sp] + st.w r21,48[sp] + st.w r20,52[sp] + st.w r10,56[sp] + jmp [r31] + .size __save_r20_r31,.-__save_r20_r31 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r20_r31 */ + .align 2 + .globl __return_r20_r31 + .type __return_r20_r31,@function +__return_r20_r31: + ld.w 16[sp],r29 + ld.w 20[sp],r28 + ld.w 24[sp],r27 + ld.w 28[sp],r26 + ld.w 32[sp],r25 + ld.w 36[sp],r24 + ld.w 40[sp],r23 + ld.w 44[sp],r22 + ld.w 48[sp],r21 + ld.w 52[sp],r20 + ld.w 56[sp],r31 + addi 60,sp,sp + jmp [r31] + .size __return_r20_r31,.-__return_r20_r31 +#endif /* L_save_20c */ + +#ifdef L_save_21c + .text + .align 2 + .globl __save_r21_r31 + .type __save_r21_r31,@function + /* Allocate space and save registers 21 .. 29, 31 on the stack */ + /* Also allocate space for the argument save area */ + /* Called via: jalr __save_r21_r31,r10 */ +__save_r21_r31: + addi -56,sp,sp + st.w r29,16[sp] + st.w r28,20[sp] + st.w r27,24[sp] + st.w r26,28[sp] + st.w r25,32[sp] + st.w r24,36[sp] + st.w r23,40[sp] + st.w r22,44[sp] + st.w r21,48[sp] + st.w r10,52[sp] + jmp [r31] + .size __save_r21_r31,.-__save_r21_r31 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r21_r31 */ + .align 2 + .globl __return_r21_r31 + .type __return_r21_r31,@function +__return_r21_r31: + ld.w 16[sp],r29 + ld.w 20[sp],r28 + ld.w 24[sp],r27 + ld.w 28[sp],r26 + ld.w 32[sp],r25 + ld.w 36[sp],r24 + ld.w 40[sp],r23 + ld.w 44[sp],r22 + ld.w 48[sp],r21 + ld.w 52[sp],r31 + addi 56,sp,sp + jmp [r31] + .size __return_r21_r31,.-__return_r21_r31 +#endif /* L_save_21c */ + +#ifdef L_save_22c + .text + .align 2 + .globl __save_r22_r31 + .type __save_r22_r31,@function + /* Allocate space and save registers 22 .. 29, 31 on the stack */ + /* Also allocate space for the argument save area */ + /* Called via: jalr __save_r22_r31,r10 */ +__save_r22_r31: + addi -52,sp,sp + st.w r29,16[sp] + st.w r28,20[sp] + st.w r27,24[sp] + st.w r26,28[sp] + st.w r25,32[sp] + st.w r24,36[sp] + st.w r23,40[sp] + st.w r22,44[sp] + st.w r10,48[sp] + jmp [r31] + .size __save_r22_r31,.-__save_r22_r31 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r22_r31 */ + .align 2 + .globl __return_r22_r31 + .type __return_r22_r31,@function +__return_r22_r31: + ld.w 16[sp],r29 + ld.w 20[sp],r28 + ld.w 24[sp],r27 + ld.w 28[sp],r26 + ld.w 32[sp],r25 + ld.w 36[sp],r24 + ld.w 40[sp],r23 + ld.w 44[sp],r22 + ld.w 48[sp],r31 + addi 52,sp,sp + jmp [r31] + .size __return_r22_r31,.-__return_r22_r31 +#endif /* L_save_22c */ + +#ifdef L_save_23c + .text + .align 2 + .globl __save_r23_r31 + .type __save_r23_r31,@function + /* Allocate space and save registers 23 .. 29, 31 on the stack */ + /* Also allocate space for the argument save area */ + /* Called via: jalr __save_r23_r31,r10 */ +__save_r23_r31: + addi -48,sp,sp + st.w r29,16[sp] + st.w r28,20[sp] + st.w r27,24[sp] + st.w r26,28[sp] + st.w r25,32[sp] + st.w r24,36[sp] + st.w r23,40[sp] + st.w r10,44[sp] + jmp [r31] + .size __save_r23_r31,.-__save_r23_r31 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r23_r31 */ + .align 2 + .globl __return_r23_r31 + .type __return_r23_r31,@function +__return_r23_r31: + ld.w 16[sp],r29 + ld.w 20[sp],r28 + ld.w 24[sp],r27 + ld.w 28[sp],r26 + ld.w 32[sp],r25 + ld.w 36[sp],r24 + ld.w 40[sp],r23 + ld.w 44[sp],r31 + addi 48,sp,sp + jmp [r31] + .size __return_r23_r31,.-__return_r23_r31 +#endif /* L_save_23c */ + +#ifdef L_save_24c + .text + .align 2 + .globl __save_r24_r31 + .type __save_r24_r31,@function + /* Allocate space and save registers 24 .. 29, 31 on the stack */ + /* Also allocate space for the argument save area */ + /* Called via: jalr __save_r24_r31,r10 */ +__save_r24_r31: + addi -44,sp,sp + st.w r29,16[sp] + st.w r28,20[sp] + st.w r27,24[sp] + st.w r26,28[sp] + st.w r25,32[sp] + st.w r24,36[sp] + st.w r10,40[sp] + jmp [r31] + .size __save_r24_r31,.-__save_r24_r31 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r24_r31 */ + .align 2 + .globl __return_r24_r31 + .type __return_r24_r31,@function +__return_r24_r31: + ld.w 16[sp],r29 + ld.w 20[sp],r28 + ld.w 24[sp],r27 + ld.w 28[sp],r26 + ld.w 32[sp],r25 + ld.w 36[sp],r24 + ld.w 40[sp],r31 + addi 44,sp,sp + jmp [r31] + .size __return_r24_r31,.-__return_r24_r31 +#endif /* L_save_24c */ + +#ifdef L_save_25c + .text + .align 2 + .globl __save_r25_r31 + .type __save_r25_r31,@function + /* Allocate space and save registers 25 .. 29, 31 on the stack */ + /* Also allocate space for the argument save area */ + /* Called via: jalr __save_r25_r31,r10 */ +__save_r25_r31: + addi -40,sp,sp + st.w r29,16[sp] + st.w r28,20[sp] + st.w r27,24[sp] + st.w r26,28[sp] + st.w r25,32[sp] + st.w r10,36[sp] + jmp [r31] + .size __save_r25_r31,.-__save_r25_r31 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r25_r31 */ + .align 2 + .globl __return_r25_r31 + .type __return_r25_r31,@function +__return_r25_r31: + ld.w 16[sp],r29 + ld.w 20[sp],r28 + ld.w 24[sp],r27 + ld.w 28[sp],r26 + ld.w 32[sp],r25 + ld.w 36[sp],r31 + addi 40,sp,sp + jmp [r31] + .size __return_r25_r31,.-__return_r25_r31 +#endif /* L_save_25c */ + +#ifdef L_save_26c + .text + .align 2 + .globl __save_r26_r31 + .type __save_r26_r31,@function + /* Allocate space and save registers 26 .. 29, 31 on the stack */ + /* Also allocate space for the argument save area */ + /* Called via: jalr __save_r26_r31,r10 */ +__save_r26_r31: + addi -36,sp,sp + st.w r29,16[sp] + st.w r28,20[sp] + st.w r27,24[sp] + st.w r26,28[sp] + st.w r10,32[sp] + jmp [r31] + .size __save_r26_r31,.-__save_r26_r31 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r26_r31 */ + .align 2 + .globl __return_r26_r31 + .type __return_r26_r31,@function +__return_r26_r31: + ld.w 16[sp],r29 + ld.w 20[sp],r28 + ld.w 24[sp],r27 + ld.w 28[sp],r26 + ld.w 32[sp],r31 + addi 36,sp,sp + jmp [r31] + .size __return_r26_r31,.-__return_r26_r31 +#endif /* L_save_26c */ + +#ifdef L_save_27c + .text + .align 2 + .globl __save_r27_r31 + .type __save_r27_r31,@function + /* Allocate space and save registers 27 .. 29, 31 on the stack */ + /* Also allocate space for the argument save area */ + /* Called via: jalr __save_r27_r31,r10 */ +__save_r27_r31: + addi -32,sp,sp + st.w r29,16[sp] + st.w r28,20[sp] + st.w r27,24[sp] + st.w r10,28[sp] + jmp [r31] + .size __save_r27_r31,.-__save_r27_r31 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r27_r31 */ + .align 2 + .globl __return_r27_r31 + .type __return_r27_r31,@function +__return_r27_r31: + ld.w 16[sp],r29 + ld.w 20[sp],r28 + ld.w 24[sp],r27 + ld.w 28[sp],r31 + addi 32,sp,sp + jmp [r31] + .size __return_r27_r31,.-__return_r27_r31 +#endif /* L_save_27c */ + +#ifdef L_save_28c + .text + .align 2 + .globl __save_r28_r31 + .type __save_r28_r31,@function + /* Allocate space and save registers 28 .. 29, 31 on the stack */ + /* Also allocate space for the argument save area */ + /* Called via: jalr __save_r28_r31,r10 */ +__save_r28_r31: + addi -28,sp,sp + st.w r29,16[sp] + st.w r28,20[sp] + st.w r10,24[sp] + jmp [r31] + .size __save_r28_r31,.-__save_r28_r31 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r28_r31 */ + .align 2 + .globl __return_r28_r31 + .type __return_r28_r31,@function +__return_r28_r31: + ld.w 16[sp],r29 + ld.w 20[sp],r28 + ld.w 24[sp],r31 + addi 28,sp,sp + jmp [r31] + .size __return_r28_r31,.-__return_r28_r31 +#endif /* L_save_28c */ + +#ifdef L_save_29c + .text + .align 2 + .globl __save_r29_r31 + .type __save_r29_r31,@function + /* Allocate space and save registers 29 & 31 on the stack */ + /* Also allocate space for the argument save area */ + /* Called via: jalr __save_r29_r31,r10 */ +__save_r29_r31: + addi -24,sp,sp + st.w r29,16[sp] + st.w r10,20[sp] + jmp [r31] + .size __save_r29_r31,.-__save_r29_r31 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r29_r31 */ + .align 2 + .globl __return_r29_r31 + .type __return_r29_r31,@function +__return_r29_r31: + ld.w 16[sp],r29 + ld.w 20[sp],r31 + addi 24,sp,sp + jmp [r31] + .size __return_r29_r31,.-__return_r29_r31 +#endif /* L_save_29c */ + +#ifdef L_save_31c + .text + .align 2 + .globl __save_r31 + .type __save_r31,@function + /* Allocate space and save register 31 on the stack */ + /* Also allocate space for the argument save area */ + /* Called via: jalr __save_r29_r31,r10 */ +__save_r31: + addi -20,sp,sp + st.w r10,16[sp] + jmp [r31] + .size __save_r31,.-__save_r31 + + /* Restore saved registers, deallocate stack and return to the user */ + /* Called via: jr __return_r31 */ + .align 2 + .globl __return_r31 + .type __return_r31,@function +__return_r31: + ld.w 16[sp],r31 + addi 20,sp,sp + jmp [r31] + .size __return_r31,.-__return_r31 +#endif /* L_save_31c */ + +#ifdef L_save_varargs + .text + .align 2 + .globl __save_r6_r9 + .type __save_r6_r9,@function + /* Save registers 6 .. 9 on the stack for variable argument functions */ + /* Called via: jalr __save_r6_r9,r10 */ +__save_r6_r9: + mov r31, r1 + mov r10, r31 + st.w r6,0[sp] + st.w r7,4[sp] + st.w r8,8[sp] + st.w r9,12[sp] + jmp [r1] + .size __save_r6_r9,.-__save_r6_r9 +#endif /* L_save_varargs */ + +#ifdef L_save_interrupt + .text + .align 2 + .globl __save_interrupt + .type __save_interrupt,@function + /* Save registers r1, r4 on stack and load up with expected values */ + /* Note, 12 bytes of stack have already been allocated. */ + /* Called via: jalr __save_interrupt,r10 */ +__save_interrupt: + st.w r30,0[sp] + st.w r10,4[sp] + st.w gp,8[sp] + st.w r1,12[sp] + movhi hi(__gp),r0,gp + movea lo(__gp),gp,gp + jmp [r31] + .size __save_interrupt,.-__save_interrupt + + /* Restore saved registers, deallocate stack and return from the interrupt */ + /* Called via: jr __return_interrupt */ + .align 2 + .globl __return_interrupt + .type __return_interrupt,@function +__return_interrupt: + ld.w 0[sp],r30 + ld.w 4[sp],r10 + ld.w 8[sp],gp + ld.w 12[sp],r1 + ld.w 16[sp],r31 + addi 20,sp,sp + reti + .size __return_interrupt,.-__return_interrupt +#endif /* L_save_interrupt */ + +#ifdef L_save_all_interrupt + .text + .align 2 + .globl __save_all_interrupt + .type __save_all_interrupt,@function + /* Save all registers except for those saved in __save_interrupt */ + /* allocate enough stack for all of the registers & 16 bytes of space */ + /* Called via: jalr __save_all_interrupt,r10 */ +__save_all_interrupt: + addi -116,sp,sp + st.w r2,112[sp] + st.w r5,108[sp] + st.w r6,104[sp] + st.w r7,100[sp] + st.w r8,96[sp] + st.w r9,92[sp] + st.w r11,88[sp] + st.w r12,84[sp] + st.w r13,80[sp] + st.w r14,76[sp] + st.w r15,72[sp] + st.w r16,68[sp] + st.w r17,64[sp] + st.w r18,60[sp] + st.w r19,56[sp] + st.w r20,52[sp] + st.w r21,48[sp] + st.w r22,44[sp] + st.w r23,40[sp] + st.w r24,36[sp] + st.w r25,32[sp] + st.w r26,28[sp] + st.w r27,24[sp] + st.w r28,20[sp] + st.w r29,16[sp] + jmp [r31] + .size __save_all_interrupt,.-__save_all_interrupt + + .globl __restore_all_interrupt + .type __restore_all_interrupt,@function + /* Restore all registers saved in __save_all_interrupt */ + /* & deallocate the stack space */ + /* Called via: jalr __restore_all_interrupt,r10 */ +__restore_all_interrupt: + ld.w 112[sp],r2 + ld.w 108[sp],r5 + ld.w 104[sp],r6 + ld.w 100[sp],r7 + ld.w 96[sp],r8 + ld.w 92[sp],r9 + ld.w 88[sp],r11 + ld.w 84[sp],r12 + ld.w 80[sp],r13 + ld.w 76[sp],r14 + ld.w 72[sp],r15 + ld.w 68[sp],r16 + ld.w 64[sp],r17 + ld.w 60[sp],r18 + ld.w 56[sp],r19 + ld.w 52[sp],r20 + ld.w 48[sp],r21 + ld.w 44[sp],r22 + ld.w 40[sp],r23 + ld.w 36[sp],r24 + ld.w 32[sp],r25 + ld.w 28[sp],r26 + ld.w 24[sp],r27 + ld.w 20[sp],r28 + ld.w 16[sp],r29 + addi 116,sp,sp + jmp [r31] + .size __restore_all_interrupt,.-__restore_all_interrupt +#endif /* L_save_all_interrupt */ diff -urN gcc-2.95.2.org/gcc/config/v810/t-v810 gcc-2.95.2/gcc/config/v810/t-v810 --- gcc-2.95.2.org/gcc/config/v810/t-v810 1969-12-31 16:00:00.000000000 -0800 +++ gcc-2.95.2/gcc/config/v810/t-v810 2011-03-20 04:03:11.000000000 -0700 @@ -0,0 +1,50 @@ +CROSS_LIBGCC1 = libgcc1-asm.a +LIB1ASMSRC = v810/lib1funcs.asm +LIB1ASMFUNCS = _save_2 \ + _save_20 \ + _save_21 \ + _save_22 \ + _save_23 \ + _save_24 \ + _save_25 \ + _save_26 \ + _save_27 \ + _save_28 \ + _save_29 \ + _save_2c \ + _save_20c \ + _save_21c \ + _save_22c \ + _save_23c \ + _save_24c \ + _save_25c \ + _save_26c \ + _save_27c \ + _save_28c \ + _save_29c \ + _save_31c \ + _save_varargs \ + _save_interrupt \ + _save_all_interrupt + + +# These are really part of libgcc1, but this will cause them to be +# built correctly, so... + +LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c + +dp-bit.c: $(srcdir)/config/fp-bit.c + echo '#ifdef __LITTLE_ENDIAN__' > dp-bit.c + echo '#define FLOAT_BIT_ORDER_MISMATCH' >>dp-bit.c + echo '#endif' >> dp-bit.c + cat $(srcdir)/config/fp-bit.c >> dp-bit.c + +fp-bit.c: $(srcdir)/config/fp-bit.c + echo '#define FLOAT' > fp-bit.c + echo '#ifdef __LITTLE_ENDIAN__' >> fp-bit.c + echo '#define FLOAT_BIT_ORDER_MISMATCH' >>fp-bit.c + echo '#endif' >> fp-bit.c + cat $(srcdir)/config/fp-bit.c >> fp-bit.c + +TCFLAGS = -Wa,-mwarn-signed-overflow -Wa,-mwarn-unsigned-overflow +TARGET_LIBGCC2_CFLAGS = -G -O2 -mno-prolog-function diff -urN gcc-2.95.2.org/gcc/config/v810/v810.c gcc-2.95.2/gcc/config/v810/v810.c --- gcc-2.95.2.org/gcc/config/v810/v810.c 1969-12-31 16:00:00.000000000 -0800 +++ gcc-2.95.2/gcc/config/v810/v810.c 2011-03-20 04:03:11.000000000 -0700 @@ -0,0 +1,3155 @@ +/* Subroutines for insn-output.c for NEC V810 series + Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + Contributed by Jeff Law (law@cygnus.com). + +This file is part of GNU CC. + +GNU CC 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. + +GNU CC 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 GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "config.h" +#include +#include +#include "tree.h" +#include "rtl.h" +#include "regs.h" +#include "hard-reg-set.h" +#include "real.h" +#include "insn-config.h" +#include "conditions.h" +#include "insn-flags.h" +#include "output.h" +#include "insn-attr.h" +#include "flags.h" +#include "recog.h" +#include "expr.h" +#include "obstack.h" +#include "toplev.h" + +#ifndef streq +#define streq(a,b) (strcmp (a, b) == 0) +#endif + +/* Function prototypes that cannot exist in v810.h due to dependency + compilcations. */ +extern rtx function_arg + PROTO ((CUMULATIVE_ARGS *, enum machine_mode, tree, int)); +extern int function_arg_partial_nregs + PROTO ((CUMULATIVE_ARGS *, enum machine_mode, tree, int)); +extern void asm_file_start PROTO ((FILE *)); +extern void print_operand PROTO ((FILE *, rtx, int )); +extern void print_operand_address PROTO ((FILE *, rtx)); +extern void v810_output_aligned_bss + PROTO ((FILE *, tree, char *, int, int)); +extern void v810_output_common + PROTO ((FILE *, tree, char *, int, int)); +extern void v810_output_local + PROTO ((FILE *, tree, char *, int, int)); +extern int const_costs PROTO ((rtx, enum rtx_code)); +extern char * output_move_double PROTO ((rtx *)); +extern char * output_move_single PROTO ((rtx *)); +extern int ep_memory_operand + PROTO ((rtx, enum machine_mode, int)); +extern int reg_or_0_operand PROTO ((rtx, enum machine_mode)); +extern int reg_or_int5_operand PROTO ((rtx, enum machine_mode)); +extern int call_address_operand PROTO ((rtx, enum machine_mode)); +extern int movsi_source_operand PROTO ((rtx, enum machine_mode)); +extern int power_of_two_operand PROTO ((rtx, enum machine_mode)); +extern int not_power_of_two_operand PROTO ((rtx, enum machine_mode)); +extern int special_symbolref_operand PROTO ((rtx, enum machine_mode)); +extern void v810_reorg PROTO ((rtx)); +extern void notice_update_cc PROTO ((rtx, rtx)); +extern int v810_valid_machine_decl_attribute + PROTO ((tree, tree, tree)); +extern int v810_interrupt_function_p PROTO ((tree)); +extern int pattern_is_ok_for_prologue PROTO ((rtx, enum machine_mode)); +extern int pattern_is_ok_for_epilogue PROTO ((rtx, enum machine_mode)); +extern int register_is_ok_for_epilogue PROTO ((rtx, enum machine_mode)); +extern char * construct_save_jarl PROTO ((rtx)); +extern char * construct_restore_jr PROTO ((rtx)); +extern void v810_encode_data_area PROTO ((tree)); +extern void v810_set_default_decl_attr PROTO ((tree)); + +/* Function prototypes for stupid compilers: */ +static void const_double_split + PROTO ((rtx, HOST_WIDE_INT *, HOST_WIDE_INT *)); +static int const_costs_int PROTO ((HOST_WIDE_INT, int)); +static void substitute_ep_register PROTO ((rtx, rtx, int, int, rtx *, rtx *)); +static int push_data_area PROTO ((v810_data_area)); +static int pop_data_area PROTO ((v810_data_area)); +static int parse_ghs_pragma_token PROTO ((char *)); +static int ep_memory_offset PROTO ((enum machine_mode, int)); +static int mark_current_function_as_interrupt PROTO ((void)); +static void v810_set_data_area PROTO ((tree, v810_data_area)); + +/* True if the current function has anonymous arguments. */ +int current_function_anonymous_args; + +/* Information about the various small memory areas. */ +struct small_memory_info small_memory[ (int)SMALL_MEMORY_max ] = +{ + /* name value max physical max */ + { "tda", (char *)0, 0, 256 }, + { "sda", (char *)0, 0, 65536 }, + { "zda", (char *)0, 0, 32768 }, +}; + +/* True if we don't need to check any more if the current + function is an interrupt handler */ +static int v810_interrupt_cache_p = FALSE; + +/* Whether current function is an interrupt handler. */ +static int v810_interrupt_p = FALSE; + + +/* Sometimes certain combinations of command options do not make + sense on a particular target machine. You can define a macro + `OVERRIDE_OPTIONS' to take account of this. This macro, if + defined, is executed once just after all the command options have + been parsed. + + Don't use this macro to turn on various extra optimizations for + `-O'. That is what `OPTIMIZATION_OPTIONS' is for. */ + +void +override_options () +{ + int i; + extern int atoi PROTO ((const char *)); + + /* Parse -m{s,t,z}da=nnn switches */ + for (i = 0; i < (int)SMALL_MEMORY_max; i++) + { + if (small_memory[i].value) + { + if (!isdigit (*small_memory[i].value)) + error ("%s=%s is not numeric.", + small_memory[i].name, + small_memory[i].value); + else + { + small_memory[i].max = atoi (small_memory[i].value); + if (small_memory[i].max > small_memory[i].physical_max) + error ("%s=%s is too large.", + small_memory[i].name, + small_memory[i].value); + } + } + } +} + + +/* Output assembly code for the start of the file. */ + +void +asm_file_start (file) + FILE *file; +{ + output_file_directive (file, main_input_filename); +} + + +/* Return an RTX to represent where a value with mode MODE will be returned + from a function. If the result is 0, the argument is pushed. */ + +rtx +function_arg (cum, mode, type, named) + CUMULATIVE_ARGS *cum; + enum machine_mode mode; + tree type; + int named; +{ + rtx result = 0; + int size, align; + + if (TARGET_GHS && !named) + return NULL_RTX; + + if (mode == BLKmode) + size = int_size_in_bytes (type); + else + size = GET_MODE_SIZE (mode); + + if (type) + align = TYPE_ALIGN (type) / BITS_PER_UNIT; + else + align = size; + + cum->nbytes = (cum->nbytes + align - 1) &~(align - 1); + + if (cum->nbytes > 4 * UNITS_PER_WORD) + return 0; + + if (type == NULL_TREE + && cum->nbytes + size > 4 * UNITS_PER_WORD) + return 0; + + switch (cum->nbytes / UNITS_PER_WORD) + { + case 0: + result = gen_rtx (REG, mode, 6); + break; + case 1: + result = gen_rtx (REG, mode, 7); + break; + case 2: + result = gen_rtx (REG, mode, 8); + break; + case 3: + result = gen_rtx (REG, mode, 9); + break; + default: + result = 0; + } + + return result; +} + + +/* Return the number of words which must be put into registers + for values which are part in registers and part in memory. */ + +int +function_arg_partial_nregs (cum, mode, type, named) + CUMULATIVE_ARGS *cum; + enum machine_mode mode; + tree type; + int named; +{ + int size, align; + + if (TARGET_GHS && !named) + return 0; + + if (mode == BLKmode) + size = int_size_in_bytes (type); + else + size = GET_MODE_SIZE (mode); + + if (type) + align = TYPE_ALIGN (type) / BITS_PER_UNIT; + else + align = size; + + cum->nbytes = (cum->nbytes + align - 1) &~(align - 1); + + if (cum->nbytes > 4 * UNITS_PER_WORD) + return 0; + + if (cum->nbytes + size <= 4 * UNITS_PER_WORD) + return 0; + + if (type == NULL_TREE + && cum->nbytes + size > 4 * UNITS_PER_WORD) + return 0; + + return (4 * UNITS_PER_WORD - cum->nbytes) / UNITS_PER_WORD; +} + + +/* Return the high and low words of a CONST_DOUBLE */ + +static void +const_double_split (x, p_high, p_low) + rtx x; + HOST_WIDE_INT *p_high; + HOST_WIDE_INT *p_low; +{ + if (GET_CODE (x) == CONST_DOUBLE) + { + long t[2]; + REAL_VALUE_TYPE rv; + + switch (GET_MODE (x)) + { + case DFmode: + REAL_VALUE_FROM_CONST_DOUBLE (rv, x); + REAL_VALUE_TO_TARGET_DOUBLE (rv, t); + *p_high = t[1]; /* since v810 is little endian */ + *p_low = t[0]; /* high is second word */ + return; + + case SFmode: + REAL_VALUE_FROM_CONST_DOUBLE (rv, x); + REAL_VALUE_TO_TARGET_SINGLE (rv, *p_high); + *p_low = 0; + return; + + case VOIDmode: + case DImode: + *p_high = CONST_DOUBLE_HIGH (x); + *p_low = CONST_DOUBLE_LOW (x); + return; + + default: + break; + } + } + + fatal_insn ("const_double_split got a bad insn:", x); +} + + +/* Return the cost of the rtx R with code CODE. */ + +static int +const_costs_int (value, zero_cost) + HOST_WIDE_INT value; + int zero_cost; +{ + if (CONST_OK_FOR_I (value)) + return zero_cost; + else if (CONST_OK_FOR_J (value)) + return 1; + else if (CONST_OK_FOR_K (value)) + return 2; + else + return 4; +} + +int +const_costs (r, c) + rtx r; + enum rtx_code c; +{ + HOST_WIDE_INT high, low; + + switch (c) + { + case CONST_INT: + return const_costs_int (INTVAL (r), 0); + + case CONST_DOUBLE: + const_double_split (r, &high, &low); + if (GET_MODE (r) == SFmode) + return const_costs_int (high, 1); + else + return const_costs_int (high, 1) + const_costs_int (low, 1); + + case SYMBOL_REF: + case LABEL_REF: + case CONST: + return 2; + + case HIGH: + return 1; + + default: + return 4; + } +} + + +/* Print operand X using operand code CODE to assembly language output file + FILE. */ + +void +print_operand (file, x, code) + FILE *file; + rtx x; + int code; +{ + HOST_WIDE_INT high, low; + + switch (code) + { + case 'c': + /* We use 'c' operands with symbols for .vtinherit */ + if (GET_CODE (x) == SYMBOL_REF) + { + output_addr_const(file, x); + break; + } + /* fall through */ + case 'b': + case 'B': + case 'C': + switch ((code == 'B' || code == 'C') + ? reverse_condition (GET_CODE (x)) : GET_CODE (x)) + { + case NE: + if (code == 'c' || code == 'C') + fprintf (file, "nz"); + else + fprintf (file, "ne"); + break; + case EQ: + if (code == 'c' || code == 'C') + fprintf (file, "z"); + else + fprintf (file, "e"); + break; + case GE: + fprintf (file, "ge"); + break; + case GT: + fprintf (file, "gt"); + break; + case LE: + fprintf (file, "le"); + break; + case LT: + fprintf (file, "lt"); + break; + case GEU: + fprintf (file, "nl"); + break; + case GTU: + fprintf (file, "h"); + break; + case LEU: + fprintf (file, "nh"); + break; + case LTU: + fprintf (file, "l"); + break; + default: + abort (); + } + break; + case 'F': /* high word of CONST_DOUBLE */ + if (GET_CODE (x) == CONST_INT) + fprintf (file, "%d", (INTVAL (x) >= 0) ? 0 : -1); + else if (GET_CODE (x) == CONST_DOUBLE) + { + const_double_split (x, &high, &low); + fprintf (file, "%ld", (long) high); + } + else + abort (); + break; + case 'G': /* low word of CONST_DOUBLE */ + if (GET_CODE (x) == CONST_INT) + fprintf (file, "%ld", (long) INTVAL (x)); + else if (GET_CODE (x) == CONST_DOUBLE) + { + const_double_split (x, &high, &low); + fprintf (file, "%ld", (long) low); + } + else + abort (); + break; + case 'L': + fprintf (file, "%d\n", INTVAL (x) & 0xffff); + break; + case 'M': + fprintf (file, "%d", exact_log2 (INTVAL (x))); + break; + case 'O': + if (special_symbolref_operand (x, VOIDmode)) + { + char* name; + + if (GET_CODE (x) == SYMBOL_REF) + name = XSTR (x, 0); + else if (GET_CODE (x) == CONST) + name = XSTR (XEXP (XEXP (x, 0), 0), 0); + else + abort (); + + if (ZDA_NAME_P (name)) + fprintf (file, "zdaoff"); + else if (SDA_NAME_P (name)) + fprintf (file, "sdaoff"); + else if (TDA_NAME_P (name)) + fprintf (file, "tdaoff"); + else + abort (); + } + else + abort (); + break; + case 'P': + if (special_symbolref_operand (x, VOIDmode)) + output_addr_const (file, x); + else + abort (); + break; + case 'Q': + if (special_symbolref_operand (x, VOIDmode)) + { + char* name; + + if (GET_CODE (x) == SYMBOL_REF) + name = XSTR (x, 0); + else if (GET_CODE (x) == CONST) + name = XSTR (XEXP (XEXP (x, 0), 0), 0); + else + abort (); + + if (ZDA_NAME_P (name)) + fprintf (file, "r0"); + else if (SDA_NAME_P (name)) + fprintf (file, "gp"); + else if (TDA_NAME_P (name)) + fprintf (file, "ep"); + else + abort (); + } + else + abort (); + break; + case 'R': /* 2nd word of a double. */ + switch (GET_CODE (x)) + { + case REG: + fprintf (file, reg_names[REGNO (x) + 1]); + break; + case MEM: + print_operand_address (file, + XEXP (adj_offsettable_operand (x, 4), 0)); + break; + + default: + break; + } + break; + case 'S': + { + /* if it's a reference to a TDA variable, use sst/sld vs. st/ld */ + if (GET_CODE (x) == MEM && ep_memory_operand (x, GET_MODE (x), FALSE)) + fputs ("s", file); + + break; + } + case 'T': + { + /* Like an 'S' operand above, but for unsigned loads only. */ + if (GET_CODE (x) == MEM && ep_memory_operand (x, GET_MODE (x), TRUE)) + fputs ("s", file); + + break; + } + case 'W': /* print the instruction suffix */ + switch (GET_MODE (x)) + { + default: + abort (); + + case QImode: fputs (".b", file); break; + case HImode: fputs (".h", file); break; + case SImode: fputs (".w", file); break; + case SFmode: fputs (".w", file); break; + } + break; + case '.': /* register r0 */ + fputs (reg_names[0], file); + break; + case 'z': /* reg or zero */ + if (x == const0_rtx) + fputs (reg_names[0], file); + else if (GET_CODE (x) == REG) + fputs (reg_names[REGNO (x)], file); + else + abort (); + break; + default: + switch (GET_CODE (x)) + { + case MEM: + if (GET_CODE (XEXP (x, 0)) == CONST_INT) + output_address (gen_rtx (PLUS, SImode, + gen_rtx (REG, SImode, 0), + XEXP (x, 0))); + else + output_address (XEXP (x, 0)); + break; + + case REG: + fputs (reg_names[REGNO (x)], file); + break; + case SUBREG: + fputs (reg_names[REGNO (SUBREG_REG (x)) + SUBREG_WORD (x)], file); + break; + case CONST_INT: + case SYMBOL_REF: + case CONST: + case LABEL_REF: + case CODE_LABEL: + print_operand_address (file, x); + break; + default: + abort (); + } + break; + + } +} + + +/* Output assembly language output for the address ADDR to FILE. */ + +void +print_operand_address (file, addr) + FILE *file; + rtx addr; +{ + switch (GET_CODE (addr)) + { + case REG: + fprintf (file, "0["); + print_operand (file, addr, 0); + fprintf (file, "]"); + break; + case LO_SUM: + if (GET_CODE (XEXP (addr, 0)) == REG) + { + /* reg,foo */ + fprintf (file, "lo("); + print_operand (file, XEXP (addr, 1), 0); + fprintf (file, ")["); + print_operand (file, XEXP (addr, 0), 0); + fprintf (file, "]"); + } + break; + case PLUS: + if (GET_CODE (XEXP (addr, 0)) == REG + || GET_CODE (XEXP (addr, 0)) == SUBREG) + { + /* reg,foo */ + print_operand (file, XEXP (addr, 1), 0); + fprintf (file, "["); + print_operand (file, XEXP (addr, 0), 0); + fprintf (file, "]"); + } + else + { + print_operand (file, XEXP (addr, 0), 0); + fprintf (file, "+"); + print_operand (file, XEXP (addr, 1), 0); + } + break; + case SYMBOL_REF: + if (ENCODED_NAME_P (XSTR (addr, 0))) + { + char* name = XSTR (addr, 0); + char* off_name; + char* reg_name; + + if (ZDA_NAME_P (name)) + { + off_name = "zdaoff"; + reg_name = "r0"; + } + else if (SDA_NAME_P (name)) + { + off_name = "sdaoff"; + reg_name = "gp"; + } + else if (TDA_NAME_P (name)) + { + off_name = "tdaoff"; + reg_name = "ep"; + } + else + abort (); + + fprintf (file, "%s(", off_name); + output_addr_const (file, addr); + fprintf (file, ")[%s]", reg_name); + } + else + output_addr_const (file, addr); + break; + case CONST: + if (special_symbolref_operand (addr, VOIDmode)) + { + char* name = XSTR (XEXP (XEXP (addr, 0), 0), 0); + char* off_name; + char* reg_name; + + if (ZDA_NAME_P (name)) + { + off_name = "zdaoff"; + reg_name = "r0"; + } + else if (SDA_NAME_P (name)) + { + off_name = "sdaoff"; + reg_name = "gp"; + } + else if (TDA_NAME_P (name)) + { + off_name = "tdaoff"; + reg_name = "ep"; + } + else + abort (); + + fprintf (file, "%s(", off_name); + output_addr_const (file, addr); + fprintf (file, ")[%s]", reg_name); + } + else + output_addr_const (file, addr); + break; + default: + output_addr_const (file, addr); + break; + } +} + + +/* Return appropriate code to load up a 1, 2, or 4 integer/floating + point value. */ + +char * +output_move_single (operands) + rtx *operands; +{ + rtx dst = operands[0]; + rtx src = operands[1]; + + if (REG_P (dst)) + { + if (REG_P (src)) + return "mov %1,%0"; + + else if (GET_CODE (src) == CONST_INT) + { + HOST_WIDE_INT value = INTVAL (src); + + if (CONST_OK_FOR_J (value)) /* signed 5 bit immediate */ + return "mov %1,%0"; + + else if (CONST_OK_FOR_K (value)) /* signed 16 bit immediate */ + return "movea lo(%1),%.,%0"; + + else if (CONST_OK_FOR_L (value)) /* upper 16 bits were set */ + return "movhi hi(%1),%.,%0"; + + else /* random constant */ + return "movhi hi(%1),%.,%0\n\tmovea lo(%1),%0,%0"; + } + + else if (GET_CODE (src) == CONST_DOUBLE && GET_MODE (src) == SFmode) + { + HOST_WIDE_INT high, low; + + const_double_split (src, &high, &low); + if (CONST_OK_FOR_J (high)) /* signed 5 bit immediate */ + return "mov %F1,%0"; + + else if (CONST_OK_FOR_K (high)) /* signed 16 bit immediate */ + return "movea lo(%F1),%.,%0"; + + else if (CONST_OK_FOR_L (high)) /* upper 16 bits were set */ + return "movhi hi(%F1),%.,%0"; + + else /* random constant */ + return "movhi hi(%F1),%.,%0\n\tmovea lo(%F1),%0,%0"; + } + + else if (GET_CODE (src) == MEM) + return "%S1ld%W1 %1,%0"; + + else if (special_symbolref_operand (src, VOIDmode)) + return "movea %O1(%P1),%Q1,%0"; + + else if (GET_CODE (src) == LABEL_REF + || GET_CODE (src) == SYMBOL_REF + || GET_CODE (src) == CONST) + { + return "movhi hi(%1),%.,%0\n\tmovea lo(%1),%0,%0"; + } + + else if (GET_CODE (src) == HIGH) + return "movhi hi(%1),%.,%0"; + + else if (GET_CODE (src) == LO_SUM) + { + operands[2] = XEXP (src, 0); + operands[3] = XEXP (src, 1); + return "movea lo(%3),%2,%0"; + } + } + + else if (GET_CODE (dst) == MEM) + { + if (REG_P (src)) + return "%S0st%W0 %1,%0"; + + else if (GET_CODE (src) == CONST_INT && INTVAL (src) == 0) + return "%S0st%W0 %.,%0"; + + else if (GET_CODE (src) == CONST_DOUBLE + && CONST0_RTX (GET_MODE (dst)) == src) + return "%S0st%W0 %.,%0"; + } + + fatal_insn ("output_move_single:", gen_rtx (SET, VOIDmode, dst, src)); + return ""; +} + + +/* Return appropriate code to load up an 8 byte integer or + floating point value */ + +char * +output_move_double (operands) + rtx *operands; +{ + enum machine_mode mode = GET_MODE (operands[0]); + rtx dst = operands[0]; + rtx src = operands[1]; + + if (register_operand (dst, mode) + && register_operand (src, mode)) + { + if (REGNO (src) + 1 == REGNO (dst)) + return "mov %R1,%R0\n\tmov %1,%0"; + else + return "mov %1,%0\n\tmov %R1,%R0"; + } + + /* Storing 0 */ + if (GET_CODE (dst) == MEM + && ((GET_CODE (src) == CONST_INT && INTVAL (src) == 0) + || (GET_CODE (src) == CONST_DOUBLE && CONST_DOUBLE_OK_FOR_G (src)))) + return "st.w %.,%0\n\tst.w %.,%R0"; + + if (GET_CODE (src) == CONST_INT || GET_CODE (src) == CONST_DOUBLE) + { + HOST_WIDE_INT high_low[2]; + int i; + rtx xop[10]; + + if (GET_CODE (src) == CONST_DOUBLE) + const_double_split (src, &high_low[1], &high_low[0]); + else + { + high_low[0] = INTVAL (src); + high_low[1] = (INTVAL (src) >= 0) ? 0 : -1; + } + + for (i = 0; i < 2; i++) + { + xop[0] = gen_rtx (REG, SImode, REGNO (dst)+i); + xop[1] = GEN_INT (high_low[i]); + output_asm_insn (output_move_single (xop), xop); + } + + return ""; + } + + if (GET_CODE (src) == MEM) + { + int ptrreg = -1; + int dreg = REGNO (dst); + rtx inside = XEXP (src, 0); + + if (GET_CODE (inside) == REG) + ptrreg = REGNO (inside); + else if (GET_CODE (inside) == SUBREG) + ptrreg = REGNO (SUBREG_REG (inside)) + SUBREG_WORD (inside); + else if (GET_CODE (inside) == PLUS) + ptrreg = REGNO (XEXP (inside, 0)); + else if (GET_CODE (inside) == LO_SUM) + ptrreg = REGNO (XEXP (inside, 0)); + + if (dreg == ptrreg) + return "ld.w %R1,%R0\n\tld.w %1,%0"; + } + + if (GET_CODE (src) == MEM) + return "ld.w %1,%0\n\tld.w %R1,%R0"; + + if (GET_CODE (dst) == MEM) + return "st.w %1,%0\n\tst.w %R1,%R0"; + + return "mov %1,%0\n\tmov %R1,%R0"; +} + + +/* Return maximum offset supported for a short EP memory reference of mode + MODE and signedness UNSIGNEDP. */ + +static int +ep_memory_offset (mode, unsignedp) + enum machine_mode mode; + int ATTRIBUTE_UNUSED unsignedp; +{ + int max_offset = 0; + + switch (mode) + { + case QImode: + max_offset = (1 << 7); + break; + + case HImode: + max_offset = (1 << 8); + break; + + case SImode: + case SFmode: + max_offset = (1 << 8); + break; + + default: + break; + } + + return max_offset; +} + +/* Return true if OP is a valid short EP memory reference */ + +int +ep_memory_operand (op, mode, unsigned_load) + rtx op; + enum machine_mode mode; + int unsigned_load; +{ + rtx addr, op0, op1; + int max_offset; + int mask; + + if (GET_CODE (op) != MEM) + return FALSE; + + max_offset = ep_memory_offset (mode, unsigned_load); + + mask = GET_MODE_SIZE (mode) - 1; + + addr = XEXP (op, 0); + if (GET_CODE (addr) == CONST) + addr = XEXP (addr, 0); + + switch (GET_CODE (addr)) + { + default: + break; + + case SYMBOL_REF: + return TDA_NAME_P (XSTR (addr, 0)); + + case REG: + return REGNO (addr) == EP_REGNUM; + + case PLUS: + op0 = XEXP (addr, 0); + op1 = XEXP (addr, 1); + if (GET_CODE (op1) == CONST_INT + && INTVAL (op1) < max_offset + && INTVAL (op1) >= 0 + && (INTVAL (op1) & mask) == 0) + { + if (GET_CODE (op0) == REG && REGNO (op0) == EP_REGNUM) + return TRUE; + + if (GET_CODE (op0) == SYMBOL_REF && TDA_NAME_P (XSTR (op0, 0))) + return TRUE; + } + break; + } + + return FALSE; +} + +/* Return true if OP is either a register or 0 */ + +int +reg_or_0_operand (op, mode) + rtx op; + enum machine_mode mode; +{ + if (GET_CODE (op) == CONST_INT) + return INTVAL (op) == 0; + + else if (GET_CODE (op) == CONST_DOUBLE) + return CONST_DOUBLE_OK_FOR_G (op); + + else + return register_operand (op, mode); +} + +/* Return true if OP is either a register or a signed five bit integer */ + +int +reg_or_int5_operand (op, mode) + rtx op; + enum machine_mode mode; +{ + if (GET_CODE (op) == CONST_INT) + return CONST_OK_FOR_J (INTVAL (op)); + + else + return register_operand (op, mode); +} + +/* Return true if OP is a valid call operand. */ + +int +call_address_operand (op, mode) + rtx op; + enum machine_mode ATTRIBUTE_UNUSED mode; +{ + /* Only registers are valid call operands if TARGET_LONG_CALLS. */ + if (TARGET_LONG_CALLS) + return GET_CODE (op) == REG; + return (GET_CODE (op) == SYMBOL_REF || GET_CODE (op) == REG); +} + +int +special_symbolref_operand (op, mode) + rtx op; + enum machine_mode ATTRIBUTE_UNUSED mode; +{ + if (GET_CODE (op) == SYMBOL_REF) + return ENCODED_NAME_P (XSTR (op, 0)); + + else if (GET_CODE (op) == CONST) + return (GET_CODE (XEXP (op, 0)) == PLUS + && GET_CODE (XEXP (XEXP (op, 0), 0)) == SYMBOL_REF + && ENCODED_NAME_P (XSTR (XEXP (XEXP (op, 0), 0), 0)) + && GET_CODE (XEXP (XEXP (op, 0), 1)) == CONST_INT + && CONST_OK_FOR_K (INTVAL (XEXP (XEXP (op, 0), 1)))); + + return FALSE; +} + +int +movsi_source_operand (op, mode) + rtx op; + enum machine_mode mode; +{ + /* Some constants, as well as symbolic operands + must be done with HIGH & LO_SUM patterns. */ + if (CONSTANT_P (op) + && GET_CODE (op) != HIGH + && GET_CODE (op) != CONSTANT_P_RTX + && !(GET_CODE (op) == CONST_INT + && (CONST_OK_FOR_J (INTVAL (op)) + || CONST_OK_FOR_K (INTVAL (op)) + || CONST_OK_FOR_L (INTVAL (op))))) + return special_symbolref_operand (op, mode); + else + return general_operand (op, mode); +} + +int +power_of_two_operand (op, mode) + rtx op; + enum machine_mode ATTRIBUTE_UNUSED mode; +{ + if (GET_CODE (op) != CONST_INT) + return 0; + + if (exact_log2 (INTVAL (op)) == -1) + return 0; + return 1; +} + +int +not_power_of_two_operand (op, mode) + rtx op; + enum machine_mode mode; +{ + unsigned int mask; + + if (mode == QImode) + mask = 0xff; + else if (mode == HImode) + mask = 0xffff; + else if (mode == SImode) + mask = 0xffffffff; + else + return 0; + + if (GET_CODE (op) != CONST_INT) + return 0; + + if (exact_log2 (~INTVAL (op) & mask) == -1) + return 0; + return 1; +} + + +/* Substitute memory references involving a pointer, to use the ep pointer, + taking care to save and preserve the ep. */ + +static void +substitute_ep_register (first_insn, last_insn, uses, regno, p_r1, p_ep) + rtx first_insn; + rtx last_insn; + int uses; + int regno; + rtx *p_r1; + rtx *p_ep; +{ + rtx reg = gen_rtx (REG, Pmode, regno); + rtx insn; + + if (!*p_r1) + { + regs_ever_live[1] = 1; + *p_r1 = gen_rtx (REG, Pmode, 1); + *p_ep = gen_rtx (REG, Pmode, 30); + } + + if (TARGET_DEBUG) + fprintf (stderr, "\ +Saved %d bytes (%d uses of register %s) in function %s, starting as insn %d, ending at %d\n", + 2 * (uses - 3), uses, reg_names[regno], + IDENTIFIER_POINTER (DECL_NAME (current_function_decl)), + INSN_UID (first_insn), INSN_UID (last_insn)); + + if (GET_CODE (first_insn) == NOTE) + first_insn = next_nonnote_insn (first_insn); + + last_insn = next_nonnote_insn (last_insn); + for (insn = first_insn; insn && insn != last_insn; insn = NEXT_INSN (insn)) + { + if (GET_CODE (insn) == INSN) + { + rtx pattern = single_set (insn); + + /* Replace the memory references. */ + if (pattern) + { + rtx *p_mem; + /* Memory operands are signed by default. */ + int unsignedp = FALSE; + + if (GET_CODE (SET_DEST (pattern)) == MEM + && GET_CODE (SET_SRC (pattern)) == MEM) + p_mem = (rtx *)0; + + else if (GET_CODE (SET_DEST (pattern)) == MEM) + p_mem = &SET_DEST (pattern); + + else if (GET_CODE (SET_SRC (pattern)) == MEM) + p_mem = &SET_SRC (pattern); + + else + p_mem = (rtx *)0; + + if (p_mem) + { + rtx addr = XEXP (*p_mem, 0); + + if (GET_CODE (addr) == REG && REGNO (addr) == regno) + *p_mem = change_address (*p_mem, VOIDmode, *p_ep); + + else if (GET_CODE (addr) == PLUS + && GET_CODE (XEXP (addr, 0)) == REG + && REGNO (XEXP (addr, 0)) == regno + && GET_CODE (XEXP (addr, 1)) == CONST_INT + && ((INTVAL (XEXP (addr, 1))) + < ep_memory_offset (GET_MODE (*p_mem), + unsignedp)) + && ((INTVAL (XEXP (addr, 1))) >= 0)) + *p_mem = change_address (*p_mem, VOIDmode, + gen_rtx (PLUS, Pmode, + *p_ep, XEXP (addr, 1))); + } + } + } + } + + /* Optimize back to back cases of ep <- r1 & r1 <- ep. */ + insn = prev_nonnote_insn (first_insn); + if (insn && GET_CODE (insn) == INSN + && GET_CODE (PATTERN (insn)) == SET + && SET_DEST (PATTERN (insn)) == *p_ep + && SET_SRC (PATTERN (insn)) == *p_r1) + delete_insn (insn); + else + emit_insn_before (gen_rtx (SET, Pmode, *p_r1, *p_ep), first_insn); + + emit_insn_before (gen_rtx (SET, Pmode, *p_ep, reg), first_insn); + emit_insn_before (gen_rtx (SET, Pmode, *p_ep, *p_r1), last_insn); +} + + +/* In rare cases, correct code generation requires extra machine + dependent processing between the second jump optimization pass and + delayed branch scheduling. On those machines, define this macro + as a C statement to act on the code starting at INSN. + + On the 810, we use it to implement the -mep mode to copy heavily used + pointers to ep to use the implicit addressing */ + +void v810_reorg (start_insn) + rtx start_insn; +{ + struct + { + int uses; + rtx first_insn; + rtx last_insn; + } + regs[FIRST_PSEUDO_REGISTER]; + + int i; + int use_ep = FALSE; + rtx r1 = NULL_RTX; + rtx ep = NULL_RTX; + rtx insn; + rtx pattern; + + /* If not ep mode, just return now */ + if (!TARGET_EP) + return; + + for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) + { + regs[i].uses = 0; + regs[i].first_insn = NULL_RTX; + regs[i].last_insn = NULL_RTX; + } + + for (insn = start_insn; insn != NULL_RTX; insn = NEXT_INSN (insn)) + { + switch (GET_CODE (insn)) + { + /* End of basic block */ + default: + if (!use_ep) + { + int max_uses = -1; + int max_regno = -1; + + for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) + { + if (max_uses < regs[i].uses) + { + max_uses = regs[i].uses; + max_regno = i; + } + } + + if (max_uses > 3) + substitute_ep_register (regs[max_regno].first_insn, + regs[max_regno].last_insn, + max_uses, max_regno, &r1, &ep); + } + + use_ep = FALSE; + for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) + { + regs[i].uses = 0; + regs[i].first_insn = NULL_RTX; + regs[i].last_insn = NULL_RTX; + } + break; + + case NOTE: + break; + + case INSN: + pattern = single_set (insn); + + /* See if there are any memory references we can shorten */ + if (pattern) + { + rtx src = SET_SRC (pattern); + rtx dest = SET_DEST (pattern); + rtx mem; + /* Memory operands are signed by default. */ + int unsignedp = FALSE; + + /* We might have (SUBREG (MEM)) here, so just get rid of the + subregs to make this code simpler. It is safe to call + alter_subreg any time after reload. */ + if (GET_CODE (dest) == SUBREG) + dest = alter_subreg (dest); + if (GET_CODE (src) == SUBREG) + src = alter_subreg (src); + + if (GET_CODE (dest) == MEM && GET_CODE (src) == MEM) + mem = NULL_RTX; + + else if (GET_CODE (dest) == MEM) + mem = dest; + + else if (GET_CODE (src) == MEM) + mem = src; + + else + mem = NULL_RTX; + + if (mem && ep_memory_operand (mem, GET_MODE (mem), unsignedp)) + use_ep = TRUE; + + else if (!use_ep && mem + && GET_MODE_SIZE (GET_MODE (mem)) <= UNITS_PER_WORD) + { + rtx addr = XEXP (mem, 0); + int regno = -1; + int short_p; + + if (GET_CODE (addr) == REG) + { + short_p = TRUE; + regno = REGNO (addr); + } + + else if (GET_CODE (addr) == PLUS + && GET_CODE (XEXP (addr, 0)) == REG + && GET_CODE (XEXP (addr, 1)) == CONST_INT + && ((INTVAL (XEXP (addr, 1))) + < ep_memory_offset (GET_MODE (mem), unsignedp)) + && ((INTVAL (XEXP (addr, 1))) >= 0)) + { + short_p = TRUE; + regno = REGNO (XEXP (addr, 0)); + } + + else + short_p = FALSE; + + if (short_p) + { + regs[regno].uses++; + regs[regno].last_insn = insn; + if (!regs[regno].first_insn) + regs[regno].first_insn = insn; + } + } + + /* Loading up a register in the basic block zaps any savings + for the register */ + if (GET_CODE (dest) == REG) + { + enum machine_mode mode = GET_MODE (dest); + int regno; + int endregno; + + regno = REGNO (dest); + endregno = regno + HARD_REGNO_NREGS (regno, mode); + + if (!use_ep) + { + /* See if we can use the pointer before this + modification. */ + int max_uses = -1; + int max_regno = -1; + + for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) + { + if (max_uses < regs[i].uses) + { + max_uses = regs[i].uses; + max_regno = i; + } + } + + if (max_uses > 3 + && max_regno >= regno + && max_regno < endregno) + { + substitute_ep_register (regs[max_regno].first_insn, + regs[max_regno].last_insn, + max_uses, max_regno, &r1, + &ep); + + /* Since we made a substitution, zap all remembered + registers. */ + for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) + { + regs[i].uses = 0; + regs[i].first_insn = NULL_RTX; + regs[i].last_insn = NULL_RTX; + } + } + } + + for (i = regno; i < endregno; i++) + { + regs[i].uses = 0; + regs[i].first_insn = NULL_RTX; + regs[i].last_insn = NULL_RTX; + } + } + } + } + } +} + + +/* # of registers saved by the interrupt handler. */ +#define INTERRUPT_FIXED_NUM 5 + +/* # of bytes for registers saved by the interrupt handler. */ +#define INTERRUPT_FIXED_SAVE_SIZE (4 * INTERRUPT_FIXED_NUM) + +/* # of registers saved in register parameter area. */ +#define INTERRUPT_REGPARM_NUM 4 +/* # of words saved for other registers. */ +#define INTERRUPT_ALL_SAVE_NUM \ + (30 - INTERRUPT_FIXED_NUM + INTERRUPT_REGPARM_NUM) + +#define INTERRUPT_ALL_SAVE_SIZE (4 * INTERRUPT_ALL_SAVE_NUM) + +int +compute_register_save_size (p_reg_saved) + long *p_reg_saved; +{ + int size = 0; + int i; + int interrupt_handler = v810_interrupt_function_p (current_function_decl); + int call_p = regs_ever_live [LINK_POINTER_REGNUM]; + long reg_saved = 0; + + /* Count the return pointer if we need to save it. */ + if (profile_flag && !call_p) + regs_ever_live [LINK_POINTER_REGNUM] = call_p = 1; + + /* Count space for the register saves. */ + if (interrupt_handler) + { + for (i = 0; i <= 31; i++) + switch (i) + { + default: + if (regs_ever_live[i] || call_p) + { + size += 4; + reg_saved |= 1L << i; + } + break; + + /* We don't save/restore r0 or the stack pointer */ + case 0: + case STACK_POINTER_REGNUM: + break; + + /* For registers with fixed use, we save them, set them to the + appropriate value, and then restore them. + These registers are handled specially, so don't list them + on the list of registers to save in the prologue. */ + case 1: /* temp used to hold ep */ + case 4: /* gp */ + case 10: /* temp used to call interrupt save/restore */ + case 30: + case LINK_POINTER_REGNUM: + size += 4; + break; + } + } + else + { + /* Find the first register that needs to be saved. */ + for (i = 0; i <= 31; i++) + if (regs_ever_live[i] && ((! call_used_regs[i]) + || i == LINK_POINTER_REGNUM)) + break; + + /* If it is possible that an out-of-line helper function might be + used to generate the prologue for the current function, then we + need to cover the possibility that such a helper function will + be used, despite the fact that there might be gaps in the list of + registers that need to be saved. To detect this we note that the + helper functions always push at least register r29 if the link + register is not used, and at least registers r27 - r31 if the + link register is used (and provided that the function is not an + interrupt handler). */ + + if (TARGET_PROLOG_FUNCTION + && (i == 2 || i >= 20) + && regs_ever_live[LINK_POINTER_REGNUM] ? (i < 28) : (i < 30)) + { + if (i == 2) + { + size += 4; + reg_saved |= 1L << i; + + i = 20; + } + + /* Helper functions save all registers between the starting + register and the last register, regardless of whether they + are actually used by the function or not. */ + for (; i <= 29; i++) + { + size += 4; + reg_saved |= 1L << i; + } + + if (regs_ever_live [LINK_POINTER_REGNUM]) + { + size += 4; + reg_saved |= 1L << LINK_POINTER_REGNUM; + } + } + else + { + for (; i <= 31; i++) + if (regs_ever_live[i] && ((! call_used_regs[i]) + || i == LINK_POINTER_REGNUM)) + { + size += 4; + reg_saved |= 1L << i; + } + } + } + + if (p_reg_saved) + *p_reg_saved = reg_saved; + + return size; +} + +int +compute_frame_size (size, p_reg_saved) + int size; + long *p_reg_saved; +{ + extern int current_function_outgoing_args_size; + + return (size + + compute_register_save_size (p_reg_saved) + + current_function_outgoing_args_size); +} + + +void +expand_prologue () +{ + unsigned int i; + int offset; + unsigned int size = get_frame_size (); + unsigned int actual_fsize; + unsigned int init_stack_alloc = 0; + rtx save_regs[32]; + rtx save_all; + unsigned int num_save; + unsigned int default_stack; + int code; + int interrupt_handler = v810_interrupt_function_p (current_function_decl); + long reg_saved = 0; + + actual_fsize = compute_frame_size (size, ®_saved); + /* Save/setup global registers for interrupt functions right now */ + if (interrupt_handler) + { + emit_insn (gen_save_interrupt ()); + + actual_fsize -= INTERRUPT_FIXED_SAVE_SIZE; + + if (((1L << LINK_POINTER_REGNUM) & reg_saved) != 0) + actual_fsize -= INTERRUPT_ALL_SAVE_SIZE; + } + + /* Save arg registers to the stack if necessary. */ + else if (current_function_anonymous_args) + { + if (TARGET_PROLOG_FUNCTION) + { + emit_insn (gen_save_r6_r9 ()); + } + else + { + offset = 0; + for (i = 6; i < 10; i++) + { + emit_move_insn (gen_rtx (MEM, SImode, + plus_constant (stack_pointer_rtx, + offset)), + gen_rtx (REG, SImode, i)); + offset += 4; + } + } + } + + /* Identify all of the saved registers */ + num_save = 0; + default_stack = 0; + for (i = 1; i < 31; i++) + { + if (((1L << i) & reg_saved) != 0) + save_regs[num_save++] = gen_rtx (REG, Pmode, i); + } + + /* If the return pointer is saved, the helper functions also allocate + 16 bytes of stack for arguments to be saved in. */ + if (((1L << LINK_POINTER_REGNUM) & reg_saved) != 0) + { + save_regs[num_save++] = gen_rtx (REG, Pmode, LINK_POINTER_REGNUM); + default_stack = 16; + } + + /* See if we have an insn that allocates stack space and saves the particular + registers we want to. */ + save_all = NULL_RTX; + if (TARGET_PROLOG_FUNCTION && num_save > 0 && actual_fsize >= default_stack) + { + int alloc_stack = (4 * num_save) + default_stack; + int unalloc_stack = actual_fsize - alloc_stack; + int save_func_len = 4; + int save_normal_len; + + if (unalloc_stack) + save_func_len += CONST_OK_FOR_J (unalloc_stack) ? 2 : 4; + + /* see if we would have used ep to save the stack */ + if (TARGET_EP && num_save > 3 && (unsigned)actual_fsize < 255) + save_normal_len = (3 * 2) + (2 * num_save); + else + save_normal_len = 4 * num_save; + + save_normal_len += CONST_OK_FOR_J (actual_fsize) ? 2 : 4; + + /* Don't bother checking if we don't actually save any space. + This happens for instance if one register is saved and additional + stack space is allocated. */ + if (save_func_len < save_normal_len) + { + save_all = gen_rtx (PARALLEL, VOIDmode, + rtvec_alloc (num_save + (1 ? 2 : 1))); + XVECEXP (save_all, 0, 0) = gen_rtx (SET, VOIDmode, + stack_pointer_rtx, + gen_rtx (PLUS, Pmode, + stack_pointer_rtx, + GEN_INT (-alloc_stack))); + + if (1) + { + XVECEXP (save_all, 0, num_save + 1) + = gen_rtx (CLOBBER, VOIDmode, gen_rtx (REG, Pmode, 10)); + } + + offset = - default_stack; + for (i = 0; i < num_save; i++) + { + XVECEXP (save_all, 0, i + 1) + = gen_rtx (SET, VOIDmode, + gen_rtx (MEM, Pmode, + plus_constant (stack_pointer_rtx, offset)), + save_regs[i]); + offset -= 4; + } + + code = recog (save_all, NULL_RTX, NULL_PTR); + if (code >= 0) + { + rtx insn = emit_insn (save_all); + INSN_CODE (insn) = code; + actual_fsize -= alloc_stack; + + if (TARGET_DEBUG) + fprintf (stderr, "\ +Saved %d bytes via prologue function (%d vs. %d) for function %s\n", + save_normal_len - save_func_len, + save_normal_len, save_func_len, + IDENTIFIER_POINTER (DECL_NAME (current_function_decl))); + } + else + save_all = NULL_RTX; + } + } + + /* If no prolog save function is available, store the registers the old + fashioned way (one by one). */ + if (!save_all) + { + /* Special case interrupt functions that save all registers for a call. */ + if (interrupt_handler && ((1L << LINK_POINTER_REGNUM) & reg_saved) != 0) + { + emit_insn (gen_save_all_interrupt ()); + } + else + { + /* If the stack is too big, allocate it in chunks so we can do the + register saves. We use the register save size so we use the ep + register. */ + if (actual_fsize && !CONST_OK_FOR_K (-actual_fsize)) + init_stack_alloc = compute_register_save_size (NULL); + else + init_stack_alloc = actual_fsize; + + /* Save registers at the beginning of the stack frame */ + offset = init_stack_alloc - 4; + + if (init_stack_alloc) + emit_insn (gen_addsi3 (stack_pointer_rtx, + stack_pointer_rtx, + GEN_INT (-init_stack_alloc))); + + /* Save the return pointer first. */ + if (num_save > 0 && REGNO (save_regs[num_save-1]) == LINK_POINTER_REGNUM) + { + emit_move_insn (gen_rtx (MEM, SImode, + plus_constant (stack_pointer_rtx, + offset)), + save_regs[--num_save]); + offset -= 4; + } + + for (i = 0; i < num_save; i++) + { + emit_move_insn (gen_rtx (MEM, SImode, + plus_constant (stack_pointer_rtx, + offset)), + save_regs[i]); + offset -= 4; + } + } + } + + /* Allocate the rest of the stack that was not allocated above (either it is + > 32K or we just called a function to save the registers and needed more + stack. */ + if (actual_fsize > init_stack_alloc) + { + int diff = actual_fsize - init_stack_alloc; + if (CONST_OK_FOR_K (diff)) + emit_insn (gen_addsi3 (stack_pointer_rtx, + stack_pointer_rtx, + GEN_INT (-diff))); + else + { + rtx reg = gen_rtx (REG, Pmode, 12); + emit_move_insn (reg, GEN_INT (-diff)); + emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, reg)); + } + } + + /* If we need a frame pointer, set it up now. */ + if (frame_pointer_needed) + emit_move_insn (hard_frame_pointer_rtx, stack_pointer_rtx); +} + + +void +expand_epilogue () +{ + unsigned int i; + int offset; + unsigned int size = get_frame_size (); + long reg_saved = 0; + unsigned int actual_fsize = compute_frame_size (size, ®_saved); + unsigned int init_stack_free = 0; + rtx restore_regs[32]; + rtx restore_all; + unsigned int num_restore; + unsigned int default_stack; + int code; + int interrupt_handler = v810_interrupt_function_p (current_function_decl); + + /* Eliminate the initial stack stored by interrupt functions. */ + if (interrupt_handler) + { + actual_fsize -= INTERRUPT_FIXED_SAVE_SIZE; + if (((1L << LINK_POINTER_REGNUM) & reg_saved) != 0) + actual_fsize -= INTERRUPT_ALL_SAVE_SIZE; + } + + /* Cut off any dynamic stack created. */ + if (frame_pointer_needed) + emit_move_insn (stack_pointer_rtx, hard_frame_pointer_rtx); + + /* Identify all of the saved registers */ + num_restore = 0; + default_stack = 0; + for (i = 1; i < 31; i++) + { + if (((1L << i) & reg_saved) != 0) + restore_regs[num_restore++] = gen_rtx (REG, Pmode, i); + } + + /* If the return pointer is saved, the helper functions also allocate + 16 bytes of stack for arguments to be saved in. */ + if (((1L << LINK_POINTER_REGNUM) & reg_saved) != 0) + { + restore_regs[num_restore++] = gen_rtx (REG, Pmode, LINK_POINTER_REGNUM); + default_stack = 16; + } + + /* See if we have an insn that restores the particular registers we + want to. */ + restore_all = NULL_RTX; + if (TARGET_PROLOG_FUNCTION && num_restore > 0 + && actual_fsize >= default_stack + && !interrupt_handler) + { + int alloc_stack = (4 * num_restore) + default_stack; + int unalloc_stack = actual_fsize - alloc_stack; + int restore_func_len = 4; + int restore_normal_len; + + if (unalloc_stack) + restore_func_len += CONST_OK_FOR_J (unalloc_stack) ? 2 : 4; + + /* see if we would have used ep to restore the registers */ + if (TARGET_EP && num_restore > 3 && (unsigned)actual_fsize < 255) + restore_normal_len = (3 * 2) + (2 * num_restore); + else + restore_normal_len = 4 * num_restore; + + restore_normal_len += (CONST_OK_FOR_J (actual_fsize) ? 2 : 4) + 2; + + /* Don't bother checking if we don't actually save any space. */ + if (restore_func_len < restore_normal_len) + { + restore_all = gen_rtx (PARALLEL, VOIDmode, + rtvec_alloc (num_restore + 2)); + XVECEXP (restore_all, 0, 0) = gen_rtx (RETURN, VOIDmode); + XVECEXP (restore_all, 0, 1) + = gen_rtx (SET, VOIDmode, stack_pointer_rtx, + gen_rtx (PLUS, Pmode, + stack_pointer_rtx, + GEN_INT (alloc_stack))); + + offset = alloc_stack - 4; + for (i = 0; i < num_restore; i++) + { + XVECEXP (restore_all, 0, i+2) + = gen_rtx (SET, VOIDmode, + restore_regs[i], + gen_rtx (MEM, Pmode, + plus_constant + (stack_pointer_rtx, offset))); + offset -= 4; + } + + code = recog (restore_all, NULL_RTX, NULL_PTR); + if (code >= 0) + { + rtx insn; + + actual_fsize -= alloc_stack; + if (actual_fsize) + { + if (CONST_OK_FOR_K (actual_fsize)) + emit_insn (gen_addsi3 (stack_pointer_rtx, + stack_pointer_rtx, + GEN_INT (actual_fsize))); + else + { + rtx reg = gen_rtx (REG, Pmode, 12); + emit_move_insn (reg, GEN_INT (actual_fsize)); + emit_insn (gen_addsi3 (stack_pointer_rtx, + stack_pointer_rtx, + reg)); + } + } + + insn = emit_jump_insn (restore_all); + INSN_CODE (insn) = code; + + if (TARGET_DEBUG) + fprintf (stderr, "\ +Saved %d bytes via epilogue function (%d vs. %d) in function %s\n", + restore_normal_len - restore_func_len, + restore_normal_len, restore_func_len, + IDENTIFIER_POINTER (DECL_NAME (current_function_decl))); + } + else + restore_all = NULL_RTX; + } + } + + /* If no epilog save function is available, restore the registers the + old fashioned way (one by one). */ + if (!restore_all) + { + /* If the stack is large, we need to cut it down in 2 pieces. */ + if (actual_fsize && !CONST_OK_FOR_K (-actual_fsize)) + init_stack_free = 4 * num_restore; + else + init_stack_free = actual_fsize; + + /* Deallocate the rest of the stack if it is > 32K or if extra stack + was allocated for an interrupt handler that makes a call. */ +#if 0 + if (actual_fsize > init_stack_free + || (interrupt_handler && actual_fsize)) +#else + if (actual_fsize > init_stack_free) +#endif + { + int diff; + + diff = actual_fsize - ((interrupt_handler) ? 0 : init_stack_free); + + if (CONST_OK_FOR_K (diff)) + emit_insn (gen_addsi3 (stack_pointer_rtx, + stack_pointer_rtx, + GEN_INT (diff))); + else + { + rtx reg = gen_rtx (REG, Pmode, 12); + emit_move_insn (reg, GEN_INT (diff)); + emit_insn (gen_addsi3 (stack_pointer_rtx, + stack_pointer_rtx, + reg)); + } + } + + /* Special case interrupt functions that save all registers + for a call. */ + if (interrupt_handler && ((1L << LINK_POINTER_REGNUM) & reg_saved) != 0) + { + emit_insn (gen_restore_all_interrupt ()); + } + else + { + /* Restore registers from the beginning of the stack frame */ + offset = init_stack_free - 4; + + /* Restore the return pointer first. */ + if (num_restore > 0 + && REGNO (restore_regs [num_restore - 1]) == LINK_POINTER_REGNUM) + { + emit_move_insn (restore_regs[--num_restore], + gen_rtx (MEM, SImode, + plus_constant (stack_pointer_rtx, + offset))); + offset -= 4; + } + + for (i = 0; i < num_restore; i++) + { + emit_move_insn (restore_regs[i], + gen_rtx (MEM, SImode, + plus_constant (stack_pointer_rtx, + offset))); + + offset -= 4; + } + + /* Cut back the remainder of the stack. */ + if (init_stack_free) + emit_insn (gen_addsi3 (stack_pointer_rtx, + stack_pointer_rtx, + GEN_INT (init_stack_free))); + } + + /* And return or use reti for interrupt handlers. */ + if (interrupt_handler) + emit_jump_insn (gen_restore_interrupt ()); + else if (actual_fsize) + emit_jump_insn (gen_return_internal ()); + else + emit_jump_insn (gen_return ()); + } + + current_function_anonymous_args = 0; + v810_interrupt_cache_p = FALSE; + v810_interrupt_p = FALSE; +} + + +/* Update the condition code from the insn. */ + +void +notice_update_cc (body, insn) + rtx body; + rtx insn; +{ + switch (get_attr_cc (insn)) + { + case CC_NONE: + /* Insn does not affect CC at all. */ + break; + + case CC_NONE_0HIT: + /* Insn does not change CC, but the 0'th operand has been changed. */ + if (cc_status.value1 != 0 + && reg_overlap_mentioned_p (recog_operand[0], cc_status.value1)) + cc_status.value1 = 0; + break; + + case CC_SET_ZN: + /* Insn sets the Z,N flags of CC to recog_operand[0]. + V,C is in an unusable state. */ + CC_STATUS_INIT; + cc_status.flags |= CC_OVERFLOW_UNUSABLE | CC_NO_CARRY; + cc_status.value1 = recog_operand[0]; + break; + + case CC_SET_ZNV: + /* Insn sets the Z,N,V flags of CC to recog_operand[0]. + C is in an unusable state. */ + CC_STATUS_INIT; + cc_status.flags |= CC_NO_CARRY; + cc_status.value1 = recog_operand[0]; + break; + + case CC_COMPARE: + /* The insn is a compare instruction. */ + CC_STATUS_INIT; + cc_status.value1 = SET_SRC (body); + break; + + case CC_CLOBBER: + /* Insn doesn't leave CC in a usable state. */ + CC_STATUS_INIT; + break; + } +} + +/* Retrieve the data area that has been chosen for the given decl. */ + +v810_data_area +v810_get_data_area (decl) + tree decl; +{ + if (lookup_attribute ("sda", DECL_MACHINE_ATTRIBUTES (decl)) != NULL_TREE) + return DATA_AREA_SDA; + + if (lookup_attribute ("tda", DECL_MACHINE_ATTRIBUTES (decl)) != NULL_TREE) + return DATA_AREA_TDA; + + if (lookup_attribute ("zda", DECL_MACHINE_ATTRIBUTES (decl)) != NULL_TREE) + return DATA_AREA_ZDA; + + return DATA_AREA_NORMAL; +} + +/* Store the indicated data area in the decl's attributes. */ + +static void +v810_set_data_area (decl, data_area) + tree decl; + v810_data_area data_area; +{ + tree name; + + switch (data_area) + { + case DATA_AREA_SDA: name = get_identifier ("sda"); break; + case DATA_AREA_TDA: name = get_identifier ("tda"); break; + case DATA_AREA_ZDA: name = get_identifier ("zda"); break; + default: + return; + } + + DECL_MACHINE_ATTRIBUTES (decl) = tree_cons + (name, NULL, DECL_MACHINE_ATTRIBUTES (decl)); +} + +/* Return nonzero if ATTR is a valid attribute for DECL. + ARGS are the arguments supplied with ATTR. */ + +int +v810_valid_machine_decl_attribute (decl, attr, args) + tree decl; + tree attr; + tree args; +{ + v810_data_area data_area; + v810_data_area area; + + if (args != NULL_TREE) + return 0; + + if (is_attribute_p ("interrupt_handler", attr) + || is_attribute_p ("interrupt", attr)) + return TREE_CODE (decl) == FUNCTION_DECL; + + /* Implement data area attribute. */ + if (is_attribute_p ("sda", attr)) + data_area = DATA_AREA_SDA; + else if (is_attribute_p ("tda", attr)) + data_area = DATA_AREA_TDA; + else if (is_attribute_p ("zda", attr)) + data_area = DATA_AREA_ZDA; + else + return 0; + + switch (TREE_CODE (decl)) + { + case VAR_DECL: + if (current_function_decl != NULL_TREE) + error_with_decl (decl, "\ +a data area attribute cannot be specified for local variables"); + + /* Drop through. */ + + case FUNCTION_DECL: + area = v810_get_data_area (decl); + if (area != DATA_AREA_NORMAL && data_area != area) + error_with_decl (decl, "\ +data area of '%s' conflicts with previous declaration"); + + return 1; + + default: + break; + } + + return 0; +} + + +/* Return nonzero if FUNC is an interrupt function as specified + by the "interrupt" attribute. */ + +int +v810_interrupt_function_p (func) + tree func; +{ + tree a; + int ret = 0; + + if (v810_interrupt_cache_p) + return v810_interrupt_p; + + if (TREE_CODE (func) != FUNCTION_DECL) + return 0; + + a = lookup_attribute ("interrupt_handler", DECL_MACHINE_ATTRIBUTES (func)); + if (a != NULL_TREE) + ret = 1; + + else + { + a = lookup_attribute ("interrupt", DECL_MACHINE_ATTRIBUTES (func)); + ret = a != NULL_TREE; + } + + /* Its not safe to trust global variables until after function inlining has + been done. */ + if (reload_completed | reload_in_progress) + v810_interrupt_p = ret; + + return ret; +} + + +extern struct obstack * saveable_obstack; + +void +v810_encode_data_area (decl) + tree decl; +{ + char * str = XSTR (XEXP (DECL_RTL (decl), 0), 0); + int len = strlen (str); + char * newstr; + + /* Map explict sections into the appropriate attribute */ + if (v810_get_data_area (decl) == DATA_AREA_NORMAL) + { + if (DECL_SECTION_NAME (decl)) + { + char * name = TREE_STRING_POINTER (DECL_SECTION_NAME (decl)); + + if (streq (name, ".zdata") || streq (name, ".zbss")) + v810_set_data_area (decl, DATA_AREA_ZDA); + + else if (streq (name, ".sdata") || streq (name, ".sbss")) + v810_set_data_area (decl, DATA_AREA_SDA); + + else if (streq (name, ".tdata")) + v810_set_data_area (decl, DATA_AREA_TDA); + } + + /* If no attribute, support -m{zda,sda,tda}=n */ + else + { + int size = int_size_in_bytes (TREE_TYPE (decl)); + if (size <= 0) + ; + + else if (size <= small_memory [(int) SMALL_MEMORY_TDA].max) + v810_set_data_area (decl, DATA_AREA_TDA); + + else if (size <= small_memory [(int) SMALL_MEMORY_SDA].max) + v810_set_data_area (decl, DATA_AREA_SDA); + + else if (size <= small_memory [(int) SMALL_MEMORY_ZDA].max) + v810_set_data_area (decl, DATA_AREA_ZDA); + } + + if (v810_get_data_area (decl) == DATA_AREA_NORMAL) + return; + } + + newstr = obstack_alloc (saveable_obstack, len + 2); + + strcpy (newstr + 1, str); + + switch (v810_get_data_area (decl)) + { + case DATA_AREA_ZDA: *newstr = ZDA_NAME_FLAG_CHAR; break; + case DATA_AREA_TDA: *newstr = TDA_NAME_FLAG_CHAR; break; + case DATA_AREA_SDA: *newstr = SDA_NAME_FLAG_CHAR; break; + default: abort (); + } + + XSTR (XEXP (DECL_RTL (decl), 0), 0) = newstr; +} + +/* Return true if the given RTX is a register which can be restored + by a function epilogue. */ +int +register_is_ok_for_epilogue (op, mode) + rtx op; + enum machine_mode ATTRIBUTE_UNUSED mode; +{ + /* The save/restore routines can only cope with registers 2, and 20 - 31 */ + return (GET_CODE (op) == REG) + && (((REGNO (op) >= 20) && REGNO (op) <= 31) + || REGNO (op) == 2); +} + +/* Return non-zero if the given RTX is suitable for collapsing into + jump to a function epilogue. */ +int +pattern_is_ok_for_epilogue (op, mode) + rtx op; + enum machine_mode ATTRIBUTE_UNUSED mode; +{ + int count = XVECLEN (op, 0); + int i; + + /* If there are no registers to restore then the function epilogue + is not suitable. */ + if (count <= 2) + return 0; + + /* The pattern matching has already established that we are performing a + function epilogue and that we are popping at least one register. We must + now check the remaining entries in the vector to make sure that they are + also register pops. There is no good reason why there should ever be + anything else in this vector, but being paranoid always helps... + + The test below performs the C equivalent of this machine description + pattern match: + + (set (match_operand:SI n "register_is_ok_for_epilogue" "r") + (mem:SI (plus:SI (reg:SI 3) (match_operand:SI n "immediate_operand" "i")))) + */ + + for (i = 3; i < count; i++) + { + rtx vector_element = XVECEXP (op, 0, i); + rtx dest; + rtx src; + rtx plus; + + if (GET_CODE (vector_element) != SET) + return 0; + + dest = SET_DEST (vector_element); + src = SET_SRC (vector_element); + + if (GET_CODE (dest) != REG + || GET_MODE (dest) != SImode + || ! register_is_ok_for_epilogue (dest, SImode) + || GET_CODE (src) != MEM + || GET_MODE (src) != SImode) + return 0; + + plus = XEXP (src, 0); + + if (GET_CODE (plus) != PLUS + || GET_CODE (XEXP (plus, 0)) != REG + || GET_MODE (XEXP (plus, 0)) != SImode + || REGNO (XEXP (plus, 0)) != STACK_POINTER_REGNUM + || GET_CODE (XEXP (plus, 1)) != CONST_INT) + return 0; + } + + return 1; +} + +/* Construct a JR instruction to a routine that will perform the equivalent of + the RTL passed in as an argument. This RTL is a function epilogue that + pops registers off the stack and possibly releases some extra stack space + as well. The code has already verified that the RTL matches these + requirements. */ +char * +construct_restore_jr (op) + rtx op; +{ + int count = XVECLEN (op, 0); + int stack_bytes; + unsigned long int mask; + unsigned long int first; + unsigned long int last; + int i; + static char buff [100]; /* XXX */ + + if (count <= 2) + { + error ("Bogus JR construction: %d\n", count); + return NULL; + } + + /* Work out how many bytes to pop off the stack before retrieving + registers. */ + if (GET_CODE (XVECEXP (op, 0, 1)) != SET) + abort (); + if (GET_CODE (SET_SRC (XVECEXP (op, 0, 1))) != PLUS) + abort (); + if (GET_CODE (XEXP (SET_SRC (XVECEXP (op, 0, 1)), 1)) != CONST_INT) + abort (); + + stack_bytes = INTVAL (XEXP (SET_SRC (XVECEXP (op, 0, 1)), 1)); + + /* Each pop will remove 4 bytes from the stack... */ + stack_bytes -= (count - 2) * 4; + + /* Make sure that the amount we are popping either 0 or 16 bytes. */ + if (stack_bytes != 0 && stack_bytes != 16) + { + error ("Bad amount of stack space removal: %d", stack_bytes); + return NULL; + } + + /* Now compute the bit mask of registers to push. */ + mask = 0; + for (i = 2; i < count; i++) + { + rtx vector_element = XVECEXP (op, 0, i); + + if (GET_CODE (vector_element) != SET) + abort (); + if (GET_CODE (SET_DEST (vector_element)) != REG) + abort (); + if (! register_is_ok_for_epilogue (SET_DEST (vector_element), SImode)) + abort (); + + mask |= 1 << REGNO (SET_DEST (vector_element)); + } + + /* Scan for the first register to pop. */ + for (first = 0; first < 32; first++) + { + if (mask & (1 << first)) + break; + } + + if (first >= 32) + abort (); + + /* Discover the last register to pop. */ + if (mask & (1 << LINK_POINTER_REGNUM)) + { + if (stack_bytes != 16) + abort (); + + last = LINK_POINTER_REGNUM; + } + else + { + if (stack_bytes != 0) + abort (); + + if ((mask & (1 << 29)) == 0) + abort (); + + last = 29; + } + + /* Note, it is possible to have gaps in the register mask. + We ignore this here, and generate a JR anyway. We will + be popping more registers than is strictly necessary, but + it does save code space. */ + + if (TARGET_LONG_CALLS) + { + char name[40]; + + if (first == last) + sprintf (name, "__return_%s", reg_names [first]); + else + sprintf (name, "__return_%s_%s", reg_names [first], reg_names [last]); + + sprintf (buff, "movhi hi(%s), r0, r6\n\tmovea lo(%s), r6, r6\n\tjmp r6", + name, name); + } + else + { + if (first == last) + sprintf (buff, "jr __return_%s", reg_names [first]); + else + sprintf (buff, "jr __return_%s_%s", reg_names [first], reg_names [last]); + } + + return buff; +} + + +/* Return non-zero if the given RTX is suitable for collapsing into + a jump to a function prologue. */ +int +pattern_is_ok_for_prologue (op, mode) + rtx op; + enum machine_mode ATTRIBUTE_UNUSED mode; +{ + int count = XVECLEN (op, 0); + int i; + rtx vector_element; + + /* If there are no registers to save then the function prologue + is not suitable. */ + if (count <= 2) + return 0; + + /* The pattern matching has already established that we are adjusting the + stack and pushing at least one register. We must now check that the + remaining entries in the vector to make sure that they are also register + pushes, except for the last entry which should be a CLOBBER of r10. + + The test below performs the C equivalent of this machine description + pattern match: + + (set (mem:SI (plus:SI (reg:SI 3) + (match_operand:SI 2 "immediate_operand" "i"))) + (match_operand:SI 3 "register_is_ok_for_epilogue" "r")) + + */ + + for (i = 2; i < count - 1; i++) + { + rtx dest; + rtx src; + rtx plus; + + vector_element = XVECEXP (op, 0, i); + + if (GET_CODE (vector_element) != SET) + return 0; + + dest = SET_DEST (vector_element); + src = SET_SRC (vector_element); + + if (GET_CODE (dest) != MEM + || GET_MODE (dest) != SImode + || GET_CODE (src) != REG + || GET_MODE (src) != SImode + || ! register_is_ok_for_epilogue (src, SImode)) + return 0; + + plus = XEXP (dest, 0); + + if ( GET_CODE (plus) != PLUS + || GET_CODE (XEXP (plus, 0)) != REG + || GET_MODE (XEXP (plus, 0)) != SImode + || REGNO (XEXP (plus, 0)) != STACK_POINTER_REGNUM + || GET_CODE (XEXP (plus, 1)) != CONST_INT) + return 0; + + /* If the register is being pushed somewhere other than the stack + space just acquired by the first operand then abandon this quest. + Note: the test is <= because both values are negative. */ + if (INTVAL (XEXP (plus, 1)) + <= INTVAL (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 1))) + { + return 0; + } + } + + /* Make sure that the last entry in the vector is a clobber. */ + vector_element = XVECEXP (op, 0, i); + + if (GET_CODE (vector_element) != CLOBBER + || GET_CODE (XEXP (vector_element, 0)) != REG + || REGNO (XEXP (vector_element, 0)) != 10) + return 0; + + return 1; +} + +/* Construct a JARL instruction to a routine that will perform the equivalent + of the RTL passed as a parameter. This RTL is a function prologue that + saves some of the registers r20 - r31 onto the stack, and possibly acquires + some stack space as well. The code has already verified that the RTL + matches these requirements. */ +char * +construct_save_jarl (op) + rtx op; +{ + int count = XVECLEN (op, 0); + int stack_bytes; + unsigned long int mask; + unsigned long int first; + unsigned long int last; + int i; + static char buff [100]; /* XXX */ + + if (count <= 2) + { + error ("Bogus JARL construction: %d\n", count); + return NULL; + } + + /* Paranoia. */ + if (GET_CODE (XVECEXP (op, 0, 0)) != SET) + abort (); + if (GET_CODE (SET_SRC (XVECEXP (op, 0, 0))) != PLUS) + abort (); + if (GET_CODE (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 0)) != REG) + abort (); + if (GET_CODE (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 1)) != CONST_INT) + abort (); + + /* Work out how many bytes to push onto the stack after storing the + registers. */ + stack_bytes = INTVAL (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 1)); + + /* Each push will put 4 bytes from the stack... */ + stack_bytes += (count - 2) * 4; + + /* Make sure that the amount we are popping either 0 or 16 bytes. */ + if (stack_bytes != 0 && stack_bytes != -16) + { + error ("Bad amount of stack space removal: %d", stack_bytes); + return NULL; + } + + /* Now compute the bit mask of registers to push. */ + mask = 0; + for (i = 1; i < count - 1; i++) + { + rtx vector_element = XVECEXP (op, 0, i); + + if (GET_CODE (vector_element) != SET) + abort (); + if (GET_CODE (SET_SRC (vector_element)) != REG) + abort (); + if (! register_is_ok_for_epilogue (SET_SRC (vector_element), SImode)) + abort (); + + mask |= 1 << REGNO (SET_SRC (vector_element)); + } + + /* Scan for the first register to push. */ + for (first = 0; first < 32; first++) + { + if (mask & (1 << first)) + break; + } + + if (first >= 32) + abort (); + + /* Discover the last register to push. */ + if (mask & (1 << LINK_POINTER_REGNUM)) + { + if (stack_bytes != -16) + abort (); + + last = LINK_POINTER_REGNUM; + } + else + { + if (stack_bytes != 0) + abort (); + if ((mask & (1 << 29)) == 0) + abort (); + + last = 29; + } + + /* Note, it is possible to have gaps in the register mask. + We ignore this here, and generate a JARL anyway. We will + be pushing more registers than is strictly necessary, but + it does save code space. */ + + if (TARGET_LONG_CALLS) + { + char name[40]; + + if (first == last) + sprintf (name, "__save_%s", reg_names [first]); + else + sprintf (name, "__save_%s_%s", reg_names [first], reg_names [last]); + + sprintf (buff, "mov r31,r10\n\tmovhi hi(%s), r0, r11\n\tmovea lo(%s), r11, r11\n\tjal .+4\n\tadd 4, r31\n\tjmp r11", + name, name); + } + else + { + if (first == last) + sprintf (buff, "mov r31,r10\n\tjal __save_%s", reg_names [first]); + else + sprintf (buff, "mov r31,r10\n\tjal __save_%s_%s", reg_names [first], + reg_names [last]); + } + + return buff; +} + +extern tree last_assemble_variable_decl; +extern int size_directive_output; + +/* A version of asm_output_aligned_bss() that copes with the special + data areas of the v810. */ +void +v810_output_aligned_bss (file, decl, name, size, align) + FILE * file; + tree decl; + char * name; + int size; + int align; +{ + ASM_GLOBALIZE_LABEL (file, name); + + switch (v810_get_data_area (decl)) + { + case DATA_AREA_ZDA: + zbss_section (); + break; + + case DATA_AREA_SDA: + sbss_section (); + break; + + case DATA_AREA_TDA: + tdata_section (); + + default: + bss_section (); + break; + } + + ASM_OUTPUT_ALIGN (file, floor_log2 (align / BITS_PER_UNIT)); +#ifdef ASM_DECLARE_OBJECT_NAME + last_assemble_variable_decl = decl; + ASM_DECLARE_OBJECT_NAME (file, name, decl); +#else + /* Standard thing is just output label for the object. */ + ASM_OUTPUT_LABEL (file, name); +#endif /* ASM_DECLARE_OBJECT_NAME */ + ASM_OUTPUT_SKIP (file, size ? size : 1); +} + +/* Called via the macro ASM_OUTPUT_DECL_COMMON */ +void +v810_output_common (file, decl, name, size, align) + FILE * file; + tree decl; + char * name; + int size; + int align; +{ + if (decl == NULL_TREE) + { + fprintf (file, "\t%s\t", COMMON_ASM_OP); + } + else + { + switch (v810_get_data_area (decl)) + { + case DATA_AREA_ZDA: + fprintf (file, "\t%s\t", ZCOMMON_ASM_OP); + break; + + case DATA_AREA_SDA: + fprintf (file, "\t%s\t", SCOMMON_ASM_OP); + break; + + case DATA_AREA_TDA: + fprintf (file, "\t%s\t", TCOMMON_ASM_OP); + break; + + default: + fprintf (file, "\t%s\t", COMMON_ASM_OP); + break; + } + } + + assemble_name (file, name); + fprintf (file, ",%u,%u\n", size, align / BITS_PER_UNIT); +} + +/* Called via the macro ASM_OUTPUT_DECL_LOCAL */ +void +v810_output_local (file, decl, name, size, align) + FILE * file; + tree decl; + char * name; + int size; + int align; +{ + fprintf (file, "\t%s\t", LOCAL_ASM_OP); + assemble_name (file, name); + fprintf (file, "\n"); + + ASM_OUTPUT_ALIGNED_DECL_COMMON (file, decl, name, size, align); +} + +/* The following code is for handling pragmas supported by the + v810 compiler produced by Green Hills Software. This is at + the specific request of a customer. */ + +/* Track the current data area set by the data area pragma (which + can be nested). Tested by check_default_data_area. */ + +typedef struct data_area_stack_element +{ + struct data_area_stack_element * prev; + v810_data_area data_area; /* current default data area. */ +} data_area_stack_element; + +static data_area_stack_element * data_area_stack = NULL; + +/* Names of the various data areas used on the v810. */ +static tree GHS_default_section_names [(int) COUNT_OF_GHS_SECTION_KINDS]; +static tree GHS_current_section_names [(int) COUNT_OF_GHS_SECTION_KINDS]; + +/* Push a data area onto the stack. */ +static int +push_data_area (data_area) + v810_data_area data_area; +{ + data_area_stack_element * elem; + + elem = (data_area_stack_element *) xmalloc (sizeof (* elem)); + + if (elem == NULL) + return 0; + + elem->prev = data_area_stack; + elem->data_area = data_area; + + data_area_stack = elem; + + return 1; +} + +/* Remove a data area from the stack. */ +static int +pop_data_area (data_area) + v810_data_area data_area; +{ + if (data_area_stack == NULL) + warning ("#pragma GHS endXXXX found without previous startXXX"); + else if (data_area != data_area_stack->data_area) + warning ("#pragma GHS endXXX does not match previous startXXX"); + else + { + data_area_stack_element * elem; + + elem = data_area_stack; + data_area_stack = data_area_stack->prev; + + free (elem); + + return 1; + } + + return 0; +} + +/* Set the machine specific 'interrupt' attribute on the current function. */ +static int +mark_current_function_as_interrupt () +{ + tree name; + + if (current_function_decl == NULL_TREE) + { + warning ("Cannot set interrupt attribute: no current function"); + return 0; + } + + name = get_identifier ("interrupt"); + + if (name == NULL_TREE || TREE_CODE (name) != IDENTIFIER_NODE) + { + warning ("Cannot set interrupt attribute: no such identifier"); + return 0; + } + + return valid_machine_attribute + (name, NULL_TREE, current_function_decl, NULL_TREE); +} + +/* Parse STRING as part of a GHS pragma. + Returns 0 if the pragma has been parsed and there was a problem, + non-zero in all other cases. */ +static int +parse_ghs_pragma_token (string) + char * string; +{ + static enum v810_pragma_state state = V810_PS_START; + static enum v810_pragma_type type = V810_PT_UNKNOWN; + static v810_data_area data_area = DATA_AREA_NORMAL; + static char * data_area_name; + static enum GHS_section_kind GHS_section_kind = GHS_SECTION_KIND_DEFAULT; + + /* If the string is NULL then we have reached the end of the + #pragma construct. Make sure that we are in an end state, and + then implement the pragma's directive. */ + if (string == NULL) + { + int ret_val = 1; + + if (state != V810_PS_SHOULD_BE_DONE + && state != V810_PS_MAYBE_COMMA + && state != V810_PS_MAYBE_SECTION_NAME) + { + if (state != V810_PS_BAD) + warning ("Incomplete #pragma ghs"); + + ret_val = 0; + } + else switch (type) + { + case V810_PT_UNKNOWN: + warning ("Nothing follows #pragma ghs"); + ret_val = 0; + break; + + case V810_PT_INTERRUPT: + ret_val = mark_current_function_as_interrupt (); + break; + + case V810_PT_SECTION: + /* If a section kind has not been specified, then reset + all section names back to their defaults. */ + if (GHS_section_kind == GHS_SECTION_KIND_DEFAULT) + { + int i; + + for (i = COUNT_OF_GHS_SECTION_KINDS; i--;) + GHS_current_section_names [i] = NULL; + } + /* If a section has been specified, then this will be handled + by check_default_section_name (). */ + break; + + case V810_PT_START_SECTION: + ret_val = push_data_area (data_area); + break; + + case V810_PT_END_SECTION: + ret_val = pop_data_area (data_area); + break; + } + + state = V810_PS_START; + type = V810_PT_UNKNOWN; + + return ret_val; + } + + switch (state) + { + case V810_PS_START: + data_area = DATA_AREA_NORMAL; + data_area_name = NULL; + + if (streq (string, "interrupt")) + { + type = V810_PT_INTERRUPT; + state = V810_PS_SHOULD_BE_DONE; + } + else if (streq (string, "section")) + { + type = V810_PT_SECTION; + state = V810_PS_MAYBE_SECTION_NAME; + GHS_section_kind = GHS_SECTION_KIND_DEFAULT; + } + else if (streq (string, "starttda")) + { + type = V810_PT_START_SECTION; + state = V810_PS_SHOULD_BE_DONE; + data_area = DATA_AREA_TDA; + } + else if (streq (string, "endtda")) + { + type = V810_PT_END_SECTION; + state = V810_PS_SHOULD_BE_DONE; + data_area = DATA_AREA_TDA; + } + else if (streq (string, "startsda")) + { + type = V810_PT_START_SECTION; + state = V810_PS_SHOULD_BE_DONE; + data_area = DATA_AREA_SDA; + } + else if (streq (string, "endsda")) + { + type = V810_PT_END_SECTION; + state = V810_PS_SHOULD_BE_DONE; + data_area = DATA_AREA_SDA; + } + else if (streq (string, "startzda")) + { + type = V810_PT_START_SECTION; + state = V810_PS_SHOULD_BE_DONE; + data_area = DATA_AREA_ZDA; + } + else if (streq (string, "endzda")) + { + type = V810_PT_END_SECTION; + state = V810_PS_SHOULD_BE_DONE; + data_area = DATA_AREA_ZDA; + } + else + { + warning ("Unrecognised GHS pragma: '%s'\n", string); + state = V810_PS_BAD; + } + break; + + case V810_PS_SHOULD_BE_DONE: + warning ("Extra text after valid #pragma: '%s'", string); + state = V810_PS_BAD; + break; + + case V810_PS_BAD: + /* Ignore tokens in a pragma that has been diagnosed as being corrupt. */ + break; + + case V810_PS_MAYBE_SECTION_NAME: + state = V810_PS_EXPECTING_EQUALS; + + if (streq (string, "data")) GHS_section_kind = GHS_SECTION_KIND_DATA; + else if (streq (string, "text")) GHS_section_kind = GHS_SECTION_KIND_TEXT; + else if (streq (string, "rodata")) GHS_section_kind = GHS_SECTION_KIND_RODATA; + else if (streq (string, "const")) GHS_section_kind = GHS_SECTION_KIND_RODATA; + else if (streq (string, "rosdata")) GHS_section_kind = GHS_SECTION_KIND_ROSDATA; + else if (streq (string, "rozdata")) GHS_section_kind = GHS_SECTION_KIND_ROZDATA; + else if (streq (string, "sdata")) GHS_section_kind = GHS_SECTION_KIND_SDATA; + else if (streq (string, "tdata")) GHS_section_kind = GHS_SECTION_KIND_TDATA; + else if (streq (string, "zdata")) GHS_section_kind = GHS_SECTION_KIND_ZDATA; + /* According to GHS beta documentation, the following should not be allowed! */ + else if (streq (string, "bss")) GHS_section_kind = GHS_SECTION_KIND_BSS; + else if (streq (string, "zbss")) GHS_section_kind = GHS_SECTION_KIND_ZDATA; + else + { + warning ("Unrecognised section name '%s' in GHS section pragma", + string); + state = V810_PS_BAD; + } + break; + + case V810_PS_EXPECTING_EQUALS: + if (streq (string, "=")) + state = V810_PS_EXPECTING_SECTION_ALIAS; + else + { + warning ("Missing '=' in GHS section pragma"); + state = V810_PS_BAD; + } + break; + + case V810_PS_EXPECTING_SECTION_ALIAS: + if (streq (string, "default")) + GHS_current_section_names [GHS_section_kind] = NULL; + else + GHS_current_section_names [GHS_section_kind] = + build_string (strlen (string) + 1, string); + + state = V810_PS_MAYBE_COMMA; + break; + + case V810_PS_MAYBE_COMMA: + if (streq (string, ",")) + state = V810_PS_MAYBE_SECTION_NAME; + else + { + warning + ("Malformed GHS section pragma: found '%s' instead of a comma", + string); + state = V810_PS_BAD; + } + break; + } + + return 1; +} + +/* Handle the parsing of an entire GHS pragma. */ +int +v810_handle_pragma (p_getc, p_ungetc, name) + int (* p_getc) PROTO ((void)); + void (* p_ungetc) PROTO ((int)); + char * name; +{ + /* Parse characters in the input stream until: + + * end of line + * end of file + * a complete GHS pragma has been parsed + * a corrupted GHS pragma has been parsed + * an unknown pragma is encountered. + + If an unknown pragma is encountered, we must return with + the input stream in the same state as upon entry to this function. + + The first token in the input stream has already been parsed + for us, and is passed as 'name'. */ + + if (! streq (name, "ghs")) + return 0; + + /* We now know that we are parsing a GHS pragma, so we do + not need to preserve the original input stream state. */ + for (;;) + { + static char buffer [128]; + int c; + char * buff; + + /* Skip white space. */ + do + c = p_getc (); + while (c == ' ' || c == '\t'); + + p_ungetc (c); + + if (c == '\n' || c == EOF || c == '\r') + return parse_ghs_pragma_token (NULL); + + /* Read next word. We have to do the parsing ourselves, rather + than calling yylex() because we can be built with front ends + that do not provide such functions. */ + buff = buffer; + * buff ++ = (c = p_getc ()); + + switch (c) + { + case ',': + case '=': + * buff ++ = (c = p_getc ()); + break; + + case '"': + /* Skip opening double parenthesis. */ + -- buff; + + /* Read string. */ + do + * buff ++ = (c = p_getc ()); + while (c != EOF && isascii (c) + && (isalnum (c) || c == '_' || c == '.' || c == ' ') + && (buff < buffer + 126)); + + if (c != '"') + warning ("Missing trailing \" in #pragma ghs"); + else + c = p_getc (); + break; + + default: + while (c != EOF && isascii (c) + && (isalnum (c) || c == '_' || c == '.') + && (buff < buffer + 126)) + * buff ++ = (c = p_getc ()); + break; + } + + p_ungetc (c); + + /* If nothing was read then terminate the parsing. */ + if (buff == buffer + 1) + return parse_ghs_pragma_token (NULL); + + /* Parse and continue. */ + * -- buff = 0; + + parse_ghs_pragma_token (buffer); + } +} + +/* Add data area to the given declaration if a ghs data area pragma is + currently in effect (#pragma ghs startXXX/endXXX). */ +void +v810_set_default_decl_attr (decl) + tree decl; +{ + if (data_area_stack + && data_area_stack->data_area + && current_function_decl == NULL_TREE + && (TREE_CODE (decl) == VAR_DECL || TREE_CODE (decl) == CONST_DECL) + && v810_get_data_area (decl) == DATA_AREA_NORMAL) + v810_set_data_area (decl, data_area_stack->data_area); + + /* Initialise the default names of the v810 specific sections, + if this has not been done before. */ + + if (GHS_default_section_names [(int) GHS_SECTION_KIND_SDATA] == NULL) + { + GHS_default_section_names [(int) GHS_SECTION_KIND_SDATA] + = build_string (sizeof (".sdata")-1, ".sdata"); + + GHS_default_section_names [(int) GHS_SECTION_KIND_ROSDATA] + = build_string (sizeof (".rosdata")-1, ".rosdata"); + + GHS_default_section_names [(int) GHS_SECTION_KIND_TDATA] + = build_string (sizeof (".tdata")-1, ".tdata"); + + GHS_default_section_names [(int) GHS_SECTION_KIND_ZDATA] + = build_string (sizeof (".zdata")-1, ".zdata"); + + GHS_default_section_names [(int) GHS_SECTION_KIND_ROZDATA] + = build_string (sizeof (".rozdata")-1, ".rozdata"); + } + + if (current_function_decl == NULL_TREE + && (TREE_CODE (decl) == VAR_DECL + || TREE_CODE (decl) == CONST_DECL + || TREE_CODE (decl) == FUNCTION_DECL) + && (!DECL_EXTERNAL (decl) || DECL_INITIAL (decl)) + && !DECL_SECTION_NAME (decl)) + { + enum GHS_section_kind kind = GHS_SECTION_KIND_DEFAULT; + tree chosen_section; + + if (TREE_CODE (decl) == FUNCTION_DECL) + kind = GHS_SECTION_KIND_TEXT; + else + { + /* First choose a section kind based on the data area of the decl. */ + switch (v810_get_data_area (decl)) + { + default: + abort (); + + case DATA_AREA_SDA: + kind = ((TREE_READONLY (decl)) + ? GHS_SECTION_KIND_ROSDATA + : GHS_SECTION_KIND_SDATA); + break; + + case DATA_AREA_TDA: + kind = GHS_SECTION_KIND_TDATA; + break; + + case DATA_AREA_ZDA: + kind = ((TREE_READONLY (decl)) + ? GHS_SECTION_KIND_ROZDATA + : GHS_SECTION_KIND_ZDATA); + break; + + case DATA_AREA_NORMAL: /* default data area */ + if (TREE_READONLY (decl)) + kind = GHS_SECTION_KIND_RODATA; + else if (DECL_INITIAL (decl)) + kind = GHS_SECTION_KIND_DATA; + else + kind = GHS_SECTION_KIND_BSS; + } + } + + /* Now, if the section kind has been explicitly renamed, + then attach a section attribute. */ + chosen_section = GHS_current_section_names [(int) kind]; + + /* Otherwise, if this kind of section needs an explicit section + attribute, then also attach one. */ + if (chosen_section == NULL) + chosen_section = GHS_default_section_names [(int) kind]; + + if (chosen_section) + { + /* Only set the section name if specified by a pragma, because + otherwise it will force those variables to get allocated storage + in this module, rather than by the linker. */ + DECL_SECTION_NAME (decl) = chosen_section; + } + } +} diff -urN gcc-2.95.2.org/gcc/config/v810/v810.h gcc-2.95.2/gcc/config/v810/v810.h --- gcc-2.95.2.org/gcc/config/v810/v810.h 1969-12-31 16:00:00.000000000 -0800 +++ gcc-2.95.2/gcc/config/v810/v810.h 2011-03-20 04:03:11.000000000 -0700 @@ -0,0 +1,1689 @@ +/* Definitions of target machine for GNU compiler. NEC V810 series + Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + Contributed by Jeff Law (law@cygnus.com). + +This file is part of GNU CC. + +GNU CC 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. + +GNU CC 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 GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "svr4.h" /* Automatically does #undef CPP_PREDEFINES */ + +#undef ASM_SPEC +#define ASM_SPEC "%{mv*:-mv%*}" + +#ifndef CPP_SPEC +#define CPP_SPEC "-D__v810__" +#endif + +#undef ASM_FINAL_SPEC +#undef LIB_SPEC +#undef ENDFILE_SPEC +#undef LINK_SPEC +#undef STARTFILE_SPEC + +/* Names to predefine in the preprocessor for this target machine. */ +#define CPP_PREDEFINES "-D__v830__ -D__v810" + +/* Print subsidiary information on the compiler version in use. */ + +#ifndef TARGET_VERSION +#define TARGET_VERSION fprintf (stderr, " (NEC V810)"); +#endif + + +/* Run-time compilation parameters selecting different hardware subsets. */ + +extern int target_flags; + +/* Target flags bits, see below for an explanation of the bits. */ +#define MASK_GHS 0x00000001 +#define MASK_LONG_CALLS 0x00000002 +#define MASK_EP 0x00000004 +#define MASK_PROLOG_FUNCTION 0x00000008 +#define MASK_DEBUG 0x40000000 + +#define MASK_CPU 0x00000030 +#define MASK_V810 0x00000010 +#define MASK_V830 0x00000020 + +#define MASK_BIG_SWITCH 0x00000100 + +#ifndef MASK_DEFAULT +#define MASK_DEFAULT MASK_V810 +#endif + +#define TARGET_V810 (target_flags & MASK_V810) +#define TARGET_V830 (target_flags & MASK_V830) + +/* Macros used in the machine description to test the flags. */ + +/* The GHS calling convention support doesn't really work, + mostly due to a lack of documentation. Outstanding issues: + + * How do varargs & stdarg really work. How to they handle + passing structures (if at all). + + * Doubles are normally 4 byte aligned, except in argument + lists where they are 8 byte aligned. Is the alignment + in the argument list based on the first parameter, + first stack parameter, etc etc. + + * Passing/returning of large structures probably isn't the same + as GHS. We don't have enough documentation on their conventions + to be compatible. + + * Tests of SETUP_INCOMING_VARARGS need to be made runtime checks + since it depends on TARGET_GHS. */ +#define TARGET_GHS (target_flags & MASK_GHS) + +/* Don't do PC-relative calls, instead load the address of the target + function into a register and perform a register indirect call. */ +#define TARGET_LONG_CALLS (target_flags & MASK_LONG_CALLS) + +/* Whether to optimize space by using ep (r30) for pointers with small offsets + in basic blocks. */ +/*#define TARGET_EP (target_flags & MASK_EP)*/ +#define TARGET_EP (0) + +/* Whether to call out-of-line functions to save registers or not. */ +#define TARGET_PROLOG_FUNCTION (target_flags & MASK_PROLOG_FUNCTION) + +/* Whether to emit 2 byte per entry or 4 byte per entry switch tables. */ +#define TARGET_BIG_SWITCH (target_flags & MASK_BIG_SWITCH) + +/* General debug flag */ +#define TARGET_DEBUG (target_flags & MASK_DEBUG) + +/* Macro to define tables used to set the flags. + This is a list in braces of pairs in braces, + each pair being { "NAME", VALUE } + where VALUE is the bits to set or minus the bits to clear. + An empty string NAME is used to identify the default VALUE. */ + +#define TARGET_SWITCHES \ + {{ "ghs", MASK_GHS, "Support Green Hills ABI" }, \ + { "no-ghs", -MASK_GHS, "" }, \ + { "long-calls", MASK_LONG_CALLS, \ + "Prohibit PC relative function calls" },\ + { "no-long-calls", -MASK_LONG_CALLS, "" }, \ + { "ep", MASK_EP, \ + "Reuse r30 on a per function basis" }, \ + { "no-ep", -MASK_EP, "" }, \ + { "prolog-function", MASK_PROLOG_FUNCTION, \ + "Use stubs for function prologues" }, \ + { "no-prolog-function", -MASK_PROLOG_FUNCTION, "" }, \ + { "space", MASK_EP | MASK_PROLOG_FUNCTION, \ + "Same as: -mep -mprolog-function" }, \ + { "debug", MASK_DEBUG, "Enable backend debugging" }, \ + { "v810", MASK_V810, \ + "Compile for the v810 processor" }, \ + { "v810", -(MASK_V810 ^ MASK_CPU), "" }, \ + { "v830", MASK_V830, \ + "Compile for the v830 processor" }, \ + { "v830", -(MASK_V830 ^ MASK_CPU), "" }, \ + { "big-switch", MASK_BIG_SWITCH, \ + "Use 4 byte entries in switch tables" },\ + EXTRA_SWITCHES \ + { "", TARGET_DEFAULT, ""}} + +#ifndef EXTRA_SWITCHES +#define EXTRA_SWITCHES +#endif + +#ifndef TARGET_DEFAULT +#define TARGET_DEFAULT MASK_DEFAULT +#endif + +/* Information about the various small memory areas. */ +struct small_memory_info { + char *name; + char *value; + long max; + long physical_max; +}; + +enum small_memory_type { + /* tiny data area, using EP as base register */ + SMALL_MEMORY_TDA = 0, + /* small data area using dp as base register */ + SMALL_MEMORY_SDA, + /* zero data area using r0 as base register */ + SMALL_MEMORY_ZDA, + SMALL_MEMORY_max +}; + +extern struct small_memory_info small_memory[(int)SMALL_MEMORY_max]; + +/* This macro is similar to `TARGET_SWITCHES' but defines names of + command options that have values. Its definition is an + initializer with a subgrouping for each command option. + + Each subgrouping contains a string constant, that defines the + fixed part of the option name, and the address of a variable. The + variable, type `char *', is set to the variable part of the given + option if the fixed part matches. The actual option name is made + by appending `-m' to the specified name. + + Here is an example which defines `-mshort-data-NUMBER'. If the + given option is `-mshort-data-512', the variable `m88k_short_data' + will be set to the string `"512"'. + + extern char *m88k_short_data; + #define TARGET_OPTIONS \ + { { "short-data-", &m88k_short_data } } */ + +#define TARGET_OPTIONS \ +{ \ + { "tda=", &small_memory[ (int)SMALL_MEMORY_TDA ].value, \ + "Set the max size of data eligible for the TDA area" }, \ + { "tda-", &small_memory[ (int)SMALL_MEMORY_TDA ].value, "" }, \ + { "sda=", &small_memory[ (int)SMALL_MEMORY_SDA ].value, \ + "Set the max size of data eligible for the SDA area" }, \ + { "sda-", &small_memory[ (int)SMALL_MEMORY_SDA ].value, "" }, \ + { "zda=", &small_memory[ (int)SMALL_MEMORY_ZDA ].value, \ + "Set the max size of data eligible for the ZDA area" }, \ + { "zda-", &small_memory[ (int)SMALL_MEMORY_ZDA ].value, "" }, \ +} + +/* Sometimes certain combinations of command options do not make + sense on a particular target machine. You can define a macro + `OVERRIDE_OPTIONS' to take account of this. This macro, if + defined, is executed once just after all the command options have + been parsed. + + Don't use this macro to turn on various extra optimizations for + `-O'. That is what `OPTIMIZATION_OPTIONS' is for. */ +#define OVERRIDE_OPTIONS override_options () + + +/* Show we can debug even without a frame pointer. */ +#define CAN_DEBUG_WITHOUT_FP + +/* Some machines may desire to change what optimizations are + performed for various optimization levels. This macro, if + defined, is executed once just after the optimization level is + determined and before the remainder of the command options have + been parsed. Values set in this macro are used as the default + values for the other command line options. + + LEVEL is the optimization level specified; 2 if `-O2' is + specified, 1 if `-O' is specified, and 0 if neither is specified. + + SIZE is non-zero if `-Os' is specified, 0 otherwise. + + You should not use this macro to change options that are not + machine-specific. These should uniformly selected by the same + optimization level on all supported machines. Use this macro to + enable machine-specific optimizations. + + *Do not examine `write_symbols' in this macro!* The debugging + options are not supposed to alter the generated code. */ + +#define OPTIMIZATION_OPTIONS(LEVEL,SIZE) \ +{ \ + if (LEVEL) \ + target_flags |= (MASK_EP | MASK_PROLOG_FUNCTION); \ +} + + +/* Target machine storage layout */ + +/* Define this if most significant bit is lowest numbered + in instructions that operate on numbered bit-fields. + This is not true on the NEC V810. */ +#define BITS_BIG_ENDIAN 0 + +/* Define this if most significant byte of a word is the lowest numbered. */ +/* This is not true on the NEC V810. */ +#define BYTES_BIG_ENDIAN 0 + +/* Define this if most significant word of a multiword number is lowest + numbered. + This is not true on the NEC V810. */ +#define WORDS_BIG_ENDIAN 0 + +/* Number of bits in an addressable storage unit */ +#define BITS_PER_UNIT 8 + +/* Width in bits of a "word", which is the contents of a machine register. + Note that this is not necessarily the width of data type `int'; + if using 16-bit ints on a 68000, this would still be 32. + But on a machine with 16-bit registers, this would be 16. */ +#define BITS_PER_WORD 32 + +/* Width of a word, in units (bytes). */ +#define UNITS_PER_WORD 4 + +/* Width in bits of a pointer. + See also the macro `Pmode' defined below. */ +#define POINTER_SIZE 32 + +/* Define this macro if it is advisable to hold scalars in registers + in a wider mode than that declared by the program. In such cases, + the value is constrained to be within the bounds of the declared + type, but kept valid in the wider mode. The signedness of the + extension may differ from that of the type. + + Some simple experiments have shown that leaving UNSIGNEDP alone + generates the best overall code. */ + +#define PROMOTE_MODE(MODE,UNSIGNEDP,TYPE) \ + if (GET_MODE_CLASS (MODE) == MODE_INT \ + && GET_MODE_SIZE (MODE) < 4) \ + { (MODE) = SImode; } + +/* Allocation boundary (in *bits*) for storing arguments in argument list. */ +#define PARM_BOUNDARY 32 + +/* The stack goes in 32 bit lumps. */ +#define STACK_BOUNDARY 32 + +/* Allocation boundary (in *bits*) for the code of a function. + 16 is the minimum boundary; 32 would give better performance. */ +#define FUNCTION_BOUNDARY 16 + +/* No data type wants to be aligned rounder than this. */ +#define BIGGEST_ALIGNMENT 32 + +/* Alignment of field after `int : 0' in a structure. */ +#define EMPTY_FIELD_BOUNDARY 32 + +/* No structure field wants to be aligned rounder than this. */ +#define BIGGEST_FIELD_ALIGNMENT 32 + +/* Define this if move instructions will actually fail to work + when given unaligned data. */ +#define STRICT_ALIGNMENT 1 + +/* Define this as 1 if `char' should by default be signed; else as 0. + + On the NEC V810, loads do sign extension, so make this default. */ +#define DEFAULT_SIGNED_CHAR 1 + +/* Define results of standard character escape sequences. */ +#define TARGET_BELL 007 +#define TARGET_BS 010 +#define TARGET_TAB 011 +#define TARGET_NEWLINE 012 +#define TARGET_VT 013 +#define TARGET_FF 014 +#define TARGET_CR 015 + +/* Standard register usage. */ + +/* Number of actual hardware registers. + The hardware registers are assigned numbers for the compiler + from 0 to just below FIRST_PSEUDO_REGISTER. + + All registers that the compiler knows about must be given numbers, + even those that are not normally considered general registers. */ + +#define FIRST_PSEUDO_REGISTER 34 + +/* 1 for registers that have pervasive standard uses + and are not available for the register allocator. */ + +#define FIXED_REGISTERS \ + { 1, 1, 0, 1, 1, 0, 0, 0, \ + 0, 0, 0, 0, 0, 0, 0, 0, \ + 0, 0, 0, 0, 0, 0, 0, 0, \ + 0, 0, 0, 0, 0, 0, 1, 0, \ + 1, 1} + +/* 1 for registers not available across function calls. + These must include the FIXED_REGISTERS and also any + registers that can be used without being saved. + The latter must include the registers where values are returned + and the register where structure-value addresses are passed. + Aside from that, you can include as many other registers as you + like. */ + +#define CALL_USED_REGISTERS \ + { 1, 1, 0, 1, 1, 1, 1, 1, \ + 1, 1, 1, 1, 1, 1, 1, 1, \ + 1, 1, 1, 1, 0, 0, 0, 0, \ + 0, 0, 0, 0, 0, 0, 1, 1, \ + 1, 1} + +/* List the order in which to allocate registers. Each register must be + listed once, even those in FIXED_REGISTERS. + + On the 810, we make the return registers first, then all of the volatile + registers, then the saved registers in reverse order to better save the + registers with an out of line function, and finally the fixed + registers. */ + +#define REG_ALLOC_ORDER \ +{ \ + 10, 11, /* return registers */ \ + 12, 13, 14, 15, 16, 17, 18, 19, /* scratch registers */ \ + 6, 7, 8, 9, 31, /* argument registers */ \ + 29, 28, 27, 26, 25, 24, 23, 22, /* saved registers */ \ + 21, 20, 2, \ + 0, 1, 3, 4, 5, 30, 32, 33 /* fixed registers */ \ +} + +/* Return number of consecutive hard regs needed starting at reg REGNO + to hold something of mode MODE. + + This is ordinarily the length in words of a value of mode MODE + but can be less for certain modes in special long registers. */ + +#define HARD_REGNO_NREGS(REGNO, MODE) \ + ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD) + +/* Value is 1 if hard register REGNO can hold a value of machine-mode + MODE. */ + +#define HARD_REGNO_MODE_OK(REGNO, MODE) \ + ((((REGNO) & 1) == 0) || (GET_MODE_SIZE (MODE) <= 4)) + +/* Value is 1 if it is a good idea to tie two pseudo registers + when one has mode MODE1 and one has mode MODE2. + If HARD_REGNO_MODE_OK could produce different values for MODE1 and MODE2, + for any hard reg, then this must be 0 for correct output. */ +#define MODES_TIEABLE_P(MODE1, MODE2) \ + (MODE1 == MODE2 || GET_MODE_SIZE (MODE1) <= 4 && GET_MODE_SIZE (MODE2) <= 4) + + +/* Define the classes of registers for register constraints in the + machine description. Also define ranges of constants. + + One of the classes must always be named ALL_REGS and include all hard regs. + If there is more than one class, another class must be named NO_REGS + and contain no registers. + + The name GENERAL_REGS must be the name of a class (or an alias for + another name such as ALL_REGS). This is the class of registers + that is allowed by "g" or "r" in a register constraint. + Also, registers outside this class are allocated only when + instructions express preferences for them. + + The classes must be numbered in nondecreasing order; that is, + a larger-numbered class must never be contained completely + in a smaller-numbered class. + + For any two classes, it is very desirable that there be another + class that represents their union. */ + +enum reg_class +{ + NO_REGS, GENERAL_REGS, ALL_REGS, LIM_REG_CLASSES +}; + +#define N_REG_CLASSES (int) LIM_REG_CLASSES + +/* Give names of register classes as strings for dump file. */ + +#define REG_CLASS_NAMES \ +{ "NO_REGS", "GENERAL_REGS", "ALL_REGS", "LIM_REGS" } + +/* Define which registers fit in which classes. + This is an initializer for a vector of HARD_REG_SET + of length N_REG_CLASSES. */ + +#define REG_CLASS_CONTENTS \ +{ 0x00000000, /* No regs */ \ + 0xffffffff, /* GENERAL_REGS */ \ + 0xffffffff, /* ALL_REGS */ \ +} + +/* The same information, inverted: + Return the class number of the smallest class containing + reg number REGNO. This could be a conditional expression + or could index an array. */ + +#define REGNO_REG_CLASS(REGNO) GENERAL_REGS + +/* The class value for index registers, and the one for base regs. */ + +#define INDEX_REG_CLASS NO_REGS +#define BASE_REG_CLASS GENERAL_REGS + +/* Get reg_class from a letter such as appears in the machine description. */ + +#define REG_CLASS_FROM_LETTER(C) (NO_REGS) + +/* Macros to check register numbers against specific register classes. */ + +/* These assume that REGNO is a hard or pseudo reg number. + They give nonzero only if REGNO is a hard reg of the suitable class + or a pseudo reg currently allocated to a suitable hard reg. + Since they use reg_renumber, they are safe only once reg_renumber + has been allocated, which happens in local-alloc.c. */ + +#define REGNO_OK_FOR_BASE_P(regno) \ + ((regno) < FIRST_PSEUDO_REGISTER || reg_renumber[regno] >= 0) + +#define REGNO_OK_FOR_INDEX_P(regno) 0 + +/* Given an rtx X being reloaded into a reg required to be + in class CLASS, return the class of reg to actually use. + In general this is just CLASS; but on some machines + in some cases it is preferable to use a more restrictive class. */ + +#define PREFERRED_RELOAD_CLASS(X,CLASS) (CLASS) + +/* Return the maximum number of consecutive registers + needed to represent mode MODE in a register of class CLASS. */ + +#define CLASS_MAX_NREGS(CLASS, MODE) \ + ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD) + +/* The letters I, J, K, L, M, N, O, P in a register constraint string + can be used to stand for particular ranges of immediate operands. + This macro defines what the ranges are. + C is the letter, and VALUE is a constant value. + Return 1 if VALUE is in the range specified by C. */ + +#define INT_7_BITS(VALUE) ((unsigned) (VALUE) + 0x40 < 0x80) +#define INT_8_BITS(VALUE) ((unsigned) (VALUE) + 0x80 < 0x100) +/* zero */ +#define CONST_OK_FOR_I(VALUE) ((VALUE) == 0) +/* 5 bit signed immediate */ +#define CONST_OK_FOR_J(VALUE) ((unsigned) (VALUE) + 0x10 < 0x20) +/* 16 bit signed immediate */ +#define CONST_OK_FOR_K(VALUE) ((unsigned) (VALUE) + 0x8000 < 0x10000) +/* valid constant for movhi instruction. */ +#define CONST_OK_FOR_L(VALUE) \ + (((unsigned) ((int) (VALUE) >> 16) + 0x8000 < 0x10000) \ + && CONST_OK_FOR_I ((VALUE & 0xffff))) +/* 16 bit unsigned immediate */ +#define CONST_OK_FOR_M(VALUE) ((unsigned)(VALUE) < 0x10000) +/* 5 bit unsigned immediate in shift instructions */ +#define CONST_OK_FOR_N(VALUE) ((unsigned) (VALUE) <= 31) + +#define CONST_OK_FOR_O(VALUE) 0 +#define CONST_OK_FOR_P(VALUE) 0 + + +#define CONST_OK_FOR_LETTER_P(VALUE, C) \ + ((C) == 'I' ? CONST_OK_FOR_I (VALUE) : \ + (C) == 'J' ? CONST_OK_FOR_J (VALUE) : \ + (C) == 'K' ? CONST_OK_FOR_K (VALUE) : \ + (C) == 'L' ? CONST_OK_FOR_L (VALUE) : \ + (C) == 'M' ? CONST_OK_FOR_M (VALUE) : \ + (C) == 'N' ? CONST_OK_FOR_N (VALUE) : \ + (C) == 'O' ? CONST_OK_FOR_O (VALUE) : \ + (C) == 'P' ? CONST_OK_FOR_P (VALUE) : \ + 0) + +/* Similar, but for floating constants, and defining letters G and H. + Here VALUE is the CONST_DOUBLE rtx itself. + + `G' is a zero of some form. */ + +#define CONST_DOUBLE_OK_FOR_G(VALUE) \ + ((GET_MODE_CLASS (GET_MODE (VALUE)) == MODE_FLOAT \ + && (VALUE) == CONST0_RTX (GET_MODE (VALUE))) \ + || (GET_MODE_CLASS (GET_MODE (VALUE)) == MODE_INT \ + && CONST_DOUBLE_LOW (VALUE) == 0 \ + && CONST_DOUBLE_HIGH (VALUE) == 0)) + +#define CONST_DOUBLE_OK_FOR_H(VALUE) 0 + +#define CONST_DOUBLE_OK_FOR_LETTER_P(VALUE, C) \ + ((C) == 'G' ? CONST_DOUBLE_OK_FOR_G (VALUE) \ + : (C) == 'H' ? CONST_DOUBLE_OK_FOR_H (VALUE) \ + : 0) + + +/* Stack layout; function entry, exit and calling. */ + +/* Define this if pushing a word on the stack + makes the stack pointer a smaller address. */ + +#define STACK_GROWS_DOWNWARD + +/* Define this if the nominal address of the stack frame + is at the high-address end of the local variables; + that is, each additional local variable allocated + goes at a more negative offset in the frame. */ + +#define FRAME_GROWS_DOWNWARD + +/* Offset within stack frame to start allocating local variables at. + If FRAME_GROWS_DOWNWARD, this is the offset to the END of the + first local allocated. Otherwise, it is the offset to the BEGINNING + of the first local allocated. */ + +#define STARTING_FRAME_OFFSET 0 + +/* Offset of first parameter from the argument pointer register value. */ +/* Is equal to the size of the saved fp + pc, even if an fp isn't + saved since the value is used before we know. */ + +#define FIRST_PARM_OFFSET(FNDECL) 0 + +/* Specify the registers used for certain standard purposes. + The values of these macros are register numbers. */ + +/* Register to use for pushing function arguments. */ +#define STACK_POINTER_REGNUM 3 + +/* Base register for access to local variables of the function. */ +#define FRAME_POINTER_REGNUM 32 + +/* Register containing return address from latest function call. */ +#define LINK_POINTER_REGNUM 31 + +/* On some machines the offset between the frame pointer and starting + offset of the automatic variables is not known until after register + allocation has been done (for example, because the saved registers + are between these two locations). On those machines, define + `FRAME_POINTER_REGNUM' the number of a special, fixed register to + be used internally until the offset is known, and define + `HARD_FRAME_POINTER_REGNUM' to be actual the hard register number + used for the frame pointer. + + You should define this macro only in the very rare circumstances + when it is not possible to calculate the offset between the frame + pointer and the automatic variables until after register + allocation has been completed. When this macro is defined, you + must also indicate in your definition of `ELIMINABLE_REGS' how to + eliminate `FRAME_POINTER_REGNUM' into either + `HARD_FRAME_POINTER_REGNUM' or `STACK_POINTER_REGNUM'. + + Do not define this macro if it would be the same as + `FRAME_POINTER_REGNUM'. */ +#undef HARD_FRAME_POINTER_REGNUM +#define HARD_FRAME_POINTER_REGNUM 29 + +/* Base register for access to arguments of the function. */ +#define ARG_POINTER_REGNUM 33 + +/* Register in which static-chain is passed to a function. */ +#define STATIC_CHAIN_REGNUM 20 + +/* Value should be nonzero if functions must have frame pointers. + Zero means the frame pointer need not be set up (and parms + may be accessed via the stack pointer) in functions that seem suitable. + This is computed in `reload', in reload1.c. */ +#define FRAME_POINTER_REQUIRED 0 + +/* If defined, this macro specifies a table of register pairs used to + eliminate unneeded registers that point into the stack frame. If + it is not defined, the only elimination attempted by the compiler + is to replace references to the frame pointer with references to + the stack pointer. + + The definition of this macro is a list of structure + initializations, each of which specifies an original and + replacement register. + + On some machines, the position of the argument pointer is not + known until the compilation is completed. In such a case, a + separate hard register must be used for the argument pointer. + This register can be eliminated by replacing it with either the + frame pointer or the argument pointer, depending on whether or not + the frame pointer has been eliminated. + + In this case, you might specify: + #define ELIMINABLE_REGS \ + {{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \ + {ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM}, \ + {FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}} + + Note that the elimination of the argument pointer with the stack + pointer is specified first since that is the preferred elimination. */ + +#define ELIMINABLE_REGS \ +{{ FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM }, \ + { FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM }, \ + { ARG_POINTER_REGNUM, STACK_POINTER_REGNUM }, \ + { ARG_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM }} \ + +/* A C expression that returns non-zero if the compiler is allowed to + try to replace register number FROM-REG with register number + TO-REG. This macro need only be defined if `ELIMINABLE_REGS' is + defined, and will usually be the constant 1, since most of the + cases preventing register elimination are things that the compiler + already knows about. */ + +#define CAN_ELIMINATE(FROM, TO) \ + ((TO) == STACK_POINTER_REGNUM ? ! frame_pointer_needed : 1) + +/* This macro is similar to `INITIAL_FRAME_POINTER_OFFSET'. It + specifies the initial difference between the specified pair of + registers. This macro must be defined if `ELIMINABLE_REGS' is + defined. */ + +#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \ +{ \ + if ((FROM) == FRAME_POINTER_REGNUM) \ + (OFFSET) = get_frame_size () + current_function_outgoing_args_size; \ + else if ((FROM) == ARG_POINTER_REGNUM) \ + (OFFSET) = compute_frame_size (get_frame_size (), (long *)0); \ + else \ + abort (); \ +} + +/* A guess for the V810. */ +#define PROMOTE_PROTOTYPES 1 + +/* Keep the stack pointer constant throughout the function. */ +#define ACCUMULATE_OUTGOING_ARGS + +/* Value is the number of bytes of arguments automatically + popped when returning from a subroutine call. + FUNDECL is the declaration node of the function (as a tree), + FUNTYPE is the data type of the function (as a tree), + or for a library call it is an identifier node for the subroutine name. + SIZE is the number of bytes of arguments passed on the stack. */ + +#define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE) 0 + + +/* Define a data type for recording info about an argument list + during the scan of that argument list. This data type should + hold all necessary information about the function itself + and about the args processed so far, enough to enable macros + such as FUNCTION_ARG to determine where the next arg should go. */ + +#define CUMULATIVE_ARGS struct cum_arg +struct cum_arg { int nbytes; }; + +/* Define where to put the arguments to a function. + Value is zero to push the argument on the stack, + or a hard register in which to store the argument. + + MODE is the argument's machine mode. + TYPE is the data type of the argument (as a tree). + This is null for libcalls where that information may + not be available. + CUM is a variable of type CUMULATIVE_ARGS which gives info about + the preceding args and about the function being called. + NAMED is nonzero if this argument is a named parameter + (otherwise it is an extra parameter matching an ellipsis). */ + +#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \ + function_arg (&CUM, MODE, TYPE, NAMED) + +#define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) \ + function_arg_partial_nregs (&CUM, MODE, TYPE, NAMED) + +/* Initialize a variable CUM of type CUMULATIVE_ARGS + for a call to a function whose data type is FNTYPE. + For a library call, FNTYPE is 0. */ + +#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT) \ + ((CUM).nbytes = 0) + +/* Update the data in CUM to advance over an argument + of mode MODE and data type TYPE. + (TYPE is null for libcalls where that information may not be available.) */ + +#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \ + ((CUM).nbytes += ((MODE) != BLKmode \ + ? (GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) & -UNITS_PER_WORD \ + : (int_size_in_bytes (TYPE) + UNITS_PER_WORD - 1) & -UNITS_PER_WORD)) + +/* When a parameter is passed in a register, stack space is still + allocated for it. */ +#define REG_PARM_STACK_SPACE(DECL) (!TARGET_GHS ? 16 : 0) + +/* Define this if the above stack space is to be considered part of the + space allocated by the caller. */ +#define OUTGOING_REG_PARM_STACK_SPACE + +extern int current_function_anonymous_args; +/* Do any setup necessary for varargs/stdargs functions. */ +#define SETUP_INCOMING_VARARGS(CUM, MODE, TYPE, PAS, SECOND) \ + current_function_anonymous_args = (!TARGET_GHS ? 1 : 0); + +#define FUNCTION_ARG_PASS_BY_REFERENCE(CUM, MODE, TYPE, NAMED) \ + ((TYPE) && int_size_in_bytes (TYPE) > 8) + +#define FUNCTION_ARG_CALLEE_COPIES(CUM, MODE, TYPE, NAMED) \ + ((TYPE) && int_size_in_bytes (TYPE) > 8) + +/* 1 if N is a possible register number for function argument passing. */ + +#define FUNCTION_ARG_REGNO_P(N) (N >= 6 && N <= 9) + +/* Define how to find the value returned by a function. + VALTYPE is the data type of the value (as a tree). + If the precise function being called is known, FUNC is its FUNCTION_DECL; + otherwise, FUNC is 0. */ + +#define FUNCTION_VALUE(VALTYPE, FUNC) \ + gen_rtx (REG, TYPE_MODE (VALTYPE), 10) + +/* Define how to find the value returned by a library function + assuming the value has mode MODE. */ + +#define LIBCALL_VALUE(MODE) \ + gen_rtx (REG, MODE, 10) + +/* 1 if N is a possible register number for a function value. */ + +#define FUNCTION_VALUE_REGNO_P(N) ((N) == 10) + +/* Return values > 8 bytes in length in memory. */ +#define DEFAULT_PCC_STRUCT_RETURN 0 +#define RETURN_IN_MEMORY(TYPE) \ + (int_size_in_bytes (TYPE) > 8 || TYPE_MODE (TYPE) == BLKmode) + +/* Register in which address to store a structure value + is passed to a function. On the V810 it's passed as + the first parameter. */ + +#define STRUCT_VALUE 0 + +/* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, + the stack pointer does not matter. The value is tested only in + functions that have frame pointers. + No definition is equivalent to always zero. */ + +#define EXIT_IGNORE_STACK 1 + +/* Output assembler code to FILE to increment profiler label # LABELNO + for profiling a function entry. */ + +#define FUNCTION_PROFILER(FILE, LABELNO) ; + +/*#define TRAMPOLINE_TEMPLATE(FILE) \ + do { \ + fprintf (FILE, "\tjarl .+4,r12\n"); \ + fprintf (FILE, "\tld.w 12[r12],r5\n"); \ + fprintf (FILE, "\tld.w 16[r12],r12\n"); \ + fprintf (FILE, "\tjmp [r12]\n"); \ + fprintf (FILE, "\tnop\n"); \ + fprintf (FILE, "\t.long 0\n"); \ + fprintf (FILE, "\t.long 0\n"); \ + } while (0)*/ + +#define TRAMPOLINE_TEMPLATE(FILE) \ + do { \ + fprintf (FILE, "\tmov r31,r12\n"); \ + fprintf (FILE, "\tjal .+4\n"); \ + fprintf (FILE, "\txor r12,r31\n"); \ + fprintf (FILE, "\txor r31,r12\n"); \ + fprintf (FILE, "\txor r12,r31\n"); \ + fprintf (FILE, "\tld.w 24[r12],r5\n"); \ + fprintf (FILE, "\tld.w 28[r12],r12\n"); \ + fprintf (FILE, "\tjmp [r12]\n"); \ + fprintf (FILE, "\tnop\n"); \ + fprintf (FILE, "\t.long 0\n"); \ + fprintf (FILE, "\t.long 0\n"); \ + } while (0) + +/* Length in units of the trampoline for entering a nested function. */ + +/*#define TRAMPOLINE_SIZE 24*/ +#define TRAMPOLINE_SIZE 32 + +/* Emit RTL insns to initialize the variable parts of a trampoline. + FNADDR is an RTX for the address of the function's pure code. + CXT is an RTX for the static chain value for the function. */ + +#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \ +{ \ + emit_move_insn (gen_rtx (MEM, SImode, plus_constant ((TRAMP), 16)), \ + (CXT)); \ + emit_move_insn (gen_rtx (MEM, SImode, plus_constant ((TRAMP), 20)), \ + (FNADDR)); \ +} + +/* Addressing modes, and classification of registers for them. */ + + +/* 1 if X is an rtx for a constant that is a valid address. */ + +/* ??? This seems too exclusive. May get better code by accepting more + possibilities here, in particular, should accept ZDA_NAME SYMBOL_REFs. */ + +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == CONST_INT \ + && CONST_OK_FOR_K (INTVAL (X))) + +/* Maximum number of registers that can appear in a valid memory address. */ + +#define MAX_REGS_PER_ADDRESS 1 + +/* The macros REG_OK_FOR..._P assume that the arg is a REG rtx + and check its validity for a certain class. + We have two alternate definitions for each of them. + The usual definition accepts all pseudo regs; the other rejects + them unless they have been allocated suitable hard regs. + The symbol REG_OK_STRICT causes the latter definition to be used. + + Most source files want to accept pseudo regs in the hope that + they will get allocated to the class that the insn wants them to be in. + Source files for reload pass need to be strict. + After reload, it makes no difference, since pseudo regs have + been eliminated by then. */ + +#ifndef REG_OK_STRICT + +/* Nonzero if X is a hard reg that can be used as an index + or if it is a pseudo reg. */ +#define REG_OK_FOR_INDEX_P(X) 0 +/* Nonzero if X is a hard reg that can be used as a base reg + or if it is a pseudo reg. */ +#define REG_OK_FOR_BASE_P(X) 1 +#define REG_OK_FOR_INDEX_P_STRICT(X) 0 +#define REG_OK_FOR_BASE_P_STRICT(X) REGNO_OK_FOR_BASE_P (REGNO (X)) +#define STRICT 0 + +#else + +/* Nonzero if X is a hard reg that can be used as an index. */ +#define REG_OK_FOR_INDEX_P(X) 0 +/* Nonzero if X is a hard reg that can be used as a base reg. */ +#define REG_OK_FOR_BASE_P(X) REGNO_OK_FOR_BASE_P (REGNO (X)) +#define STRICT 1 + +#endif + +/* A C expression that defines the optional machine-dependent + constraint letters that can be used to segregate specific types of + operands, usually memory references, for the target machine. + Normally this macro will not be defined. If it is required for a + particular target machine, it should return 1 if VALUE corresponds + to the operand type represented by the constraint letter C. If C + is not defined as an extra constraint, the value returned should + be 0 regardless of VALUE. + + For example, on the ROMP, load instructions cannot have their + output in r0 if the memory reference contains a symbolic address. + Constraint letter `Q' is defined as representing a memory address + that does *not* contain a symbolic address. An alternative is + specified with a `Q' constraint on the input and `r' on the + output. The next alternative specifies `m' on the input and a + register class that does not include r0 on the output. */ + +#define EXTRA_CONSTRAINT(OP, C) \ + ((C) == 'Q' ? ep_memory_operand (OP, GET_MODE (OP)) \ + : (C) == 'R' ? special_symbolref_operand (OP, VOIDmode) \ + : (C) == 'S' ? (GET_CODE (OP) == SYMBOL_REF && ! ZDA_NAME_P (XSTR (OP, 0))) \ + : (C) == 'T' ? 0 \ + : (C) == 'U' ? ((GET_CODE (OP) == SYMBOL_REF && ZDA_NAME_P (XSTR (OP, 0))) \ + || (GET_CODE (OP) == CONST \ + && GET_CODE (XEXP (OP, 0)) == PLUS \ + && GET_CODE (XEXP (XEXP (OP, 0), 0)) == SYMBOL_REF \ + && ZDA_NAME_P (XSTR (XEXP (XEXP (OP, 0), 0), 0)))) \ + : 0) + +/* GO_IF_LEGITIMATE_ADDRESS recognizes an RTL expression + that is a valid memory address for an instruction. + The MODE argument is the machine mode for the MEM expression + that wants to use this address. + + The other macros defined here are used only in GO_IF_LEGITIMATE_ADDRESS, + except for CONSTANT_ADDRESS_P which is actually + machine-independent. */ + +/* Accept either REG or SUBREG where a register is valid. */ + +#define RTX_OK_FOR_BASE_P(X) \ + ((REG_P (X) && REG_OK_FOR_BASE_P (X)) \ + || (GET_CODE (X) == SUBREG && REG_P (SUBREG_REG (X)) \ + && REG_OK_FOR_BASE_P (SUBREG_REG (X)))) + +#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, ADDR) \ +do { \ + if (RTX_OK_FOR_BASE_P (X)) goto ADDR; \ + if (CONSTANT_ADDRESS_P (X) \ + && (MODE == QImode || INTVAL (X) % 2 == 0)) \ + goto ADDR; \ + if (GET_CODE (X) == LO_SUM \ + && GET_CODE (XEXP (X, 0)) == REG \ + && REG_OK_FOR_BASE_P (XEXP (X, 0)) \ + && CONSTANT_P (XEXP (X, 1)) \ + && (GET_CODE (XEXP (X, 1)) != CONST_INT \ + || ((MODE == QImode || INTVAL (XEXP (X, 1)) % 2 == 0) \ + && CONST_OK_FOR_K (INTVAL (XEXP (X, 1))))) \ + && GET_MODE_SIZE (MODE) <= GET_MODE_SIZE (word_mode)) \ + goto ADDR; \ + if (special_symbolref_operand (X, MODE) \ + && (GET_MODE_SIZE (MODE) <= GET_MODE_SIZE (word_mode))) \ + goto ADDR; \ + if (GET_CODE (X) == PLUS \ + && CONSTANT_ADDRESS_P (XEXP (X, 1)) \ + && (MODE == QImode || INTVAL (XEXP (X, 1)) % 2 == 0) \ + && RTX_OK_FOR_BASE_P (XEXP (X, 0))) goto ADDR; \ +} while (0) + + +/* Try machine-dependent ways of modifying an illegitimate address + to be legitimate. If we find one, return the new, valid address. + This macro is used in only one place: `memory_address' in explow.c. + + OLDX is the address as it was before break_out_memory_refs was called. + In some cases it is useful to look at this to decide what needs to be done. + + MODE and WIN are passed so that this macro can use + GO_IF_LEGITIMATE_ADDRESS. + + It is always safe for this macro to do nothing. It exists to recognize + opportunities to optimize the output. */ + +#define LEGITIMIZE_ADDRESS(X,OLDX,MODE,WIN) {} + +/* Go to LABEL if ADDR (a legitimate address expression) + has an effect that depends on the machine mode it is used for. */ + +#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR,LABEL) {} + +/* Nonzero if the constant value X is a legitimate general operand. + It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */ + +#define LEGITIMATE_CONSTANT_P(X) \ + (GET_CODE (X) == CONST_DOUBLE \ + || !(GET_CODE (X) == CONST \ + && GET_CODE (XEXP (X, 0)) == PLUS \ + && GET_CODE (XEXP (XEXP (X, 0), 0)) == SYMBOL_REF \ + && GET_CODE (XEXP (XEXP (X, 0), 1)) == CONST_INT \ + && ! CONST_OK_FOR_K (INTVAL (XEXP (XEXP (X, 0), 1))))) + +/* In rare cases, correct code generation requires extra machine + dependent processing between the second jump optimization pass and + delayed branch scheduling. On those machines, define this macro + as a C statement to act on the code starting at INSN. */ + +#define MACHINE_DEPENDENT_REORG(INSN) v810_reorg (INSN) + + +/* Tell final.c how to eliminate redundant test instructions. */ + +/* Here we define machine-dependent flags and fields in cc_status + (see `conditions.h'). No extra ones are needed for the vax. */ + +/* Store in cc_status the expressions + that the condition codes will describe + after execution of an instruction whose pattern is EXP. + Do not alter them if the instruction would not alter the cc's. */ + +#define CC_OVERFLOW_UNUSABLE 0x200 +#define CC_NO_CARRY CC_NO_OVERFLOW +#define NOTICE_UPDATE_CC(EXP, INSN) notice_update_cc(EXP, INSN) + +/* A part of a C `switch' statement that describes the relative costs + of constant RTL expressions. It must contain `case' labels for + expression codes `const_int', `const', `symbol_ref', `label_ref' + and `const_double'. Each case must ultimately reach a `return' + statement to return the relative cost of the use of that kind of + constant value in an expression. The cost may depend on the + precise value of the constant, which is available for examination + in X, and the rtx code of the expression in which it is contained, + found in OUTER_CODE. + + CODE is the expression code--redundant, since it can be obtained + with `GET_CODE (X)'. */ + +#define CONST_COSTS(RTX,CODE,OUTER_CODE) \ + case CONST_INT: \ + case CONST_DOUBLE: \ + case CONST: \ + case SYMBOL_REF: \ + case LABEL_REF: \ + { \ + int _zxy = const_costs(RTX, CODE); \ + return (_zxy) ? COSTS_N_INSNS (_zxy) : 0; \ + } + +/* A crude cut at RTX_COSTS for the V810. */ + +/* Provide the costs of a rtl expression. This is in the body of a + switch on CODE. + + There aren't DImode MOD, DIV or MULT operations, so call them + very expensive. Everything else is pretty much a constant cost. */ + +/*#define RTX_COSTS(RTX,CODE,OUTER_CODE) \ + case MOD: \ + case DIV: \ + return 60; \ + case MULT: \ + return 20;*/ + +/* All addressing modes have the same cost on the V810 series. */ +#define ADDRESS_COST(ADDR) 1 + +/* Nonzero if access to memory by bytes or half words is no faster + than accessing full words. */ +#define SLOW_BYTE_ACCESS 1 + +/* Define this if zero-extension is slow (more than one real instruction). */ +#define SLOW_ZERO_EXTEND + +/* According expr.c, a value of around 6 should minimize code size, and + for the V810 series, that's our primary concern. */ +#define MOVE_RATIO 6 + +/* Indirect calls are expensive, never turn a direct call + into an indirect call. */ +#define NO_FUNCTION_CSE + +/* The four different data regions on the v810. */ +typedef enum +{ + DATA_AREA_NORMAL, + DATA_AREA_SDA, + DATA_AREA_TDA, + DATA_AREA_ZDA +} v810_data_area; + +/* A list of names for sections other than the standard two, which are + `in_text' and `in_data'. You need not define this macro on a + system with no other sections (that GCC needs to use). */ +#undef EXTRA_SECTIONS +#define EXTRA_SECTIONS in_tdata, in_sdata, in_zdata, in_const, in_ctors, \ +in_dtors, in_rozdata, in_rosdata, in_sbss, in_zbss, in_zcommon, in_scommon + +/* One or more functions to be defined in `varasm.c'. These + functions should do jobs analogous to those of `text_section' and + `data_section', for your additional sections. Do not define this + macro if you do not define `EXTRA_SECTIONS'. */ +#undef EXTRA_SECTION_FUNCTIONS + +/* This could be done a lot more cleanly using ANSI C ... */ +#define EXTRA_SECTION_FUNCTIONS \ +CONST_SECTION_FUNCTION \ +CTORS_SECTION_FUNCTION \ +DTORS_SECTION_FUNCTION \ + \ +void \ +sdata_section () \ +{ \ + if (in_section != in_sdata) \ + { \ + fprintf (asm_out_file, "%s\n", SDATA_SECTION_ASM_OP); \ + in_section = in_sdata; \ + } \ +} \ + \ +void \ +rosdata_section () \ +{ \ + if (in_section != in_rosdata) \ + { \ + fprintf (asm_out_file, "%s\n", ROSDATA_SECTION_ASM_OP); \ + in_section = in_sdata; \ + } \ +} \ + \ +void \ +sbss_section () \ +{ \ + if (in_section != in_sbss) \ + { \ + fprintf (asm_out_file, "%s\n", SBSS_SECTION_ASM_OP); \ + in_section = in_sbss; \ + } \ +} \ + \ +void \ +tdata_section () \ +{ \ + if (in_section != in_tdata) \ + { \ + fprintf (asm_out_file, "%s\n", TDATA_SECTION_ASM_OP); \ + in_section = in_tdata; \ + } \ +} \ + \ +void \ +zdata_section () \ +{ \ + if (in_section != in_zdata) \ + { \ + fprintf (asm_out_file, "%s\n", ZDATA_SECTION_ASM_OP); \ + in_section = in_zdata; \ + } \ +} \ + \ +void \ +rozdata_section () \ +{ \ + if (in_section != in_rozdata) \ + { \ + fprintf (asm_out_file, "%s\n", ROZDATA_SECTION_ASM_OP); \ + in_section = in_rozdata; \ + } \ +} \ + \ +void \ +zbss_section () \ +{ \ + if (in_section != in_zbss) \ + { \ + fprintf (asm_out_file, "%s\n", ZBSS_SECTION_ASM_OP); \ + in_section = in_zbss; \ + } \ +} + +#define TEXT_SECTION_ASM_OP "\t.section .text" +#define DATA_SECTION_ASM_OP "\t.section .data" +#define BSS_SECTION_ASM_OP "\t.section .bss" +#define SDATA_SECTION_ASM_OP "\t.section .sdata,\"aw\"" +#define SBSS_SECTION_ASM_OP "\t.section .sbss,\"aw\"" +#define ZDATA_SECTION_ASM_OP "\t.section .zdata,\"aw\"" +#define ZBSS_SECTION_ASM_OP "\t.section .zbss,\"aw\"" +#define TDATA_SECTION_ASM_OP "\t.section .tdata,\"aw\"" +#define ROSDATA_SECTION_ASM_OP "\t.section .rosdata,\"a\"" +#define ROZDATA_SECTION_ASM_OP "\t.section .rozdata,\"a\"" + +#define SCOMMON_ASM_OP ".scomm" +#define ZCOMMON_ASM_OP ".zcomm" +#define TCOMMON_ASM_OP ".tcomm" + +/* A C statement or statements to switch to the appropriate section + for output of EXP. You can assume that EXP is either a `VAR_DECL' + node or a constant of some sort. RELOC indicates whether the + initial value of EXP requires link-time relocations. Select the + section by calling `text_section' or one of the alternatives for + other sections. + + Do not define this macro if you put all read-only variables and + constants in the read-only data section (usually the text section). */ +#undef SELECT_SECTION +#define SELECT_SECTION(EXP, RELOC) \ +do { \ + if (TREE_CODE (EXP) == VAR_DECL) \ + { \ + int is_const; \ + if (!TREE_READONLY (EXP) \ + || TREE_SIDE_EFFECTS (EXP) \ + || !DECL_INITIAL (EXP) \ + || (DECL_INITIAL (EXP) != error_mark_node \ + && !TREE_CONSTANT (DECL_INITIAL (EXP)))) \ + is_const = FALSE; \ + else \ + is_const = TRUE; \ + \ + switch (v810_get_data_area (EXP)) \ + { \ + case DATA_AREA_ZDA: \ + if (is_const) \ + rozdata_section (); \ + else \ + zdata_section (); \ + break; \ + \ + case DATA_AREA_TDA: \ + tdata_section (); \ + break; \ + \ + case DATA_AREA_SDA: \ + if (is_const) \ + rosdata_section (); \ + else \ + sdata_section (); \ + break; \ + \ + default: \ + if (is_const) \ + const_section (); \ + else \ + data_section (); \ + break; \ + } \ + } \ + else if (TREE_CODE (EXP) == STRING_CST) \ + { \ + if (! flag_writable_strings) \ + const_section (); \ + else \ + data_section (); \ + } \ + \ + else \ + const_section (); \ + \ +} while (0) + +/* A C statement or statements to switch to the appropriate section + for output of RTX in mode MODE. You can assume that RTX is some + kind of constant in RTL. The argument MODE is redundant except in + the case of a `const_int' rtx. Select the section by calling + `text_section' or one of the alternatives for other sections. + + Do not define this macro if you put all constants in the read-only + data section. */ +/* #define SELECT_RTX_SECTION(MODE, RTX) */ + +/* Output at beginning/end of assembler file. */ +#undef ASM_FILE_START +#define ASM_FILE_START(FILE) asm_file_start(FILE) + +#define ASM_COMMENT_START "#" + +/* Output to assembler file text saying following lines + may contain character constants, extra white space, comments, etc. */ + +#define ASM_APP_ON "#APP\n" + +/* Output to assembler file text saying following lines + no longer contain unusual constructs. */ + +#define ASM_APP_OFF "#NO_APP\n" + +/* This is how to output an assembler line defining a `double' constant. + It is .double or .float, depending. */ + +#define ASM_OUTPUT_DOUBLE(FILE, VALUE) \ +do { char dstr[30]; \ + REAL_VALUE_TO_DECIMAL ((VALUE), "%.20e", dstr); \ + fprintf (FILE, "\t.double %s\n", dstr); \ + } while (0) + + +/* This is how to output an assembler line defining a `float' constant. */ +#define ASM_OUTPUT_FLOAT(FILE, VALUE) \ +do { char dstr[30]; \ + REAL_VALUE_TO_DECIMAL ((VALUE), "%.20e", dstr); \ + fprintf (FILE, "\t.float %s\n", dstr); \ + } while (0) + +/* This is how to output an assembler line defining an `int' constant. */ + +#define ASM_OUTPUT_INT(FILE, VALUE) \ +( fprintf (FILE, "\t.long "), \ + output_addr_const (FILE, (VALUE)), \ + fprintf (FILE, "\n")) + +/* Likewise for `char' and `short' constants. */ + +#define ASM_OUTPUT_SHORT(FILE, VALUE) \ +( fprintf (FILE, "\t.hword "), \ + output_addr_const (FILE, (VALUE)), \ + fprintf (FILE, "\n")) + +#define ASM_OUTPUT_CHAR(FILE, VALUE) \ +( fprintf (FILE, "\t.byte "), \ + output_addr_const (FILE, (VALUE)), \ + fprintf (FILE, "\n")) + +/* This is how to output an assembler line for a numeric constant byte. */ +#define ASM_OUTPUT_BYTE(FILE, VALUE) \ + fprintf (FILE, "\t.byte 0x%x\n", (VALUE)) + +/* Define the parentheses used to group arithmetic operations + in assembler code. */ + +#define ASM_OPEN_PAREN "(" +#define ASM_CLOSE_PAREN ")" + +/* This says how to output the assembler to define a global + uninitialized but not common symbol. */ + +#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ + asm_output_aligned_bss ((FILE), (DECL), (NAME), (SIZE), (ALIGN)) + +#undef ASM_OUTPUT_ALIGNED_BSS +#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ + v810_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) + +/* This says how to output the assembler to define a global + uninitialized, common symbol. */ +#undef ASM_OUTPUT_ALIGNED_COMMON +#undef ASM_OUTPUT_COMMON +#define ASM_OUTPUT_ALIGNED_DECL_COMMON(FILE, DECL, NAME, SIZE, ALIGN) \ + v810_output_common (FILE, DECL, NAME, SIZE, ALIGN) + +/* This says how to output the assembler to define a local + uninitialized symbol. */ +#undef ASM_OUTPUT_ALIGNED_LOCAL +#undef ASM_OUTPUT_LOCAL +#define ASM_OUTPUT_ALIGNED_DECL_LOCAL(FILE, DECL, NAME, SIZE, ALIGN) \ + v810_output_local (FILE, DECL, NAME, SIZE, ALIGN) + +/* This is how to output the definition of a user-level label named NAME, + such as the label on a static function or variable NAME. */ + +#define ASM_OUTPUT_LABEL(FILE, NAME) \ + do { assemble_name (FILE, NAME); fputs (":\n", FILE); } while (0) + +/* This is how to output a command to make the user-level label named NAME + defined for reference from other files. */ + +#define ASM_GLOBALIZE_LABEL(FILE, NAME) \ + do { fputs ("\t.global ", FILE); assemble_name (FILE, NAME); fputs ("\n", FILE);} while (0) + +/* This is how to output a reference to a user-level label named NAME. + `assemble_name' uses this. */ + +#undef ASM_OUTPUT_LABELREF +#define ASM_OUTPUT_LABELREF(FILE, NAME) \ + do { \ + char* real_name; \ + STRIP_NAME_ENCODING (real_name, (NAME)); \ + fprintf (FILE, "_%s", real_name); \ + } while (0) + +/* Store in OUTPUT a string (made with alloca) containing + an assembler-name for a local static variable named NAME. + LABELNO is an integer which is different for each call. */ + +#define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \ +( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10), \ + sprintf ((OUTPUT), "%s___%d", (NAME), (LABELNO))) + +/* This is how we tell the assembler that two symbols have the same value. */ + +#define ASM_OUTPUT_DEF(FILE,NAME1,NAME2) \ + do { assemble_name(FILE, NAME1); \ + fputs(" = ", FILE); \ + assemble_name(FILE, NAME2); \ + fputc('\n', FILE); } while (0) + + +/* How to refer to registers in assembler output. + This sequence is indexed by compiler's hard-register-number (see above). */ + +#define REGISTER_NAMES \ +{ "r0", "r1", "r2", "sp", "gp", "r5", "r6" , "r7", \ + "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", \ + "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23", \ + "r24", "r25", "r26", "r27", "r28", "r29", "ep", "r31", \ + ".fp", ".ap"} + +#define ADDITIONAL_REGISTER_NAMES \ +{ { "zero", 0 }, \ + { "hp", 2 }, \ + { "r3", 3 }, \ + { "r4", 4 }, \ + { "tp", 5 }, \ + { "fp", 29 }, \ + { "r30", 30 }, \ + { "lp", 31} } + +/* Print an instruction operand X on file FILE. + look in v810.c for details */ + +#define PRINT_OPERAND(FILE, X, CODE) print_operand (FILE, X, CODE) + +#define PRINT_OPERAND_PUNCT_VALID_P(CODE) \ + ((CODE) == '.') + +/* Print a memory operand whose address is X, on file FILE. + This uses a function in output-vax.c. */ + +#define PRINT_OPERAND_ADDRESS(FILE, ADDR) print_operand_address (FILE, ADDR) + +#define ASM_OUTPUT_REG_PUSH(FILE,REGNO) +#define ASM_OUTPUT_REG_POP(FILE,REGNO) + +/* This is how to output an element of a case-vector that is absolute. */ + +#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \ + asm_fprintf (FILE, "\t%s .L%d\n", \ + (TARGET_BIG_SWITCH ? ".long" : ".short"), VALUE) + +/* This is how to output an element of a case-vector that is relative. */ + +#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \ + fprintf (FILE, "\t%s .L%d-.L%d\n", \ + (TARGET_BIG_SWITCH ? ".long" : ".short"), \ + VALUE, REL) + +#define ASM_OUTPUT_ALIGN(FILE,LOG) \ + if ((LOG) != 0) \ + fprintf (FILE, "\t.align %d\n", (LOG)) + +/* We don't have to worry about dbx compatibility for the v810. */ +#define DEFAULT_GDB_EXTENSIONS 1 + +/* Use stabs debugging info by default. */ +#undef PREFERRED_DEBUGGING_TYPE +#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG + +#define DBX_REGISTER_NUMBER(REGNO) REGNO + +/* Define to use software floating point emulator for REAL_ARITHMETIC and + decimal <-> binary conversion. */ +#define REAL_ARITHMETIC + +/* Specify the machine mode that this machine uses + for the index in the tablejump instruction. */ +#define CASE_VECTOR_MODE (TARGET_BIG_SWITCH ? SImode : HImode) + +/* Define this if the case instruction drops through after the table + when the index is out of range. Don't define it if the case insn + jumps to the default label instead. */ +/* #define CASE_DROPS_THROUGH */ + +/* Define as C expression which evaluates to nonzero if the tablejump + instruction expects the table to contain offsets from the address of the + table. + Do not define this if the table should contain absolute addresses. */ +#define CASE_VECTOR_PC_RELATIVE 1 + +/* The switch instruction requires that the jump table immediately follow + it. */ +#define JUMP_TABLES_IN_TEXT_SECTION 1 + +/* svr4.h defines this assuming that 4 byte alignment is required. */ +#undef ASM_OUTPUT_BEFORE_CASE_LABEL +#define ASM_OUTPUT_BEFORE_CASE_LABEL(FILE,PREFIX,NUM,TABLE) \ + ASM_OUTPUT_ALIGN ((FILE), (TARGET_BIG_SWITCH ? 2 : 1)); + +#define WORD_REGISTER_OPERATIONS + +/* Byte and short loads sign extend the value to a word. */ +#define LOAD_EXTEND_OP(MODE) SIGN_EXTEND + +/* Specify the tree operation to be used to convert reals to integers. */ +#define IMPLICIT_FIX_EXPR FIX_ROUND_EXPR + +/* This flag, if defined, says the same insns that convert to a signed fixnum + also convert validly to an unsigned one. */ +#define FIXUNS_TRUNC_LIKE_FIX_TRUNC + +/* This is the kind of divide that is easiest to do in the general case. */ +#define EASY_DIV_EXPR TRUNC_DIV_EXPR + +/* Max number of bytes we can move from memory to memory + in one reasonably fast instruction. */ +#define MOVE_MAX 4 + +/* Define if shifts truncate the shift count + which implies one can omit a sign-extension or zero-extension + of a shift count. */ +#define SHIFT_COUNT_TRUNCATED 1 + +/* Value is 1 if truncating an integer of INPREC bits to OUTPREC bits + is done just by pretending it is already truncated. */ +#define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1 + +#define STORE_FLAG_VALUE 1 + +/* Specify the machine mode that pointers have. + After generation of rtl, the compiler makes no further distinction + between pointers and any other objects of this machine mode. */ +#define Pmode SImode + +/* A function address in a call instruction + is a byte address (for indexing purposes) + so give the MEM rtx a byte's mode. */ +#define FUNCTION_MODE QImode + +/* A C expression whose value is nonzero if IDENTIFIER with arguments ARGS + is a valid machine specific attribute for DECL. + The attributes in ATTRIBUTES have previously been assigned to DECL. */ +#define VALID_MACHINE_DECL_ATTRIBUTE(DECL, ATTRIBUTES, IDENTIFIER, ARGS) \ + v810_valid_machine_decl_attribute (DECL, IDENTIFIER, ARGS) + +/* A C statement that assigns default attributes to a newly created DECL. */ +#define SET_DEFAULT_DECL_ATTRIBUTES(decl, attr) \ + v810_set_default_decl_attr (decl) + +/* Tell compiler we want to support GHS pragmas */ +#define HANDLE_PRAGMA(get, unget, name) v810_handle_pragma (get, unget, name) + +enum v810_pragma_state +{ + V810_PS_START, + V810_PS_SHOULD_BE_DONE, + V810_PS_BAD, + V810_PS_MAYBE_SECTION_NAME, + V810_PS_EXPECTING_EQUALS, + V810_PS_EXPECTING_SECTION_ALIAS, + V810_PS_MAYBE_COMMA +}; + +enum v810_pragma_type +{ + V810_PT_UNKNOWN, + V810_PT_INTERRUPT, + V810_PT_SECTION, + V810_PT_START_SECTION, + V810_PT_END_SECTION +}; + +/* enum GHS_SECTION_KIND is an enumeration of the kinds of sections that + can appear in the "ghs section" pragma. These names are used to index + into the GHS_default_section_names[] and GHS_current_section_names[] + that are defined in v810.c, and so the ordering of each must remain + consistant. + + These arrays give the default and current names for each kind of + section defined by the GHS pragmas. The current names can be changed + by the "ghs section" pragma. If the current names are null, use + the default names. Note that the two arrays have different types. + + For the *normal* section kinds (like .data, .text, etc.) we do not + want to explicitly force the name of these sections, but would rather + let the linker (or at least the back end) choose the name of the + section, UNLESS the user has force a specific name for these section + kinds. To accomplish this set the name in ghs_default_section_names + to null. */ + +enum GHS_section_kind +{ + GHS_SECTION_KIND_DEFAULT, + + GHS_SECTION_KIND_TEXT, + GHS_SECTION_KIND_DATA, + GHS_SECTION_KIND_RODATA, + GHS_SECTION_KIND_BSS, + GHS_SECTION_KIND_SDATA, + GHS_SECTION_KIND_ROSDATA, + GHS_SECTION_KIND_TDATA, + GHS_SECTION_KIND_ZDATA, + GHS_SECTION_KIND_ROZDATA, + + COUNT_OF_GHS_SECTION_KINDS /* must be last */ +}; + +/* The assembler op to start the file. */ + +#define FILE_ASM_OP "\t.file\n" + +/* Enable the register move pass to improve code. */ +#define ENABLE_REGMOVE_PASS + + +/* Implement ZDA, TDA, and SDA */ + +#define EP_REGNUM 30 /* ep register number */ + +#define ENCODE_SECTION_INFO(DECL) \ +do { \ + if ((TREE_STATIC (DECL) || DECL_EXTERNAL (DECL)) \ + && TREE_CODE (DECL) == VAR_DECL) \ + v810_encode_data_area (DECL); \ +} while (0) + +#define ZDA_NAME_FLAG_CHAR '@' +#define TDA_NAME_FLAG_CHAR '%' +#define SDA_NAME_FLAG_CHAR '&' + +#define ZDA_NAME_P(NAME) (*(NAME) == ZDA_NAME_FLAG_CHAR) +#define TDA_NAME_P(NAME) (*(NAME) == TDA_NAME_FLAG_CHAR) +#define SDA_NAME_P(NAME) (*(NAME) == SDA_NAME_FLAG_CHAR) + +#define ENCODED_NAME_P(SYMBOL_NAME) \ + (ZDA_NAME_P (SYMBOL_NAME) \ + || TDA_NAME_P (SYMBOL_NAME) \ + || SDA_NAME_P (SYMBOL_NAME)) + +#define STRIP_NAME_ENCODING(VAR,SYMBOL_NAME) \ + (VAR) = (SYMBOL_NAME) + (ENCODED_NAME_P (SYMBOL_NAME) || *(SYMBOL_NAME) == '*') + +/* Define this if you have defined special-purpose predicates in the + file `MACHINE.c'. This macro is called within an initializer of an + array of structures. The first field in the structure is the name + of a predicate and the second field is an array of rtl codes. For + each predicate, list all rtl codes that can be in expressions + matched by the predicate. The list should have a trailing comma. */ + +#define PREDICATE_CODES \ +{ "ep_memory_operand", { MEM }}, \ +{ "reg_or_0_operand", { REG, SUBREG, CONST_INT, CONST_DOUBLE }}, \ +{ "reg_or_int5_operand", { REG, SUBREG, CONST_INT }}, \ +{ "call_address_operand", { REG, SYMBOL_REF }}, \ +{ "movsi_source_operand", { LABEL_REF, SYMBOL_REF, CONST_INT, \ + CONST_DOUBLE, CONST, HIGH, MEM, \ + REG, SUBREG }}, \ +{ "special_symbolref_operand", { SYMBOL_REF }}, \ +{ "power_of_two_operand", { CONST_INT }}, \ +{ "pattern_is_ok_for_prologue", { PARALLEL }}, \ +{ "pattern_is_ok_for_epilogue", { PARALLEL }}, \ +{ "register_is_ok_for_epilogue",{ REG }}, \ +{ "not_power_of_two_operand", { CONST_INT }}, + + /* Note, due to dependency and search path conflicts, prototypes + involving the FILE, rtx or tree types cannot be included here. + They are included at the start of v810.c */ + +extern void asm_file_start (); +extern void print_operand (); +extern void print_operand_address (); +extern int function_arg_partial_nregs (); +extern int const_costs (); +extern char * output_move_double (); +extern char * output_move_single (); +extern int ep_memory_operand (); +extern int reg_or_0_operand (); +extern int reg_or_int5_operand (); +extern int call_address_operand (); +extern int movsi_source_operand (); +extern int power_of_two_operand (); +extern int not_power_of_two_operand (); +extern int special_symbolref_operand (); +extern void v810_reorg (); +extern void notice_update_cc (); +extern int v810_valid_machine_decl_attribute (); +extern int v810_interrupt_function_p (); +extern int pattern_is_ok_for_prologue (); +extern int pattern_is_ok_for_epilogue (); +extern int register_is_ok_for_epilogue (); +extern char * construct_save_jarl (); +extern char * construct_restore_jr (); + +extern void override_options PROTO ((void)); +extern int compute_register_save_size PROTO ((long *)); +extern int compute_frame_size PROTO ((int, long *)); +extern void expand_prologue PROTO ((void)); +extern void expand_epilogue PROTO ((void)); + +extern void v810_output_aligned_bss (); +extern void v810_output_common (); +extern void v810_output_local (); +extern void sdata_section PROTO ((void)); +extern void rosdata_section PROTO ((void)); +extern void sbss_section PROTO ((void)); +extern void tdata_section PROTO ((void)); +extern void zdata_section PROTO ((void)); +extern void rozdata_section PROTO ((void)); +extern void zbss_section PROTO ((void)); +extern int v810_handle_pragma PROTO ((int (*)(void), void (*)(int), char *)); +extern void v810_encode_data_area (); +extern void v810_set_default_decl_attr (); +extern v810_data_area v810_get_data_area (); diff -urN gcc-2.95.2.org/gcc/config/v810/v810.md gcc-2.95.2/gcc/config/v810/v810.md --- gcc-2.95.2.org/gcc/config/v810/v810.md 1969-12-31 16:00:00.000000000 -0800 +++ gcc-2.95.2/gcc/config/v810/v810.md 2011-03-20 04:03:11.000000000 -0700 @@ -0,0 +1,1348 @@ +;; GCC machine description for NEC V810 +;; Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc. + +;; Contributed by Jeff Law (law@cygnus.com). + +;; This file is part of GNU CC. + +;; GNU CC 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. + +;; GNU CC 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 GNU CC; see the file COPYING. If not, write to +;; the Free Software Foundation, 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;; The original PO technology requires these to be ordered by speed, +;; so that assigner will pick the fastest. + +;; See file "rtl.def" for documentation on define_insn, match_*, et. al. + +;; The V851 manual states that the instruction address space is 16M; +;; the various branch/call instructions only have a 22bit offset (4M range). +;; +;; One day we'll probably need to handle calls to targets more than 4M +;; away. + +;; The size of instructions in bytes. + +(define_attr "length" "" + (const_int 200)) + +(define_attr "long_calls" "yes,no" + (const (if_then_else (symbol_ref "TARGET_LONG_CALLS") + (const_string "yes") + (const_string "no")))) + +(define_attr "prolog_function" "yes,no" + (const (if_then_else (symbol_ref "TARGET_PROLOG_FUNCTION") + (const_string "yes") + (const_string "no")))) + +;; Types of instructions (for scheduling purposes). + +(define_attr "type" "load,store,mul,div,udiv,other" + (const_string "other")) + +;; Condition code settings. +;; none - insn does not affect cc +;; none_0hit - insn does not affect cc but it does modify operand 0 +;; This attribute is used to keep track of when operand 0 changes. +;; See the description of NOTICE_UPDATE_CC for more info. +;; set_znv - sets z,n,v to usable values; c is unknown. +;; set_zn - sets z,n to usable values; v,c is unknown. +;; compare - compare instruction +;; clobber - value of cc is unknown +(define_attr "cc" "none,none_0hit,set_zn,set_znv,compare,clobber" + (const_string "clobber")) + +;; Function units for the V810. As best as I can tell, there's +;; a traditional memory load/use stall as well as a stall if +;; the result of a multiply is used too early. +;; + +(define_function_unit "mem" 1 0 (eq_attr "type" "load") 2 0) +(define_function_unit "mem" 1 0 (eq_attr "type" "store") 1 2 [(eq_attr "type" "load")]) +;; (define_function_unit "ex" 1 0 (eq_attr "type" "other") 1 0) +(define_function_unit "ex" 1 0 (eq_attr "type" "mul") 2 2) +(define_function_unit "ex" 1 0 (eq_attr "type" "div") 37 37) +(define_function_unit "ex" 1 0 (eq_attr "type" "udiv") 35 35) + + + +;; ---------------------------------------------------------------------- +;; MOVE INSTRUCTIONS +;; ---------------------------------------------------------------------- + +;; movqi + +(define_expand "movqi" + [(set (match_operand:QI 0 "general_operand" "") + (match_operand:QI 1 "general_operand" ""))] + "" + " +{ + /* One of the ops has to be in a register or 0 */ + if (!register_operand (operand0, QImode) + && !reg_or_0_operand (operand1, QImode)) + operands[1] = copy_to_mode_reg (QImode, operand1); +}") + +(define_insn "*movqi_internal" + [(set (match_operand:QI 0 "general_operand" "=r,r,r,Q,r,m,m") + (match_operand:QI 1 "general_operand" "Jr,n,Q,Ir,m,r,I"))] + "register_operand (operands[0], QImode) + || reg_or_0_operand (operands[1], QImode)" + "* return output_move_single (operands);" + [(set_attr "length" "2,4,2,2,4,4,4") + (set_attr "cc" "none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit") + (set_attr "type" "other,other,load,store,load,store,store")]) + +;; movhi + +(define_expand "movhi" + [(set (match_operand:HI 0 "general_operand" "") + (match_operand:HI 1 "general_operand" ""))] + "" + " +{ + /* One of the ops has to be in a register or 0 */ + if (!register_operand (operand0, HImode) + && !reg_or_0_operand (operand1, HImode)) + operands[1] = copy_to_mode_reg (HImode, operand1); +}") + +(define_insn "*movhi_internal" + [(set (match_operand:HI 0 "general_operand" "=r,r,r,Q,r,m,m") + (match_operand:HI 1 "general_operand" "Jr,n,Q,Ir,m,r,I"))] + "register_operand (operands[0], HImode) + || reg_or_0_operand (operands[1], HImode)" + "* return output_move_single (operands);" + [(set_attr "length" "2,4,2,2,4,4,4") + (set_attr "cc" "none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit") + (set_attr "type" "other,other,load,store,load,store,store")]) + +;; movsi and helpers + +(define_insn "*movsi_high" + [(set (match_operand:SI 0 "register_operand" "=r") + (high:SI (match_operand 1 "" "")))] + "" + "movhi hi(%1),%.,%0" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit") + (set_attr "type" "other")]) + +(define_insn "*movsi_lo" + [(set (match_operand:SI 0 "register_operand" "=r") + (lo_sum:SI (match_operand:SI 1 "register_operand" "r") + (match_operand:SI 2 "immediate_operand" "i")))] + "" + "movea lo(%2),%1,%0" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit") + (set_attr "type" "other")]) + +(define_expand "movsi" + [(set (match_operand:SI 0 "general_operand" "") + (match_operand:SI 1 "general_operand" ""))] + "" + " +{ + /* One of the ops has to be in a register or 0 */ + if (!register_operand (operand0, SImode) + && !reg_or_0_operand (operand1, SImode)) + operands[1] = copy_to_mode_reg (SImode, operand1); + + /* Some constants, as well as symbolic operands + must be done with HIGH & LO_SUM patterns. */ + if (CONSTANT_P (operands[1]) + && GET_CODE (operands[1]) != HIGH + && !special_symbolref_operand (operands[1], VOIDmode) + && !(GET_CODE (operands[1]) == CONST_INT + && (CONST_OK_FOR_J (INTVAL (operands[1])) + || CONST_OK_FOR_K (INTVAL (operands[1])) + || CONST_OK_FOR_L (INTVAL (operands[1]))))) + { + rtx high; + rtx temp; + + if (reload_in_progress || reload_completed) + temp = operands[0]; + else + temp = gen_reg_rtx (SImode); + + emit_insn (gen_rtx (SET, SImode, temp, + gen_rtx (HIGH, SImode, operand1))); + emit_insn (gen_rtx (SET, SImode, operand0, + gen_rtx (LO_SUM, SImode, temp, operand1))); + DONE; + } +}") + +(define_insn "*movsi_internal" + [(set (match_operand:SI 0 "general_operand" "=r,r,r,r,Q,r,r,m,m") + (match_operand:SI 1 "movsi_source_operand" "Jr,K,L,Q,Ir,m,R,r,I"))] + "register_operand (operands[0], SImode) + || reg_or_0_operand (operands[1], SImode)" + "* return output_move_single (operands);" + [(set_attr "length" "2,4,4,2,2,4,4,4,4") + (set_attr "cc" "none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit") + (set_attr "type" "other,other,other,load,store,load,other,store,store")]) + + + +(define_expand "movdi" + [(set (match_operand:DI 0 "general_operand" "") + (match_operand:DI 1 "general_operand" ""))] + "" + " +{ + /* One of the ops has to be in a register or 0 */ + if (!register_operand (operand0, DImode) + && !reg_or_0_operand (operand1, DImode)) + operands[1] = copy_to_mode_reg (DImode, operand1); +}") + +(define_insn "*movdi_internal" + [(set (match_operand:DI 0 "general_operand" "=r,r,r,r,r,m,m,r") + (match_operand:DI 1 "general_operand" "Jr,K,L,i,m,r,IG,iF"))] + "register_operand (operands[0], DImode) + || reg_or_0_operand (operands[1], DImode)" + "* return output_move_double (operands);" + [(set_attr "length" "4,8,8,16,8,8,8,16") + (set_attr "cc" "none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit") + (set_attr "type" "other,other,other,other,load,store,store,other")]) + +(define_expand "movsf" + [(set (match_operand:SF 0 "general_operand" "") + (match_operand:SF 1 "general_operand" ""))] + "" + " +{ + /* One of the ops has to be in a register or 0 */ + if (!register_operand (operand0, SFmode) + && !reg_or_0_operand (operand1, SFmode)) + operands[1] = copy_to_mode_reg (SFmode, operand1); +}") + +(define_insn "*movsf_internal" + [(set (match_operand:SF 0 "general_operand" "=r,r,r,r,r,Q,r,m,m,r") + (match_operand:SF 1 "general_operand" "Jr,K,L,n,Q,Ir,m,r,IG,iF"))] + "register_operand (operands[0], SFmode) + || reg_or_0_operand (operands[1], SFmode)" + "* return output_move_single (operands);" + [(set_attr "length" "2,4,4,8,2,2,4,4,4,8") + (set_attr "cc" "none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit") + (set_attr "type" "other,other,other,other,load,store,load,store,store,other")]) + +(define_expand "movdf" + [(set (match_operand:DF 0 "general_operand" "") + (match_operand:DF 1 "general_operand" ""))] + "" + " +{ + /* One of the ops has to be in a register or 0 */ + if (!register_operand (operand0, DFmode) + && !reg_or_0_operand (operand1, DFmode)) + operands[1] = copy_to_mode_reg (DFmode, operand1); +}") + +(define_insn "*movdf_internal" + [(set (match_operand:DF 0 "general_operand" "=r,r,r,r,r,m,m,r") + (match_operand:DF 1 "general_operand" "Jr,K,L,i,m,r,IG,iF"))] + "register_operand (operands[0], DFmode) + || reg_or_0_operand (operands[1], DFmode)" + "* return output_move_double (operands);" + [(set_attr "length" "4,8,8,16,8,8,8,16") + (set_attr "cc" "none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit") + (set_attr "type" "other,other,other,other,load,store,store,other")]) + + +(define_insn "floatsisf2" + [(set (match_operand:SF 0 "register_operand" "=r") + (float:SF (match_operand:SI 1 "register_operand" "r")))] + "" + "cvt.ws %1,%0" + [(set_attr "length" "4") + (set_attr "cc" "set_zn")]) + +(define_insn "fix_truncsfsi2" + [(set (match_operand:SI 0 "register_operand" "=r") + (fix:SI (match_operand:SF 1 "register_operand" "r")))] + "" + "cvt.sw %1,%0" + [(set_attr "length" "4") + (set_attr "cc" "set_zn")]) + + + + + +;; ---------------------------------------------------------------------- +;; TEST INSTRUCTIONS +;; ---------------------------------------------------------------------- + +;; This replaces ld.b;sar;andi with tst1;setf nz. + +;; ??? The zero_extract sets the Z bit to the opposite of what one would +;; expect. This perhaps should be wrapped in a (eq: X (const_int 0)). + +(define_split + [(set (match_operand:SI 0 "register_operand" "") + (zero_extract:SI (match_operand:QI 1 "memory_operand" "") + (const_int 1) + (match_operand 2 "const_int_operand" "")))] + "" + [(set (cc0) (zero_extract:SI (match_dup 1) + (const_int 1) + (match_dup 2))) + (set (match_dup 0) (ne:SI (cc0) (const_int 0)))]) + +(define_insn "tstsi" + [(set (cc0) (match_operand:SI 0 "register_operand" "r"))] + "" + "cmp %.,%0" + [(set_attr "length" "2") + (set_attr "cc" "set_znv")]) + +(define_insn "cmpsi" + [(set (cc0) + (compare (match_operand:SI 0 "register_operand" "r,r") + (match_operand:SI 1 "reg_or_int5_operand" "r,J")))] + "" + "@ + cmp %1,%0 + cmp %1,%0" + [(set_attr "length" "2,2") + (set_attr "cc" "compare")]) + +(define_insn "cmpsf" + [(set (cc0) + (compare (match_operand:SF 0 "register_operand" "r") + (match_operand:SF 1 "reg_or_int5_operand" "r")))] + "" + "cmpf.s %1,%0" + [(set_attr "length" "4") + (set_attr "cc" "compare")]) + + +;; ---------------------------------------------------------------------- +;; NEG INSTRUCTIONS +;; ---------------------------------------------------------------------- +(define_insn "negsi2" + [(set (match_operand:SI 0 "register_operand" "=r") + (neg:SI (match_operand:SI 1 "register_operand" "r")))] + "" + "not %1,%0\;add 1,%0" + [(set_attr "length" "4") + (set_attr "cc" "set_zn")]) + + +;; ---------------------------------------------------------------------- +;; ADD INSTRUCTIONS +;; ---------------------------------------------------------------------- + +(define_insn "addsi3" + [(set (match_operand:SI 0 "register_operand" "=r,r,r") + (plus:SI (match_operand:SI 1 "register_operand" "%0,r,r") + (match_operand:SI 2 "nonmemory_operand" "rJ,K,U")))] + "" + "@ + add %2,%0 + addi %2,%1,%0 + addi %O2(%P2),%1,%0" + [(set_attr "length" "2,4,4") + (set_attr "cc" "set_zn,set_zn,set_zn")]) + +(define_insn "addsf3" + [(set (match_operand:SF 0 "register_operand" "=r") + (plus:SF (match_operand:SF 1 "register_operand" "%0") + (match_operand:SF 2 "register_operand" "r")))] + "" + "addf.s %2,%0" + [(set_attr "length" "4") + (set_attr "cc" "set_zn")]) + +;; ---------------------------------------------------------------------- +;; SUBTRACT INSTRUCTIONS +;; ---------------------------------------------------------------------- + +(define_insn "subsi3" + [(set (match_operand:SI 0 "register_operand" "=r") + (minus:SI (match_operand:SI 1 "register_operand" "0") + (match_operand:SI 2 "register_operand" "r")))] + "" + "sub %2,%0" + [(set_attr "length" "2") + (set_attr "cc" "set_zn")]) + +(define_insn "subsf3" + [(set (match_operand:SF 0 "register_operand" "=r") + (minus:SF (match_operand:SF 1 "register_operand" "0") + (match_operand:SF 2 "register_operand" "r")))] + "" + "subf.s %2,%0" + [(set_attr "length" "4") + (set_attr "cc" "set_zn")]) + + +;; ---------------------------------------------------------------------- +;; MULTIPLY INSTRUCTIONS +;; ---------------------------------------------------------------------- + +;;(define_insn "mulsi3_v830" +;; [(set (match_operand:SI 0 "register_operand" "=r,r") +;; (mult:SI (match_operand:SI 1 "register_operand" "%0,r") +;; (match_operand:SI 2 "nonmemory_operand" "r,K"))) +;; (clobber (reg:SI 30))] +;; "TARGET_V830" +;; "@ +;; mul %2,%0 +;; muli %2,%1,%0" +;; [(set_attr "length" "2,4") +;; (set_attr "cc" "set_zn,set_zn")]) + +(define_insn "mulsi3" + [(set (match_operand:SI 0 "register_operand" "=r") + (mult:SI (match_operand:SI 1 "register_operand" "%0") + (match_operand:SI 2 "nonmemory_operand" "r"))) + (clobber (reg:SI 30))] + "" + "mul %2,%0" + [(set_attr "length" "2") + (set_attr "cc" "set_zn") + (set_attr "type" "mul")]) + +(define_insn "mulsf3" + [(set (match_operand:SF 0 "register_operand" "=r") + (mult:SF (match_operand:SF 1 "register_operand" "%0") + (match_operand:SF 2 "register_operand" "r")))] + "" + "mulf.s %2,%0" + [(set_attr "length" "4") + (set_attr "cc" "set_zn")]) + + +;; ---------------------------------------------------------------------- +;; DIVISION INSTRUCTIONS +;; ---------------------------------------------------------------------- +(define_insn "divsf3" + [(set (match_operand:SF 0 "register_operand" "=r") + (div:SF (match_operand:SF 1 "register_operand" "0") + (match_operand:SF 2 "register_operand" "r")))] + "" + "divf.s %2,%0" + [(set_attr "length" "4") + (set_attr "cc" "set_zn")]) + +(define_insn "divmodsi4" + [(set (match_operand:SI 0 "register_operand" "=r") + (div:SI (match_operand:SI 1 "register_operand" "0") + (match_operand:SI 2 "register_operand" "r"))) + (set (match_operand:SI 3 "register_operand" "=r") + (mod:SI (match_dup 1) + (match_dup 2))) + (clobber (reg:SI 30))] + "" + "div %2,%0\;mov r30,%3" + [(set_attr "length" "4") + (set_attr "cc" "set_zn")]) + +(define_insn "divsi3" + [(set (match_operand:SI 0 "register_operand" "=r") + (div:SI (match_operand:SI 1 "register_operand" "0") + (match_operand:SI 2 "register_operand" "r"))) + (clobber (reg:SI 30))] + "" + "div %2,%0" + [(set_attr "length" "2") + (set_attr "cc" "set_zn") + (set_attr "type" "div")]) + +(define_insn "udivmodsi4" + [(set (match_operand:SI 0 "register_operand" "=r") + (udiv:SI (match_operand:SI 1 "register_operand" "0") + (match_operand:SI 2 "register_operand" "r"))) + (set (match_operand:SI 3 "register_operand" "=r") + (umod:SI (match_dup 1) + (match_dup 2))) + (clobber (reg:SI 30))] + "" + "divu %2,%0\;mov r30,%3" + [(set_attr "length" "4") + (set_attr "cc" "set_zn")]) + +(define_insn "udivsi3" + [(set (match_operand:SI 0 "register_operand" "=r") + (udiv:SI (match_operand:SI 1 "register_operand" "0") + (match_operand:SI 2 "register_operand" "r"))) + (clobber (reg:SI 30))] + "" + "divu %2,%0" + [(set_attr "length" "2") + (set_attr "cc" "set_zn") + (set_attr "type" "udiv")]) + + + + +;; ---------------------------------------------------------------------- +;; AND INSTRUCTIONS +;; ---------------------------------------------------------------------- + + + + +(define_insn "andsi3" + [(set (match_operand:SI 0 "register_operand" "=r,r,r") + (and:SI (match_operand:SI 1 "register_operand" "%0,0,r") + (match_operand:SI 2 "nonmemory_operand" "r,I,M")))] + "" + "@ + and %2,%0 + and %.,%0 + andi %2,%1,%0" + [(set_attr "length" "2,2,4") + (set_attr "cc" "set_znv")]) + +;; ---------------------------------------------------------------------- +;; OR INSTRUCTIONS +;; ---------------------------------------------------------------------- + + + + +(define_insn "iorsi3" + [(set (match_operand:SI 0 "register_operand" "=r,r,r") + (ior:SI (match_operand:SI 1 "register_operand" "%0,0,r") + (match_operand:SI 2 "nonmemory_operand" "r,I,M")))] + "" + "@ + or %2,%0 + or %.,%0 + ori %2,%1,%0" + [(set_attr "length" "2,2,4") + (set_attr "cc" "set_znv")]) + +;; ---------------------------------------------------------------------- +;; XOR INSTRUCTIONS +;; ---------------------------------------------------------------------- + + + + +(define_insn "xorsi3" + [(set (match_operand:SI 0 "register_operand" "=r,r,r") + (xor:SI (match_operand:SI 1 "register_operand" "%0,0,r") + (match_operand:SI 2 "nonmemory_operand" "r,I,M")))] + "" + "@ + xor %2,%0 + xor %.,%0 + xori %2,%1,%0" + [(set_attr "length" "2,2,4") + (set_attr "cc" "set_znv")]) + +;; ---------------------------------------------------------------------- +;; NOT INSTRUCTIONS +;; ---------------------------------------------------------------------- + +(define_insn "one_cmplsi2" + [(set (match_operand:SI 0 "register_operand" "=r") + (not:SI (match_operand:SI 1 "register_operand" "r")))] + "" + "not %1,%0" + [(set_attr "length" "2") + (set_attr "cc" "set_znv")]) + + +;; ---------------------------------------------------------------------- +;; MIN INSTRUCTION +;; ---------------------------------------------------------------------- +(define_insn "sminsi3" + [(set (match_operand:SI 0 "register_operand" "=r") + (smin:SI (match_operand:SI 1 "register_operand" "r") + (match_operand:SI 2 "nonmemory_operand" "r")))] + "TARGET_V830" + "min3 %2,%1,%0" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit")]) + + +;; ---------------------------------------------------------------------- +;; MAX INSTRUCTION +;; ---------------------------------------------------------------------- +(define_insn "smaxsi3" + [(set (match_operand:SI 0 "register_operand" "=r") + (smax:SI (match_operand:SI 1 "register_operand" "r") + (match_operand:SI 2 "nonmemory_operand" "r")))] + "TARGET_V830" + "max3 %2,%1,%0" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit")]) + + + +;; ----------------------------------------------------------------- +;; BIT FIELDS +;; ----------------------------------------------------------------- + +;; ??? Is it worth defining insv and extv for the V810 series?!? + +;; An insv pattern would be useful, but does not get used because +;; store_bit_field never calls insv when storing a constant value into a +;; single-bit bitfield. + +;; extv/extzv patterns would be useful, but do not get used because +;; optimize_bitfield_compare in fold-const usually converts single +;; bit extracts into an AND with a mask. + +;; ----------------------------------------------------------------- +;; Scc INSTRUCTIONS +;; ----------------------------------------------------------------- + +(define_insn "sle" + [(set (match_operand:SI 0 "register_operand" "=r") + (le:SI (cc0) (const_int 0)))] + "" + "* +{ + if ((cc_status.flags & CC_OVERFLOW_UNUSABLE) != 0) + return 0; + + return \"setf le,%0\"; +}" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit")]) + +(define_insn "sleu" + [(set (match_operand:SI 0 "register_operand" "=r") + (leu:SI (cc0) (const_int 0)))] + "" + "setf nh,%0" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit")]) + +(define_insn "sge" + [(set (match_operand:SI 0 "register_operand" "=r") + (ge:SI (cc0) (const_int 0)))] + "" + "* +{ + if ((cc_status.flags & CC_OVERFLOW_UNUSABLE) != 0) + return 0; + + return \"setf ge,%0\"; +}" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit")]) + +(define_insn "sgeu" + [(set (match_operand:SI 0 "register_operand" "=r") + (geu:SI (cc0) (const_int 0)))] + "" + "setf nl,%0" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit")]) + +(define_insn "slt" + [(set (match_operand:SI 0 "register_operand" "=r") + (lt:SI (cc0) (const_int 0)))] + "" + "* +{ + if ((cc_status.flags & CC_OVERFLOW_UNUSABLE) != 0) + return 0; + + return \"setf lt,%0\"; +}" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit")]) + +(define_insn "sltu" + [(set (match_operand:SI 0 "register_operand" "=r") + (ltu:SI (cc0) (const_int 0)))] + "" + "setf l,%0" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit")]) + +(define_insn "sgt" + [(set (match_operand:SI 0 "register_operand" "=r") + (gt:SI (cc0) (const_int 0)))] + "" + "* +{ + if ((cc_status.flags & CC_OVERFLOW_UNUSABLE) != 0) + return 0; + + return \"setf gt,%0\"; +}" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit")]) + +(define_insn "sgtu" + [(set (match_operand:SI 0 "register_operand" "=r") + (gtu:SI (cc0) (const_int 0)))] + "" + "setf h,%0" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit")]) + +(define_insn "seq" + [(set (match_operand:SI 0 "register_operand" "=r") + (eq:SI (cc0) (const_int 0)))] + "" + "setf z,%0" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit")]) + +(define_insn "sne" + [(set (match_operand:SI 0 "register_operand" "=r") + (ne:SI (cc0) (const_int 0)))] + "" + "setf nz,%0" + [(set_attr "length" "4") + (set_attr "cc" "none_0hit")]) + + +;; ---------------------------------------------------------------------- +;; JUMP INSTRUCTIONS +;; ---------------------------------------------------------------------- + +;; Conditional jump instructions + +(define_expand "ble" + [(set (pc) + (if_then_else (le (cc0) + (const_int 0)) + (label_ref (match_operand 0 "" "")) + (pc)))] + "" + "") + +(define_expand "bleu" + [(set (pc) + (if_then_else (leu (cc0) + (const_int 0)) + (label_ref (match_operand 0 "" "")) + (pc)))] + "" + "") + +(define_expand "bge" + [(set (pc) + (if_then_else (ge (cc0) + (const_int 0)) + (label_ref (match_operand 0 "" "")) + (pc)))] + "" + "") + +(define_expand "bgeu" + [(set (pc) + (if_then_else (geu (cc0) + (const_int 0)) + (label_ref (match_operand 0 "" "")) + (pc)))] + "" + "") + +(define_expand "blt" + [(set (pc) + (if_then_else (lt (cc0) + (const_int 0)) + (label_ref (match_operand 0 "" "")) + (pc)))] + "" + "") + +(define_expand "bltu" + [(set (pc) + (if_then_else (ltu (cc0) + (const_int 0)) + (label_ref (match_operand 0 "" "")) + (pc)))] + "" + "") + +(define_expand "bgt" + [(set (pc) + (if_then_else (gt (cc0) + (const_int 0)) + (label_ref (match_operand 0 "" "")) + (pc)))] + "" + "") + +(define_expand "bgtu" + [(set (pc) + (if_then_else (gtu (cc0) + (const_int 0)) + (label_ref (match_operand 0 "" "")) + (pc)))] + "" + "") + +(define_expand "beq" + [(set (pc) + (if_then_else (eq (cc0) + (const_int 0)) + (label_ref (match_operand 0 "" "")) + (pc)))] + "" + "") + +(define_expand "bne" + [(set (pc) + (if_then_else (ne (cc0) + (const_int 0)) + (label_ref (match_operand 0 "" "")) + (pc)))] + "" + "") + +(define_insn "*branch_normal" + [(set (pc) + (if_then_else (match_operator 1 "comparison_operator" + [(cc0) (const_int 0)]) + (label_ref (match_operand 0 "" "")) + (pc)))] + "" + "* +{ + if ((cc_status.flags & CC_OVERFLOW_UNUSABLE) != 0 + && (GET_CODE (operands[1]) == GT + || GET_CODE (operands[1]) == GE + || GET_CODE (operands[1]) == LE + || GET_CODE (operands[1]) == LT)) + return 0; + + if (get_attr_length (insn) == 2) + return \"b%b1 %l0\"; + else + return \"b%B1 .+6\;jr %l0\"; +}" + [(set (attr "length") + (if_then_else (lt (abs (minus (match_dup 0) (pc))) + (const_int 256)) + (const_int 2) + (const_int 6))) + (set_attr "cc" "none")]) + +(define_insn "*branch_invert" + [(set (pc) + (if_then_else (match_operator 1 "comparison_operator" + [(cc0) (const_int 0)]) + (pc) + (label_ref (match_operand 0 "" ""))))] + "" + "* +{ + if ((cc_status.flags & CC_OVERFLOW_UNUSABLE) != 0 + && (GET_CODE (operands[1]) == GT + || GET_CODE (operands[1]) == GE + || GET_CODE (operands[1]) == LE + || GET_CODE (operands[1]) == LT)) + return 0; + if (get_attr_length (insn) == 2) + return \"b%B1 %l0\"; + else + return \"b%b1 .+6\;jr %l0\"; +}" + [(set (attr "length") + (if_then_else (lt (abs (minus (match_dup 0) (pc))) + (const_int 256)) + (const_int 2) + (const_int 6))) + (set_attr "cc" "none")]) + +;; Unconditional and other jump instructions. + +(define_insn "jump" + [(set (pc) + (label_ref (match_operand 0 "" "")))] + "" + "* +{ + if (get_attr_length (insn) == 2) + return \"br %0\"; + else + return \"jr %0\"; +}" + [(set (attr "length") + (if_then_else (lt (abs (minus (match_dup 0) (pc))) + (const_int 256)) + (const_int 2) + (const_int 4))) + (set_attr "cc" "none")]) + +(define_insn "indirect_jump" + [(set (pc) (match_operand:SI 0 "register_operand" "r"))] + "" + "jmp %0" + [(set_attr "length" "2") + (set_attr "cc" "none")]) + +(define_insn "tablejump" + [(set (pc) (match_operand:SI 0 "register_operand" "r")) + (use (label_ref (match_operand 1 "" "")))] + "" + "jmp %0" + [(set_attr "length" "2") + (set_attr "cc" "none")]) + +(define_expand "casesi" + [(match_operand:SI 0 "register_operand" "") + (match_operand:SI 1 "register_operand" "") + (match_operand:SI 2 "register_operand" "") + (match_operand 3 "" "") (match_operand 4 "" "")] + "" + " +{ + rtx reg = gen_reg_rtx (SImode); + rtx tableaddress = gen_reg_rtx (SImode); + rtx mem; + + /* Subtract the lower bound from the index. */ + emit_insn (gen_subsi3 (reg, operands[0], operands[1])); + /* Compare the result against the number of table entries. */ + emit_insn (gen_cmpsi (reg, operands[2])); + /* Branch to the default label if out of range of the table. */ + emit_jump_insn (gen_bgtu (operands[4])); + + /* Shift index for the table array access. */ + emit_insn (gen_ashlsi3 (reg, reg, GEN_INT (TARGET_BIG_SWITCH ? 2 : 1))); + /* Load the table address into a pseudo. */ + emit_insn (gen_movsi (tableaddress, + gen_rtx (LABEL_REF, VOIDmode, operands[3]))); + /* Add the table address to the index. */ + emit_insn (gen_addsi3 (reg, reg, tableaddress)); + /* Load the table entry. */ + mem = gen_rtx (MEM, CASE_VECTOR_MODE, reg); + RTX_UNCHANGING_P (mem); + if (! TARGET_BIG_SWITCH) + { + rtx reg2 = gen_reg_rtx (HImode); + emit_insn (gen_movhi (reg2, mem)); + emit_insn (gen_extendhisi2 (reg, reg2)); + } + else + emit_insn (gen_movsi (reg, mem)); + /* Add the table address. */ + emit_insn (gen_addsi3 (reg, reg, tableaddress)); + /* Branch to the switch label. */ + emit_jump_insn (gen_tablejump (reg, operands[3])); + DONE; +}") + +;; Call subroutine with no return value. + +(define_expand "call" + [(call (match_operand:QI 0 "general_operand" "") + (match_operand:SI 1 "general_operand" ""))] + "" + " +{ + if (! call_address_operand (XEXP (operands[0], 0)) + || TARGET_LONG_CALLS) + XEXP (operands[0], 0) = force_reg (SImode, XEXP (operands[0], 0)); + if (TARGET_LONG_CALLS) + emit_call_insn (gen_call_internal_long (XEXP (operands[0], 0), operands[1])); + else + emit_call_insn (gen_call_internal_short (XEXP (operands[0], 0), operands[1])); + + DONE; +}") + +(define_insn "call_internal_short" + [(call (mem:QI (match_operand:SI 0 "call_address_operand" "S,r")) + (match_operand:SI 1 "general_operand" "g,g")) + (clobber (reg:SI 31))] + "! TARGET_LONG_CALLS" + "@ + jal %0 + jal .+4\;add 4,r31\;jmp %0" + [(set_attr "length" "4,8")] +) + +(define_insn "call_internal_long" + [(call (mem:QI (match_operand:SI 0 "call_address_operand" "S,r")) + (match_operand:SI 1 "general_operand" "g,g")) + (clobber (reg:SI 31))] + "TARGET_LONG_CALLS" + "* + { + if (which_alternative == 0) + { + if (GET_CODE (operands[0]) == REG) + return \"jal %0\"; + else + return \"movhi hi(%0), r0, r11\;movea lo(%0), r11, r11\;jal .+4\;add 4, r31\;jmp r11\"; + } + else + return \"jal .+4\;add 4,r31\;jmp %0\"; + }" + [(set_attr "length" "16,8")] +) + +;; Call subroutine, returning value in operand 0 +;; (which must be a hard register). + +(define_expand "call_value" + [(set (match_operand 0 "" "") + (call (match_operand:QI 1 "general_operand" "") + (match_operand:SI 2 "general_operand" "")))] + "" + " +{ + if (! call_address_operand (XEXP (operands[1], 0)) + || TARGET_LONG_CALLS) + XEXP (operands[1], 0) = force_reg (SImode, XEXP (operands[1], 0)); + if (TARGET_LONG_CALLS) + emit_call_insn (gen_call_value_internal_long (operands[0], + XEXP (operands[1], 0), + operands[2])); + else + emit_call_insn (gen_call_value_internal_short (operands[0], + XEXP (operands[1], 0), + operands[2])); + DONE; +}") + +(define_insn "call_value_internal_short" + [(set (match_operand 0 "" "=r,r") + (call (mem:QI (match_operand:SI 1 "call_address_operand" "S,r")) + (match_operand:SI 2 "general_operand" "g,g"))) + (clobber (reg:SI 31))] + "! TARGET_LONG_CALLS" + "@ + jal %1 + jal .+4\;add 4,r31\;jmp %1" + [(set_attr "length" "4,8")] +) + +(define_insn "call_value_internal_long" + [(set (match_operand 0 "" "=r,r") + (call (mem:QI (match_operand:SI 1 "call_address_operand" "S,r")) + (match_operand:SI 2 "general_operand" "g,g"))) + (clobber (reg:SI 31))] + "TARGET_LONG_CALLS" + "* + { + if (which_alternative == 0) + { + if (GET_CODE (operands[1]) == REG) + return \"jal %1\"; + else + /* Reload can generate this pattern... */ + return \"movhi hi(%1), r0, r11\;movea lo(%1), r11, r11\;jal .+4\;add 4, r31\;jmp r11\"; + } + else + return \"jal .+4\;add 4, r31\;jmp %1\"; + }" + [(set_attr "length" "16,8")] +) + +(define_insn "nop" + [(const_int 0)] + "" + "nop" + [(set_attr "length" "2") + (set_attr "cc" "none")]) + +;; ---------------------------------------------------------------------- +;; EXTEND INSTRUCTIONS +;; ---------------------------------------------------------------------- + + +(define_insn "zero_extendhisi2" + [(set (match_operand:SI 0 "register_operand" "=r") + (zero_extend:SI + (match_operand:HI 1 "register_operand" "r")))] + "" + "andi 65535,%1,%0" + [(set_attr "length" "4") + (set_attr "cc" "set_znv")]) + + +(define_insn "zero_extendqisi2" + [(set (match_operand:SI 0 "register_operand" "=r") + (zero_extend:SI + (match_operand:QI 1 "register_operand" "r")))] + "" + "andi 255,%1,%0" + [(set_attr "length" "4") + (set_attr "cc" "set_znv")]) + +;;- sign extension instructions + + +;; ??? This is missing a sign extend from memory pattern to match the ld.h +;; instruction. + +(define_expand "extendhisi2" + [(set (match_dup 2) + (ashift:SI (match_operand:HI 1 "register_operand" "") + (const_int 16))) + (set (match_operand:SI 0 "register_operand" "") + (ashiftrt:SI (match_dup 2) + (const_int 16)))] + "" + " +{ + operands[1] = gen_lowpart (SImode, operands[1]); + operands[2] = gen_reg_rtx (SImode); +}") + + +;; ??? This is missing a sign extend from memory pattern to match the ld.b +;; instruction. + +(define_expand "extendqisi2" + [(set (match_dup 2) + (ashift:SI (match_operand:QI 1 "register_operand" "") + (const_int 24))) + (set (match_operand:SI 0 "register_operand" "") + (ashiftrt:SI (match_dup 2) + (const_int 24)))] + "" + " +{ + operands[1] = gen_lowpart (SImode, operands[1]); + operands[2] = gen_reg_rtx (SImode); +}") + +;; ---------------------------------------------------------------------- +;; SHIFTS +;; ---------------------------------------------------------------------- + +(define_insn "ashlsi3" + [(set (match_operand:SI 0 "register_operand" "=r,r") + (ashift:SI + (match_operand:SI 1 "register_operand" "0,0") + (match_operand:SI 2 "nonmemory_operand" "r,N")))] + "" + "@ + shl %2,%0 + shl %2,%0" + [(set_attr "length" "4,2") + (set_attr "cc" "set_znv")]) + +(define_insn "lshrsi3" + [(set (match_operand:SI 0 "register_operand" "=r,r") + (lshiftrt:SI + (match_operand:SI 1 "register_operand" "0,0") + (match_operand:SI 2 "nonmemory_operand" "r,N")))] + "" + "@ + shr %2,%0 + shr %2,%0" + [(set_attr "length" "4,2") + (set_attr "cc" "set_znv")]) + +(define_insn "ashrsi3" + [(set (match_operand:SI 0 "register_operand" "=r,r") + (ashiftrt:SI + (match_operand:SI 1 "register_operand" "0,0") + (match_operand:SI 2 "nonmemory_operand" "r,N")))] + "" + "@ + sar %2,%0 + sar %2,%0" + [(set_attr "length" "4,2") + (set_attr "cc" "set_znv")]) + +;; ---------------------------------------------------------------------- +;; PROLOGUE/EPILOGUE +;; ---------------------------------------------------------------------- +(define_expand "prologue" + [(const_int 0)] + "" + "expand_prologue (); DONE;") + +(define_expand "epilogue" + [(return)] + "" + " +{ + /* Try to use the trivial return first. Else use the + full epilogue. */ + if (0) + emit_jump_insn (gen_return ()); + else + expand_epilogue (); + DONE; +}") + +(define_insn "return" + [(return)] + "reload_completed && compute_frame_size (get_frame_size (), (long *)0) == 0" + "jmp [r31]" + [(set_attr "length" "2") + (set_attr "cc" "none")]) + +(define_insn "return_internal" + [(return) + (use (reg:SI 31))] + "" + "jmp [r31]" + [(set_attr "length" "2") + (set_attr "cc" "none")]) + + + +;; ---------------------------------------------------------------------- +;; HELPER INSTRUCTIONS for saving the prologue and epilog registers +;; ---------------------------------------------------------------------- + +;; This pattern will match a stack adjust RTX followed by any number of push +;; RTXs. These RTXs will then be turned into a suitable call to a worker +;; function. + + +(define_insn "" + [(match_parallel 0 "pattern_is_ok_for_prologue" + [(set (reg:SI 3) + (plus:SI (reg:SI 3) (match_operand:SI 1 "immediate_operand" "i"))) + (set (mem:SI (plus:SI (reg:SI 3) + (match_operand:SI 2 "immediate_operand" "i"))) + (match_operand:SI 3 "register_is_ok_for_epilogue" "r"))])] + "TARGET_PROLOG_FUNCTION" + "* return construct_save_jarl (operands[0]); + " + [(set (attr "length") (if_then_else (eq_attr "long_calls" "yes") + (const_string "18") + (const_string "6"))) + (set_attr "cc" "clobber")]) + +;; This pattern will match a return RTX followed by any number of pop RTXs +;; and possible a stack adjustment as well. These RTXs will be turned into +;; a suitable call to a worker function. + +(define_insn "" +[(match_parallel 0 "pattern_is_ok_for_epilogue" + [(return) + (set (reg:SI 3) + (plus:SI (reg:SI 3) (match_operand:SI 1 "immediate_operand" "i"))) + (set (match_operand:SI 2 "register_is_ok_for_epilogue" "r") + (mem:SI (plus:SI (reg:SI 3) + (match_operand:SI 3 "immediate_operand" "i"))))])] + "TARGET_PROLOG_FUNCTION" + "* return construct_restore_jr (operands[0]); + " + [(set (attr "length") (if_then_else (eq_attr "long_calls" "yes") + (const_string "12") + (const_string "4"))) + (set_attr "cc" "clobber")]) + +;; Initialize an interrupt function. Do not depend on TARGET_PROLOG_FUNCTION. +(define_insn "save_interrupt" + [(set (reg:SI 3) (plus:SI (reg:SI 3) (const_int -20))) + (set (mem:SI (reg:SI 3)) (reg:SI 30)) + (set (mem:SI (plus:SI (reg:SI 3) (const_int 4))) (reg:SI 10)) + (set (mem:SI (plus:SI (reg:SI 3) (const_int 8))) (reg:SI 4)) + (set (mem:SI (plus:SI (reg:SI 3) (const_int 12))) (reg:SI 1)) + (set (mem:SI (plus:SI (reg:SI 3) (const_int 16))) (reg:SI 31))] + "! TARGET_LONG_CALLS" + "* + { + if (TARGET_PROLOG_FUNCTION) + return \"addi -20,sp,sp\;st.w r31,16[sp]\;jal __save_interrupt\"; + else + return \"addi -20,sp,sp\;st.w r30,0[sp]\;st.w r10,4[sp]\;st.w gp,8[sp]\;st.w r1,12[sp]\;st.w r31,16[sp]\;movhi hi(__gp),r0,gp\;movea lo(__gp),gp,gp\"; + }" + [(set (attr "length") (if_then_else (eq_attr "prolog_function" "yes") + (const_string "12") + (const_string "32"))) + (set_attr "cc" "clobber")]) + + +;; Restore r1, r4, r10, and return from the interrupt +(define_insn "restore_interrupt" + [(return) + (set (reg:SI 30) (mem:SI (reg:SI 3))) + (set (reg:SI 10) (mem:SI (plus:SI (reg:SI 3) (const_int 4)))) + (set (reg:SI 4) (mem:SI (plus:SI (reg:SI 3) (const_int 8)))) + (set (reg:SI 1) (mem:SI (plus:SI (reg:SI 3) (const_int 12)))) + (set (reg:SI 31) (mem:SI (plus:SI (reg:SI 3) (const_int 16)))) + (set (reg:SI 3) (plus:SI (reg:SI 3) (const_int 20)))] + "" + "* + { + if (TARGET_PROLOG_FUNCTION) + return \"jr __return_interrupt\"; + else + return \"ld.w 0[sp],r30\;ld.w 4[sp],r10\;ld.w 8[sp],gp\;ld.w 12[sp],r1\;ld.w 16[sp],r31\;addi 20,sp,sp\;reti\"; + }" + [(set (attr "length") (if_then_else (eq_attr "prolog_function" "yes") + (const_string "4") + (const_string "26"))) + (set_attr "cc" "clobber")]) + + + +;; Save all registers except for the registers saved in save_interrupt when +;; an interrupt function makes a call. +;; UNSPEC_VOLATILE is considered to use and clobber all hard registers and +;; all of memory. This blocks insns from being moved across this point. +;; This is needed because the rest of the compiler is not ready to handle +;; insns this complicated. + +(define_insn "save_all_interrupt" + [(unspec_volatile [(const_int 0)] 0)] + "! TARGET_LONG_CALLS" + "* + { + if (TARGET_PROLOG_FUNCTION) + return \"jal __save_all_interrupt\"; + else + return \"addi -116,sp,sp\;st.w r2,112[sp]\;st.w r5,108[sp]\;st.w r6,104[sp]\;st.w r7,100[sp]\;st.w r8,96[sp]\;st.w r9,92[sp]\;st.w r11,88[sp]\;st.w r12,84[sp]\;st.w r13,80[sp]\;st.w r14,76[sp]\;st.w r15,72[sp]\;st.w r16,68[sp]\;st.w r17,64[sp]\;st.w r18,60[sp]\;st.w r19,56[sp]\;st.w r20,52[sp]\;st.w r21,48[sp]\;st.w r22,44[sp]\;st.w r23,40[sp]\;st.w r24,36[sp]\;st.w r25,32[sp]\;st.w r26,28[sp]\;st.w r27,24[sp]\;st.w r28,20[sp]\;st.w r29,16[sp]\"; + }" + [(set (attr "length") (if_then_else (eq_attr "prolog_function" "yes") + (const_string "6") + (const_string "104"))) + (set_attr "cc" "clobber")]) + + +;; Restore all registers saved when an interrupt function makes a call. +;; UNSPEC_VOLATILE is considered to use and clobber all hard registers and +;; all of memory. This blocks insns from being moved across this point. +;; This is needed because the rest of the compiler is not ready to handle +;; insns this complicated. + +(define_insn "restore_all_interrupt" + [(unspec_volatile [(const_int 0)] 1)] + "! TARGET_LONG_CALLS" + "* + { + if (TARGET_PROLOG_FUNCTION) + return \"jal __restore_all_interrupt\"; + else + return \"ld.w 112[sp],r2\;ld.w 108[sp],r5\;ld.w 104[sp],r6\;ld.w 100[sp],r7\;ld.w 96[sp],r8\;ld.w 92[sp],r9\;ld.w 88[sp],r11\;ld.w 84[sp],r12\;ld.w 80[sp],r13\;ld.w 76[sp],r14\;ld.w 72[sp],r15\;ld.w 68[sp],r16\;ld.w 64[sp],r17\;ld.w 60[sp],r18\;ld.w 56[sp],r19\;ld.w 52[sp],r20\;ld.w 48[sp],r21\;ld.w 44[sp],r22\;ld.w 40[sp],r23\;ld.w 36[sp],r24\;ld.w 32[sp],r25\;ld.w 28[sp],r26\;ld.w 24[sp],r27\;ld.w 20[sp],r28\;ld.w 16[sp],r29\;addi 116,sp,sp\"; + }" + [(set (attr "length") (if_then_else (eq_attr "prolog_function" "yes") + (const_string "4") + (const_string "104"))) + (set_attr "cc" "clobber")]) + + +;; Save r6-r9 for a variable argument function +(define_insn "save_r6_r9" + [(set (mem:SI (reg:SI 3)) (reg:SI 6)) + (set (mem:SI (plus:SI (reg:SI 3) (const_int 4))) (reg:SI 7)) + (set (mem:SI (plus:SI (reg:SI 3) (const_int 8))) (reg:SI 8)) + (set (mem:SI (plus:SI (reg:SI 3) (const_int 12))) (reg:SI 9)) + (clobber (reg:SI 10))] + "TARGET_PROLOG_FUNCTION && ! TARGET_LONG_CALLS" + "jal __save_r6_r9" + [(set_attr "length" "4") + (set_attr "cc" "clobber")]) diff -urN gcc-2.95.2.org/gcc/config/v810/xm-v810.h gcc-2.95.2/gcc/config/v810/xm-v810.h --- gcc-2.95.2.org/gcc/config/v810/xm-v810.h 1969-12-31 16:00:00.000000000 -0800 +++ gcc-2.95.2/gcc/config/v810/xm-v810.h 2011-03-20 04:03:11.000000000 -0700 @@ -0,0 +1,49 @@ +/* Configuration for NEC V810. + Copyright (C) 1996 Free Software Foundation, Inc. + Contributed by Cygnus Support. + +This file is part of GNU CC. + +GNU CC 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. + +GNU CC 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 GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* #defines that need visibility everywhere. */ +#define FALSE 0 +#define TRUE 1 + +/* This describes the machine the compiler is hosted on. */ +#define HOST_BITS_PER_CHAR 8 +#define HOST_BITS_PER_SHORT 16 +#define HOST_BITS_PER_INT 32 +#define HOST_BITS_PER_LONG 32 +#define HOST_BITS_PER_LONGLONG 64 + +/* Arguments to use with `exit'. */ +#define SUCCESS_EXIT_CODE 0 +#define FATAL_EXIT_CODE 33 + +#ifdef __v810 +#ifndef __STDC__ +extern char *malloc (), *realloc (), *calloc (); +#else +extern void *malloc (), *realloc (), *calloc (); +#endif +extern void free (); +#endif + +/* target machine dependencies. + tm.h is a symbolic link to the actual target specific file. */ + +#include "tm.h" diff -urN gcc-2.95.2.org/gcc/config.in gcc-2.95.2/gcc/config.in --- gcc-2.95.2.org/gcc/config.in 1999-10-25 01:02:08.000000000 -0700 +++ gcc-2.95.2/gcc/config.in 2011-03-20 04:04:29.000000000 -0700 @@ -1,4 +1,4 @@ -/* config.in. Generated automatically from configure.in by autoheader. */ +/* config.in. Generated from configure.in by autoheader. */ /* Define if you can safely include both and . */ #undef STRING_WITH_STRINGS @@ -130,237 +130,288 @@ /* Define to the version of the distribution. */ #undef VERSION -/* Define if using alloca.c. */ -#undef C_ALLOCA - -/* Define to empty if the keyword does not work. */ -#undef const - -/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. - This function is required for alloca.c support on those systems. */ +/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP + systems. This function is required for `alloca.c' support on those systems. + */ #undef CRAY_STACKSEG_END -/* Define if you have alloca, as a function or macro. */ +/* Define to 1 if using `alloca.c'. */ +#undef C_ALLOCA + +/* Define to 1 if you have `alloca', as a function or macro. */ #undef HAVE_ALLOCA -/* Define if you have and it should be used (not on Ultrix). */ +/* Define to 1 if you have and it should be used (not on Ultrix). + */ #undef HAVE_ALLOCA_H -/* Define if you don't have vprintf but do have _doprnt. */ -#undef HAVE_DOPRNT - -/* Define if you have a working `mmap' system call. */ -#undef HAVE_MMAP - -/* Define if you have that is POSIX.1 compatible. */ -#undef HAVE_SYS_WAIT_H - -/* Define if you have . */ -#undef HAVE_VFORK_H - -/* Define if you have the vprintf function. */ -#undef HAVE_VPRINTF - -/* Define as __inline if that's what the C compiler calls it. */ -#undef inline - -/* Define to `long' if doesn't define. */ -#undef off_t - -/* Define to `int' if doesn't define. */ -#undef pid_t - -/* Define to `unsigned' if doesn't define. */ -#undef size_t - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown - */ -#undef STACK_DIRECTION - -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define if `sys_siglist' is declared by . */ -#undef SYS_SIGLIST_DECLARED - -/* Define if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME - -/* Define vfork as fork if vfork does not work. */ -#undef vfork - -/* Define if you have the __argz_count function. */ -#undef HAVE___ARGZ_COUNT - -/* Define if you have the __argz_next function. */ -#undef HAVE___ARGZ_NEXT - -/* Define if you have the __argz_stringify function. */ -#undef HAVE___ARGZ_STRINGIFY +/* Define to 1 if you have the header file. */ +#undef HAVE_ARGZ_H -/* Define if you have the atoll function. */ +/* Define to 1 if you have the `atoll' function. */ #undef HAVE_ATOLL -/* Define if you have the atoq function. */ +/* Define to 1 if you have the `atoq' function. */ #undef HAVE_ATOQ -/* Define if you have the bcmp function. */ +/* Define to 1 if you have the `bcmp' function. */ #undef HAVE_BCMP -/* Define if you have the bcopy function. */ +/* Define to 1 if you have the `bcopy' function. */ #undef HAVE_BCOPY -/* Define if you have the bsearch function. */ +/* Define to 1 if you have the `bsearch' function. */ #undef HAVE_BSEARCH -/* Define if you have the bzero function. */ +/* Define to 1 if you have the `bzero' function. */ #undef HAVE_BZERO -/* Define if you have the dcgettext function. */ +/* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT -/* Define if you have the fputc_unlocked function. */ +/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you + don't. */ +#undef HAVE_DECL_SYS_SIGLIST + +/* Define to 1 if you have the header file. */ +#undef HAVE_DIRECT_H + +/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ +#undef HAVE_DOPRNT + +/* Define to 1 if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define to 1 if you have the `fork' function. */ +#undef HAVE_FORK + +/* Define to 1 if you have the `fputc_unlocked' function. */ #undef HAVE_FPUTC_UNLOCKED -/* Define if you have the fputs_unlocked function. */ +/* Define to 1 if you have the `fputs_unlocked' function. */ #undef HAVE_FPUTS_UNLOCKED -/* Define if you have the getcwd function. */ +/* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD -/* Define if you have the getpagesize function. */ +/* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE -/* Define if you have the getrlimit function. */ +/* Define to 1 if you have the `getrlimit' function. */ #undef HAVE_GETRLIMIT -/* Define if you have the gettimeofday function. */ +/* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY -/* Define if you have the index function. */ +/* Define to 1 if you have the `index' function. */ #undef HAVE_INDEX -/* Define if you have the isascii function. */ +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the `isascii' function. */ #undef HAVE_ISASCII -/* Define if you have the kill function. */ +/* Define to 1 if you have the `kill' function. */ #undef HAVE_KILL -/* Define if you have the munmap function. */ +/* Define to 1 if you have the `i' library (-li). */ +#undef HAVE_LIBI + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LOCALE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MALLOC_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have a working `mmap' system call. */ +#undef HAVE_MMAP + +/* Define to 1 if you have the `munmap' function. */ #undef HAVE_MUNMAP -/* Define if you have the popen function. */ +/* Define to 1 if you have the header file. */ +#undef HAVE_NL_TYPES_H + +/* Define to 1 if you have the `popen' function. */ #undef HAVE_POPEN -/* Define if you have the putc_unlocked function. */ +/* Define to 1 if you have the `putc_unlocked' function. */ #undef HAVE_PUTC_UNLOCKED -/* Define if you have the putenv function. */ +/* Define to 1 if you have the `putenv' function. */ #undef HAVE_PUTENV -/* Define if you have the rindex function. */ +/* Define to 1 if you have the `rindex' function. */ #undef HAVE_RINDEX -/* Define if you have the setenv function. */ +/* Define to 1 if you have the `setenv' function. */ #undef HAVE_SETENV -/* Define if you have the setlocale function. */ +/* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE -/* Define if you have the setrlimit function. */ +/* Define to 1 if you have the `setrlimit' function. */ #undef HAVE_SETRLIMIT -/* Define if you have the stpcpy function. */ +/* Define to 1 if you have the header file. */ +#undef HAVE_STAB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDDEF_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the `stpcpy' function. */ #undef HAVE_STPCPY -/* Define if you have the strcasecmp function. */ +/* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP -/* Define if you have the strchr function. */ +/* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR -/* Define if you have the strdup function. */ +/* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP -/* Define if you have the strerror function. */ +/* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR -/* Define if you have the strrchr function. */ +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the `strrchr' function. */ #undef HAVE_STRRCHR -/* Define if you have the strsignal function. */ +/* Define to 1 if you have the `strsignal' function. */ #undef HAVE_STRSIGNAL -/* Define if you have the strtoul function. */ +/* Define to 1 if you have the `strtoul' function. */ #undef HAVE_STRTOUL -/* Define if you have the sysconf function. */ +/* Define to 1 if you have the `sysconf' function. */ #undef HAVE_SYSCONF -/* Define if you have the header file. */ -#undef HAVE_ARGZ_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_FILE_H -/* Define if you have the header file. */ -#undef HAVE_DIRECT_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PARAM_H -/* Define if you have the header file. */ -#undef HAVE_FCNTL_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_RESOURCE_H -/* Define if you have the header file. */ -#undef HAVE_LIMITS_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H -/* Define if you have the header file. */ -#undef HAVE_LOCALE_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIMES_H -/* Define if you have the header file. */ -#undef HAVE_MALLOC_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIME_H -/* Define if you have the header file. */ -#undef HAVE_NL_TYPES_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H -/* Define if you have the header file. */ -#undef HAVE_STAB_H +/* Define to 1 if you have that is POSIX.1 compatible. */ +#undef HAVE_SYS_WAIT_H -/* Define if you have the header file. */ -#undef HAVE_STDDEF_H +/* Define to 1 if you have the header file. */ +#undef HAVE_TIME_H -/* Define if you have the header file. */ -#undef HAVE_STDLIB_H +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H -/* Define if you have the header file. */ -#undef HAVE_STRING_H +/* Define to 1 if you have the `vfork' function. */ +#undef HAVE_VFORK -/* Define if you have the header file. */ -#undef HAVE_STRINGS_H +/* Define to 1 if you have the header file. */ +#undef HAVE_VFORK_H -/* Define if you have the header file. */ -#undef HAVE_SYS_FILE_H +/* Define to 1 if you have the `vprintf' function. */ +#undef HAVE_VPRINTF -/* Define if you have the header file. */ -#undef HAVE_SYS_PARAM_H +/* Define to 1 if `fork' works. */ +#undef HAVE_WORKING_FORK -/* Define if you have the header file. */ -#undef HAVE_SYS_RESOURCE_H +/* Define to 1 if `vfork' works. */ +#undef HAVE_WORKING_VFORK -/* Define if you have the header file. */ -#undef HAVE_SYS_STAT_H +/* Define to 1 if you have the `__argz_count' function. */ +#undef HAVE___ARGZ_COUNT -/* Define if you have the header file. */ -#undef HAVE_SYS_TIME_H +/* Define to 1 if you have the `__argz_next' function. */ +#undef HAVE___ARGZ_NEXT -/* Define if you have the header file. */ -#undef HAVE_SYS_TIMES_H +/* Define to 1 if you have the `__argz_stringify' function. */ +#undef HAVE___ARGZ_STRINGIFY -/* Define if you have the header file. */ -#undef HAVE_TIME_H +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT -/* Define if you have the header file. */ -#undef HAVE_UNISTD_H +/* Define to the full name of this package. */ +#undef PACKAGE_NAME -/* Define if you have the i library (-li). */ -#undef HAVE_LIBI +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at runtime. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +#undef STACK_DIRECTION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define to 1 if you can safely include both and . */ +#undef TIME_WITH_SYS_TIME + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +#undef YYTEXT_POINTER + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif + +/* Define to `long int' if does not define. */ +#undef off_t + +/* Define to `int' if does not define. */ +#undef pid_t + +/* Define to `unsigned int' if does not define. */ +#undef size_t + +/* Define as `fork' if `vfork' does not work. */ +#undef vfork diff -urN gcc-2.95.2.org/gcc/config.in~ gcc-2.95.2/gcc/config.in~ --- gcc-2.95.2.org/gcc/config.in~ 1969-12-31 16:00:00.000000000 -0800 +++ gcc-2.95.2/gcc/config.in~ 1999-10-25 01:02:08.000000000 -0700 @@ -0,0 +1,366 @@ +/* config.in. Generated automatically from configure.in by autoheader. */ +/* Define if you can safely include both and . */ +#undef STRING_WITH_STRINGS + +/* Define if printf supports "%p". */ +#undef HAVE_PRINTF_PTR + +/* Define if you want expensive run-time checks. */ +#undef ENABLE_CHECKING + +/* Define to 1 if NLS is requested. */ +#undef ENABLE_NLS + +/* Define as 1 if you have catgets and don't want to use GNU gettext. */ +#undef HAVE_CATGETS + +/* Define as 1 if you have gettext and don't want to use GNU gettext. */ +#undef HAVE_GETTEXT + +/* Define if your cpp understands the stringify operator. */ +#undef HAVE_CPP_STRINGIFY + +/* Define if your compiler understands volatile. */ +#undef HAVE_VOLATILE + +/* Define if your assembler supports specifying the maximum number + of bytes to skip when using the GAS .p2align command. */ +#undef HAVE_GAS_MAX_SKIP_P2ALIGN + +/* Define if your assembler supports .balign and .p2align. */ +#undef HAVE_GAS_BALIGN_AND_P2ALIGN + +/* Define if your assembler supports .subsection and .subsection -1 starts + emitting at the beginning of your section */ +#undef HAVE_GAS_SUBSECTION_ORDERING + +/* Define if your assembler uses the old HImode fild and fist notation. */ +#undef HAVE_GAS_FILDS_FISTS + +/* Define if you have a working header file. */ +#undef HAVE_INTTYPES_H + +/* Define if your locale.h file contains LC_MESSAGES. */ +#undef HAVE_LC_MESSAGES + +/* Define as 1 if you have the stpcpy function. */ +#undef HAVE_STPCPY + +/* Whether malloc must be declared even if is included. */ +#undef NEED_DECLARATION_MALLOC + +/* Whether realloc must be declared even if is included. */ +#undef NEED_DECLARATION_REALLOC + +/* Whether calloc must be declared even if is included. */ +#undef NEED_DECLARATION_CALLOC + +/* Whether free must be declared even if is included. */ +#undef NEED_DECLARATION_FREE + +/* Whether bcopy must be declared even if is included. */ +#undef NEED_DECLARATION_BCOPY + +/* Whether bcmp must be declared even if is included. */ +#undef NEED_DECLARATION_BCMP + +/* Whether bzero must be declared even if is included. */ +#undef NEED_DECLARATION_BZERO + +/* Whether index must be declared even if is included. */ +#undef NEED_DECLARATION_INDEX + +/* Whether rindex must be declared even if is included. */ +#undef NEED_DECLARATION_RINDEX + +/* Whether getenv must be declared even if is included. */ +#undef NEED_DECLARATION_GETENV + +/* Whether atol must be declared even if is included. */ +#undef NEED_DECLARATION_ATOL + +/* Whether atof must be declared even if is included. */ +#undef NEED_DECLARATION_ATOF + +/* Whether sbrk must be declared even if is included. */ +#undef NEED_DECLARATION_SBRK + +/* Whether abort must be declared even if is included. */ +#undef NEED_DECLARATION_ABORT + +/* Whether strerror must be declared even if is included. */ +#undef NEED_DECLARATION_STRERROR + +/* Whether strsignal must be declared even if is included. */ +#undef NEED_DECLARATION_STRSIGNAL + +/* Whether strstr must be declared even if is included. */ +#undef NEED_DECLARATION_STRSTR + +/* Whether getcwd must be declared even if is included. */ +#undef NEED_DECLARATION_GETCWD + +/* Whether getwd must be declared even if is included. */ +#undef NEED_DECLARATION_GETWD + +/* Whether getrlimit must be declared even if is included. */ +#undef NEED_DECLARATION_GETRLIMIT + +/* Whether setrlimit must be declared even if is included. */ +#undef NEED_DECLARATION_SETRLIMIT + +/* Whether putc_unlocked must be declared even if is included. */ +#undef NEED_DECLARATION_PUTC_UNLOCKED + +/* Whether fputs_unlocked must be declared even if is included. */ +#undef NEED_DECLARATION_FPUTS_UNLOCKED + +/* Define to enable the use of a default assembler. */ +#undef DEFAULT_ASSEMBLER + +/* Define to enable the use of a default linker. */ +#undef DEFAULT_LINKER + +/* Define if host mkdir takes a single argument. */ +#undef MKDIR_TAKES_ONE_ARG + +/* Define to the name of the distribution. */ +#undef PACKAGE + +/* Define to the version of the distribution. */ +#undef VERSION + +/* Define if using alloca.c. */ +#undef C_ALLOCA + +/* Define to empty if the keyword does not work. */ +#undef const + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +#undef CRAY_STACKSEG_END + +/* Define if you have alloca, as a function or macro. */ +#undef HAVE_ALLOCA + +/* Define if you have and it should be used (not on Ultrix). */ +#undef HAVE_ALLOCA_H + +/* Define if you don't have vprintf but do have _doprnt. */ +#undef HAVE_DOPRNT + +/* Define if you have a working `mmap' system call. */ +#undef HAVE_MMAP + +/* Define if you have that is POSIX.1 compatible. */ +#undef HAVE_SYS_WAIT_H + +/* Define if you have . */ +#undef HAVE_VFORK_H + +/* Define if you have the vprintf function. */ +#undef HAVE_VPRINTF + +/* Define as __inline if that's what the C compiler calls it. */ +#undef inline + +/* Define to `long' if doesn't define. */ +#undef off_t + +/* Define to `int' if doesn't define. */ +#undef pid_t + +/* Define to `unsigned' if doesn't define. */ +#undef size_t + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown + */ +#undef STACK_DIRECTION + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if `sys_siglist' is declared by . */ +#undef SYS_SIGLIST_DECLARED + +/* Define if you can safely include both and . */ +#undef TIME_WITH_SYS_TIME + +/* Define vfork as fork if vfork does not work. */ +#undef vfork + +/* Define if you have the __argz_count function. */ +#undef HAVE___ARGZ_COUNT + +/* Define if you have the __argz_next function. */ +#undef HAVE___ARGZ_NEXT + +/* Define if you have the __argz_stringify function. */ +#undef HAVE___ARGZ_STRINGIFY + +/* Define if you have the atoll function. */ +#undef HAVE_ATOLL + +/* Define if you have the atoq function. */ +#undef HAVE_ATOQ + +/* Define if you have the bcmp function. */ +#undef HAVE_BCMP + +/* Define if you have the bcopy function. */ +#undef HAVE_BCOPY + +/* Define if you have the bsearch function. */ +#undef HAVE_BSEARCH + +/* Define if you have the bzero function. */ +#undef HAVE_BZERO + +/* Define if you have the dcgettext function. */ +#undef HAVE_DCGETTEXT + +/* Define if you have the fputc_unlocked function. */ +#undef HAVE_FPUTC_UNLOCKED + +/* Define if you have the fputs_unlocked function. */ +#undef HAVE_FPUTS_UNLOCKED + +/* Define if you have the getcwd function. */ +#undef HAVE_GETCWD + +/* Define if you have the getpagesize function. */ +#undef HAVE_GETPAGESIZE + +/* Define if you have the getrlimit function. */ +#undef HAVE_GETRLIMIT + +/* Define if you have the gettimeofday function. */ +#undef HAVE_GETTIMEOFDAY + +/* Define if you have the index function. */ +#undef HAVE_INDEX + +/* Define if you have the isascii function. */ +#undef HAVE_ISASCII + +/* Define if you have the kill function. */ +#undef HAVE_KILL + +/* Define if you have the munmap function. */ +#undef HAVE_MUNMAP + +/* Define if you have the popen function. */ +#undef HAVE_POPEN + +/* Define if you have the putc_unlocked function. */ +#undef HAVE_PUTC_UNLOCKED + +/* Define if you have the putenv function. */ +#undef HAVE_PUTENV + +/* Define if you have the rindex function. */ +#undef HAVE_RINDEX + +/* Define if you have the setenv function. */ +#undef HAVE_SETENV + +/* Define if you have the setlocale function. */ +#undef HAVE_SETLOCALE + +/* Define if you have the setrlimit function. */ +#undef HAVE_SETRLIMIT + +/* Define if you have the stpcpy function. */ +#undef HAVE_STPCPY + +/* Define if you have the strcasecmp function. */ +#undef HAVE_STRCASECMP + +/* Define if you have the strchr function. */ +#undef HAVE_STRCHR + +/* Define if you have the strdup function. */ +#undef HAVE_STRDUP + +/* Define if you have the strerror function. */ +#undef HAVE_STRERROR + +/* Define if you have the strrchr function. */ +#undef HAVE_STRRCHR + +/* Define if you have the strsignal function. */ +#undef HAVE_STRSIGNAL + +/* Define if you have the strtoul function. */ +#undef HAVE_STRTOUL + +/* Define if you have the sysconf function. */ +#undef HAVE_SYSCONF + +/* Define if you have the header file. */ +#undef HAVE_ARGZ_H + +/* Define if you have the header file. */ +#undef HAVE_DIRECT_H + +/* Define if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define if you have the header file. */ +#undef HAVE_LOCALE_H + +/* Define if you have the header file. */ +#undef HAVE_MALLOC_H + +/* Define if you have the header file. */ +#undef HAVE_NL_TYPES_H + +/* Define if you have the header file. */ +#undef HAVE_STAB_H + +/* Define if you have the header file. */ +#undef HAVE_STDDEF_H + +/* Define if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define if you have the header file. */ +#undef HAVE_STRING_H + +/* Define if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_FILE_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_RESOURCE_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TIMES_H + +/* Define if you have the header file. */ +#undef HAVE_TIME_H + +/* Define if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the i library (-li). */ +#undef HAVE_LIBI diff -urN gcc-2.95.2.org/gcc/configure gcc-2.95.2/gcc/configure --- gcc-2.95.2.org/gcc/configure 1999-10-13 00:58:02.000000000 -0700 +++ gcc-2.95.2/gcc/configure 2011-03-20 04:03:11.000000000 -0700 @@ -5545,6 +5545,17 @@ # cpu_type=gmicro # use_collect2=yes # ;; + v810-*-*) + cpu_type=v810 + tm_file="v810/v810.h" + xm_file="v810/xm-v810.h" + tmake_file=v810/t-v810 + if test x$stabs = xyes + then + tm_file="${tm_file} dbx.h" + fi + use_collect2=no + ;; v850-*-*) cpu_type=v850 tm_file="v850/v850.h" diff -urN gcc-2.95.2.org/gcc/configure.in gcc-2.95.2/gcc/configure.in --- gcc-2.95.2.org/gcc/configure.in 1999-10-13 00:58:02.000000000 -0700 +++ gcc-2.95.2/gcc/configure.in 2011-03-20 04:03:11.000000000 -0700 @@ -3242,6 +3242,17 @@ # cpu_type=gmicro # use_collect2=yes # ;; + v810-*-*) + cpu_type=v810 + tm_file="v810/v810.h" + xm_file="v810/xm-v810.h" + tmake_file=v810/t-v810 + if test x$stabs = xyes + then + tm_file="${tm_file} dbx.h" + fi + use_collect2=no + ;; v850-*-*) cpu_type=v850 tm_file="v850/v850.h" diff -urN gcc-2.95.2.org/gcc/f/com.h gcc-2.95.2/gcc/f/com.h --- gcc-2.95.2.org/gcc/f/com.h 1999-04-17 03:58:25.000000000 -0700 +++ gcc-2.95.2/gcc/f/com.h 2011-03-20 04:10:19.000000000 -0700 @@ -310,7 +310,7 @@ void ffecom_finish_progunit (void); tree ffecom_get_invented_identifier (const char *pattern, const char *text, int number); -ffeinfoKindtype ffecom_gfrt_basictype (ffecomGfrt ix); +ffeinfoBasictype ffecom_gfrt_basictype (ffecomGfrt ix); ffeinfoKindtype ffecom_gfrt_kindtype (ffecomGfrt ix); void ffecom_init_0 (void); void ffecom_init_2 (void); diff -urN gcc-2.95.2.org/gcc/java/parse.c gcc-2.95.2/gcc/java/parse.c --- gcc-2.95.2.org/gcc/java/parse.c 1999-10-25 01:02:09.000000000 -0700 +++ gcc-2.95.2/gcc/java/parse.c 2011-03-20 04:12:16.000000000 -0700 @@ -1,125 +1,80 @@ +/* A Bison parser, made by GNU Bison 2.4.3. */ + +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2009, 2010 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 3 of the License, 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, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* 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. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "2.4.3" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + +/* Substitute the variable and function names. */ +#define yyparse java_parse +#define yylex java_lex +#define yyerror java_error +#define yylval java_lval +#define yychar java_char +#define yydebug java_debug +#define yynerrs java_nerrs -/* A Bison parser, made from ./parse.y - by GNU Bison version 1.27 - */ - -#define YYBISON 1 /* Identify Bison output. */ - -#define yyparse java_parse -#define yylex java_lex -#define yyerror java_error -#define yylval java_lval -#define yychar java_char -#define yydebug java_debug -#define yynerrs java_nerrs -#define PLUS_TK 257 -#define MINUS_TK 258 -#define MULT_TK 259 -#define DIV_TK 260 -#define REM_TK 261 -#define LS_TK 262 -#define SRS_TK 263 -#define ZRS_TK 264 -#define AND_TK 265 -#define XOR_TK 266 -#define OR_TK 267 -#define BOOL_AND_TK 268 -#define BOOL_OR_TK 269 -#define EQ_TK 270 -#define NEQ_TK 271 -#define GT_TK 272 -#define GTE_TK 273 -#define LT_TK 274 -#define LTE_TK 275 -#define PLUS_ASSIGN_TK 276 -#define MINUS_ASSIGN_TK 277 -#define MULT_ASSIGN_TK 278 -#define DIV_ASSIGN_TK 279 -#define REM_ASSIGN_TK 280 -#define LS_ASSIGN_TK 281 -#define SRS_ASSIGN_TK 282 -#define ZRS_ASSIGN_TK 283 -#define AND_ASSIGN_TK 284 -#define XOR_ASSIGN_TK 285 -#define OR_ASSIGN_TK 286 -#define PUBLIC_TK 287 -#define PRIVATE_TK 288 -#define PROTECTED_TK 289 -#define STATIC_TK 290 -#define FINAL_TK 291 -#define SYNCHRONIZED_TK 292 -#define VOLATILE_TK 293 -#define TRANSIENT_TK 294 -#define NATIVE_TK 295 -#define PAD_TK 296 -#define ABSTRACT_TK 297 -#define MODIFIER_TK 298 -#define DECR_TK 299 -#define INCR_TK 300 -#define DEFAULT_TK 301 -#define IF_TK 302 -#define THROW_TK 303 -#define BOOLEAN_TK 304 -#define DO_TK 305 -#define IMPLEMENTS_TK 306 -#define THROWS_TK 307 -#define BREAK_TK 308 -#define IMPORT_TK 309 -#define ELSE_TK 310 -#define INSTANCEOF_TK 311 -#define RETURN_TK 312 -#define VOID_TK 313 -#define CATCH_TK 314 -#define INTERFACE_TK 315 -#define CASE_TK 316 -#define EXTENDS_TK 317 -#define FINALLY_TK 318 -#define SUPER_TK 319 -#define WHILE_TK 320 -#define CLASS_TK 321 -#define SWITCH_TK 322 -#define CONST_TK 323 -#define TRY_TK 324 -#define FOR_TK 325 -#define NEW_TK 326 -#define CONTINUE_TK 327 -#define GOTO_TK 328 -#define PACKAGE_TK 329 -#define THIS_TK 330 -#define BYTE_TK 331 -#define SHORT_TK 332 -#define INT_TK 333 -#define LONG_TK 334 -#define CHAR_TK 335 -#define INTEGRAL_TK 336 -#define FLOAT_TK 337 -#define DOUBLE_TK 338 -#define FP_TK 339 -#define ID_TK 340 -#define REL_QM_TK 341 -#define REL_CL_TK 342 -#define NOT_TK 343 -#define NEG_TK 344 -#define ASSIGN_ANY_TK 345 -#define ASSIGN_TK 346 -#define OP_TK 347 -#define CP_TK 348 -#define OCB_TK 349 -#define CCB_TK 350 -#define OSB_TK 351 -#define CSB_TK 352 -#define SC_TK 353 -#define C_TK 354 -#define DOT_TK 355 -#define STRING_LIT_TK 356 -#define CHAR_LIT_TK 357 -#define INT_LIT_TK 358 -#define FP_LIT_TK 359 -#define TRUE_TK 360 -#define FALSE_TK 361 -#define BOOL_LIT_TK 362 -#define NULL_TK 363 +/* Copy the first part of user declarations. */ + +/* Line 189 of yacc.c */ #line 48 "./parse.y" #include "config.h" @@ -376,8 +331,154 @@ static tree current_static_block = NULL_TREE; + +/* Line 189 of yacc.c */ +#line 337 "parse.c" + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 1 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + PLUS_TK = 258, + MINUS_TK = 259, + MULT_TK = 260, + DIV_TK = 261, + REM_TK = 262, + LS_TK = 263, + SRS_TK = 264, + ZRS_TK = 265, + AND_TK = 266, + XOR_TK = 267, + OR_TK = 268, + BOOL_AND_TK = 269, + BOOL_OR_TK = 270, + EQ_TK = 271, + NEQ_TK = 272, + GT_TK = 273, + GTE_TK = 274, + LT_TK = 275, + LTE_TK = 276, + PLUS_ASSIGN_TK = 277, + MINUS_ASSIGN_TK = 278, + MULT_ASSIGN_TK = 279, + DIV_ASSIGN_TK = 280, + REM_ASSIGN_TK = 281, + LS_ASSIGN_TK = 282, + SRS_ASSIGN_TK = 283, + ZRS_ASSIGN_TK = 284, + AND_ASSIGN_TK = 285, + XOR_ASSIGN_TK = 286, + OR_ASSIGN_TK = 287, + PUBLIC_TK = 288, + PRIVATE_TK = 289, + PROTECTED_TK = 290, + STATIC_TK = 291, + FINAL_TK = 292, + SYNCHRONIZED_TK = 293, + VOLATILE_TK = 294, + TRANSIENT_TK = 295, + NATIVE_TK = 296, + PAD_TK = 297, + ABSTRACT_TK = 298, + MODIFIER_TK = 299, + DECR_TK = 300, + INCR_TK = 301, + DEFAULT_TK = 302, + IF_TK = 303, + THROW_TK = 304, + BOOLEAN_TK = 305, + DO_TK = 306, + IMPLEMENTS_TK = 307, + THROWS_TK = 308, + BREAK_TK = 309, + IMPORT_TK = 310, + ELSE_TK = 311, + INSTANCEOF_TK = 312, + RETURN_TK = 313, + VOID_TK = 314, + CATCH_TK = 315, + INTERFACE_TK = 316, + CASE_TK = 317, + EXTENDS_TK = 318, + FINALLY_TK = 319, + SUPER_TK = 320, + WHILE_TK = 321, + CLASS_TK = 322, + SWITCH_TK = 323, + CONST_TK = 324, + TRY_TK = 325, + FOR_TK = 326, + NEW_TK = 327, + CONTINUE_TK = 328, + GOTO_TK = 329, + PACKAGE_TK = 330, + THIS_TK = 331, + BYTE_TK = 332, + SHORT_TK = 333, + INT_TK = 334, + LONG_TK = 335, + CHAR_TK = 336, + INTEGRAL_TK = 337, + FLOAT_TK = 338, + DOUBLE_TK = 339, + FP_TK = 340, + ID_TK = 341, + REL_QM_TK = 342, + REL_CL_TK = 343, + NOT_TK = 344, + NEG_TK = 345, + ASSIGN_ANY_TK = 346, + ASSIGN_TK = 347, + OP_TK = 348, + CP_TK = 349, + OCB_TK = 350, + CCB_TK = 351, + OSB_TK = 352, + CSB_TK = 353, + SC_TK = 354, + C_TK = 355, + DOT_TK = 356, + STRING_LIT_TK = 357, + CHAR_LIT_TK = 358, + INT_LIT_TK = 359, + FP_LIT_TK = 360, + TRUE_TK = 361, + FALSE_TK = 362, + BOOL_LIT_TK = 363, + NULL_TK = 364 + }; +#endif + + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +{ + +/* Line 214 of yacc.c */ #line 304 "./parse.y" -typedef union { + tree node; int sub_token; struct { @@ -385,2438 +486,3134 @@ int location; } operator; int value; + + + +/* Line 214 of yacc.c */ +#line 494 "parse.c" } YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +#endif + + +/* Copy the second part of user declarations. */ + +/* Line 264 of yacc.c */ #line 314 "./parse.y" #include "lex.c" -#ifndef YYDEBUG -#define YYDEBUG 1 + + +/* Line 264 of yacc.c */ +#line 511 "parse.c" + +#ifdef short +# undef short #endif -#include +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif -#ifndef __cplusplus -#ifndef __STDC__ -#define const +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; #endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; #endif +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) +#else +# define YYUSE(e) /* empty */ +#endif -#define YYFINAL 777 -#define YYFLAG -32768 -#define YYNTBASE 110 - -#define YYTRANSLATE(x) ((unsigned)(x) <= 363 ? yytranslate[x] : 266) - -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, 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, 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, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109 -}; +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int yyi) +#else +static int +YYID (yyi) + int yyi; +#endif +{ + return yyi; +} +#endif -#if YYDEBUG != 0 -static const short yyprhs[] = { 0, - 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, - 20, 22, 24, 26, 28, 30, 32, 34, 38, 42, - 46, 50, 54, 56, 58, 60, 64, 66, 67, 69, - 71, 73, 76, 79, 82, 86, 88, 91, 93, 96, - 100, 103, 107, 109, 111, 115, 118, 122, 128, 133, - 139, 141, 143, 145, 147, 149, 152, 153, 161, 162, - 169, 173, 176, 180, 185, 186, 189, 193, 196, 197, - 200, 203, 205, 209, 213, 216, 220, 222, 225, 227, - 229, 231, 233, 235, 238, 240, 242, 244, 248, 253, - 255, 259, 263, 265, 269, 273, 278, 280, 284, 287, - 291, 295, 297, 299, 300, 304, 307, 311, 315, 320, - 325, 328, 332, 335, 339, 342, 346, 351, 355, 359, - 363, 365, 369, 373, 376, 380, 383, 387, 388, 391, - 394, 396, 400, 404, 406, 409, 411, 414, 418, 420, - 421, 425, 428, 432, 436, 441, 444, 448, 452, 457, - 459, 462, 467, 473, 481, 488, 490, 492, 493, 498, - 499, 505, 506, 512, 513, 520, 524, 529, 532, 536, - 539, 543, 546, 550, 552, 555, 557, 559, 561, 563, - 565, 568, 571, 574, 578, 583, 585, 589, 593, 596, - 600, 602, 604, 606, 609, 611, 613, 615, 618, 621, - 625, 627, 629, 631, 633, 635, 637, 639, 641, 643, - 645, 647, 649, 651, 653, 655, 657, 659, 661, 663, - 665, 667, 669, 671, 674, 677, 680, 683, 686, 689, - 692, 695, 699, 704, 709, 715, 720, 726, 733, 741, - 748, 750, 752, 754, 756, 758, 760, 762, 768, 771, - 775, 780, 788, 796, 797, 801, 806, 809, 813, 819, - 822, 826, 830, 835, 837, 840, 843, 845, 848, 852, - 855, 858, 862, 865, 870, 873, 876, 880, 885, 888, - 890, 898, 906, 913, 917, 923, 928, 936, 943, 946, - 949, 953, 956, 957, 959, 961, 964, 965, 967, 969, - 973, 977, 980, 984, 987, 991, 994, 998, 1001, 1005, - 1008, 1012, 1015, 1019, 1023, 1026, 1030, 1036, 1042, 1045, - 1050, 1054, 1056, 1060, 1064, 1069, 1072, 1074, 1077, 1080, - 1085, 1088, 1092, 1097, 1100, 1103, 1105, 1107, 1109, 1111, - 1115, 1117, 1119, 1121, 1123, 1127, 1131, 1135, 1139, 1143, - 1147, 1151, 1155, 1161, 1166, 1173, 1179, 1184, 1190, 1196, - 1203, 1207, 1211, 1216, 1222, 1225, 1229, 1233, 1237, 1239, - 1243, 1247, 1251, 1255, 1260, 1265, 1270, 1275, 1279, 1283, - 1285, 1288, 1292, 1296, 1299, 1302, 1306, 1310, 1314, 1318, - 1321, 1325, 1330, 1336, 1343, 1349, 1356, 1361, 1366, 1371, - 1376, 1380, 1385, 1389, 1394, 1396, 1398, 1400, 1402, 1405, - 1408, 1410, 1412, 1415, 1418, 1420, 1423, 1426, 1429, 1432, - 1435, 1438, 1440, 1443, 1446, 1448, 1451, 1454, 1460, 1465, - 1470, 1476, 1481, 1484, 1490, 1495, 1501, 1503, 1507, 1511, - 1515, 1519, 1523, 1527, 1529, 1533, 1537, 1541, 1545, 1547, - 1551, 1555, 1559, 1563, 1567, 1571, 1573, 1577, 1581, 1585, - 1589, 1593, 1597, 1601, 1605, 1609, 1613, 1615, 1619, 1623, - 1627, 1631, 1633, 1637, 1641, 1643, 1647, 1651, 1653, 1657, - 1661, 1663, 1667, 1671, 1673, 1677, 1681, 1683, 1689, 1694, - 1698, 1704, 1706, 1708, 1712, 1716, 1718, 1720, 1722, 1724, - 1726, 1728 -}; +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) -static const short yyrhs[] = { 123, - 0, 104, 0, 105, 0, 108, 0, 103, 0, 102, - 0, 109, 0, 113, 0, 114, 0, 82, 0, 85, - 0, 50, 0, 115, 0, 118, 0, 119, 0, 115, - 0, 115, 0, 113, 97, 98, 0, 119, 97, 98, - 0, 118, 97, 98, 0, 113, 97, 1, 0, 118, - 97, 1, 0, 120, 0, 121, 0, 122, 0, 119, - 101, 122, 0, 86, 0, 0, 126, 0, 124, 0, - 125, 0, 126, 124, 0, 126, 125, 0, 124, 125, - 0, 126, 124, 125, 0, 127, 0, 124, 127, 0, - 130, 0, 125, 130, 0, 75, 119, 99, 0, 75, - 1, 0, 75, 119, 1, 0, 128, 0, 129, 0, - 55, 119, 99, 0, 55, 1, 0, 55, 119, 1, - 0, 55, 119, 101, 5, 99, 0, 55, 119, 101, - 1, 0, 55, 119, 101, 5, 1, 0, 132, 0, - 166, 0, 99, 0, 1, 0, 44, 0, 131, 44, - 0, 0, 131, 67, 122, 135, 136, 133, 138, 0, - 0, 67, 122, 135, 136, 134, 138, 0, 131, 67, - 1, 0, 67, 1, 0, 67, 122, 1, 0, 131, - 67, 122, 1, 0, 0, 63, 116, 0, 63, 116, - 1, 0, 63, 1, 0, 0, 52, 137, 0, 52, - 1, 0, 117, 0, 137, 100, 117, 0, 137, 100, - 1, 0, 95, 96, 0, 95, 139, 96, 0, 140, - 0, 139, 140, 0, 141, 0, 156, 0, 158, 0, - 179, 0, 142, 0, 142, 99, 0, 147, 0, 132, - 0, 166, 0, 112, 143, 99, 0, 131, 112, 143, - 99, 0, 144, 0, 143, 100, 144, 0, 143, 100, - 1, 0, 145, 0, 145, 92, 146, 0, 145, 92, - 1, 0, 145, 92, 146, 1, 0, 122, 0, 145, - 97, 98, 0, 122, 1, 0, 145, 97, 1, 0, - 145, 98, 1, 0, 264, 0, 177, 0, 0, 149, - 148, 155, 0, 149, 1, 0, 112, 150, 153, 0, - 59, 150, 153, 0, 131, 112, 150, 153, 0, 131, - 59, 150, 153, 0, 112, 1, 0, 131, 112, 1, - 0, 59, 1, 0, 131, 59, 1, 0, 131, 1, - 0, 122, 93, 94, 0, 122, 93, 151, 94, 0, - 150, 97, 98, 0, 122, 93, 1, 0, 150, 97, - 1, 0, 152, 0, 151, 100, 152, 0, 151, 100, - 1, 0, 112, 145, 0, 131, 112, 145, 0, 112, - 1, 0, 131, 112, 1, 0, 0, 53, 154, 0, - 53, 1, 0, 116, 0, 154, 100, 116, 0, 154, - 100, 1, 0, 179, 0, 179, 99, 0, 99, 0, - 157, 179, 0, 157, 179, 99, 0, 44, 0, 0, - 160, 159, 162, 0, 161, 153, 0, 131, 161, 153, - 0, 120, 93, 94, 0, 120, 93, 151, 94, 0, - 180, 163, 0, 180, 164, 163, 0, 180, 182, 163, - 0, 180, 164, 182, 163, 0, 181, 0, 181, 99, - 0, 165, 93, 94, 99, 0, 165, 93, 233, 94, - 99, 0, 119, 101, 65, 93, 233, 94, 99, 0, - 119, 101, 65, 93, 94, 99, 0, 76, 0, 65, - 0, 0, 61, 122, 167, 172, 0, 0, 131, 61, - 122, 168, 172, 0, 0, 61, 122, 171, 169, 172, - 0, 0, 131, 61, 122, 171, 170, 172, 0, 61, - 122, 1, 0, 131, 61, 122, 1, 0, 63, 117, - 0, 171, 100, 117, 0, 63, 1, 0, 171, 100, - 1, 0, 95, 96, 0, 95, 173, 96, 0, 174, - 0, 173, 174, 0, 175, 0, 176, 0, 132, 0, - 166, 0, 142, 0, 149, 99, 0, 149, 1, 0, - 95, 96, 0, 95, 178, 96, 0, 95, 178, 100, - 96, 0, 146, 0, 178, 100, 146, 0, 178, 100, - 1, 0, 95, 96, 0, 180, 182, 181, 0, 95, - 0, 96, 0, 183, 0, 182, 183, 0, 184, 0, - 186, 0, 132, 0, 185, 99, 0, 112, 143, 0, - 131, 112, 143, 0, 188, 0, 191, 0, 195, 0, - 196, 0, 207, 0, 211, 0, 188, 0, 192, 0, - 197, 0, 208, 0, 212, 0, 179, 0, 189, 0, - 193, 0, 198, 0, 210, 0, 218, 0, 219, 0, - 220, 0, 222, 0, 221, 0, 224, 0, 99, 0, - 122, 88, 0, 190, 186, 0, 122, 1, 0, 190, - 187, 0, 194, 99, 0, 1, 99, 0, 1, 95, - 0, 1, 96, 0, 165, 93, 1, 0, 165, 93, - 94, 1, 0, 165, 93, 233, 1, 0, 165, 93, - 233, 94, 1, 0, 119, 101, 65, 1, 0, 119, - 101, 65, 93, 1, 0, 119, 101, 65, 93, 233, - 1, 0, 119, 101, 65, 93, 233, 94, 1, 0, - 119, 101, 65, 93, 94, 1, 0, 261, 0, 245, - 0, 246, 0, 242, 0, 243, 0, 239, 0, 231, - 0, 48, 93, 264, 94, 186, 0, 48, 1, 0, - 48, 93, 1, 0, 48, 93, 264, 1, 0, 48, - 93, 264, 94, 187, 56, 186, 0, 48, 93, 264, - 94, 187, 56, 187, 0, 0, 200, 199, 201, 0, - 68, 93, 264, 94, 0, 68, 1, 0, 68, 93, - 1, 0, 68, 93, 264, 94, 1, 0, 95, 96, - 0, 95, 204, 96, 0, 95, 202, 96, 0, 95, - 202, 204, 96, 0, 203, 0, 202, 203, 0, 204, - 182, 0, 205, 0, 204, 205, 0, 62, 265, 88, - 0, 47, 88, 0, 62, 1, 0, 62, 265, 1, - 0, 47, 1, 0, 66, 93, 264, 94, 0, 206, - 186, 0, 66, 1, 0, 66, 93, 1, 0, 66, - 93, 264, 1, 0, 206, 187, 0, 51, 0, 209, - 186, 66, 93, 264, 94, 99, 0, 214, 99, 264, - 99, 216, 94, 186, 0, 214, 99, 99, 216, 94, - 186, 0, 214, 99, 1, 0, 214, 99, 264, 99, - 1, 0, 214, 99, 99, 1, 0, 214, 99, 264, - 99, 216, 94, 187, 0, 214, 99, 99, 216, 94, - 187, 0, 71, 93, 0, 71, 1, 0, 71, 93, - 1, 0, 213, 215, 0, 0, 217, 0, 185, 0, - 217, 1, 0, 0, 217, 0, 194, 0, 217, 100, - 194, 0, 217, 100, 1, 0, 54, 99, 0, 54, - 122, 99, 0, 54, 1, 0, 54, 122, 1, 0, - 73, 99, 0, 73, 122, 99, 0, 73, 1, 0, - 73, 122, 1, 0, 58, 99, 0, 58, 264, 99, - 0, 58, 1, 0, 58, 264, 1, 0, 49, 264, - 99, 0, 49, 1, 0, 49, 264, 1, 0, 223, - 93, 264, 94, 179, 0, 223, 93, 264, 94, 1, - 0, 223, 1, 0, 223, 93, 1, 94, 0, 223, - 93, 1, 0, 44, 0, 70, 179, 225, 0, 70, - 179, 228, 0, 70, 179, 225, 228, 0, 70, 1, - 0, 226, 0, 225, 226, 0, 227, 179, 0, 60, - 93, 152, 94, 0, 60, 1, 0, 60, 93, 1, - 0, 60, 93, 1, 94, 0, 64, 179, 0, 64, - 1, 0, 230, 0, 234, 0, 111, 0, 76, 0, - 93, 264, 94, 0, 231, 0, 238, 0, 239, 0, - 240, 0, 119, 101, 67, 0, 113, 101, 67, 0, - 59, 101, 67, 0, 119, 101, 76, 0, 93, 264, - 1, 0, 119, 101, 1, 0, 113, 101, 1, 0, - 59, 101, 1, 0, 72, 116, 93, 233, 94, 0, - 72, 116, 93, 94, 0, 72, 116, 93, 233, 94, - 138, 0, 72, 116, 93, 94, 138, 0, 232, 122, - 93, 94, 0, 232, 122, 93, 94, 138, 0, 232, - 122, 93, 233, 94, 0, 232, 122, 93, 233, 94, - 138, 0, 72, 1, 99, 0, 72, 116, 1, 0, - 72, 116, 93, 1, 0, 72, 116, 93, 233, 1, - 0, 232, 1, 0, 232, 122, 1, 0, 119, 101, - 72, 0, 229, 101, 72, 0, 264, 0, 233, 100, - 264, 0, 233, 100, 1, 0, 72, 113, 235, 0, - 72, 115, 235, 0, 72, 113, 235, 237, 0, 72, - 115, 235, 237, 0, 72, 115, 237, 177, 0, 72, - 113, 237, 177, 0, 72, 1, 98, 0, 72, 1, - 97, 0, 236, 0, 235, 236, 0, 97, 264, 98, - 0, 97, 264, 1, 0, 97, 1, 0, 97, 98, - 0, 237, 97, 98, 0, 237, 97, 1, 0, 229, - 101, 122, 0, 65, 101, 122, 0, 65, 1, 0, - 119, 93, 94, 0, 119, 93, 233, 94, 0, 229, - 101, 122, 93, 94, 0, 229, 101, 122, 93, 233, - 94, 0, 65, 101, 122, 93, 94, 0, 65, 101, - 122, 93, 233, 94, 0, 65, 101, 1, 94, 0, - 65, 101, 1, 101, 0, 119, 97, 264, 98, 0, - 230, 97, 264, 98, 0, 119, 97, 1, 0, 119, - 97, 264, 1, 0, 230, 97, 1, 0, 230, 97, - 264, 1, 0, 229, 0, 119, 0, 242, 0, 243, - 0, 241, 46, 0, 241, 45, 0, 245, 0, 246, - 0, 3, 244, 0, 4, 244, 0, 247, 0, 3, - 1, 0, 4, 1, 0, 46, 244, 0, 46, 1, - 0, 45, 244, 0, 45, 1, 0, 241, 0, 89, - 244, 0, 90, 244, 0, 248, 0, 89, 1, 0, - 90, 1, 0, 93, 113, 237, 94, 244, 0, 93, - 113, 94, 244, 0, 93, 264, 94, 247, 0, 93, - 119, 237, 94, 247, 0, 93, 113, 97, 1, 0, - 93, 1, 0, 93, 113, 237, 94, 1, 0, 93, - 113, 94, 1, 0, 93, 119, 237, 94, 1, 0, - 244, 0, 249, 5, 244, 0, 249, 6, 244, 0, - 249, 7, 244, 0, 249, 5, 1, 0, 249, 6, - 1, 0, 249, 7, 1, 0, 249, 0, 250, 3, - 249, 0, 250, 4, 249, 0, 250, 3, 1, 0, - 250, 4, 1, 0, 250, 0, 251, 8, 250, 0, - 251, 9, 250, 0, 251, 10, 250, 0, 251, 8, - 1, 0, 251, 9, 1, 0, 251, 10, 1, 0, - 251, 0, 252, 20, 251, 0, 252, 18, 251, 0, - 252, 21, 251, 0, 252, 19, 251, 0, 252, 57, - 114, 0, 252, 20, 1, 0, 252, 18, 1, 0, - 252, 21, 1, 0, 252, 19, 1, 0, 252, 57, - 1, 0, 252, 0, 253, 16, 252, 0, 253, 17, - 252, 0, 253, 16, 1, 0, 253, 17, 1, 0, - 253, 0, 254, 11, 253, 0, 254, 11, 1, 0, - 254, 0, 255, 12, 254, 0, 255, 12, 1, 0, - 255, 0, 256, 13, 255, 0, 256, 13, 1, 0, - 256, 0, 257, 14, 256, 0, 257, 14, 1, 0, - 257, 0, 258, 15, 257, 0, 258, 15, 1, 0, - 258, 0, 258, 87, 264, 88, 259, 0, 258, 87, - 88, 1, 0, 258, 87, 1, 0, 258, 87, 264, - 88, 1, 0, 259, 0, 261, 0, 262, 263, 260, - 0, 262, 263, 1, 0, 119, 0, 238, 0, 240, - 0, 91, 0, 92, 0, 260, 0, 264, 0 +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; }; -#endif +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) -#if YYDEBUG != 0 -static const short yyrline[] = { 0, - 458, 464, 466, 467, 468, 469, 470, 474, 476, 479, - 481, 482, 485, 487, 490, 494, 498, 502, 508, 510, - 512, 514, 519, 521, 524, 528, 533, 538, 540, 541, - 542, 543, 544, 545, 546, 549, 554, 560, 562, 565, - 568, 570, 574, 576, 579, 606, 608, 612, 625, 627, - 631, 638, 643, 645, 655, 660, 675, 679, 682, 685, - 688, 690, 692, 697, 701, 703, 705, 707, 711, 713, - 715, 722, 728, 733, 737, 746, 756, 758, 761, 763, - 764, 765, 769, 771, 773, 774, 776, 781, 784, 794, - 797, 799, 803, 806, 813, 819, 827, 829, 831, 833, - 835, 839, 841, 845, 852, 853, 857, 860, 862, 864, - 866, 868, 870, 872, 874, 881, 884, 886, 895, 897, - 901, 906, 911, 915, 920, 925, 927, 934, 936, 938, - 942, 945, 947, 951, 953, 954, 959, 965, 972, 980, - 987, 990, 993, 997, 1000, 1004, 1013, 1015, 1017, 1021, - 1023, 1026, 1033, 1041, 1043, 1047, 1054, 1064, 1068, 1071, - 1074, 1077, 1080, 1083, 1086, 1089, 1091, 1095, 1101, 1106, - 1108, 1112, 1115, 1119, 1121, 1124, 1126, 1127, 1129, 1133, - 1137, 1143, 1148, 1151, 1153, 1157, 1163, 1167, 1172, 1181, - 1185, 1190, 1202, 1204, 1207, 1209, 1211, 1215, 1219, 1222, - 1226, 1228, 1229, 1230, 1231, 1232, 1236, 1238, 1239, 1240, - 1241, 1245, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, - 1255, 1256, 1259, 1264, 1275, 1278, 1282, 1289, 1299, 1305, - 1311, 1317, 1319, 1325, 1327, 1333, 1335, 1337, 1339, 1341, - 1345, 1347, 1348, 1349, 1350, 1351, 1352, 1355, 1361, 1363, - 1365, 1369, 1374, 1379, 1385, 1395, 1401, 1403, 1405, 1412, - 1415, 1417, 1419, 1423, 1425, 1428, 1432, 1434, 1437, 1444, - 1450, 1452, 1454, 1458, 1466, 1469, 1471, 1473, 1477, 1482, - 1491, 1496, 1499, 1506, 1508, 1510, 1514, 1517, 1526, 1533, - 1535, 1539, 1552, 1554, 1560, 1566, 1570, 1572, 1576, 1579, - 1581, 1585, 1588, 1590, 1592, 1596, 1599, 1601, 1603, 1607, - 1610, 1612, 1614, 1618, 1624, 1626, 1630, 1637, 1639, 1641, - 1643, 1647, 1655, 1658, 1660, 1665, 1669, 1671, 1678, 1686, - 1703, 1705, 1707, 1711, 1714, 1719, 1721, 1724, 1726, 1728, - 1730, 1731, 1732, 1733, 1737, 1739, 1741, 1746, 1748, 1750, - 1752, 1754, 1758, 1761, 1766, 1768, 1773, 1774, 1775, 1776, - 1777, 1779, 1781, 1783, 1785, 1787, 1791, 1793, 1796, 1802, - 1807, 1811, 1814, 1816, 1818, 1822, 1824, 1826, 1828, 1832, - 1835, 1839, 1845, 1847, 1855, 1882, 1884, 1888, 1893, 1900, - 1904, 1907, 1909, 1920, 1931, 1936, 1945, 1947, 1951, 1954, - 1956, 1961, 1966, 1971, 1978, 1980, 1981, 1982, 1985, 1990, - 1995, 1997, 1998, 2000, 2002, 2003, 2005, 2009, 2012, 2016, - 2019, 2023, 2025, 2027, 2029, 2030, 2032, 2036, 2045, 2047, - 2049, 2062, 2064, 2070, 2072, 2074, 2078, 2080, 2085, 2090, - 2095, 2097, 2099, 2103, 2105, 2110, 2115, 2117, 2121, 2123, - 2128, 2133, 2138, 2140, 2142, 2146, 2148, 2153, 2158, 2163, - 2168, 2170, 2172, 2174, 2176, 2178, 2182, 2184, 2189, 2194, - 2196, 2200, 2202, 2207, 2211, 2213, 2218, 2222, 2224, 2229, - 2233, 2235, 2240, 2244, 2246, 2251, 2255, 2257, 2262, 2268, - 2270, 2274, 2276, 2279, 2282, 2290, 2292, 2293, 2296, 2298, - 2301, 2305 +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif + +/* Relocate 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(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) + +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 31 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 5486 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 110 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 157 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 503 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 777 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 364 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const yytype_uint8 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, 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, 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, 2, 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, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109 }; -#endif +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint16 yyprhs[] = +{ + 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, + 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, + 41, 45, 49, 53, 57, 59, 61, 63, 67, 69, + 70, 72, 74, 76, 79, 82, 85, 89, 91, 94, + 96, 99, 103, 106, 110, 112, 114, 118, 121, 125, + 131, 136, 142, 144, 146, 148, 150, 152, 155, 156, + 164, 165, 172, 176, 179, 183, 188, 189, 192, 196, + 199, 200, 203, 206, 208, 212, 216, 219, 223, 225, + 228, 230, 232, 234, 236, 238, 241, 243, 245, 247, + 251, 256, 258, 262, 266, 268, 272, 276, 281, 283, + 287, 290, 294, 298, 300, 302, 303, 307, 310, 314, + 318, 323, 328, 331, 335, 338, 342, 345, 349, 354, + 358, 362, 366, 368, 372, 376, 379, 383, 386, 390, + 391, 394, 397, 399, 403, 407, 409, 412, 414, 417, + 421, 423, 424, 428, 431, 435, 439, 444, 447, 451, + 455, 460, 462, 465, 470, 476, 484, 491, 493, 495, + 496, 501, 502, 508, 509, 515, 516, 523, 527, 532, + 535, 539, 542, 546, 549, 553, 555, 558, 560, 562, + 564, 566, 568, 571, 574, 577, 581, 586, 588, 592, + 596, 599, 603, 605, 607, 609, 612, 614, 616, 618, + 621, 624, 628, 630, 632, 634, 636, 638, 640, 642, + 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, + 664, 666, 668, 670, 672, 674, 677, 680, 683, 686, + 689, 692, 695, 698, 702, 707, 712, 718, 723, 729, + 736, 744, 751, 753, 755, 757, 759, 761, 763, 765, + 771, 774, 778, 783, 791, 799, 800, 804, 809, 812, + 816, 822, 825, 829, 833, 838, 840, 843, 846, 848, + 851, 855, 858, 861, 865, 868, 873, 876, 879, 883, + 888, 891, 893, 901, 909, 916, 920, 926, 931, 939, + 946, 949, 952, 956, 959, 960, 962, 964, 967, 968, + 970, 972, 976, 980, 983, 987, 990, 994, 997, 1001, + 1004, 1008, 1011, 1015, 1018, 1022, 1026, 1029, 1033, 1039, + 1045, 1048, 1053, 1057, 1059, 1063, 1067, 1072, 1075, 1077, + 1080, 1083, 1088, 1091, 1095, 1100, 1103, 1106, 1108, 1110, + 1112, 1114, 1118, 1120, 1122, 1124, 1126, 1130, 1134, 1138, + 1142, 1146, 1150, 1154, 1158, 1164, 1169, 1176, 1182, 1187, + 1193, 1199, 1206, 1210, 1214, 1219, 1225, 1228, 1232, 1236, + 1240, 1242, 1246, 1250, 1254, 1258, 1263, 1268, 1273, 1278, + 1282, 1286, 1288, 1291, 1295, 1299, 1302, 1305, 1309, 1313, + 1317, 1321, 1324, 1328, 1333, 1339, 1346, 1352, 1359, 1364, + 1369, 1374, 1379, 1383, 1388, 1392, 1397, 1399, 1401, 1403, + 1405, 1408, 1411, 1413, 1415, 1418, 1421, 1423, 1426, 1429, + 1432, 1435, 1438, 1441, 1443, 1446, 1449, 1451, 1454, 1457, + 1463, 1468, 1473, 1479, 1484, 1487, 1493, 1498, 1504, 1506, + 1510, 1514, 1518, 1522, 1526, 1530, 1532, 1536, 1540, 1544, + 1548, 1550, 1554, 1558, 1562, 1566, 1570, 1574, 1576, 1580, + 1584, 1588, 1592, 1596, 1600, 1604, 1608, 1612, 1616, 1618, + 1622, 1626, 1630, 1634, 1636, 1640, 1644, 1646, 1650, 1654, + 1656, 1660, 1664, 1666, 1670, 1674, 1676, 1680, 1684, 1686, + 1692, 1697, 1701, 1707, 1709, 1711, 1715, 1719, 1721, 1723, + 1725, 1727, 1729, 1731 +}; -#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int16 yyrhs[] = +{ + 111, 0, -1, 124, -1, 104, -1, 105, -1, 108, + -1, 103, -1, 102, -1, 109, -1, 114, -1, 115, + -1, 82, -1, 85, -1, 50, -1, 116, -1, 119, + -1, 120, -1, 116, -1, 116, -1, 114, 97, 98, + -1, 120, 97, 98, -1, 119, 97, 98, -1, 114, + 97, 1, -1, 119, 97, 1, -1, 121, -1, 122, + -1, 123, -1, 120, 101, 123, -1, 86, -1, -1, + 127, -1, 125, -1, 126, -1, 127, 125, -1, 127, + 126, -1, 125, 126, -1, 127, 125, 126, -1, 128, + -1, 125, 128, -1, 131, -1, 126, 131, -1, 75, + 120, 99, -1, 75, 1, -1, 75, 120, 1, -1, + 129, -1, 130, -1, 55, 120, 99, -1, 55, 1, + -1, 55, 120, 1, -1, 55, 120, 101, 5, 99, + -1, 55, 120, 101, 1, -1, 55, 120, 101, 5, + 1, -1, 133, -1, 167, -1, 99, -1, 1, -1, + 44, -1, 132, 44, -1, -1, 132, 67, 123, 136, + 137, 134, 139, -1, -1, 67, 123, 136, 137, 135, + 139, -1, 132, 67, 1, -1, 67, 1, -1, 67, + 123, 1, -1, 132, 67, 123, 1, -1, -1, 63, + 117, -1, 63, 117, 1, -1, 63, 1, -1, -1, + 52, 138, -1, 52, 1, -1, 118, -1, 138, 100, + 118, -1, 138, 100, 1, -1, 95, 96, -1, 95, + 140, 96, -1, 141, -1, 140, 141, -1, 142, -1, + 157, -1, 159, -1, 180, -1, 143, -1, 143, 99, + -1, 148, -1, 133, -1, 167, -1, 113, 144, 99, + -1, 132, 113, 144, 99, -1, 145, -1, 144, 100, + 145, -1, 144, 100, 1, -1, 146, -1, 146, 92, + 147, -1, 146, 92, 1, -1, 146, 92, 147, 1, + -1, 123, -1, 146, 97, 98, -1, 123, 1, -1, + 146, 97, 1, -1, 146, 98, 1, -1, 265, -1, + 178, -1, -1, 150, 149, 156, -1, 150, 1, -1, + 113, 151, 154, -1, 59, 151, 154, -1, 132, 113, + 151, 154, -1, 132, 59, 151, 154, -1, 113, 1, + -1, 132, 113, 1, -1, 59, 1, -1, 132, 59, + 1, -1, 132, 1, -1, 123, 93, 94, -1, 123, + 93, 152, 94, -1, 151, 97, 98, -1, 123, 93, + 1, -1, 151, 97, 1, -1, 153, -1, 152, 100, + 153, -1, 152, 100, 1, -1, 113, 146, -1, 132, + 113, 146, -1, 113, 1, -1, 132, 113, 1, -1, + -1, 53, 155, -1, 53, 1, -1, 117, -1, 155, + 100, 117, -1, 155, 100, 1, -1, 180, -1, 180, + 99, -1, 99, -1, 158, 180, -1, 158, 180, 99, + -1, 44, -1, -1, 161, 160, 163, -1, 162, 154, + -1, 132, 162, 154, -1, 121, 93, 94, -1, 121, + 93, 152, 94, -1, 181, 164, -1, 181, 165, 164, + -1, 181, 183, 164, -1, 181, 165, 183, 164, -1, + 182, -1, 182, 99, -1, 166, 93, 94, 99, -1, + 166, 93, 234, 94, 99, -1, 120, 101, 65, 93, + 234, 94, 99, -1, 120, 101, 65, 93, 94, 99, + -1, 76, -1, 65, -1, -1, 61, 123, 168, 173, + -1, -1, 132, 61, 123, 169, 173, -1, -1, 61, + 123, 172, 170, 173, -1, -1, 132, 61, 123, 172, + 171, 173, -1, 61, 123, 1, -1, 132, 61, 123, + 1, -1, 63, 118, -1, 172, 100, 118, -1, 63, + 1, -1, 172, 100, 1, -1, 95, 96, -1, 95, + 174, 96, -1, 175, -1, 174, 175, -1, 176, -1, + 177, -1, 133, -1, 167, -1, 143, -1, 150, 99, + -1, 150, 1, -1, 95, 96, -1, 95, 179, 96, + -1, 95, 179, 100, 96, -1, 147, -1, 179, 100, + 147, -1, 179, 100, 1, -1, 95, 96, -1, 181, + 183, 182, -1, 95, -1, 96, -1, 184, -1, 183, + 184, -1, 185, -1, 187, -1, 133, -1, 186, 99, + -1, 113, 144, -1, 132, 113, 144, -1, 189, -1, + 192, -1, 196, -1, 197, -1, 208, -1, 212, -1, + 189, -1, 193, -1, 198, -1, 209, -1, 213, -1, + 180, -1, 190, -1, 194, -1, 199, -1, 211, -1, + 219, -1, 220, -1, 221, -1, 223, -1, 222, -1, + 225, -1, 99, -1, 123, 88, -1, 191, 187, -1, + 123, 1, -1, 191, 188, -1, 195, 99, -1, 1, + 99, -1, 1, 95, -1, 1, 96, -1, 166, 93, + 1, -1, 166, 93, 94, 1, -1, 166, 93, 234, + 1, -1, 166, 93, 234, 94, 1, -1, 120, 101, + 65, 1, -1, 120, 101, 65, 93, 1, -1, 120, + 101, 65, 93, 234, 1, -1, 120, 101, 65, 93, + 234, 94, 1, -1, 120, 101, 65, 93, 94, 1, + -1, 262, -1, 246, -1, 247, -1, 243, -1, 244, + -1, 240, -1, 232, -1, 48, 93, 265, 94, 187, + -1, 48, 1, -1, 48, 93, 1, -1, 48, 93, + 265, 1, -1, 48, 93, 265, 94, 188, 56, 187, + -1, 48, 93, 265, 94, 188, 56, 188, -1, -1, + 201, 200, 202, -1, 68, 93, 265, 94, -1, 68, + 1, -1, 68, 93, 1, -1, 68, 93, 265, 94, + 1, -1, 95, 96, -1, 95, 205, 96, -1, 95, + 203, 96, -1, 95, 203, 205, 96, -1, 204, -1, + 203, 204, -1, 205, 183, -1, 206, -1, 205, 206, + -1, 62, 266, 88, -1, 47, 88, -1, 62, 1, + -1, 62, 266, 1, -1, 47, 1, -1, 66, 93, + 265, 94, -1, 207, 187, -1, 66, 1, -1, 66, + 93, 1, -1, 66, 93, 265, 1, -1, 207, 188, + -1, 51, -1, 210, 187, 66, 93, 265, 94, 99, + -1, 215, 99, 265, 99, 217, 94, 187, -1, 215, + 99, 99, 217, 94, 187, -1, 215, 99, 1, -1, + 215, 99, 265, 99, 1, -1, 215, 99, 99, 1, + -1, 215, 99, 265, 99, 217, 94, 188, -1, 215, + 99, 99, 217, 94, 188, -1, 71, 93, -1, 71, + 1, -1, 71, 93, 1, -1, 214, 216, -1, -1, + 218, -1, 186, -1, 218, 1, -1, -1, 218, -1, + 195, -1, 218, 100, 195, -1, 218, 100, 1, -1, + 54, 99, -1, 54, 123, 99, -1, 54, 1, -1, + 54, 123, 1, -1, 73, 99, -1, 73, 123, 99, + -1, 73, 1, -1, 73, 123, 1, -1, 58, 99, + -1, 58, 265, 99, -1, 58, 1, -1, 58, 265, + 1, -1, 49, 265, 99, -1, 49, 1, -1, 49, + 265, 1, -1, 224, 93, 265, 94, 180, -1, 224, + 93, 265, 94, 1, -1, 224, 1, -1, 224, 93, + 1, 94, -1, 224, 93, 1, -1, 44, -1, 70, + 180, 226, -1, 70, 180, 229, -1, 70, 180, 226, + 229, -1, 70, 1, -1, 227, -1, 226, 227, -1, + 228, 180, -1, 60, 93, 153, 94, -1, 60, 1, + -1, 60, 93, 1, -1, 60, 93, 1, 94, -1, + 64, 180, -1, 64, 1, -1, 231, -1, 235, -1, + 112, -1, 76, -1, 93, 265, 94, -1, 232, -1, + 239, -1, 240, -1, 241, -1, 120, 101, 67, -1, + 114, 101, 67, -1, 59, 101, 67, -1, 120, 101, + 76, -1, 93, 265, 1, -1, 120, 101, 1, -1, + 114, 101, 1, -1, 59, 101, 1, -1, 72, 117, + 93, 234, 94, -1, 72, 117, 93, 94, -1, 72, + 117, 93, 234, 94, 139, -1, 72, 117, 93, 94, + 139, -1, 233, 123, 93, 94, -1, 233, 123, 93, + 94, 139, -1, 233, 123, 93, 234, 94, -1, 233, + 123, 93, 234, 94, 139, -1, 72, 1, 99, -1, + 72, 117, 1, -1, 72, 117, 93, 1, -1, 72, + 117, 93, 234, 1, -1, 233, 1, -1, 233, 123, + 1, -1, 120, 101, 72, -1, 230, 101, 72, -1, + 265, -1, 234, 100, 265, -1, 234, 100, 1, -1, + 72, 114, 236, -1, 72, 116, 236, -1, 72, 114, + 236, 238, -1, 72, 116, 236, 238, -1, 72, 116, + 238, 178, -1, 72, 114, 238, 178, -1, 72, 1, + 98, -1, 72, 1, 97, -1, 237, -1, 236, 237, + -1, 97, 265, 98, -1, 97, 265, 1, -1, 97, + 1, -1, 97, 98, -1, 238, 97, 98, -1, 238, + 97, 1, -1, 230, 101, 123, -1, 65, 101, 123, + -1, 65, 1, -1, 120, 93, 94, -1, 120, 93, + 234, 94, -1, 230, 101, 123, 93, 94, -1, 230, + 101, 123, 93, 234, 94, -1, 65, 101, 123, 93, + 94, -1, 65, 101, 123, 93, 234, 94, -1, 65, + 101, 1, 94, -1, 65, 101, 1, 101, -1, 120, + 97, 265, 98, -1, 231, 97, 265, 98, -1, 120, + 97, 1, -1, 120, 97, 265, 1, -1, 231, 97, + 1, -1, 231, 97, 265, 1, -1, 230, -1, 120, + -1, 243, -1, 244, -1, 242, 46, -1, 242, 45, + -1, 246, -1, 247, -1, 3, 245, -1, 4, 245, + -1, 248, -1, 3, 1, -1, 4, 1, -1, 46, + 245, -1, 46, 1, -1, 45, 245, -1, 45, 1, + -1, 242, -1, 89, 245, -1, 90, 245, -1, 249, + -1, 89, 1, -1, 90, 1, -1, 93, 114, 238, + 94, 245, -1, 93, 114, 94, 245, -1, 93, 265, + 94, 248, -1, 93, 120, 238, 94, 248, -1, 93, + 114, 97, 1, -1, 93, 1, -1, 93, 114, 238, + 94, 1, -1, 93, 114, 94, 1, -1, 93, 120, + 238, 94, 1, -1, 245, -1, 250, 5, 245, -1, + 250, 6, 245, -1, 250, 7, 245, -1, 250, 5, + 1, -1, 250, 6, 1, -1, 250, 7, 1, -1, + 250, -1, 251, 3, 250, -1, 251, 4, 250, -1, + 251, 3, 1, -1, 251, 4, 1, -1, 251, -1, + 252, 8, 251, -1, 252, 9, 251, -1, 252, 10, + 251, -1, 252, 8, 1, -1, 252, 9, 1, -1, + 252, 10, 1, -1, 252, -1, 253, 20, 252, -1, + 253, 18, 252, -1, 253, 21, 252, -1, 253, 19, + 252, -1, 253, 57, 115, -1, 253, 20, 1, -1, + 253, 18, 1, -1, 253, 21, 1, -1, 253, 19, + 1, -1, 253, 57, 1, -1, 253, -1, 254, 16, + 253, -1, 254, 17, 253, -1, 254, 16, 1, -1, + 254, 17, 1, -1, 254, -1, 255, 11, 254, -1, + 255, 11, 1, -1, 255, -1, 256, 12, 255, -1, + 256, 12, 1, -1, 256, -1, 257, 13, 256, -1, + 257, 13, 1, -1, 257, -1, 258, 14, 257, -1, + 258, 14, 1, -1, 258, -1, 259, 15, 258, -1, + 259, 15, 1, -1, 259, -1, 259, 87, 265, 88, + 260, -1, 259, 87, 88, 1, -1, 259, 87, 1, + -1, 259, 87, 265, 88, 1, -1, 260, -1, 262, + -1, 263, 264, 261, -1, 263, 264, 1, -1, 120, + -1, 239, -1, 241, -1, 91, -1, 92, -1, 261, + -1, 265, -1 +}; -static const char * const yytname[] = { "$","error","$undefined.","PLUS_TK", -"MINUS_TK","MULT_TK","DIV_TK","REM_TK","LS_TK","SRS_TK","ZRS_TK","AND_TK","XOR_TK", -"OR_TK","BOOL_AND_TK","BOOL_OR_TK","EQ_TK","NEQ_TK","GT_TK","GTE_TK","LT_TK", -"LTE_TK","PLUS_ASSIGN_TK","MINUS_ASSIGN_TK","MULT_ASSIGN_TK","DIV_ASSIGN_TK", -"REM_ASSIGN_TK","LS_ASSIGN_TK","SRS_ASSIGN_TK","ZRS_ASSIGN_TK","AND_ASSIGN_TK", -"XOR_ASSIGN_TK","OR_ASSIGN_TK","PUBLIC_TK","PRIVATE_TK","PROTECTED_TK","STATIC_TK", -"FINAL_TK","SYNCHRONIZED_TK","VOLATILE_TK","TRANSIENT_TK","NATIVE_TK","PAD_TK", -"ABSTRACT_TK","MODIFIER_TK","DECR_TK","INCR_TK","DEFAULT_TK","IF_TK","THROW_TK", -"BOOLEAN_TK","DO_TK","IMPLEMENTS_TK","THROWS_TK","BREAK_TK","IMPORT_TK","ELSE_TK", -"INSTANCEOF_TK","RETURN_TK","VOID_TK","CATCH_TK","INTERFACE_TK","CASE_TK","EXTENDS_TK", -"FINALLY_TK","SUPER_TK","WHILE_TK","CLASS_TK","SWITCH_TK","CONST_TK","TRY_TK", -"FOR_TK","NEW_TK","CONTINUE_TK","GOTO_TK","PACKAGE_TK","THIS_TK","BYTE_TK","SHORT_TK", -"INT_TK","LONG_TK","CHAR_TK","INTEGRAL_TK","FLOAT_TK","DOUBLE_TK","FP_TK","ID_TK", -"REL_QM_TK","REL_CL_TK","NOT_TK","NEG_TK","ASSIGN_ANY_TK","ASSIGN_TK","OP_TK", -"CP_TK","OCB_TK","CCB_TK","OSB_TK","CSB_TK","SC_TK","C_TK","DOT_TK","STRING_LIT_TK", -"CHAR_LIT_TK","INT_LIT_TK","FP_LIT_TK","TRUE_TK","FALSE_TK","BOOL_LIT_TK","NULL_TK", -"goal","literal","type","primitive_type","reference_type","class_or_interface_type", -"class_type","interface_type","array_type","name","simple_name","qualified_name", -"identifier","compilation_unit","import_declarations","type_declarations","package_declaration", -"import_declaration","single_type_import_declaration","type_import_on_demand_declaration", -"type_declaration","modifiers","class_declaration","@1","@2","super","interfaces", -"interface_type_list","class_body","class_body_declarations","class_body_declaration", -"class_member_declaration","field_declaration","variable_declarators","variable_declarator", -"variable_declarator_id","variable_initializer","method_declaration","@3","method_header", -"method_declarator","formal_parameter_list","formal_parameter","throws","class_type_list", -"method_body","static_initializer","static","constructor_declaration","@4","constructor_header", -"constructor_declarator","constructor_body","constructor_block_end","explicit_constructor_invocation", -"this_or_super","interface_declaration","@5","@6","@7","@8","extends_interfaces", -"interface_body","interface_member_declarations","interface_member_declaration", -"constant_declaration","abstract_method_declaration","array_initializer","variable_initializers", -"block","block_begin","block_end","block_statements","block_statement","local_variable_declaration_statement", -"local_variable_declaration","statement","statement_nsi","statement_without_trailing_substatement", -"empty_statement","label_decl","labeled_statement","labeled_statement_nsi","expression_statement", -"statement_expression","if_then_statement","if_then_else_statement","if_then_else_statement_nsi", -"switch_statement","@9","switch_expression","switch_block","switch_block_statement_groups", -"switch_block_statement_group","switch_labels","switch_label","while_expression", -"while_statement","while_statement_nsi","do_statement_begin","do_statement", -"for_statement","for_statement_nsi","for_header","for_begin","for_init","for_update", -"statement_expression_list","break_statement","continue_statement","return_statement", -"throw_statement","synchronized_statement","synchronized","try_statement","catches", -"catch_clause","catch_clause_parameter","finally","primary","primary_no_new_array", -"class_instance_creation_expression","something_dot_new","argument_list","array_creation_expression", -"dim_exprs","dim_expr","dims","field_access","method_invocation","array_access", -"postfix_expression","post_increment_expression","post_decrement_expression", -"unary_expression","pre_increment_expression","pre_decrement_expression","unary_expression_not_plus_minus", -"cast_expression","multiplicative_expression","additive_expression","shift_expression", -"relational_expression","equality_expression","and_expression","exclusive_or_expression", -"inclusive_or_expression","conditional_and_expression","conditional_or_expression", -"conditional_expression","assignment_expression","assignment","left_hand_side", -"assignment_operator","expression","constant_expression", NULL +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 459, 459, 465, 466, 467, 468, 469, 470, 475, + 476, 480, 481, 482, 486, 487, 491, 495, 499, 503, + 508, 510, 512, 514, 520, 521, 525, 529, 534, 539, + 540, 541, 542, 543, 544, 545, 546, 550, 554, 561, + 562, 566, 568, 570, 575, 576, 580, 606, 608, 613, + 625, 627, 632, 638, 643, 645, 656, 660, 677, 676, + 683, 682, 688, 690, 692, 697, 702, 703, 705, 707, + 712, 713, 715, 723, 728, 733, 738, 746, 757, 758, + 762, 763, 764, 765, 770, 771, 773, 774, 776, 782, + 784, 796, 797, 799, 804, 806, 813, 819, 828, 829, + 831, 833, 835, 840, 841, 847, 846, 853, 858, 860, + 862, 864, 866, 868, 870, 872, 874, 882, 884, 886, + 895, 897, 902, 906, 911, 916, 920, 925, 927, 935, + 936, 938, 943, 945, 947, 952, 953, 954, 960, 965, + 973, 982, 981, 991, 993, 998, 1000, 1008, 1013, 1015, + 1017, 1022, 1023, 1027, 1033, 1041, 1043, 1048, 1054, 1066, + 1065, 1072, 1071, 1078, 1077, 1084, 1083, 1089, 1091, 1096, + 1101, 1106, 1108, 1113, 1115, 1120, 1121, 1125, 1126, 1127, + 1129, 1134, 1138, 1143, 1149, 1151, 1153, 1158, 1163, 1167, + 1173, 1181, 1186, 1191, 1203, 1204, 1208, 1209, 1211, 1216, + 1220, 1222, 1227, 1228, 1229, 1230, 1231, 1232, 1237, 1238, + 1239, 1240, 1241, 1246, 1247, 1248, 1249, 1250, 1251, 1252, + 1253, 1254, 1255, 1256, 1260, 1265, 1276, 1278, 1283, 1290, + 1299, 1305, 1311, 1317, 1319, 1325, 1327, 1333, 1335, 1337, + 1339, 1341, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1356, + 1361, 1363, 1365, 1370, 1375, 1381, 1380, 1396, 1401, 1403, + 1405, 1413, 1415, 1417, 1419, 1424, 1425, 1429, 1433, 1434, + 1438, 1444, 1450, 1452, 1454, 1459, 1467, 1469, 1471, 1473, + 1478, 1483, 1492, 1497, 1499, 1506, 1508, 1510, 1515, 1517, + 1527, 1533, 1535, 1540, 1553, 1554, 1560, 1566, 1571, 1572, + 1577, 1579, 1581, 1586, 1588, 1590, 1592, 1597, 1599, 1601, + 1603, 1608, 1610, 1612, 1614, 1619, 1624, 1626, 1631, 1637, + 1639, 1641, 1643, 1648, 1656, 1658, 1660, 1665, 1670, 1671, + 1679, 1687, 1703, 1705, 1707, 1712, 1714, 1720, 1721, 1725, + 1726, 1728, 1730, 1731, 1732, 1733, 1737, 1739, 1741, 1746, + 1748, 1750, 1752, 1754, 1759, 1761, 1766, 1768, 1773, 1774, + 1775, 1776, 1777, 1779, 1781, 1783, 1785, 1787, 1792, 1793, + 1797, 1802, 1807, 1812, 1814, 1816, 1818, 1822, 1824, 1826, + 1828, 1833, 1835, 1840, 1845, 1847, 1856, 1882, 1884, 1889, + 1893, 1900, 1905, 1907, 1909, 1920, 1931, 1936, 1945, 1947, + 1952, 1954, 1956, 1961, 1966, 1971, 1979, 1980, 1981, 1982, + 1986, 1991, 1996, 1997, 1998, 2000, 2002, 2003, 2005, 2010, + 2012, 2017, 2019, 2024, 2025, 2027, 2029, 2030, 2032, 2037, + 2045, 2047, 2049, 2062, 2064, 2070, 2072, 2074, 2079, 2080, + 2085, 2090, 2095, 2097, 2099, 2104, 2105, 2110, 2115, 2117, + 2122, 2123, 2128, 2133, 2138, 2140, 2142, 2147, 2148, 2153, + 2158, 2163, 2168, 2170, 2172, 2174, 2176, 2178, 2183, 2184, + 2189, 2194, 2196, 2201, 2202, 2207, 2212, 2213, 2218, 2223, + 2224, 2229, 2234, 2235, 2240, 2245, 2246, 2251, 2256, 2257, + 2262, 2268, 2270, 2275, 2276, 2280, 2282, 2291, 2292, 2293, + 2297, 2298, 2302, 2306 }; #endif -static const short yyr1[] = { 0, - 110, 111, 111, 111, 111, 111, 111, 112, 112, 113, - 113, 113, 114, 114, 115, 116, 117, 118, 118, 118, - 118, 118, 119, 119, 120, 121, 122, 123, 123, 123, - 123, 123, 123, 123, 123, 124, 124, 125, 125, 126, - 126, 126, 127, 127, 128, 128, 128, 129, 129, 129, - 130, 130, 130, 130, 131, 131, 133, 132, 134, 132, - 132, 132, 132, 132, 135, 135, 135, 135, 136, 136, - 136, 137, 137, 137, 138, 138, 139, 139, 140, 140, - 140, 140, 141, 141, 141, 141, 141, 142, 142, 143, - 143, 143, 144, 144, 144, 144, 145, 145, 145, 145, - 145, 146, 146, 148, 147, 147, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 150, 150, 150, 150, 150, - 151, 151, 151, 152, 152, 152, 152, 153, 153, 153, - 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, - 158, 160, 160, 161, 161, 162, 162, 162, 162, 163, - 163, 164, 164, 164, 164, 165, 165, 167, 166, 168, - 166, 169, 166, 170, 166, 166, 166, 171, 171, 171, - 171, 172, 172, 173, 173, 174, 174, 174, 174, 175, - 176, 176, 177, 177, 177, 178, 178, 178, 179, 179, - 180, 181, 182, 182, 183, 183, 183, 184, 185, 185, - 186, 186, 186, 186, 186, 186, 187, 187, 187, 187, - 187, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 189, 190, 191, 191, 192, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 194, 194, 194, 194, 194, 194, 194, 195, 195, 195, - 195, 196, 197, 199, 198, 200, 200, 200, 200, 201, - 201, 201, 201, 202, 202, 203, 204, 204, 205, 205, - 205, 205, 205, 206, 207, 207, 207, 207, 208, 209, - 210, 211, 211, 211, 211, 211, 212, 212, 213, 213, - 213, 214, 215, 215, 215, 215, 216, 216, 217, 217, - 217, 218, 218, 218, 218, 219, 219, 219, 219, 220, - 220, 220, 220, 221, 221, 221, 222, 222, 222, 222, - 222, 223, 224, 224, 224, 224, 225, 225, 226, 227, - 227, 227, 227, 228, 228, 229, 229, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 232, 232, 233, 233, - 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, - 235, 236, 236, 236, 237, 237, 237, 238, 238, 238, - 239, 239, 239, 239, 239, 239, 239, 239, 240, 240, - 240, 240, 240, 240, 241, 241, 241, 241, 242, 243, - 244, 244, 244, 244, 244, 244, 244, 245, 245, 246, - 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, - 249, 249, 249, 250, 250, 250, 250, 250, 251, 251, - 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, - 253, 254, 254, 254, 255, 255, 255, 256, 256, 256, - 257, 257, 257, 258, 258, 258, 259, 259, 259, 259, - 259, 260, 260, 261, 261, 262, 262, 262, 263, 263, - 264, 265 +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "PLUS_TK", "MINUS_TK", "MULT_TK", + "DIV_TK", "REM_TK", "LS_TK", "SRS_TK", "ZRS_TK", "AND_TK", "XOR_TK", + "OR_TK", "BOOL_AND_TK", "BOOL_OR_TK", "EQ_TK", "NEQ_TK", "GT_TK", + "GTE_TK", "LT_TK", "LTE_TK", "PLUS_ASSIGN_TK", "MINUS_ASSIGN_TK", + "MULT_ASSIGN_TK", "DIV_ASSIGN_TK", "REM_ASSIGN_TK", "LS_ASSIGN_TK", + "SRS_ASSIGN_TK", "ZRS_ASSIGN_TK", "AND_ASSIGN_TK", "XOR_ASSIGN_TK", + "OR_ASSIGN_TK", "PUBLIC_TK", "PRIVATE_TK", "PROTECTED_TK", "STATIC_TK", + "FINAL_TK", "SYNCHRONIZED_TK", "VOLATILE_TK", "TRANSIENT_TK", + "NATIVE_TK", "PAD_TK", "ABSTRACT_TK", "MODIFIER_TK", "DECR_TK", + "INCR_TK", "DEFAULT_TK", "IF_TK", "THROW_TK", "BOOLEAN_TK", "DO_TK", + "IMPLEMENTS_TK", "THROWS_TK", "BREAK_TK", "IMPORT_TK", "ELSE_TK", + "INSTANCEOF_TK", "RETURN_TK", "VOID_TK", "CATCH_TK", "INTERFACE_TK", + "CASE_TK", "EXTENDS_TK", "FINALLY_TK", "SUPER_TK", "WHILE_TK", + "CLASS_TK", "SWITCH_TK", "CONST_TK", "TRY_TK", "FOR_TK", "NEW_TK", + "CONTINUE_TK", "GOTO_TK", "PACKAGE_TK", "THIS_TK", "BYTE_TK", "SHORT_TK", + "INT_TK", "LONG_TK", "CHAR_TK", "INTEGRAL_TK", "FLOAT_TK", "DOUBLE_TK", + "FP_TK", "ID_TK", "REL_QM_TK", "REL_CL_TK", "NOT_TK", "NEG_TK", + "ASSIGN_ANY_TK", "ASSIGN_TK", "OP_TK", "CP_TK", "OCB_TK", "CCB_TK", + "OSB_TK", "CSB_TK", "SC_TK", "C_TK", "DOT_TK", "STRING_LIT_TK", + "CHAR_LIT_TK", "INT_LIT_TK", "FP_LIT_TK", "TRUE_TK", "FALSE_TK", + "BOOL_LIT_TK", "NULL_TK", "$accept", "goal", "literal", "type", + "primitive_type", "reference_type", "class_or_interface_type", + "class_type", "interface_type", "array_type", "name", "simple_name", + "qualified_name", "identifier", "compilation_unit", + "import_declarations", "type_declarations", "package_declaration", + "import_declaration", "single_type_import_declaration", + "type_import_on_demand_declaration", "type_declaration", "modifiers", + "class_declaration", "$@1", "$@2", "super", "interfaces", + "interface_type_list", "class_body", "class_body_declarations", + "class_body_declaration", "class_member_declaration", + "field_declaration", "variable_declarators", "variable_declarator", + "variable_declarator_id", "variable_initializer", "method_declaration", + "$@3", "method_header", "method_declarator", "formal_parameter_list", + "formal_parameter", "throws", "class_type_list", "method_body", + "static_initializer", "static", "constructor_declaration", "$@4", + "constructor_header", "constructor_declarator", "constructor_body", + "constructor_block_end", "explicit_constructor_invocation", + "this_or_super", "interface_declaration", "$@5", "$@6", "$@7", "$@8", + "extends_interfaces", "interface_body", "interface_member_declarations", + "interface_member_declaration", "constant_declaration", + "abstract_method_declaration", "array_initializer", + "variable_initializers", "block", "block_begin", "block_end", + "block_statements", "block_statement", + "local_variable_declaration_statement", "local_variable_declaration", + "statement", "statement_nsi", "statement_without_trailing_substatement", + "empty_statement", "label_decl", "labeled_statement", + "labeled_statement_nsi", "expression_statement", "statement_expression", + "if_then_statement", "if_then_else_statement", + "if_then_else_statement_nsi", "switch_statement", "$@9", + "switch_expression", "switch_block", "switch_block_statement_groups", + "switch_block_statement_group", "switch_labels", "switch_label", + "while_expression", "while_statement", "while_statement_nsi", + "do_statement_begin", "do_statement", "for_statement", + "for_statement_nsi", "for_header", "for_begin", "for_init", "for_update", + "statement_expression_list", "break_statement", "continue_statement", + "return_statement", "throw_statement", "synchronized_statement", + "synchronized", "try_statement", "catches", "catch_clause", + "catch_clause_parameter", "finally", "primary", "primary_no_new_array", + "class_instance_creation_expression", "something_dot_new", + "argument_list", "array_creation_expression", "dim_exprs", "dim_expr", + "dims", "field_access", "method_invocation", "array_access", + "postfix_expression", "post_increment_expression", + "post_decrement_expression", "unary_expression", + "pre_increment_expression", "pre_decrement_expression", + "unary_expression_not_plus_minus", "cast_expression", + "multiplicative_expression", "additive_expression", "shift_expression", + "relational_expression", "equality_expression", "and_expression", + "exclusive_or_expression", "inclusive_or_expression", + "conditional_and_expression", "conditional_or_expression", + "conditional_expression", "assignment_expression", "assignment", + "left_hand_side", "assignment_operator", "expression", + "constant_expression", 0 }; +#endif -static const short yyr2[] = { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, - 3, 3, 1, 1, 1, 3, 1, 0, 1, 1, - 1, 2, 2, 2, 3, 1, 2, 1, 2, 3, - 2, 3, 1, 1, 3, 2, 3, 5, 4, 5, - 1, 1, 1, 1, 1, 2, 0, 7, 0, 6, - 3, 2, 3, 4, 0, 2, 3, 2, 0, 2, - 2, 1, 3, 3, 2, 3, 1, 2, 1, 1, - 1, 1, 1, 2, 1, 1, 1, 3, 4, 1, - 3, 3, 1, 3, 3, 4, 1, 3, 2, 3, - 3, 1, 1, 0, 3, 2, 3, 3, 4, 4, - 2, 3, 2, 3, 2, 3, 4, 3, 3, 3, - 1, 3, 3, 2, 3, 2, 3, 0, 2, 2, - 1, 3, 3, 1, 2, 1, 2, 3, 1, 0, - 3, 2, 3, 3, 4, 2, 3, 3, 4, 1, - 2, 4, 5, 7, 6, 1, 1, 0, 4, 0, - 5, 0, 5, 0, 6, 3, 4, 2, 3, 2, - 3, 2, 3, 1, 2, 1, 1, 1, 1, 1, - 2, 2, 2, 3, 4, 1, 3, 3, 2, 3, - 1, 1, 1, 2, 1, 1, 1, 2, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 4, 4, 5, 4, 5, 6, 7, 6, - 1, 1, 1, 1, 1, 1, 1, 5, 2, 3, - 4, 7, 7, 0, 3, 4, 2, 3, 5, 2, - 3, 3, 4, 1, 2, 2, 1, 2, 3, 2, - 2, 3, 2, 4, 2, 2, 3, 4, 2, 1, - 7, 7, 6, 3, 5, 4, 7, 6, 2, 2, - 3, 2, 0, 1, 1, 2, 0, 1, 1, 3, - 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, - 3, 2, 3, 3, 2, 3, 5, 5, 2, 4, - 3, 1, 3, 3, 4, 2, 1, 2, 2, 4, - 2, 3, 4, 2, 2, 1, 1, 1, 1, 3, - 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, - 3, 3, 5, 4, 6, 5, 4, 5, 5, 6, - 3, 3, 4, 5, 2, 3, 3, 3, 1, 3, - 3, 3, 3, 4, 4, 4, 4, 3, 3, 1, - 2, 3, 3, 2, 2, 3, 3, 3, 3, 2, - 3, 4, 5, 6, 5, 6, 4, 4, 4, 4, - 3, 4, 3, 4, 1, 1, 1, 1, 2, 2, - 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, - 2, 1, 2, 2, 1, 2, 2, 5, 4, 4, - 5, 4, 2, 5, 4, 5, 1, 3, 3, 3, - 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, - 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, - 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, - 1, 3, 3, 1, 3, 3, 1, 5, 4, 3, - 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, - 1, 1 +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364 }; +# endif -static const short yydefact[] = { 0, - 54, 55, 0, 0, 0, 0, 53, 1, 0, 0, - 0, 36, 43, 44, 38, 0, 51, 52, 46, 27, - 0, 23, 24, 25, 0, 62, 0, 41, 0, 0, - 37, 39, 0, 0, 56, 0, 0, 47, 45, 0, - 166, 0, 0, 162, 63, 0, 69, 42, 40, 0, - 0, 0, 61, 0, 49, 0, 26, 170, 17, 168, - 15, 0, 159, 0, 0, 68, 16, 0, 0, 59, - 167, 0, 164, 64, 69, 50, 48, 12, 0, 10, - 11, 172, 0, 8, 9, 13, 14, 15, 0, 178, - 180, 0, 179, 0, 174, 176, 177, 171, 169, 163, - 67, 71, 72, 70, 0, 161, 0, 57, 113, 0, - 128, 111, 0, 0, 90, 93, 128, 0, 0, 0, - 115, 0, 0, 182, 181, 173, 175, 0, 0, 60, - 165, 0, 0, 0, 0, 108, 99, 88, 0, 0, - 0, 0, 107, 21, 18, 22, 20, 19, 114, 128, - 112, 0, 128, 74, 73, 55, 191, 75, 23, 0, - 86, 0, 77, 79, 83, 85, 0, 80, 0, 81, - 140, 128, 87, 82, 0, 58, 119, 116, 0, 0, - 0, 121, 130, 131, 129, 120, 118, 92, 0, 91, - 95, 0, 0, 0, 0, 0, 0, 0, 339, 0, - 0, 0, 0, 6, 5, 2, 3, 4, 7, 338, - 0, 406, 0, 103, 405, 336, 341, 0, 337, 342, - 343, 344, 422, 407, 408, 437, 411, 412, 415, 425, - 444, 449, 456, 467, 472, 475, 478, 481, 484, 487, - 492, 501, 493, 0, 102, 100, 98, 101, 110, 89, - 109, 189, 0, 128, 76, 78, 84, 106, 0, 137, - 0, 142, 0, 55, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 339, 0, 223, 0, 8, - 406, 0, 0, 197, 0, 212, 0, 193, 195, 0, - 196, 201, 213, 0, 202, 214, 0, 203, 204, 215, - 254, 0, 205, 0, 216, 206, 293, 0, 217, 218, - 219, 221, 220, 0, 222, 247, 246, 0, 244, 245, - 242, 243, 241, 126, 124, 0, 117, 0, 0, 416, - 406, 342, 344, 413, 417, 414, 421, 420, 419, 418, - 0, 390, 0, 0, 0, 16, 0, 426, 423, 427, - 424, 433, 0, 406, 0, 183, 186, 0, 0, 0, - 0, 0, 96, 0, 0, 365, 0, 410, 409, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 499, 500, 0, 144, 0, 143, 136, 105, 134, 138, - 191, 141, 0, 230, 231, 229, 249, 0, 315, 0, - 304, 302, 0, 312, 310, 0, 276, 0, 257, 0, - 326, 0, 290, 0, 308, 306, 0, 0, 199, 0, - 0, 226, 224, 0, 0, 192, 190, 194, 198, 322, - 406, 225, 228, 0, 275, 0, 406, 0, 295, 299, - 292, 0, 0, 319, 0, 127, 125, 123, 122, 133, - 132, 352, 347, 0, 389, 379, 378, 361, 0, 372, - 380, 0, 373, 0, 362, 0, 0, 0, 0, 0, - 0, 349, 340, 184, 0, 351, 346, 391, 0, 369, - 401, 0, 350, 345, 367, 348, 368, 388, 403, 0, - 366, 0, 441, 438, 442, 439, 443, 440, 447, 445, - 448, 446, 453, 450, 454, 451, 455, 452, 463, 458, - 465, 460, 462, 457, 464, 459, 466, 0, 461, 470, - 468, 471, 469, 474, 473, 477, 476, 480, 479, 483, - 482, 486, 485, 490, 0, 0, 495, 494, 145, 135, - 406, 146, 0, 0, 150, 0, 250, 0, 316, 314, - 305, 303, 313, 311, 277, 0, 258, 0, 0, 0, - 323, 327, 0, 324, 291, 309, 307, 340, 0, 200, - 232, 0, 0, 0, 255, 0, 296, 0, 284, 0, - 0, 321, 0, 397, 398, 0, 384, 385, 0, 381, - 374, 0, 377, 375, 376, 363, 354, 0, 435, 429, - 432, 0, 0, 430, 188, 185, 187, 392, 0, 402, - 399, 0, 404, 400, 357, 0, 489, 0, 0, 147, - 0, 0, 151, 148, 251, 0, 278, 274, 0, 331, - 0, 335, 334, 328, 325, 329, 236, 0, 233, 234, - 0, 0, 0, 260, 0, 264, 0, 267, 0, 301, - 300, 286, 0, 298, 0, 320, 0, 395, 0, 383, - 382, 387, 386, 356, 364, 353, 434, 428, 436, 431, - 371, 370, 393, 0, 358, 359, 491, 488, 0, 149, - 0, 0, 0, 248, 0, 201, 0, 208, 209, 0, - 210, 211, 0, 259, 332, 0, 237, 0, 0, 235, - 273, 270, 271, 502, 0, 262, 265, 0, 261, 0, - 268, 0, 0, 285, 0, 318, 317, 396, 355, 394, - 360, 0, 152, 0, 0, 0, 227, 279, 0, 333, - 330, 240, 238, 0, 272, 269, 263, 0, 283, 0, - 0, 0, 153, 0, 252, 0, 0, 239, 281, 282, - 155, 0, 0, 0, 0, 154, 0, 0, 0, 0, - 288, 0, 253, 287, 0, 0, 0 +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = +{ + 0, 110, 111, 112, 112, 112, 112, 112, 112, 113, + 113, 114, 114, 114, 115, 115, 116, 117, 118, 119, + 119, 119, 119, 119, 120, 120, 121, 122, 123, 124, + 124, 124, 124, 124, 124, 124, 124, 125, 125, 126, + 126, 127, 127, 127, 128, 128, 129, 129, 129, 130, + 130, 130, 131, 131, 131, 131, 132, 132, 134, 133, + 135, 133, 133, 133, 133, 133, 136, 136, 136, 136, + 137, 137, 137, 138, 138, 138, 139, 139, 140, 140, + 141, 141, 141, 141, 142, 142, 142, 142, 142, 143, + 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, + 146, 146, 146, 147, 147, 149, 148, 148, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 151, 151, 151, + 151, 151, 152, 152, 152, 153, 153, 153, 153, 154, + 154, 154, 155, 155, 155, 156, 156, 156, 157, 157, + 158, 160, 159, 161, 161, 162, 162, 163, 163, 163, + 163, 164, 164, 165, 165, 165, 165, 166, 166, 168, + 167, 169, 167, 170, 167, 171, 167, 167, 167, 172, + 172, 172, 172, 173, 173, 174, 174, 175, 175, 175, + 175, 176, 177, 177, 178, 178, 178, 179, 179, 179, + 180, 180, 181, 182, 183, 183, 184, 184, 184, 185, + 186, 186, 187, 187, 187, 187, 187, 187, 188, 188, + 188, 188, 188, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 190, 191, 192, 192, 193, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 195, 195, 195, 195, 195, 195, 195, 196, + 196, 196, 196, 197, 198, 200, 199, 201, 201, 201, + 201, 202, 202, 202, 202, 203, 203, 204, 205, 205, + 206, 206, 206, 206, 206, 207, 208, 208, 208, 208, + 209, 210, 211, 212, 212, 212, 212, 212, 213, 213, + 214, 214, 214, 215, 216, 216, 216, 216, 217, 217, + 218, 218, 218, 219, 219, 219, 219, 220, 220, 220, + 220, 221, 221, 221, 221, 222, 222, 222, 223, 223, + 223, 223, 223, 224, 225, 225, 225, 225, 226, 226, + 227, 228, 228, 228, 228, 229, 229, 230, 230, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 232, 232, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 232, 233, 233, + 234, 234, 234, 235, 235, 235, 235, 235, 235, 235, + 235, 236, 236, 237, 237, 237, 238, 238, 238, 239, + 239, 239, 240, 240, 240, 240, 240, 240, 240, 240, + 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, + 243, 244, 245, 245, 245, 245, 245, 245, 245, 246, + 246, 247, 247, 248, 248, 248, 248, 248, 248, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, + 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, + 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, + 253, 253, 253, 253, 253, 253, 253, 253, 254, 254, + 254, 254, 254, 255, 255, 255, 256, 256, 256, 257, + 257, 257, 258, 258, 258, 259, 259, 259, 260, 260, + 260, 260, 260, 261, 261, 262, 262, 263, 263, 263, + 264, 264, 265, 266 }; -static const short yydefgoto[] = { 775, - 210, 279, 211, 85, 86, 68, 60, 87, 212, 22, - 23, 24, 8, 9, 10, 11, 12, 13, 14, 15, - 283, 284, 132, 105, 47, 70, 104, 130, 162, 163, - 164, 91, 114, 115, 116, 213, 166, 259, 92, 111, - 181, 182, 136, 185, 398, 168, 169, 170, 261, 171, - 172, 402, 552, 553, 285, 18, 43, 72, 65, 107, - 44, 63, 94, 95, 96, 97, 214, 358, 286, 175, - 555, 720, 288, 289, 290, 291, 695, 292, 293, 294, - 295, 698, 296, 297, 298, 299, 699, 300, 444, 301, - 585, 655, 656, 657, 658, 302, 303, 701, 304, 305, - 306, 702, 307, 308, 451, 663, 664, 309, 310, 311, - 312, 313, 314, 315, 571, 572, 573, 574, 215, 216, - 217, 218, 489, 219, 470, 471, 472, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 393, 490, 715 +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 3, 3, 1, 1, 1, 3, 1, 0, + 1, 1, 1, 2, 2, 2, 3, 1, 2, 1, + 2, 3, 2, 3, 1, 1, 3, 2, 3, 5, + 4, 5, 1, 1, 1, 1, 1, 2, 0, 7, + 0, 6, 3, 2, 3, 4, 0, 2, 3, 2, + 0, 2, 2, 1, 3, 3, 2, 3, 1, 2, + 1, 1, 1, 1, 1, 2, 1, 1, 1, 3, + 4, 1, 3, 3, 1, 3, 3, 4, 1, 3, + 2, 3, 3, 1, 1, 0, 3, 2, 3, 3, + 4, 4, 2, 3, 2, 3, 2, 3, 4, 3, + 3, 3, 1, 3, 3, 2, 3, 2, 3, 0, + 2, 2, 1, 3, 3, 1, 2, 1, 2, 3, + 1, 0, 3, 2, 3, 3, 4, 2, 3, 3, + 4, 1, 2, 4, 5, 7, 6, 1, 1, 0, + 4, 0, 5, 0, 5, 0, 6, 3, 4, 2, + 3, 2, 3, 2, 3, 1, 2, 1, 1, 1, + 1, 1, 2, 2, 2, 3, 4, 1, 3, 3, + 2, 3, 1, 1, 1, 2, 1, 1, 1, 2, + 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 4, 4, 5, 4, 5, 6, + 7, 6, 1, 1, 1, 1, 1, 1, 1, 5, + 2, 3, 4, 7, 7, 0, 3, 4, 2, 3, + 5, 2, 3, 3, 4, 1, 2, 2, 1, 2, + 3, 2, 2, 3, 2, 4, 2, 2, 3, 4, + 2, 1, 7, 7, 6, 3, 5, 4, 7, 6, + 2, 2, 3, 2, 0, 1, 1, 2, 0, 1, + 1, 3, 3, 2, 3, 2, 3, 2, 3, 2, + 3, 2, 3, 2, 3, 3, 2, 3, 5, 5, + 2, 4, 3, 1, 3, 3, 4, 2, 1, 2, + 2, 4, 2, 3, 4, 2, 2, 1, 1, 1, + 1, 3, 1, 1, 1, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 5, 4, 6, 5, 4, 5, + 5, 6, 3, 3, 4, 5, 2, 3, 3, 3, + 1, 3, 3, 3, 3, 4, 4, 4, 4, 3, + 3, 1, 2, 3, 3, 2, 2, 3, 3, 3, + 3, 2, 3, 4, 5, 6, 5, 6, 4, 4, + 4, 4, 3, 4, 3, 4, 1, 1, 1, 1, + 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, + 2, 2, 2, 1, 2, 2, 1, 2, 2, 5, + 4, 4, 5, 4, 2, 5, 4, 5, 1, 3, + 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, + 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, + 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, + 3, 3, 1, 3, 3, 1, 3, 3, 1, 5, + 4, 3, 5, 1, 1, 3, 3, 1, 1, 1, + 1, 1, 1, 1 }; -static const short yypact[] = { 507, --32768,-32768, 15, -30, 18, 244,-32768,-32768, 414, 443, - 556,-32768,-32768,-32768,-32768, 714,-32768,-32768,-32768,-32768, - 23,-32768,-32768,-32768, 359,-32768, 340,-32768, 49, 601, --32768,-32768, 585, 603,-32768, -30, 417,-32768,-32768, 92, --32768, 489, -24, 107,-32768, 529, 295,-32768,-32768, -30, - 710, 452,-32768, 344,-32768, 40,-32768,-32768,-32768,-32768, - 192, 1047,-32768, 530, -24,-32768,-32768, 388, 534,-32768, --32768, -24, 107,-32768, 295,-32768,-32768,-32768, 540,-32768, --32768,-32768, 548, 258,-32768,-32768, 307, 442, 736,-32768, --32768, 77,-32768, 1638,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 312, 406,-32768, -24,-32768,-32768, 379, - -18,-32768, 426, 331,-32768, 693, -18, 120, 210, 429, --32768, 564, 587,-32768,-32768,-32768,-32768, 593, 951,-32768, --32768, 406, 607, 617, 214,-32768,-32768,-32768, 618, 1077, - 219, 531,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -18, --32768, 361, -18,-32768,-32768, 460, 471,-32768, 494, 736, --32768, 1204,-32768,-32768, 500,-32768, 180,-32768, 535,-32768, --32768, 591,-32768,-32768, 1759,-32768,-32768,-32768, 620, 728, - 377,-32768,-32768,-32768, 613,-32768,-32768,-32768, 157,-32768, --32768, 2663, 2728, 2779, 2844, 655, 32, 707,-32768, 2895, - 2960, 3011, 5025,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 673, 881, 56,-32768, 678, 746,-32768, 640,-32768, 671, --32768, 715, 866,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 899, 921, 1006, 838, 920, 654, 814, 820, 847, 263, --32768,-32768,-32768, 850,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 963, 591,-32768,-32768,-32768,-32768, 484, 769, - 775,-32768, -1, 306, 353, 3076,-32768, 232, 1357, 35, - 392, 419, 228, 424, 234, 779, 5324,-32768, -30, 538, - 974, 265, 872,-32768, 784,-32768, 1691,-32768,-32768, 789, --32768,-32768,-32768, 1827,-32768,-32768, 797,-32768,-32768,-32768, --32768, 1827,-32768, 1827,-32768,-32768, 5375, 802,-32768,-32768, --32768,-32768,-32768, 427,-32768, 737, 806, 866, 902, 916, --32768,-32768,-32768,-32768, 891, 642,-32768, 592, 660,-32768, - 189,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 409,-32768, 666, 964, 793, 793, 428,-32768,-32768,-32768, --32768,-32768, 777, 1121, 66,-32768,-32768, 622, 432, 5092, - 3127, 729,-32768, -28, 3192,-32768, 435,-32768,-32768, 3243, - 3308, 3359, 3424, 3475, 3540, 3591, 3656, 3707, 3772, 3823, - 3888, 864, 3939, 4004, 4055, 4120, 4171, 4236, 4287, 2032, --32768,-32768, 4352,-32768, 605,-32768,-32768,-32768, 810,-32768, --32768,-32768, 1691,-32768,-32768,-32768,-32768, 4403,-32768, 95, --32768,-32768, 126,-32768,-32768, 174,-32768, 4468,-32768, 4519, --32768, 785,-32768, 4933,-32768,-32768, 182, 269, 815, 2083, - 604,-32768,-32768, -30, 2148,-32768,-32768,-32768,-32768,-32768, - 1158,-32768,-32768, 823,-32768, 861, 1018, 728,-32768,-32768, --32768, 86, 2199,-32768, 4584,-32768, 891,-32768,-32768,-32768, --32768,-32768,-32768, 565, 836,-32768,-32768,-32768, 2264, 793, --32768, 590, 793, 590,-32768, 2315, 4635, 223, -43, 2380, - 191,-32768, 894,-32768, 1967,-32768,-32768,-32768, 649,-32768, --32768, 237,-32768,-32768,-32768,-32768,-32768, 839,-32768, 239, --32768, 5143,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 899, --32768, 899,-32768, 921,-32768, 921,-32768, 921,-32768, 1006, --32768, 1006,-32768, 1006,-32768, 1006,-32768, 258,-32768,-32768, - 838,-32768, 838,-32768, 920,-32768, 654,-32768, 814,-32768, - 820,-32768, 847,-32768, 933, 857,-32768,-32768,-32768,-32768, - 1254,-32768, 1691, 859, 856, 1691,-32768, 314,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 348,-32768, 870, 461, 229, - 785,-32768, 535,-32768,-32768,-32768,-32768,-32768, 467, 815, --32768, 967, 14, 444,-32768, 878,-32768, 5067,-32768, 4958, - 876, 887, 892,-32768,-32768, 5208,-32768,-32768, 241,-32768, - 895, 299,-32768, 895,-32768,-32768, 406, 17,-32768,-32768, --32768, 4700, 487,-32768,-32768,-32768,-32768,-32768, 4751,-32768, --32768, 5259,-32768,-32768, 406, 704,-32768, 4816, 662,-32768, - 1691, 2431,-32768,-32768,-32768, 1893,-32768,-32768, 343,-32768, - 835,-32768,-32768,-32768,-32768,-32768,-32768, 2496,-32768,-32768, - 999, 91, 4867,-32768, 674,-32768, 1467,-32768, 5324,-32768, --32768,-32768, 928, 923, 5000,-32768, 410,-32768, 723,-32768, --32768,-32768,-32768,-32768,-32768, 406,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 731,-32768, 406,-32768,-32768, 477,-32768, - 243, 108, 485,-32768, 978, 979, 1893,-32768,-32768, 1893, --32768,-32768, 942,-32768, 948, 950,-32768, 1053, 128,-32768, --32768,-32768,-32768,-32768, 328,-32768,-32768, 1540,-32768, 1608, --32768, 961, 1827,-32768, 970,-32768,-32768,-32768,-32768,-32768, --32768, 2547,-32768, 262, 4403, 1827,-32768,-32768, 2612,-32768, --32768,-32768,-32768, 1071,-32768,-32768,-32768, 980,-32768, 1827, - 296, 202,-32768, 358,-32768, 4958, 983,-32768,-32768,-32768, --32768, 302, 1893, 990, 5000,-32768, 1021, 1893, 992, 1893, --32768, 1893,-32768,-32768, 1087, 1089,-32768 +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const yytype_uint16 yydefact[] = +{ + 0, 55, 56, 0, 0, 0, 0, 54, 0, 2, + 0, 0, 0, 37, 44, 45, 39, 0, 52, 53, + 47, 28, 0, 24, 25, 26, 0, 63, 0, 42, + 0, 1, 0, 38, 40, 0, 0, 57, 0, 0, + 48, 46, 0, 167, 0, 0, 163, 64, 0, 70, + 43, 41, 0, 0, 0, 62, 0, 50, 0, 27, + 171, 18, 169, 16, 0, 160, 0, 0, 69, 17, + 0, 0, 60, 168, 0, 165, 65, 70, 51, 49, + 13, 0, 11, 12, 173, 0, 9, 10, 14, 15, + 16, 0, 179, 181, 0, 180, 0, 175, 177, 178, + 172, 170, 164, 68, 72, 73, 71, 0, 162, 0, + 58, 114, 0, 129, 112, 0, 0, 91, 94, 129, + 0, 0, 0, 116, 0, 0, 183, 182, 174, 176, + 0, 0, 61, 166, 0, 0, 0, 0, 109, 100, + 89, 0, 0, 0, 0, 108, 22, 19, 23, 21, + 20, 115, 129, 113, 0, 129, 75, 74, 56, 192, + 76, 24, 0, 87, 0, 78, 80, 84, 86, 0, + 81, 0, 82, 141, 129, 88, 83, 0, 59, 120, + 117, 0, 0, 0, 122, 131, 132, 130, 121, 119, + 93, 0, 92, 96, 0, 0, 0, 0, 0, 0, + 0, 340, 0, 0, 0, 0, 7, 6, 3, 4, + 5, 8, 339, 0, 407, 0, 104, 406, 337, 342, + 0, 338, 343, 344, 345, 423, 408, 409, 438, 412, + 413, 416, 426, 445, 450, 457, 468, 473, 476, 479, + 482, 485, 488, 493, 502, 494, 0, 103, 101, 99, + 102, 111, 90, 110, 190, 0, 129, 77, 79, 85, + 107, 0, 138, 0, 143, 0, 56, 0, 0, 281, + 0, 0, 0, 0, 0, 0, 0, 0, 340, 0, + 224, 0, 9, 407, 0, 0, 198, 0, 213, 0, + 194, 196, 0, 197, 202, 214, 0, 203, 215, 0, + 204, 205, 216, 255, 0, 206, 0, 217, 207, 294, + 0, 218, 219, 220, 222, 221, 0, 223, 248, 247, + 0, 245, 246, 243, 244, 242, 127, 125, 0, 118, + 0, 0, 417, 407, 343, 345, 414, 418, 415, 422, + 421, 420, 419, 0, 391, 0, 0, 0, 17, 0, + 427, 424, 428, 425, 434, 0, 407, 0, 184, 187, + 0, 0, 0, 0, 0, 97, 0, 0, 366, 0, + 411, 410, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 500, 501, 0, 145, 0, 144, 137, + 106, 135, 139, 192, 142, 0, 231, 232, 230, 250, + 0, 316, 0, 305, 303, 0, 313, 311, 0, 277, + 0, 258, 0, 327, 0, 291, 0, 309, 307, 0, + 0, 200, 0, 0, 227, 225, 0, 0, 193, 191, + 195, 199, 323, 407, 226, 229, 0, 276, 0, 407, + 0, 296, 300, 293, 0, 0, 320, 0, 128, 126, + 124, 123, 134, 133, 353, 348, 0, 390, 380, 379, + 362, 0, 373, 381, 0, 374, 0, 363, 0, 0, + 0, 0, 0, 0, 350, 341, 185, 0, 352, 347, + 392, 0, 370, 402, 0, 351, 346, 368, 349, 369, + 389, 404, 0, 367, 0, 442, 439, 443, 440, 444, + 441, 448, 446, 449, 447, 454, 451, 455, 452, 456, + 453, 464, 459, 466, 461, 463, 458, 465, 460, 467, + 0, 462, 471, 469, 472, 470, 475, 474, 478, 477, + 481, 480, 484, 483, 487, 486, 491, 0, 0, 496, + 495, 146, 136, 407, 147, 0, 0, 151, 0, 251, + 0, 317, 315, 306, 304, 314, 312, 278, 0, 259, + 0, 0, 0, 324, 328, 0, 325, 292, 310, 308, + 341, 0, 201, 233, 0, 0, 0, 256, 0, 297, + 0, 285, 0, 0, 322, 0, 398, 399, 0, 385, + 386, 0, 382, 375, 0, 378, 376, 377, 364, 355, + 0, 436, 430, 433, 0, 0, 431, 189, 186, 188, + 393, 0, 403, 400, 0, 405, 401, 358, 0, 490, + 0, 0, 148, 0, 0, 152, 149, 252, 0, 279, + 275, 0, 332, 0, 336, 335, 329, 326, 330, 237, + 0, 234, 235, 0, 0, 0, 261, 0, 265, 0, + 268, 0, 302, 301, 287, 0, 299, 0, 321, 0, + 396, 0, 384, 383, 388, 387, 357, 365, 354, 435, + 429, 437, 432, 372, 371, 394, 0, 359, 360, 492, + 489, 0, 150, 0, 0, 0, 249, 0, 202, 0, + 209, 210, 0, 211, 212, 0, 260, 333, 0, 238, + 0, 0, 236, 274, 271, 272, 503, 0, 263, 266, + 0, 262, 0, 269, 0, 0, 286, 0, 319, 318, + 397, 356, 395, 361, 0, 153, 0, 0, 0, 228, + 280, 0, 334, 331, 241, 239, 0, 273, 270, 264, + 0, 284, 0, 0, 0, 154, 0, 253, 0, 0, + 240, 282, 283, 156, 0, 0, 0, 0, 155, 0, + 0, 0, 0, 289, 0, 254, 288 }; -static const short yypgoto[] = {-32768, --32768, -57, -60, 711, -16, -123, 568,-32768, -3, 552, --32768, 130,-32768, 1085, 791,-32768, 22,-32768,-32768, 778, - 12, 154,-32768,-32768, 1044, 1030,-32768, -128,-32768, 945, --32768, 382, -106, 973, -165, -193,-32768,-32768, 469, -58, - 865, -327, -40,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 957,-32768, 142,-32768, 718, -10,-32768,-32768,-32768,-32768, - 1072, 584,-32768, 1031,-32768,-32768, 372,-32768, -122, 867, - 843, -166, -279,-32768, 819, -234, 197, -551,-32768, -529, --32768,-32768,-32768, -301,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 476, 486, -619, -496,-32768,-32768,-32768,-32768, --32768,-32768,-32768, -436,-32768, -603, 832,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 569,-32768, 573,-32768,-32768, - 119,-32768, -386,-32768, 799, 362, -326, 858, 163, 1120, - 320, 437, 438, -112, 560, 636, -470,-32768, 632, 724, - 651, 625, 761, 765, 760, 764, 776,-32768, 526, 771, - 717,-32768,-32768, 29,-32768 +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 8, 212, 281, 213, 87, 88, 70, 62, 89, + 214, 23, 24, 25, 9, 10, 11, 12, 13, 14, + 15, 16, 285, 286, 134, 107, 49, 72, 106, 132, + 164, 165, 166, 93, 116, 117, 118, 215, 168, 261, + 94, 113, 183, 184, 138, 187, 400, 170, 171, 172, + 263, 173, 174, 404, 554, 555, 287, 19, 45, 74, + 67, 109, 46, 65, 96, 97, 98, 99, 216, 360, + 288, 177, 557, 722, 290, 291, 292, 293, 697, 294, + 295, 296, 297, 700, 298, 299, 300, 301, 701, 302, + 446, 303, 587, 657, 658, 659, 660, 304, 305, 703, + 306, 307, 308, 704, 309, 310, 453, 665, 666, 311, + 312, 313, 314, 315, 316, 317, 573, 574, 575, 576, + 217, 218, 219, 220, 491, 221, 472, 473, 474, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 395, 492, 717 }; +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -572 +static const yytype_int16 yypact[] = +{ + 355, -572, -572, 208, -22, 334, 402, -572, 231, -572, + 509, 258, 558, -572, -572, -572, -572, 649, -572, -572, + -572, -572, 20, -572, -572, -572, 332, -572, 236, -572, + 37, -572, 445, -572, -572, 604, 631, -572, -22, 431, + -572, -572, 393, -572, 447, 161, 297, -572, 491, 294, + -572, -572, -22, 712, 338, -572, 408, -572, 24, -572, + -572, -572, -572, 251, 1049, -572, 514, 161, -572, -572, + 268, 521, -572, -572, 161, 297, -572, 294, -572, -572, + -572, 531, -572, -572, -572, 536, 309, -572, -572, 366, + -2, 738, -572, -572, 32, -572, 1640, -572, -572, -572, + -572, -572, -572, -572, -572, -572, 419, 435, -572, 161, + -572, -572, 452, 0, -572, 428, 615, -572, 492, 0, + 65, 207, 459, -572, 566, 587, -572, -572, -572, -572, + 620, 953, -572, -572, 435, 584, 638, 211, -572, -572, + -572, 652, 1079, 212, 586, -572, -572, -572, -572, -572, + -572, -572, 0, -572, 677, 0, -572, -572, 506, 541, + -572, 517, 738, -572, 1206, -572, -572, 545, -572, 42, + -572, 554, -572, -572, 641, -572, -572, 1761, -572, -572, + -572, 662, 981, -54, -572, -572, -572, 602, -572, -572, + -572, 343, -572, -572, 2665, 2730, 2781, 2846, 644, 28, + 622, -572, 2897, 2962, 3013, 5027, -572, -572, -572, -572, + -572, -572, -572, 653, 734, 13, -572, 658, 623, -572, + 678, -572, 742, -572, 788, 868, -572, -572, -572, -572, + -572, -572, -572, 854, 940, 941, 789, 943, 792, 805, + 815, 839, 5, -572, -572, -572, 875, -572, -572, -572, + -572, -572, -572, -572, -572, 823, 641, -572, -572, -572, + -572, 379, 771, 724, -572, 741, 202, 275, 3078, -572, + 76, 1359, 25, 321, 325, 93, 363, 182, 779, 5326, + -572, -22, 557, 806, 550, 965, -572, 781, -572, 1693, + -572, -572, 777, -572, -572, -572, 1829, -572, -572, 797, + -572, -572, -572, -572, 1829, -572, 1829, -572, -572, 5377, + 807, -572, -572, -572, -572, -572, 390, -572, 600, 705, + 868, 924, 931, -572, -572, -572, -572, 886, 679, -572, + 730, 686, -572, 639, -572, -572, -572, -572, -572, -572, + -572, -572, -572, 34, -572, 699, 865, 827, 827, 412, + -572, -572, -572, -572, -572, 567, 1123, 36, -572, -572, + 751, 216, 5094, 3129, 619, -572, 457, 3194, -572, 430, + -572, -572, 3245, 3310, 3361, 3426, 3477, 3542, 3593, 3658, + 3709, 3774, 3825, 3890, 889, 3941, 4006, 4057, 4122, 4173, + 4238, 4289, 2034, -572, -572, 4354, -572, 582, -572, -572, + -572, 842, -572, -572, -572, 1693, -572, -572, -572, -572, + 4405, -572, 51, -572, -572, 57, -572, -572, 68, -572, + 4470, -572, 4521, -572, 794, -572, 4935, -572, -572, 79, + 58, 826, 2085, 728, -572, -572, -22, 2150, -572, -572, + -572, -572, -572, 1160, -572, -572, 841, -572, 881, 1020, + 981, -572, -572, -572, 16, 2201, -572, 4586, -572, 886, + -572, -572, -572, -572, -572, -572, 361, 861, -572, -572, + -572, 2266, 827, -572, 125, 827, 125, -572, 2317, 4637, + 234, -67, 2382, 183, -572, 896, -572, 1969, -572, -572, + -572, 589, -572, -572, 245, -572, -572, -572, -572, -572, + 864, -572, 250, -572, 5145, -572, -572, -572, -572, -572, + -572, -572, 854, -572, 854, -572, 940, -572, 940, -572, + 940, -572, 941, -572, 941, -572, 941, -572, 941, -572, + 309, -572, -572, 789, -572, 789, -572, 943, -572, 792, + -572, 805, -572, 815, -572, 839, -572, 979, 900, -572, + -572, -572, -572, 1256, -572, 1693, 901, 903, 1693, -572, + 271, -572, -572, -572, -572, -572, -572, -572, 311, -572, + 916, 463, 246, 794, -572, 554, -572, -572, -572, -572, + -572, 469, 826, -572, 1010, 144, 446, -572, 923, -572, + 5069, -572, 4960, 918, 930, 939, -572, -572, 5210, -572, + -572, 256, -572, 921, 263, -572, 921, -572, -572, 435, + 148, -572, -572, -572, 4702, 489, -572, -572, -572, -572, + -572, 4753, -572, -572, 5261, -572, -572, 435, 681, -572, + 4818, 862, -572, 1693, 2433, -572, -572, -572, 1895, -572, + -572, 252, -572, 837, -572, -572, -572, -572, -572, -572, + 2498, -572, -572, 1033, 329, 4869, -572, 571, -572, 1469, + -572, 5326, -572, -572, -572, 942, 937, 5002, -572, 264, + -572, 690, -572, -572, -572, -572, -572, -572, 435, -572, + -572, -572, -572, -572, -572, -572, 698, -572, 435, -572, + -572, 476, -572, 105, 184, 479, -572, 987, 988, 1895, + -572, -572, 1895, -572, -572, 947, -572, 962, 963, -572, + 1058, 204, -572, -572, -572, -572, -572, 336, -572, -572, + 1542, -572, 1610, -572, 968, 1829, -572, 970, -572, -572, + -572, -572, -572, -572, 2549, -572, 141, 4405, 1829, -572, + -572, 2614, -572, -572, -572, -572, 1064, -572, -572, -572, + 969, -572, 1829, 176, 223, -572, 350, -572, 4960, 974, + -572, -572, -572, -572, 180, 1895, 975, 5002, -572, 1018, + 1895, 983, 1895, -572, 1895, -572, -572 +}; -#define YYLAST 5484 - +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -572, -572, -572, -57, -60, 695, -16, -121, 657, -572, + -3, -64, -572, 130, -572, 1069, 748, -572, 46, -572, + -572, 920, 12, 154, -572, -572, 1028, 1009, -572, -128, + -572, 925, -572, 370, -123, 950, -168, -195, -572, -572, + 382, 456, 833, -329, -101, -572, -572, -572, -572, -572, + -572, -572, 933, -572, 48, -572, 693, -7, -572, -572, + -572, -572, 1053, 440, -572, 1013, -572, -572, 11, -572, + -122, 851, 830, -166, -284, -572, 811, -234, 146, -551, + -572, -529, -572, -572, -572, -301, -572, -572, -572, -572, + -572, -572, -572, -572, 466, 473, -247, -436, -572, -572, + -572, -572, -572, -572, -572, -412, -572, -571, 824, -572, + -572, -572, -572, -572, -572, -572, -572, 559, -572, 568, + -572, -572, 119, -572, -418, -572, 795, 319, -245, 858, + 163, 1120, 320, 437, 438, -112, 560, 636, -469, -572, + 632, 749, 720, 605, 755, 758, 759, 757, 762, -572, + 519, 761, 717, -572, -572, 29, -572 +}; -static const short yytable[] = { 21, - 459, 84, 29, 176, 83, 450, 174, 438, 287, 357, - 184, 16, 614, 325, 650, 19, 152, 675, 26, 474, - 16, 16, 16, 38, 117, 59, 479, 481, 84, 67, - 31, 123, 342, 84, 134, 342, 83, 721, 61, 174, - 76, 16, 61, 497, 16, 16, 260, 59, 583, 48, - 612, 93, 59, 602, 31, 20, 363, 20, 88, 442, - 61, 725, 16, 150, 153, 61, 482, 445, 84, 446, - 62, 83, 84, 89, 347, 179, 143, 124, 135, 334, - 336, 338, 340, 93, 696, 88, 587, 349, 351, 608, - 88, 711, 55, 404, 405, 559, 56, 406, 721, 84, - 20, 84, 123, 20, 83, 89, 697, 651, 650, 249, - 676, 59, 251, 619, 280, 626, 619, 67, 173, 84, - 144, 39, 326, 40, 61, 88, 561, -157, 743, 88, - 61, 262, 343, 25, 27, 343, 399, 345, 77, 700, - 160, 353, 680, 601, 180, 696, 604, 49, 696, 50, - 422, 173, 764, 17, -94, -94, 88, 137, 88, 483, - 457, 769, 17, 17, 17, 52, 54, 697, 245, 57, - 697, 281, 429, 160, 563, 125, 88, 20, 712, 57, - 258, 346, 576, 17, -294, 588, 17, 17, 331, 331, - 331, 331, 84, 560, 61, 179, 331, 331, 354, 703, - 700, 734, 743, 700, 17, 461, 64, 619, 110, 669, - 146, 696, 113, 396, 186, 90, 696, 145, 696, 246, - 696, 744, 84, 611, 562, 434, 280, 619, 421, 642, - 355, 245, 411, 697, 425, 684, 556, 620, 697, 623, - 697, 670, 697, 649, 28, 692, 280, 90, -97, 88, - -97, 110, 113, -97, -97, -97, -97, 504, 506, 508, - 703, 709, 710, 703, 180, 432, 700, 84, 189, 482, - 179, 700, 564, 700, -104, 700, 438, 389, -104, 88, - 577, 360, 161, 281, 613, 361, 661, 602, 450, 362, - 441, 617, 50, 316, 410, 762, 742, 416, 441, 672, - 441, 619, 758, 447, 282, 428, -322, 147, 189, -25, - -25, 187, 67, 706, 635, 161, 247, 20, 448, 20, - 598, 528, 157, 157, 88, 61, 703, 580, 745, 20, - 412, 703, 426, 703, 621, 703, 624, 317, 671, 180, - 45, 733, 280, 704, 74, 752, 69, 367, 637, 390, - -25, 438, 433, 407, 118, -25, -25, -25, 635, 41, - 753, -25, 578, 450, 610, -25, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 88, 331, - 331, 331, 331, 331, 331, 331, 631, 84, 101, 492, - 434, -65, 417, 500, 761, -65, 673, 413, -322, 551, - 766, 694, 46, 119, 427, 316, 46, 636, 189, 462, - 726, 128, 316, -30, 1, 746, 282, 53, 546, 419, - 316, 42, 316, 282, 423, 316, 137, 454, 475, 138, - 139, 282, 486, 282, -65, 501, 558, -256, -65, -66, - 438, 638, -31, 1, 88, 408, 566, 643, 568, 317, - 646, 763, 71, -158, 450, 189, 317, 2, 492, 250, - 139, 640, 442, 450, 317, 445, 317, 647, 3, 317, - 327, 133, 465, 331, 4, 463, 328, 647, 674, 331, - 5, 591, -66, 593, 418, 407, 2, 679, 749, 58, - 652, 57, 280, 498, 318, 280, 685, 599, 487, 678, - 129, 755, 20, 4, 157, 653, -28, 1, 492, 5, - 165, 420, 7, 245, 42, 760, 424, -97, 133, 455, - 476, 316, -97, -97, -97, -97, 148, 502, 694, 66, - 98, 248, 282, 749, 102, 755, 78, 760, 120, 654, - 109, 7, 50, 165, 727, 196, -160, 729, 112, 281, - 2, 197, 281, 641, -139, -29, 1, 731, 198, 648, - 57, 3, 199, 189, 149, 317, 252, 4, 80, 732, - 280, 81, 20, 5, 20, 200, 201, 735, 157, 202, - 84, 6, 397, 179, -32, 1, 253, 151, 204, 205, - 206, 207, 458, 154, 208, 209, 280, 167, 257, 2, - -34, 1, -33, 1, 493, 7, 318, 177, 331, 331, - 3, 319, 320, 318, 20, 20, 4, 183, 188, 20, - 324, 318, 5, 318, 331, 20, 318, 281, 2, 157, - 167, 99, 441, 20, 118, 2, 103, 88, 359, 3, - 366, 78, 456, 134, 2, 4, 2, 682, 100, 20, - 2, 5, 180, 281, 7, 106, 78, 280, 594, 280, - 460, 4, 493, 4, 385, 595, 464, 5, 579, 5, - 494, 316, 20, 80, 316, 495, 81, 20, 20, 496, - 159, 714, 282, 7, 203, 282, 602, 722, 80, 20, - 131, 81, 20, 441, 630, 155, 441, 634, 549, 7, - 178, 7, 20, 20, 328, 20, 316, 344, 316, -35, - 1, 159, 329, 159, 281, 317, 281, 484, 317, 441, - 652, 485, 318, 319, 320, 20, 689, 20, 494, 493, - 319, 320, 441, 495, 321, 653, 121, 496, 319, 320, - 319, 320, 618, 319, 320, 20, 441, 20, 619, 316, - 317, 20, 317, 2, 316, 341, 78, 35, 57, 441, - 282, -497, -497, 754, 441, 282, 441, 757, 441, 716, - 4, 35, 690, 359, 36, 316, 5, 78, 364, 35, - 37, -341, -341, 316, 140, 78, 282, 32, 80, 141, - 142, 81, 20, 317, 122, 494, 36, 686, 317, 30, - 495, 34, 37, 619, 496, -498, -498, 32, 7, 80, - 322, 32, 81, 20, 20, 316, 728, 80, 316, 317, - 81, 20, 619, 51, 730, 386, 282, 317, 32, 282, - 619, 600, 387, -341, 600, 705, 316, -341, 316, 319, - 320, 316, 365, 603, 569, 605, 321, 282, 570, 282, - -343, -343, 282, 321, 316, 378, 379, 380, 381, 317, - 388, 321, 317, 321, 527, 282, 321, 400, 316, 401, - 477, -156, 318, 478, 316, 318, 435, 359, 2, 282, - 317, 316, 317, 316, 78, 317, 316, 439, 316, 469, - 316, 323, 282, 737, 382, 443, 738, 282, 317, 282, - 453, 282, -343, 370, 371, 372, -343, 318, 550, 318, - 368, 369, 317, 78, 139, 35, 80, 584, 317, 81, - 20, 78, 322, 373, 374, 317, 586, 317, 596, 322, - 317, 622, 317, 627, 317, 383, 384, 322, 37, 322, - 391, 392, 322, 78, 628, 80, -407, -407, 81, 20, - 318, 632, 196, 80, 633, 318, 81, 20, 197, 767, - -408, -408, 321, 639, 771, 198, 773, 649, 774, 199, - 659, -496, -496, 360, 665, 80, 318, 361, 81, 20, - 666, 362, 200, 201, 318, 667, 202, 141, 142, 319, - 320, 602, 319, 320, 156, 204, 205, 206, 207, 710, - 78, 208, 209, 323, 510, 512, 2, 531, 533, 79, - 323, 4, 78, 375, 376, 377, 318, 5, 323, 318, - 323, 723, 588, 323, 319, 320, 319, 320, 520, 522, - 524, 526, 80, 736, -207, 81, 20, 318, 322, 318, - 739, 740, 318, 741, 80, 157, 158, 81, 20, 332, - 332, 332, 332, 742, 748, 318, 394, 332, 332, -15, - 466, 467, 468, 750, -496, -496, 360, 319, 320, 318, - 430, 758, 319, 320, 431, 318, 770, 191, 759, 192, - 193, 765, 318, 768, 318, 772, 776, 318, 777, 318, - 2, 318, 529, 319, 320, 33, 78, 75, 514, 516, - 518, 319, 320, -15, 108, 79, 256, 4, -496, -496, - 360, 190, 321, 5, 430, 321, 254, 395, 362, 323, - 554, 194, 195, 73, 127, 449, 78, 403, 80, 437, - 717, 81, 20, 319, 320, 196, 319, 320, 452, 644, - 718, 197, 82, 645, 473, 535, 539, 321, 198, 321, - 537, 541, 199, 688, 319, 320, 319, 320, 80, 319, - 320, 81, 20, 548, 543, 200, 201, 0, 0, 202, - 0, 203, 319, 320, 0, 0, 0, 0, 204, 205, - 206, 207, 0, 0, 208, 209, 319, 320, 322, 0, - 321, 322, 319, 320, 0, 321, 0, 0, 0, 319, - 320, 319, 320, 0, 319, 320, 319, 320, 319, 320, - 0, -496, -496, 360, 0, 0, 321, 480, 0, 0, - 0, 362, 0, 322, 321, 322, 0, 332, 332, 332, - 332, 332, 332, 332, 332, 332, 332, 332, 332, 0, - 332, 332, 332, 332, 332, 332, 332, 156, -496, -496, - 360, 0, 0, 78, 361, 0, 321, 0, 431, 321, - 0, 0, 79, 0, 4, 0, 322, 0, 0, 323, - 5, 322, 323, 0, 0, 0, 0, 321, 0, 321, - 0, 0, 321, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 322, 0, 0, 321, 0, 0, 157, 255, - 322, 0, 0, 0, 323, 0, 323, 0, 0, 321, - 0, 333, 333, 333, 333, 321, 0, 0, 0, 333, - 333, 0, 321, 0, 321, 0, 0, 321, 0, 321, - 0, 321, 322, 0, 332, 322, 0, 0, 0, -15, - 332, 0, 0, 0, -496, -496, 360, 323, 0, 0, - 430, 0, 323, 322, 629, 322, 0, 414, 322, 192, - 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 322, 0, 323, 0, 0, 0, 0, 0, 0, - 0, 323, 0, 0, 0, 322, 0, 0, 0, 0, - 0, 322, 0, 0, 0, 0, 0, 0, 322, 0, - 322, 194, 195, 322, 0, 322, 78, 322, 0, 0, - 0, 0, 0, 323, 0, 196, 323, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, - 0, 0, 199, 0, 323, 0, 323, 0, 80, 323, - 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 323, 0, 0, 415, 0, 0, 204, 205, - 206, 207, 0, 0, 208, 209, 323, 263, 0, 332, - 332, 0, 323, 0, 0, 0, 0, 0, 0, 323, - 0, 323, 0, 0, 323, 332, 323, 0, 323, 333, - 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - 333, 0, 333, 333, 333, 333, 333, 333, 333, 0, - 264, 194, 195, 652, 265, 266, 78, 267, 0, 0, - 268, 0, 0, 0, 269, 196, 0, 0, 653, 0, - 0, 270, 271, 5, 272, 0, 273, 274, 198, 275, - 263, 0, 276, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 0, 0, 0, 0, 277, - 0, 157, 719, 0, 0, 278, 0, 0, 204, 205, - 206, 207, 0, 0, 208, 209, 0, 0, 0, 0, - 0, 0, 0, 264, 194, 195, 652, 265, 266, 78, - 267, 0, 0, 268, 0, 0, 333, 269, 196, 0, - 0, 653, 333, 0, 270, 271, 5, 272, 263, 273, - 274, 198, 275, 0, 0, 276, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 0, 0, - 0, 0, 277, 0, 157, 747, 0, 0, 278, 0, - 0, 204, 205, 206, 207, 0, 0, 208, 209, 0, - 0, 264, 194, 195, -266, 265, 266, 78, 267, 0, - 0, 268, 0, 0, 0, 269, 196, 0, 0, -266, - 0, 0, 270, 271, 5, 272, 0, 273, 274, 198, - 275, 2, 0, 276, 0, 0, 0, 78, 0, 80, - 0, 263, 81, 20, 0, 0, 79, 0, 4, 0, - 277, 0, 157, -266, 5, 0, 278, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 0, 0, 80, - 0, 0, 81, 20, 0, 0, 0, 0, 0, 0, - 0, 333, 333, 126, 264, 194, 195, 0, 265, 266, - 78, 267, 0, 0, 268, 0, 0, 333, 269, 196, - 0, 0, 0, 0, 0, 270, 271, 5, 272, 263, - 273, 274, 198, 275, 0, 0, 276, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 0, - 0, 0, 0, 277, 0, 157, 436, 0, 0, 278, - 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, - 0, 0, 264, 194, 195, 0, 265, 266, 78, 267, - 0, 0, 268, 0, 0, 0, 269, 196, 0, 0, - 0, 0, 0, 270, 271, 5, 272, 263, 273, 274, - 198, 275, 0, 0, 276, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 0, 0, 0, - 0, 277, 0, 157, 0, 0, 0, 278, 0, 0, - 204, 205, 206, 207, 0, 0, 208, 209, 0, 0, - 440, 194, 195, 0, 265, 266, 78, 267, 0, 0, - 268, 0, 0, 0, 269, 196, 0, 0, 0, 0, - 0, 270, 271, 263, 272, 0, 273, 274, 198, 275, - 0, 0, 276, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 0, 0, 0, 0, 277, - 0, 157, 0, 0, 0, 278, 0, 0, 204, 205, - 206, 207, 0, 0, 208, 209, 440, 194, 195, 0, - 693, 266, 78, 267, 0, 0, 268, 0, 0, 0, - 269, 196, 0, 0, 0, 0, 0, 270, 271, 0, - 272, 0, 273, 274, 198, 275, 0, 615, 276, 192, - 193, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 0, 0, 0, 0, 277, 0, 157, 0, 0, - 0, 278, 0, 0, 204, 205, 206, 207, 0, 0, - 208, 209, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 194, 195, 0, 0, 0, 78, 0, 0, 0, - 0, 0, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 197, 544, 0, 192, 193, 0, 0, 198, 0, - 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 203, 616, 0, 0, 0, 0, 0, 204, 205, - 206, 207, 0, 0, 208, 209, 194, 195, 0, 0, - 0, 78, 0, 491, 0, 192, 193, 0, 0, 0, - 196, 0, 0, 0, 0, 0, 197, 0, 0, 0, - 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 545, - 200, 201, 0, 0, 202, 0, 0, 194, 195, 0, - 0, 0, 78, 204, 205, 206, 207, 0, 0, 208, - 209, 196, 0, 0, 0, 0, 0, 197, 581, 0, - 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, - 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 0, 0, - 148, 0, 0, 0, 204, 205, 206, 207, 0, 0, - 208, 209, 194, 195, 0, 0, 0, 78, 0, 589, - 0, 192, 193, 0, 0, 0, 196, 0, 0, 0, - 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, - 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, - 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 582, 0, 194, 195, 0, 0, 0, 78, 204, - 205, 206, 207, 0, 0, 208, 209, 196, 0, 0, - 0, 0, 0, 197, 597, 0, 192, 193, 0, 0, - 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 0, 0, 0, 590, 0, 0, - 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, - 0, 0, 0, 78, 0, 606, 0, 192, 193, 0, - 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, - 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, - 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 194, - 195, 598, 0, 0, 78, 204, 205, 206, 207, 0, - 0, 208, 209, 196, 0, 0, 0, 0, 0, 197, - 491, 0, 192, 193, 0, 0, 198, 0, 0, 0, - 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 200, 201, 0, 0, 202, 607, 0, - 0, 0, 0, 0, 0, 0, 204, 205, 206, 207, - 0, 0, 208, 209, 194, 195, 0, 0, 0, 78, - 0, 581, 0, 192, 193, 0, 0, 0, 196, 0, - 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 194, 195, 598, 0, 0, - 78, 204, 205, 206, 207, 0, 0, 208, 209, 196, - 0, 0, 0, 0, 0, 197, 707, 0, 192, 193, - 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 691, 0, 0, 0, 0, 0, - 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, - 194, 195, 0, 0, 0, 78, 0, 707, 0, 192, - 193, 0, 0, 0, 196, 0, 0, 0, 0, 0, - 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 708, - 0, 194, 195, 0, 0, 0, 78, 204, 205, 206, - 207, 0, 0, 208, 209, 196, 0, 0, 0, 0, - 0, 197, 589, 0, 192, 193, 0, 0, 198, 0, - 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 751, 0, 0, 0, 0, 0, 0, 0, 204, 205, - 206, 207, 0, 0, 208, 209, 194, 195, 0, 0, - 0, 78, 0, 330, 0, 192, 193, 0, 0, 0, - 196, 0, 0, 0, 0, 0, 197, 0, 0, 0, - 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 0, 0, 194, 195, 0, - 756, 0, 78, 204, 205, 206, 207, 0, 0, 208, - 209, 196, 0, 0, 0, 0, 0, 197, 335, 0, - 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, - 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 0, 0, - 0, 0, 0, 0, 204, 205, 206, 207, 0, 0, - 208, 209, 194, 195, 0, 0, 0, 78, 0, 337, - 0, 192, 193, 0, 0, 0, 196, 0, 0, 0, - 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, - 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, - 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 194, 195, 0, 0, 0, 78, 204, - 205, 206, 207, 0, 0, 208, 209, 196, 0, 0, - 0, 0, 0, 197, 339, 0, 192, 193, 0, 0, - 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, - 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, - 0, 0, 0, 78, 0, 348, 0, 192, 193, 0, - 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, - 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, - 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 194, - 195, 0, 0, 0, 78, 204, 205, 206, 207, 0, - 0, 208, 209, 196, 0, 0, 0, 0, 0, 197, - 350, 0, 192, 193, 0, 0, 198, 0, 0, 0, - 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 200, 201, 0, 0, 202, 0, 0, - 0, 0, 0, 0, 0, 0, 204, 205, 206, 207, - 0, 0, 208, 209, 194, 195, 0, 0, 0, 78, - 0, 352, 0, 192, 193, 0, 0, 0, 196, 0, - 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 194, 195, 0, 0, 0, - 78, 204, 205, 206, 207, 0, 0, 208, 209, 196, - 0, 0, 0, 0, 0, 197, 409, 0, 192, 193, - 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, 0, 0, 0, 0, 0, - 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, - 194, 195, 0, 0, 0, 78, 0, 491, 0, 192, - 193, 0, 0, 0, 196, 0, 0, 0, 0, 0, - 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, - 0, 194, 195, 0, 0, 0, 78, 204, 205, 206, - 207, 0, 0, 208, 209, 196, 0, 0, 0, 0, - 0, 197, 499, 0, 192, 193, 0, 0, 198, 0, - 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, - 206, 207, 0, 0, 208, 209, 194, 195, 0, 0, - 0, 78, 0, 503, 0, 192, 193, 0, 0, 0, - 196, 0, 0, 0, 0, 0, 197, 0, 0, 0, - 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 0, 0, 194, 195, 0, - 0, 0, 78, 204, 205, 206, 207, 0, 0, 208, - 209, 196, 0, 0, 0, 0, 0, 197, 505, 0, - 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, - 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 0, 0, - 0, 0, 0, 0, 204, 205, 206, 207, 0, 0, - 208, 209, 194, 195, 0, 0, 0, 78, 0, 507, - 0, 192, 193, 0, 0, 0, 196, 0, 0, 0, - 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, - 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, - 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 194, 195, 0, 0, 0, 78, 204, - 205, 206, 207, 0, 0, 208, 209, 196, 0, 0, - 0, 0, 0, 197, 509, 0, 192, 193, 0, 0, - 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, - 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, - 0, 0, 0, 78, 0, 511, 0, 192, 193, 0, - 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, - 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, - 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 194, - 195, 0, 0, 0, 78, 204, 205, 206, 207, 0, - 0, 208, 209, 196, 0, 0, 0, 0, 0, 197, - 513, 0, 192, 193, 0, 0, 198, 0, 0, 0, - 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 200, 201, 0, 0, 202, 0, 0, - 0, 0, 0, 0, 0, 0, 204, 205, 206, 207, - 0, 0, 208, 209, 194, 195, 0, 0, 0, 78, - 0, 515, 0, 192, 193, 0, 0, 0, 196, 0, - 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 194, 195, 0, 0, 0, - 78, 204, 205, 206, 207, 0, 0, 208, 209, 196, - 0, 0, 0, 0, 0, 197, 517, 0, 192, 193, - 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, 0, 0, 0, 0, 0, - 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, - 194, 195, 0, 0, 0, 78, 0, 519, 0, 192, - 193, 0, 0, 0, 196, 0, 0, 0, 0, 0, - 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, - 0, 194, 195, 0, 0, 0, 78, 204, 205, 206, - 207, 0, 0, 208, 209, 196, 0, 0, 0, 0, - 0, 197, 521, 0, 192, 193, 0, 0, 198, 0, - 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, - 206, 207, 0, 0, 208, 209, 194, 195, 0, 0, - 0, 78, 0, 523, 0, 192, 193, 0, 0, 0, - 196, 0, 0, 0, 0, 0, 197, 0, 0, 0, - 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 0, 0, 194, 195, 0, - 0, 0, 78, 204, 205, 206, 207, 0, 0, 208, - 209, 196, 0, 0, 0, 0, 0, 197, 525, 0, - 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, - 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 0, 0, - 0, 0, 0, 0, 204, 205, 206, 207, 0, 0, - 208, 209, 194, 195, 0, 0, 0, 78, 0, 530, - 0, 192, 193, 0, 0, 0, 196, 0, 0, 0, - 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, - 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, - 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 194, 195, 0, 0, 0, 78, 204, - 205, 206, 207, 0, 0, 208, 209, 196, 0, 0, - 0, 0, 0, 197, 532, 0, 192, 193, 0, 0, - 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, - 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, - 0, 0, 0, 78, 0, 534, 0, 192, 193, 0, - 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, - 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, - 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 194, - 195, 0, 0, 0, 78, 204, 205, 206, 207, 0, - 0, 208, 209, 196, 0, 0, 0, 0, 0, 197, - 536, 0, 192, 193, 0, 0, 198, 0, 0, 0, - 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 200, 201, 0, 0, 202, 0, 0, - 0, 0, 0, 0, 0, 0, 204, 205, 206, 207, - 0, 0, 208, 209, 194, 195, 0, 0, 0, 78, - 0, 538, 0, 192, 193, 0, 0, 0, 196, 0, - 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 194, 195, 0, 0, 0, - 78, 204, 205, 206, 207, 0, 0, 208, 209, 196, - 0, 0, 0, 0, 0, 197, 540, 0, 192, 193, - 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, 0, 0, 0, 0, 0, - 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, - 194, 195, 0, 0, 0, 78, 0, 542, 0, 192, - 193, 0, 0, 0, 196, 0, 0, 0, 0, 0, - 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, - 0, 194, 195, 0, 0, 0, 78, 204, 205, 206, - 207, 0, 0, 208, 209, 196, 0, 0, 0, 0, - 0, 197, 547, 0, 192, 193, 0, 0, 198, 0, - 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, - 206, 207, 0, 0, 208, 209, 194, 195, 0, 0, - 0, 78, 0, 557, 0, 192, 193, 0, 0, 0, - 196, 0, 0, 0, 0, 0, 197, 0, 0, 0, - 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 0, 0, 194, 195, 0, - 0, 0, 78, 204, 205, 206, 207, 0, 0, 208, - 209, 196, 0, 0, 0, 0, 0, 197, 565, 0, - 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, - 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 0, 0, - 0, 0, 0, 0, 204, 205, 206, 207, 0, 0, - 208, 209, 194, 195, 0, 0, 0, 78, 0, 567, - 0, 192, 193, 0, 0, 0, 196, 0, 0, 0, - 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, - 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, - 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 194, 195, 0, 0, 0, 78, 204, - 205, 206, 207, 0, 0, 208, 209, 196, 0, 0, - 0, 0, 0, 197, 592, 0, 192, 193, 0, 0, - 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, - 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, - 0, 0, 0, 78, 0, 609, 0, 192, 193, 0, - 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, - 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, - 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 194, - 195, 0, 0, 0, 78, 204, 205, 206, 207, 0, - 0, 208, 209, 196, 0, 0, 0, 0, 0, 197, - 677, 0, 192, 193, 0, 0, 198, 0, 0, 0, - 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 200, 201, 0, 0, 202, 0, 0, - 0, 0, 0, 0, 0, 0, 204, 205, 206, 207, - 0, 0, 208, 209, 194, 195, 0, 0, 0, 78, - 0, 681, 0, 192, 193, 0, 0, 0, 196, 0, - 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 194, 195, 0, 0, 0, - 78, 204, 205, 206, 207, 0, 0, 208, 209, 196, - 0, 0, 0, 0, 0, 197, 687, 0, 192, 193, - 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, 0, 0, 0, 0, 0, - 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, - 194, 195, 0, 0, 0, 78, 0, 713, 0, 192, - 193, 0, 0, 0, 196, 0, 0, 0, 0, 0, - 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, - 0, 194, 195, 0, 0, 0, 78, 204, 205, 206, - 207, 0, 0, 208, 209, 196, 0, 0, 0, 0, - 0, 197, 0, 575, 0, 0, 0, 0, 198, 0, - 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 200, 201, 0, 662, 202, - 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, - 206, 207, 0, 0, 208, 209, -289, -289, -289, 0, - 0, 0, -289, 0, 0, 0, 0, 0, 0, 0, - 0, -289, 0, 0, 0, 0, 0, -289, 0, 0, - 724, 0, 194, 195, -289, 0, 0, 78, -289, 0, - 0, 0, 0, 0, -289, 0, 196, -289, -289, 0, - 0, 0, 197, 0, 0, -289, 0, 192, 193, 198, - 0, -289, 0, 199, -289, -289, -289, -289, 0, 80, - -289, -289, 81, 20, 194, 195, 0, 0, 0, 78, - 277, -297, 0, 0, 0, 0, 0, 0, 196, 204, - 205, 206, 207, 0, 197, 208, 209, 660, 0, 194, - 195, 198, 0, 0, 78, 199, 0, 0, 0, 0, - 0, 80, 0, 196, 81, 20, 0, 0, 0, 197, - 0, 0, 277, -297, 192, 193, 198, 0, 0, 0, - 199, 204, 205, 206, 207, 0, 80, 208, 209, 81, - 20, 194, 195, 200, 201, 0, 78, 202, 0, 203, - 356, 0, 0, 0, 0, 196, 204, 205, 206, 207, - 0, 197, 208, 209, 0, 0, 194, 195, 198, 0, - 0, 78, 199, 0, 0, 192, 193, 0, 80, 0, - 196, 81, 20, 0, 0, 0, 197, 0, 0, 277, - 0, 0, 0, 198, 0, 0, 0, 199, 204, 205, - 206, 207, 0, 80, 208, 209, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 488, 0, 194, 195, 0, - 0, 0, 78, 204, 205, 206, 207, 0, 0, 208, - 209, 196, 0, 0, 0, 0, 0, 197, 0, 0, - 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, - 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 625, 0, 0, 0, - 0, 0, 0, 0, 204, 205, 206, 207, 0, 0, - 208, 209, 194, 195, 0, 0, 0, 78, 0, 0, - 0, 192, 193, 0, 0, 0, 196, 0, 0, 0, - 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, - 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, - 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 668, 0, 194, 195, 0, 0, 0, 78, 204, - 205, 206, 207, 0, 0, 208, 209, 196, 0, 0, - 0, 0, 0, 197, 0, 0, 192, 193, 0, 0, - 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 683, 0, 0, 0, 0, 0, 0, 0, - 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, - 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, - 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, - 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, - 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 2, 194, - 195, 0, 0, 0, 78, 204, 205, 206, 207, 0, - 0, 208, 209, 196, 0, 0, 0, 0, 0, 197, - 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, - 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 0, 0, 0, 0, 277, 0, 0, - 0, 0, 0, 0, 0, 0, 204, 205, 206, 207, - 0, 0, 208, 209 +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -500 +static const yytype_int16 yytable[] = +{ + 22, 461, 154, 30, 86, 440, 178, 85, 452, 176, + 359, 289, 17, 327, 365, 186, 616, 589, 145, 585, + 391, 40, 17, 17, 17, 78, 344, 614, 61, 344, + 604, 86, 69, 126, 125, 464, 86, 484, 50, 85, + 329, 63, 176, 260, 17, 63, 330, 17, 17, 262, + 61, 251, 561, 136, 253, 61, 33, 95, 563, 484, + 610, 90, 444, 63, 21, 17, 146, 161, 63, 565, + 447, 86, 448, 264, 85, 86, 91, 413, 181, 349, + 578, 33, 336, 338, 340, 342, 628, 698, 90, 95, + 351, 353, 392, 90, 423, 122, 727, 137, 161, 52, + 161, 465, 86, 476, 86, 125, 651, 85, 91, 699, + 481, 483, -95, -95, 61, -295, 590, 282, -158, 41, + 69, 42, 86, 79, 175, 328, 345, 63, 90, 345, + 485, 127, 90, 63, 26, 28, 51, -105, 52, 401, + 347, -105, 712, 162, 355, 652, 682, 182, 698, 677, + 562, 698, 580, 424, 18, 398, 564, 175, 431, 90, + 459, 90, 21, 147, 18, 18, 18, 566, 54, 56, + 699, 247, 59, 699, 283, 414, 162, 744, 579, 90, + 671, 760, 59, 427, 348, 652, 18, 766, 159, 18, + 18, 333, 333, 333, 333, 86, 771, 63, 181, 333, + 333, 356, 702, -323, 735, 745, 686, 18, 148, 20, + 463, 112, 188, 248, 698, 115, 694, 488, 92, 698, + 205, 698, 604, 698, 745, 86, 705, 603, 436, 282, + 606, 31, 711, 357, 247, 613, 699, 47, 653, 558, + 755, 699, 678, 699, 621, 699, 622, 644, 621, 282, + 92, 625, 90, 706, 112, 115, 64, 672, -32, 1, + 506, 508, 510, 702, 674, 728, 702, 182, 21, 103, + 86, 191, 637, 181, 440, 763, 409, 615, 736, 768, + 604, 428, 90, 489, 621, 163, 283, 705, -66, 663, + 705, 452, 619, 443, 21, -323, 318, 412, 746, 48, + 418, 443, 2, 443, 621, 149, 449, 284, 430, 189, + 249, 191, 639, 582, 708, 69, 754, 764, 163, 4, + -67, 450, 419, 621, 530, 5, 421, 90, 63, 702, + 713, -66, 600, 43, 702, 27, 702, 747, 702, 73, + 319, 159, 182, 623, 139, 282, 71, -257, 626, 440, + 369, 637, 52, 705, 673, -29, 1, 7, 705, 159, + 705, 675, 705, -67, 425, 638, 452, 612, 410, 333, + 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, + 333, 90, 333, 333, 333, 333, 333, 333, 333, 633, + 86, 456, 494, 436, 57, 44, 502, 66, 58, 2, + 415, 44, 553, 29, 696, 640, 120, 429, 318, 76, + 3, 191, 723, 477, 420, 318, 4, 714, 422, 284, + 21, 548, 5, 318, 748, 318, 284, -159, 318, 139, + 6, 503, 55, -161, 284, -98, 284, -98, 440, 560, + -98, -98, -98, -98, 765, -35, 1, 90, 60, 568, + 645, 570, 319, 648, 7, 596, 426, 452, 191, 319, + -66, 494, 597, 121, 642, 444, 452, 319, 447, 319, + 649, 48, 319, 723, 159, 467, 333, 649, 399, 21, + 409, 676, 333, 457, 593, 605, 595, 607, 21, 2, + 681, 751, 68, 654, 59, 282, 500, 320, 282, 687, + 601, 167, 680, -66, 757, 478, 4, 102, 655, -31, + 1, 494, 5, 169, 108, 100, 247, 21, 762, 130, + -98, 135, 104, 504, 318, -98, -98, -98, -98, 499, + 131, 696, 111, 21, 167, 284, 751, 114, 757, 80, + 762, 119, 656, 21, 7, 135, 169, 729, 198, 133, + 731, 434, 283, 2, 199, 283, 643, 150, -30, 1, + 733, 200, 650, 59, 3, 201, 191, 151, 319, 734, + 4, 82, 737, 282, 83, 21, 5, 21, 202, 203, + 152, 155, 204, 86, 142, 179, 181, 250, 153, 143, + 144, 206, 207, 208, 209, -26, -26, 210, 211, 282, + 21, -140, 2, 632, -33, 1, 636, 21, 7, 320, + 255, 333, 333, 3, 321, 322, 320, 21, 654, 4, + 495, 156, 21, 346, 320, 5, 320, 333, 2, 320, + 283, -34, 1, 655, 80, 443, -26, 254, 435, 185, + 90, -26, -26, -26, 259, -342, -342, -26, 2, 159, + 684, -26, 21, 190, 120, 182, 283, 7, 361, 3, + 282, 479, 282, 326, 480, 4, 82, 718, 361, 83, + 21, 5, 80, 21, 318, 2, 551, 318, 180, 368, + 458, 692, 330, 620, 716, 284, 496, 462, 284, 621, + 724, 497, 4, 37, 136, 498, 443, -342, 5, 443, + 466, -342, 331, 7, 82, 21, 21, 83, 21, 318, + 38, 318, -36, 1, 140, 141, 39, 283, 319, 283, + 367, 319, 443, 101, 21, 320, 321, 322, 105, 495, + 7, 460, 362, 321, 322, 443, 363, 323, 21, 123, + 364, 321, 322, 321, 322, 343, 321, 322, 21, 443, + -344, -344, 318, 319, 361, 319, 2, 318, 32, 366, + 36, 59, 443, 284, 21, 21, 756, 443, 284, 443, + 759, 443, 21, 4, 2, 688, 252, 141, 318, 5, + 80, 621, 37, 53, 730, 21, 318, 157, 80, 284, + 621, 602, 732, 581, 602, 496, 319, 124, 621, 38, + 497, 319, -344, 387, 498, 39, -344, 380, 381, 382, + 383, 7, 82, 324, 21, 83, 21, 388, 318, 403, + 82, 318, 319, 83, 21, -497, -497, 362, 389, 284, + 319, 363, 284, -498, -498, 364, 406, 407, 707, 318, + 408, 318, 321, 322, 318, 739, 384, 486, 740, 323, + 284, 487, 284, 390, 571, 284, 323, 318, 572, 372, + 373, 374, 319, 495, 323, 319, 323, 2, 284, 323, + 402, 318, -157, 80, 437, 320, 441, 318, 320, -499, + -499, 2, 284, 319, 318, 319, 318, 80, 319, 318, + 529, 318, -16, 318, 325, 284, 445, -497, -497, 362, + 284, 319, 284, 432, 284, 82, 455, 433, 83, 21, + 320, 769, 320, 370, 371, 319, 773, 396, 775, 82, + 776, 319, 83, 21, 471, 324, 141, 691, 319, 496, + 319, 34, 324, 319, 497, 319, 586, 319, 498, 80, + 324, 552, 324, 375, 376, 324, 80, 588, 21, 377, + 378, 379, 34, 320, 598, 198, 34, 624, 320, 385, + 386, 199, 468, 469, 470, 323, 393, 394, 200, -408, + -408, 82, 201, 34, 83, 21, -409, -409, 82, 320, + 629, 83, 21, 143, 144, 202, 203, 320, 630, 204, + 533, 535, 321, 322, 634, 321, 322, 158, 206, 207, + 208, 209, 635, 80, 210, 211, 325, 512, 514, 37, + 641, 651, 81, 325, 4, 80, 661, 667, 604, 320, + 5, 325, 320, 325, 668, 37, 325, 321, 322, 321, + 322, 80, 39, 669, 712, 82, 725, 590, 83, 21, + 320, 324, 320, 738, -208, 320, 741, 82, 159, 160, + 83, 21, 334, 334, 334, 334, 742, 743, 320, 744, + 334, 334, 750, 82, 752, 760, 83, 21, 761, 770, + 321, 322, 320, 767, 772, 321, 322, 774, 320, 531, + 193, 35, 194, 195, 77, 320, 110, 320, 397, 258, + 320, 192, 320, 2, 320, 256, 321, 322, 556, 80, + 522, 524, 526, 528, 321, 322, -16, 75, 81, 129, + 4, -497, -497, 362, 405, 323, 5, 432, 323, 439, + 451, 364, 325, 719, 196, 197, 516, 518, 520, 80, + 720, 82, 646, 454, 83, 21, 321, 322, 198, 321, + 322, 647, 537, 475, 199, 84, 539, 543, 541, 690, + 323, 200, 323, 545, 0, 201, 550, 321, 322, 321, + 322, 82, 321, 322, 83, 21, 0, 0, 202, 203, + 0, 0, 204, 0, 205, 321, 322, 0, 0, 0, + 0, 206, 207, 208, 209, 0, 0, 210, 211, 321, + 322, 324, 0, 323, 324, 321, 322, 0, 323, 0, + 0, 0, 321, 322, 321, 322, 0, 321, 322, 321, + 322, 321, 322, 0, -497, -497, 362, 0, 0, 323, + 482, 0, 0, 0, 364, 0, 324, 323, 324, 0, + 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, + 334, 334, 0, 334, 334, 334, 334, 334, 334, 334, + 158, -497, -497, 362, 0, 0, 80, 363, 0, 323, + 0, 433, 323, 0, 0, 81, 0, 4, 0, 324, + 0, 0, 325, 5, 324, 325, 0, 0, 0, 0, + 323, 0, 323, 0, 0, 323, 0, 0, 82, 0, + 0, 83, 21, 0, 0, 324, 0, 0, 323, 0, + 0, 159, 257, 324, 0, 0, 0, 325, 0, 325, + 0, 0, 323, 0, 335, 335, 335, 335, 323, 0, + 0, 0, 335, 335, 0, 323, 0, 323, 0, 0, + 323, 0, 323, 0, 323, 324, 0, 334, 324, 0, + 0, 0, -16, 334, 0, 0, 0, -497, -497, 362, + 325, 0, 0, 432, 0, 325, 324, 631, 324, 0, + 416, 324, 194, 195, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 324, 0, 325, 0, 0, 0, + 0, 0, 0, 0, 325, 0, 0, 0, 324, 0, + 0, 0, 0, 0, 324, 0, 0, 0, 0, 0, + 0, 324, 0, 324, 196, 197, 324, 0, 324, 80, + 324, 0, 0, 0, 0, 0, 325, 0, 198, 325, + 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, + 0, 200, 0, 0, 0, 201, 0, 325, 0, 325, + 0, 82, 325, 0, 83, 21, 0, 0, 202, 203, + 0, 0, 204, 0, 0, 325, 0, 0, 417, 0, + 0, 206, 207, 208, 209, 0, 0, 210, 211, 325, + 265, 0, 334, 334, 0, 325, 0, 0, 0, 0, + 0, 0, 325, 0, 325, 0, 0, 325, 334, 325, + 0, 325, 335, 335, 335, 335, 335, 335, 335, 335, + 335, 335, 335, 335, 0, 335, 335, 335, 335, 335, + 335, 335, 0, 266, 196, 197, 654, 267, 268, 80, + 269, 0, 0, 270, 0, 0, 0, 271, 198, 0, + 0, 655, 0, 0, 272, 273, 5, 274, 0, 275, + 276, 200, 277, 265, 0, 278, 0, 0, 0, 0, + 0, 82, 0, 0, 83, 21, 0, 0, 0, 0, + 0, 0, 279, 0, 159, 721, 0, 0, 280, 0, + 0, 206, 207, 208, 209, 0, 0, 210, 211, 0, + 0, 0, 0, 0, 0, 0, 266, 196, 197, 654, + 267, 268, 80, 269, 0, 0, 270, 0, 0, 335, + 271, 198, 0, 0, 655, 335, 0, 272, 273, 5, + 274, 265, 275, 276, 200, 277, 0, 0, 278, 0, + 0, 0, 0, 0, 82, 0, 0, 83, 21, 0, + 0, 0, 0, 0, 0, 279, 0, 159, 749, 0, + 0, 280, 0, 0, 206, 207, 208, 209, 0, 0, + 210, 211, 0, 0, 266, 196, 197, -267, 267, 268, + 80, 269, 0, 0, 270, 0, 0, 0, 271, 198, + 0, 0, -267, 0, 0, 272, 273, 5, 274, 0, + 275, 276, 200, 277, 2, 0, 278, 0, 0, 0, + 80, 0, 82, 0, 265, 83, 21, 0, 0, 81, + 0, 4, 0, 279, 0, 159, -267, 5, 0, 280, + 0, 0, 206, 207, 208, 209, 0, 0, 210, 211, + 0, 0, 82, 0, 0, 83, 21, 0, 0, 0, + 0, 0, 0, 0, 335, 335, 128, 266, 196, 197, + 0, 267, 268, 80, 269, 0, 0, 270, 0, 0, + 335, 271, 198, 0, 0, 0, 0, 0, 272, 273, + 5, 274, 265, 275, 276, 200, 277, 0, 0, 278, + 0, 0, 0, 0, 0, 82, 0, 0, 83, 21, + 0, 0, 0, 0, 0, 0, 279, 0, 159, 438, + 0, 0, 280, 0, 0, 206, 207, 208, 209, 0, + 0, 210, 211, 0, 0, 266, 196, 197, 0, 267, + 268, 80, 269, 0, 0, 270, 0, 0, 0, 271, + 198, 0, 0, 0, 0, 0, 272, 273, 5, 274, + 265, 275, 276, 200, 277, 0, 0, 278, 0, 0, + 0, 0, 0, 82, 0, 0, 83, 21, 0, 0, + 0, 0, 0, 0, 279, 0, 159, 0, 0, 0, + 280, 0, 0, 206, 207, 208, 209, 0, 0, 210, + 211, 0, 0, 442, 196, 197, 0, 267, 268, 80, + 269, 0, 0, 270, 0, 0, 0, 271, 198, 0, + 0, 0, 0, 0, 272, 273, 265, 274, 0, 275, + 276, 200, 277, 0, 0, 278, 0, 0, 0, 0, + 0, 82, 0, 0, 83, 21, 0, 0, 0, 0, + 0, 0, 279, 0, 159, 0, 0, 0, 280, 0, + 0, 206, 207, 208, 209, 0, 0, 210, 211, 442, + 196, 197, 0, 695, 268, 80, 269, 0, 0, 270, + 0, 0, 0, 271, 198, 0, 0, 0, 0, 0, + 272, 273, 0, 274, 0, 275, 276, 200, 277, 0, + 617, 278, 194, 195, 0, 0, 0, 82, 0, 0, + 83, 21, 0, 0, 0, 0, 0, 0, 279, 0, + 159, 0, 0, 0, 280, 0, 0, 206, 207, 208, + 209, 0, 0, 210, 211, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 196, 197, 0, 0, 0, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 0, 0, 0, 0, 199, 546, 0, 194, 195, 0, + 0, 200, 0, 0, 0, 201, 0, 0, 0, 0, + 0, 82, 0, 0, 83, 21, 0, 0, 202, 203, + 0, 0, 204, 0, 205, 618, 0, 0, 0, 0, + 0, 206, 207, 208, 209, 0, 0, 210, 211, 196, + 197, 0, 0, 0, 80, 0, 493, 0, 194, 195, + 0, 0, 0, 198, 0, 0, 0, 0, 0, 199, + 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, + 201, 0, 0, 0, 0, 0, 82, 0, 0, 83, + 21, 0, 547, 202, 203, 0, 0, 204, 0, 0, + 196, 197, 0, 0, 0, 80, 206, 207, 208, 209, + 0, 0, 210, 211, 198, 0, 0, 0, 0, 0, + 199, 583, 0, 194, 195, 0, 0, 200, 0, 0, + 0, 201, 0, 0, 0, 0, 0, 82, 0, 0, + 83, 21, 0, 0, 202, 203, 0, 0, 204, 0, + 0, 0, 0, 150, 0, 0, 0, 206, 207, 208, + 209, 0, 0, 210, 211, 196, 197, 0, 0, 0, + 80, 0, 591, 0, 194, 195, 0, 0, 0, 198, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 0, 200, 0, 0, 0, 201, 0, 0, 0, + 0, 0, 82, 0, 0, 83, 21, 0, 0, 202, + 203, 0, 0, 204, 584, 0, 196, 197, 0, 0, + 0, 80, 206, 207, 208, 209, 0, 0, 210, 211, + 198, 0, 0, 0, 0, 0, 199, 599, 0, 194, + 195, 0, 0, 200, 0, 0, 0, 201, 0, 0, + 0, 0, 0, 82, 0, 0, 83, 21, 0, 0, + 202, 203, 0, 0, 204, 0, 0, 0, 0, 0, + 592, 0, 0, 206, 207, 208, 209, 0, 0, 210, + 211, 196, 197, 0, 0, 0, 80, 0, 608, 0, + 194, 195, 0, 0, 0, 198, 0, 0, 0, 0, + 0, 199, 0, 0, 0, 0, 0, 0, 200, 0, + 0, 0, 201, 0, 0, 0, 0, 0, 82, 0, + 0, 83, 21, 0, 0, 202, 203, 0, 0, 204, + 0, 0, 196, 197, 600, 0, 0, 80, 206, 207, + 208, 209, 0, 0, 210, 211, 198, 0, 0, 0, + 0, 0, 199, 493, 0, 194, 195, 0, 0, 200, + 0, 0, 0, 201, 0, 0, 0, 0, 0, 82, + 0, 0, 83, 21, 0, 0, 202, 203, 0, 0, + 204, 609, 0, 0, 0, 0, 0, 0, 0, 206, + 207, 208, 209, 0, 0, 210, 211, 196, 197, 0, + 0, 0, 80, 0, 583, 0, 194, 195, 0, 0, + 0, 198, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 0, 200, 0, 0, 0, 201, 0, + 0, 0, 0, 0, 82, 0, 0, 83, 21, 0, + 0, 202, 203, 0, 0, 204, 0, 0, 196, 197, + 600, 0, 0, 80, 206, 207, 208, 209, 0, 0, + 210, 211, 198, 0, 0, 0, 0, 0, 199, 709, + 0, 194, 195, 0, 0, 200, 0, 0, 0, 201, + 0, 0, 0, 0, 0, 82, 0, 0, 83, 21, + 0, 0, 202, 203, 0, 0, 204, 693, 0, 0, + 0, 0, 0, 0, 0, 206, 207, 208, 209, 0, + 0, 210, 211, 196, 197, 0, 0, 0, 80, 0, + 709, 0, 194, 195, 0, 0, 0, 198, 0, 0, + 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, + 200, 0, 0, 0, 201, 0, 0, 0, 0, 0, + 82, 0, 0, 83, 21, 0, 0, 202, 203, 0, + 0, 204, 710, 0, 196, 197, 0, 0, 0, 80, + 206, 207, 208, 209, 0, 0, 210, 211, 198, 0, + 0, 0, 0, 0, 199, 591, 0, 194, 195, 0, + 0, 200, 0, 0, 0, 201, 0, 0, 0, 0, + 0, 82, 0, 0, 83, 21, 0, 0, 202, 203, + 0, 0, 204, 753, 0, 0, 0, 0, 0, 0, + 0, 206, 207, 208, 209, 0, 0, 210, 211, 196, + 197, 0, 0, 0, 80, 0, 332, 0, 194, 195, + 0, 0, 0, 198, 0, 0, 0, 0, 0, 199, + 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, + 201, 0, 0, 0, 0, 0, 82, 0, 0, 83, + 21, 0, 0, 202, 203, 0, 0, 204, 0, 0, + 196, 197, 0, 758, 0, 80, 206, 207, 208, 209, + 0, 0, 210, 211, 198, 0, 0, 0, 0, 0, + 199, 337, 0, 194, 195, 0, 0, 200, 0, 0, + 0, 201, 0, 0, 0, 0, 0, 82, 0, 0, + 83, 21, 0, 0, 202, 203, 0, 0, 204, 0, + 0, 0, 0, 0, 0, 0, 0, 206, 207, 208, + 209, 0, 0, 210, 211, 196, 197, 0, 0, 0, + 80, 0, 339, 0, 194, 195, 0, 0, 0, 198, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 0, 200, 0, 0, 0, 201, 0, 0, 0, + 0, 0, 82, 0, 0, 83, 21, 0, 0, 202, + 203, 0, 0, 204, 0, 0, 196, 197, 0, 0, + 0, 80, 206, 207, 208, 209, 0, 0, 210, 211, + 198, 0, 0, 0, 0, 0, 199, 341, 0, 194, + 195, 0, 0, 200, 0, 0, 0, 201, 0, 0, + 0, 0, 0, 82, 0, 0, 83, 21, 0, 0, + 202, 203, 0, 0, 204, 0, 0, 0, 0, 0, + 0, 0, 0, 206, 207, 208, 209, 0, 0, 210, + 211, 196, 197, 0, 0, 0, 80, 0, 350, 0, + 194, 195, 0, 0, 0, 198, 0, 0, 0, 0, + 0, 199, 0, 0, 0, 0, 0, 0, 200, 0, + 0, 0, 201, 0, 0, 0, 0, 0, 82, 0, + 0, 83, 21, 0, 0, 202, 203, 0, 0, 204, + 0, 0, 196, 197, 0, 0, 0, 80, 206, 207, + 208, 209, 0, 0, 210, 211, 198, 0, 0, 0, + 0, 0, 199, 352, 0, 194, 195, 0, 0, 200, + 0, 0, 0, 201, 0, 0, 0, 0, 0, 82, + 0, 0, 83, 21, 0, 0, 202, 203, 0, 0, + 204, 0, 0, 0, 0, 0, 0, 0, 0, 206, + 207, 208, 209, 0, 0, 210, 211, 196, 197, 0, + 0, 0, 80, 0, 354, 0, 194, 195, 0, 0, + 0, 198, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 0, 200, 0, 0, 0, 201, 0, + 0, 0, 0, 0, 82, 0, 0, 83, 21, 0, + 0, 202, 203, 0, 0, 204, 0, 0, 196, 197, + 0, 0, 0, 80, 206, 207, 208, 209, 0, 0, + 210, 211, 198, 0, 0, 0, 0, 0, 199, 411, + 0, 194, 195, 0, 0, 200, 0, 0, 0, 201, + 0, 0, 0, 0, 0, 82, 0, 0, 83, 21, + 0, 0, 202, 203, 0, 0, 204, 0, 0, 0, + 0, 0, 0, 0, 0, 206, 207, 208, 209, 0, + 0, 210, 211, 196, 197, 0, 0, 0, 80, 0, + 493, 0, 194, 195, 0, 0, 0, 198, 0, 0, + 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, + 200, 0, 0, 0, 201, 0, 0, 0, 0, 0, + 82, 0, 0, 83, 21, 0, 0, 202, 203, 0, + 0, 204, 0, 0, 196, 197, 0, 0, 0, 80, + 206, 207, 208, 209, 0, 0, 210, 211, 198, 0, + 0, 0, 0, 0, 199, 501, 0, 194, 195, 0, + 0, 200, 0, 0, 0, 201, 0, 0, 0, 0, + 0, 82, 0, 0, 83, 21, 0, 0, 202, 203, + 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, + 0, 206, 207, 208, 209, 0, 0, 210, 211, 196, + 197, 0, 0, 0, 80, 0, 505, 0, 194, 195, + 0, 0, 0, 198, 0, 0, 0, 0, 0, 199, + 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, + 201, 0, 0, 0, 0, 0, 82, 0, 0, 83, + 21, 0, 0, 202, 203, 0, 0, 204, 0, 0, + 196, 197, 0, 0, 0, 80, 206, 207, 208, 209, + 0, 0, 210, 211, 198, 0, 0, 0, 0, 0, + 199, 507, 0, 194, 195, 0, 0, 200, 0, 0, + 0, 201, 0, 0, 0, 0, 0, 82, 0, 0, + 83, 21, 0, 0, 202, 203, 0, 0, 204, 0, + 0, 0, 0, 0, 0, 0, 0, 206, 207, 208, + 209, 0, 0, 210, 211, 196, 197, 0, 0, 0, + 80, 0, 509, 0, 194, 195, 0, 0, 0, 198, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 0, 200, 0, 0, 0, 201, 0, 0, 0, + 0, 0, 82, 0, 0, 83, 21, 0, 0, 202, + 203, 0, 0, 204, 0, 0, 196, 197, 0, 0, + 0, 80, 206, 207, 208, 209, 0, 0, 210, 211, + 198, 0, 0, 0, 0, 0, 199, 511, 0, 194, + 195, 0, 0, 200, 0, 0, 0, 201, 0, 0, + 0, 0, 0, 82, 0, 0, 83, 21, 0, 0, + 202, 203, 0, 0, 204, 0, 0, 0, 0, 0, + 0, 0, 0, 206, 207, 208, 209, 0, 0, 210, + 211, 196, 197, 0, 0, 0, 80, 0, 513, 0, + 194, 195, 0, 0, 0, 198, 0, 0, 0, 0, + 0, 199, 0, 0, 0, 0, 0, 0, 200, 0, + 0, 0, 201, 0, 0, 0, 0, 0, 82, 0, + 0, 83, 21, 0, 0, 202, 203, 0, 0, 204, + 0, 0, 196, 197, 0, 0, 0, 80, 206, 207, + 208, 209, 0, 0, 210, 211, 198, 0, 0, 0, + 0, 0, 199, 515, 0, 194, 195, 0, 0, 200, + 0, 0, 0, 201, 0, 0, 0, 0, 0, 82, + 0, 0, 83, 21, 0, 0, 202, 203, 0, 0, + 204, 0, 0, 0, 0, 0, 0, 0, 0, 206, + 207, 208, 209, 0, 0, 210, 211, 196, 197, 0, + 0, 0, 80, 0, 517, 0, 194, 195, 0, 0, + 0, 198, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 0, 200, 0, 0, 0, 201, 0, + 0, 0, 0, 0, 82, 0, 0, 83, 21, 0, + 0, 202, 203, 0, 0, 204, 0, 0, 196, 197, + 0, 0, 0, 80, 206, 207, 208, 209, 0, 0, + 210, 211, 198, 0, 0, 0, 0, 0, 199, 519, + 0, 194, 195, 0, 0, 200, 0, 0, 0, 201, + 0, 0, 0, 0, 0, 82, 0, 0, 83, 21, + 0, 0, 202, 203, 0, 0, 204, 0, 0, 0, + 0, 0, 0, 0, 0, 206, 207, 208, 209, 0, + 0, 210, 211, 196, 197, 0, 0, 0, 80, 0, + 521, 0, 194, 195, 0, 0, 0, 198, 0, 0, + 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, + 200, 0, 0, 0, 201, 0, 0, 0, 0, 0, + 82, 0, 0, 83, 21, 0, 0, 202, 203, 0, + 0, 204, 0, 0, 196, 197, 0, 0, 0, 80, + 206, 207, 208, 209, 0, 0, 210, 211, 198, 0, + 0, 0, 0, 0, 199, 523, 0, 194, 195, 0, + 0, 200, 0, 0, 0, 201, 0, 0, 0, 0, + 0, 82, 0, 0, 83, 21, 0, 0, 202, 203, + 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, + 0, 206, 207, 208, 209, 0, 0, 210, 211, 196, + 197, 0, 0, 0, 80, 0, 525, 0, 194, 195, + 0, 0, 0, 198, 0, 0, 0, 0, 0, 199, + 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, + 201, 0, 0, 0, 0, 0, 82, 0, 0, 83, + 21, 0, 0, 202, 203, 0, 0, 204, 0, 0, + 196, 197, 0, 0, 0, 80, 206, 207, 208, 209, + 0, 0, 210, 211, 198, 0, 0, 0, 0, 0, + 199, 527, 0, 194, 195, 0, 0, 200, 0, 0, + 0, 201, 0, 0, 0, 0, 0, 82, 0, 0, + 83, 21, 0, 0, 202, 203, 0, 0, 204, 0, + 0, 0, 0, 0, 0, 0, 0, 206, 207, 208, + 209, 0, 0, 210, 211, 196, 197, 0, 0, 0, + 80, 0, 532, 0, 194, 195, 0, 0, 0, 198, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 0, 200, 0, 0, 0, 201, 0, 0, 0, + 0, 0, 82, 0, 0, 83, 21, 0, 0, 202, + 203, 0, 0, 204, 0, 0, 196, 197, 0, 0, + 0, 80, 206, 207, 208, 209, 0, 0, 210, 211, + 198, 0, 0, 0, 0, 0, 199, 534, 0, 194, + 195, 0, 0, 200, 0, 0, 0, 201, 0, 0, + 0, 0, 0, 82, 0, 0, 83, 21, 0, 0, + 202, 203, 0, 0, 204, 0, 0, 0, 0, 0, + 0, 0, 0, 206, 207, 208, 209, 0, 0, 210, + 211, 196, 197, 0, 0, 0, 80, 0, 536, 0, + 194, 195, 0, 0, 0, 198, 0, 0, 0, 0, + 0, 199, 0, 0, 0, 0, 0, 0, 200, 0, + 0, 0, 201, 0, 0, 0, 0, 0, 82, 0, + 0, 83, 21, 0, 0, 202, 203, 0, 0, 204, + 0, 0, 196, 197, 0, 0, 0, 80, 206, 207, + 208, 209, 0, 0, 210, 211, 198, 0, 0, 0, + 0, 0, 199, 538, 0, 194, 195, 0, 0, 200, + 0, 0, 0, 201, 0, 0, 0, 0, 0, 82, + 0, 0, 83, 21, 0, 0, 202, 203, 0, 0, + 204, 0, 0, 0, 0, 0, 0, 0, 0, 206, + 207, 208, 209, 0, 0, 210, 211, 196, 197, 0, + 0, 0, 80, 0, 540, 0, 194, 195, 0, 0, + 0, 198, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 0, 200, 0, 0, 0, 201, 0, + 0, 0, 0, 0, 82, 0, 0, 83, 21, 0, + 0, 202, 203, 0, 0, 204, 0, 0, 196, 197, + 0, 0, 0, 80, 206, 207, 208, 209, 0, 0, + 210, 211, 198, 0, 0, 0, 0, 0, 199, 542, + 0, 194, 195, 0, 0, 200, 0, 0, 0, 201, + 0, 0, 0, 0, 0, 82, 0, 0, 83, 21, + 0, 0, 202, 203, 0, 0, 204, 0, 0, 0, + 0, 0, 0, 0, 0, 206, 207, 208, 209, 0, + 0, 210, 211, 196, 197, 0, 0, 0, 80, 0, + 544, 0, 194, 195, 0, 0, 0, 198, 0, 0, + 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, + 200, 0, 0, 0, 201, 0, 0, 0, 0, 0, + 82, 0, 0, 83, 21, 0, 0, 202, 203, 0, + 0, 204, 0, 0, 196, 197, 0, 0, 0, 80, + 206, 207, 208, 209, 0, 0, 210, 211, 198, 0, + 0, 0, 0, 0, 199, 549, 0, 194, 195, 0, + 0, 200, 0, 0, 0, 201, 0, 0, 0, 0, + 0, 82, 0, 0, 83, 21, 0, 0, 202, 203, + 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, + 0, 206, 207, 208, 209, 0, 0, 210, 211, 196, + 197, 0, 0, 0, 80, 0, 559, 0, 194, 195, + 0, 0, 0, 198, 0, 0, 0, 0, 0, 199, + 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, + 201, 0, 0, 0, 0, 0, 82, 0, 0, 83, + 21, 0, 0, 202, 203, 0, 0, 204, 0, 0, + 196, 197, 0, 0, 0, 80, 206, 207, 208, 209, + 0, 0, 210, 211, 198, 0, 0, 0, 0, 0, + 199, 567, 0, 194, 195, 0, 0, 200, 0, 0, + 0, 201, 0, 0, 0, 0, 0, 82, 0, 0, + 83, 21, 0, 0, 202, 203, 0, 0, 204, 0, + 0, 0, 0, 0, 0, 0, 0, 206, 207, 208, + 209, 0, 0, 210, 211, 196, 197, 0, 0, 0, + 80, 0, 569, 0, 194, 195, 0, 0, 0, 198, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 0, 200, 0, 0, 0, 201, 0, 0, 0, + 0, 0, 82, 0, 0, 83, 21, 0, 0, 202, + 203, 0, 0, 204, 0, 0, 196, 197, 0, 0, + 0, 80, 206, 207, 208, 209, 0, 0, 210, 211, + 198, 0, 0, 0, 0, 0, 199, 594, 0, 194, + 195, 0, 0, 200, 0, 0, 0, 201, 0, 0, + 0, 0, 0, 82, 0, 0, 83, 21, 0, 0, + 202, 203, 0, 0, 204, 0, 0, 0, 0, 0, + 0, 0, 0, 206, 207, 208, 209, 0, 0, 210, + 211, 196, 197, 0, 0, 0, 80, 0, 611, 0, + 194, 195, 0, 0, 0, 198, 0, 0, 0, 0, + 0, 199, 0, 0, 0, 0, 0, 0, 200, 0, + 0, 0, 201, 0, 0, 0, 0, 0, 82, 0, + 0, 83, 21, 0, 0, 202, 203, 0, 0, 204, + 0, 0, 196, 197, 0, 0, 0, 80, 206, 207, + 208, 209, 0, 0, 210, 211, 198, 0, 0, 0, + 0, 0, 199, 679, 0, 194, 195, 0, 0, 200, + 0, 0, 0, 201, 0, 0, 0, 0, 0, 82, + 0, 0, 83, 21, 0, 0, 202, 203, 0, 0, + 204, 0, 0, 0, 0, 0, 0, 0, 0, 206, + 207, 208, 209, 0, 0, 210, 211, 196, 197, 0, + 0, 0, 80, 0, 683, 0, 194, 195, 0, 0, + 0, 198, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 0, 200, 0, 0, 0, 201, 0, + 0, 0, 0, 0, 82, 0, 0, 83, 21, 0, + 0, 202, 203, 0, 0, 204, 0, 0, 196, 197, + 0, 0, 0, 80, 206, 207, 208, 209, 0, 0, + 210, 211, 198, 0, 0, 0, 0, 0, 199, 689, + 0, 194, 195, 0, 0, 200, 0, 0, 0, 201, + 0, 0, 0, 0, 0, 82, 0, 0, 83, 21, + 0, 0, 202, 203, 0, 0, 204, 0, 0, 0, + 0, 0, 0, 0, 0, 206, 207, 208, 209, 0, + 0, 210, 211, 196, 197, 0, 0, 0, 80, 0, + 715, 0, 194, 195, 0, 0, 0, 198, 0, 0, + 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, + 200, 0, 0, 0, 201, 0, 0, 0, 0, 0, + 82, 0, 0, 83, 21, 0, 0, 202, 203, 0, + 0, 204, 0, 0, 196, 197, 0, 0, 0, 80, + 206, 207, 208, 209, 0, 0, 210, 211, 198, 0, + 0, 0, 0, 0, 199, 0, 577, 0, 0, 0, + 0, 200, 0, 0, 0, 201, 0, 0, 0, 0, + 0, 82, 0, 0, 83, 21, 0, 0, 202, 203, + 0, 664, 204, 0, 0, 0, 0, 0, 0, 0, + 0, 206, 207, 208, 209, 0, 0, 210, 211, -290, + -290, -290, 0, 0, 0, -290, 0, 0, 0, 0, + 0, 0, 0, 0, -290, 0, 0, 0, 0, 0, + -290, 0, 0, 726, 0, 196, 197, -290, 0, 0, + 80, -290, 0, 0, 0, 0, 0, -290, 0, 198, + -290, -290, 0, 0, 0, 199, 0, 0, -290, 0, + 194, 195, 200, 0, -290, 0, 201, -290, -290, -290, + -290, 0, 82, -290, -290, 83, 21, 196, 197, 0, + 0, 0, 80, 279, -298, 0, 0, 0, 0, 0, + 0, 198, 206, 207, 208, 209, 0, 199, 210, 211, + 662, 0, 196, 197, 200, 0, 0, 80, 201, 0, + 0, 0, 0, 0, 82, 0, 198, 83, 21, 0, + 0, 0, 199, 0, 0, 279, -298, 194, 195, 200, + 0, 0, 0, 201, 206, 207, 208, 209, 0, 82, + 210, 211, 83, 21, 196, 197, 202, 203, 0, 80, + 204, 0, 205, 358, 0, 0, 0, 0, 198, 206, + 207, 208, 209, 0, 199, 210, 211, 0, 0, 196, + 197, 200, 0, 0, 80, 201, 0, 0, 194, 195, + 0, 82, 0, 198, 83, 21, 0, 0, 0, 199, + 0, 0, 279, 0, 0, 0, 200, 0, 0, 0, + 201, 206, 207, 208, 209, 0, 82, 210, 211, 83, + 21, 0, 0, 202, 203, 0, 0, 204, 490, 0, + 196, 197, 0, 0, 0, 80, 206, 207, 208, 209, + 0, 0, 210, 211, 198, 0, 0, 0, 0, 0, + 199, 0, 0, 194, 195, 0, 0, 200, 0, 0, + 0, 201, 0, 0, 0, 0, 0, 82, 0, 0, + 83, 21, 0, 0, 202, 203, 0, 0, 204, 627, + 0, 0, 0, 0, 0, 0, 0, 206, 207, 208, + 209, 0, 0, 210, 211, 196, 197, 0, 0, 0, + 80, 0, 0, 0, 194, 195, 0, 0, 0, 198, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 0, 200, 0, 0, 0, 201, 0, 0, 0, + 0, 0, 82, 0, 0, 83, 21, 0, 0, 202, + 203, 0, 0, 204, 670, 0, 196, 197, 0, 0, + 0, 80, 206, 207, 208, 209, 0, 0, 210, 211, + 198, 0, 0, 0, 0, 0, 199, 0, 0, 194, + 195, 0, 0, 200, 0, 0, 0, 201, 0, 0, + 0, 0, 0, 82, 0, 0, 83, 21, 0, 0, + 202, 203, 0, 0, 204, 685, 0, 0, 0, 0, + 0, 0, 0, 206, 207, 208, 209, 0, 0, 210, + 211, 196, 197, 0, 0, 0, 80, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 0, 0, 0, + 0, 199, 0, 0, 0, 0, 0, 0, 200, 0, + 0, 0, 201, 0, 0, 0, 0, 0, 82, 0, + 0, 83, 21, 0, 0, 202, 203, 0, 0, 204, + 0, 2, 196, 197, 0, 0, 0, 80, 206, 207, + 208, 209, 0, 0, 210, 211, 198, 0, 0, 0, + 0, 0, 199, 0, 0, 0, 0, 0, 0, 200, + 0, 0, 0, 201, 0, 0, 0, 0, 0, 82, + 0, 0, 83, 21, 0, 0, 0, 0, 0, 0, + 279, 0, 0, 0, 0, 0, 0, 0, 0, 206, + 207, 208, 209, 0, 0, 210, 211 }; -static const short yycheck[] = { 3, - 328, 62, 6, 132, 62, 307, 129, 287, 175, 203, - 134, 0, 483, 179, 1, 1, 123, 1, 1, 346, - 9, 10, 11, 1, 83, 42, 353, 354, 89, 46, - 9, 89, 1, 94, 53, 1, 94, 657, 42, 162, - 1, 30, 46, 72, 33, 34, 169, 64, 435, 1, - 94, 62, 69, 97, 33, 86, 1, 86, 62, 294, - 64, 665, 51, 122, 123, 69, 1, 302, 129, 304, - 95, 129, 133, 62, 198, 133, 117, 1, 97, 192, - 193, 194, 195, 94, 636, 89, 1, 200, 201, 476, - 94, 1, 1, 95, 96, 1, 5, 99, 718, 160, - 86, 162, 160, 86, 162, 94, 636, 94, 1, 150, - 94, 128, 153, 100, 175, 502, 100, 134, 129, 180, - 1, 99, 180, 101, 128, 129, 1, 93, 1, 133, - 134, 172, 101, 4, 5, 101, 259, 198, 99, 636, - 129, 202, 613, 470, 133, 697, 473, 99, 700, 101, - 273, 162, 756, 0, 99, 100, 160, 1, 162, 94, - 326, 765, 9, 10, 11, 36, 37, 697, 140, 40, - 700, 175, 279, 162, 1, 99, 180, 86, 88, 50, - 1, 198, 1, 30, 99, 100, 33, 34, 192, 193, - 194, 195, 253, 99, 198, 253, 200, 201, 202, 636, - 697, 94, 1, 700, 51, 329, 100, 100, 79, 596, - 1, 763, 83, 254, 1, 62, 768, 98, 770, 1, - 772, 94, 283, 1, 99, 283, 287, 100, 1, 1, - 202, 203, 1, 763, 1, 622, 403, 1, 768, 1, - 770, 1, 772, 1, 1, 632, 307, 94, 92, 253, - 94, 122, 123, 97, 98, 99, 100, 370, 371, 372, - 697, 648, 1, 700, 253, 1, 763, 328, 139, 1, - 328, 768, 99, 770, 95, 772, 556, 15, 99, 283, - 99, 93, 129, 287, 94, 97, 588, 97, 590, 101, - 294, 485, 101, 175, 266, 94, 1, 269, 302, 1, - 304, 100, 1, 307, 175, 277, 1, 98, 179, 45, - 46, 98, 329, 641, 1, 162, 98, 86, 307, 86, - 98, 382, 95, 95, 328, 329, 763, 434, 1, 86, - 99, 768, 99, 770, 98, 772, 98, 175, 98, 328, - 1, 99, 403, 1, 1, 732, 52, 218, 1, 87, - 86, 631, 88, 1, 97, 91, 92, 93, 1, 1, - 99, 97, 94, 665, 477, 101, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 553, 448, 1, 361, - 448, 52, 1, 365, 99, 52, 98, 268, 93, 403, - 99, 636, 63, 97, 275, 287, 63, 94, 279, 1, - 1, 100, 294, 0, 1, 88, 287, 1, 390, 1, - 302, 63, 304, 294, 1, 307, 1, 1, 1, 99, - 100, 302, 1, 304, 95, 1, 408, 95, 95, 52, - 720, 94, 0, 1, 448, 93, 418, 570, 420, 287, - 573, 94, 1, 95, 756, 326, 294, 44, 430, 99, - 100, 1, 697, 765, 302, 700, 304, 1, 55, 307, - 94, 93, 343, 477, 61, 67, 100, 1, 607, 483, - 67, 453, 95, 455, 93, 1, 44, 1, 723, 1, - 47, 362, 553, 364, 175, 556, 625, 469, 67, 612, - 95, 736, 86, 61, 95, 62, 0, 1, 480, 67, - 129, 93, 99, 485, 63, 750, 93, 92, 93, 93, - 93, 403, 97, 98, 99, 100, 98, 93, 763, 1, - 1, 1, 403, 768, 1, 770, 50, 772, 97, 96, - 1, 99, 101, 162, 667, 59, 95, 676, 1, 553, - 44, 65, 556, 93, 95, 0, 1, 686, 72, 93, - 431, 55, 76, 434, 1, 403, 96, 61, 82, 93, - 631, 85, 86, 67, 86, 89, 90, 93, 95, 93, - 641, 75, 99, 641, 0, 1, 93, 1, 102, 103, - 104, 105, 1, 1, 108, 109, 657, 129, 99, 44, - 0, 1, 0, 1, 1, 99, 287, 1, 612, 613, - 55, 175, 175, 294, 86, 86, 61, 1, 1, 86, - 1, 302, 67, 304, 628, 86, 307, 631, 44, 95, - 162, 64, 636, 86, 97, 44, 69, 641, 101, 55, - 1, 50, 1, 53, 44, 61, 44, 619, 65, 86, - 44, 67, 641, 657, 99, 72, 50, 718, 94, 720, - 1, 61, 1, 61, 11, 101, 1, 67, 65, 67, - 67, 553, 86, 82, 556, 72, 85, 86, 86, 76, - 129, 653, 553, 99, 95, 556, 97, 659, 82, 86, - 107, 85, 86, 697, 553, 128, 700, 556, 94, 99, - 94, 99, 86, 86, 100, 86, 588, 1, 590, 0, - 1, 160, 100, 162, 718, 553, 720, 96, 556, 723, - 47, 100, 403, 287, 287, 86, 65, 86, 67, 1, - 294, 294, 736, 72, 175, 62, 1, 76, 302, 302, - 304, 304, 94, 307, 307, 86, 750, 86, 100, 631, - 588, 86, 590, 44, 636, 101, 50, 44, 629, 763, - 631, 91, 92, 735, 768, 636, 770, 739, 772, 96, - 61, 44, 631, 101, 61, 657, 67, 50, 101, 44, - 67, 45, 46, 665, 92, 50, 657, 10, 82, 97, - 98, 85, 86, 631, 59, 67, 61, 94, 636, 9, - 72, 11, 67, 100, 76, 91, 92, 30, 99, 82, - 175, 34, 85, 86, 86, 697, 94, 82, 700, 657, - 85, 86, 100, 33, 94, 12, 697, 665, 51, 700, - 100, 470, 13, 97, 473, 1, 718, 101, 720, 403, - 403, 723, 97, 472, 60, 474, 287, 718, 64, 720, - 45, 46, 723, 294, 736, 18, 19, 20, 21, 697, - 14, 302, 700, 304, 1, 736, 307, 99, 750, 95, - 94, 93, 553, 97, 756, 556, 93, 101, 44, 750, - 718, 763, 720, 765, 50, 723, 768, 99, 770, 97, - 772, 175, 763, 697, 57, 99, 700, 768, 736, 770, - 99, 772, 97, 5, 6, 7, 101, 588, 99, 590, - 45, 46, 750, 50, 100, 44, 82, 95, 756, 85, - 86, 50, 287, 3, 4, 763, 66, 765, 93, 294, - 768, 93, 770, 1, 772, 16, 17, 302, 67, 304, - 91, 92, 307, 50, 88, 82, 45, 46, 85, 86, - 631, 93, 59, 82, 99, 636, 85, 86, 65, 763, - 45, 46, 403, 94, 768, 72, 770, 1, 772, 76, - 93, 91, 92, 93, 99, 82, 657, 97, 85, 86, - 94, 101, 89, 90, 665, 94, 93, 97, 98, 553, - 553, 97, 556, 556, 44, 102, 103, 104, 105, 1, - 50, 108, 109, 287, 373, 374, 44, 383, 384, 59, - 294, 61, 50, 8, 9, 10, 697, 67, 302, 700, - 304, 94, 100, 307, 588, 588, 590, 590, 378, 379, - 380, 381, 82, 56, 56, 85, 86, 718, 403, 720, - 99, 94, 723, 94, 82, 95, 96, 85, 86, 192, - 193, 194, 195, 1, 94, 736, 94, 200, 201, 86, - 97, 98, 99, 94, 91, 92, 93, 631, 631, 750, - 97, 1, 636, 636, 101, 756, 56, 1, 99, 3, - 4, 99, 763, 94, 765, 94, 0, 768, 0, 770, - 44, 772, 382, 657, 657, 11, 50, 54, 375, 376, - 377, 665, 665, 86, 75, 59, 162, 61, 91, 92, - 93, 139, 553, 67, 97, 556, 160, 253, 101, 403, - 403, 45, 46, 52, 94, 307, 50, 261, 82, 287, - 655, 85, 86, 697, 697, 59, 700, 700, 307, 571, - 655, 65, 96, 571, 346, 385, 387, 588, 72, 590, - 386, 388, 76, 628, 718, 718, 720, 720, 82, 723, - 723, 85, 86, 393, 389, 89, 90, -1, -1, 93, - -1, 95, 736, 736, -1, -1, -1, -1, 102, 103, - 104, 105, -1, -1, 108, 109, 750, 750, 553, -1, - 631, 556, 756, 756, -1, 636, -1, -1, -1, 763, - 763, 765, 765, -1, 768, 768, 770, 770, 772, 772, - -1, 91, 92, 93, -1, -1, 657, 97, -1, -1, - -1, 101, -1, 588, 665, 590, -1, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, - 383, 384, 385, 386, 387, 388, 389, 44, 91, 92, - 93, -1, -1, 50, 97, -1, 697, -1, 101, 700, - -1, -1, 59, -1, 61, -1, 631, -1, -1, 553, - 67, 636, 556, -1, -1, -1, -1, 718, -1, 720, - -1, -1, 723, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 657, -1, -1, 736, -1, -1, 95, 96, - 665, -1, -1, -1, 588, -1, 590, -1, -1, 750, - -1, 192, 193, 194, 195, 756, -1, -1, -1, 200, - 201, -1, 763, -1, 765, -1, -1, 768, -1, 770, - -1, 772, 697, -1, 477, 700, -1, -1, -1, 86, - 483, -1, -1, -1, 91, 92, 93, 631, -1, -1, - 97, -1, 636, 718, 101, 720, -1, 1, 723, 3, - 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 736, -1, 657, -1, -1, -1, -1, -1, -1, - -1, 665, -1, -1, -1, 750, -1, -1, -1, -1, - -1, 756, -1, -1, -1, -1, -1, -1, 763, -1, - 765, 45, 46, 768, -1, 770, 50, 772, -1, -1, - -1, -1, -1, 697, -1, 59, 700, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, - -1, -1, 76, -1, 718, -1, 720, -1, 82, 723, - -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, 736, -1, -1, 99, -1, -1, 102, 103, - 104, 105, -1, -1, 108, 109, 750, 1, -1, 612, - 613, -1, 756, -1, -1, -1, -1, -1, -1, 763, - -1, 765, -1, -1, 768, 628, 770, -1, 772, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, -1, 383, 384, 385, 386, 387, 388, 389, -1, - 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, - 54, -1, -1, -1, 58, 59, -1, -1, 62, -1, - -1, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 1, -1, 76, -1, -1, -1, -1, -1, 82, -1, - -1, 85, 86, -1, -1, -1, -1, -1, -1, 93, - -1, 95, 96, -1, -1, 99, -1, -1, 102, 103, - 104, 105, -1, -1, 108, 109, -1, -1, -1, -1, - -1, -1, -1, 44, 45, 46, 47, 48, 49, 50, - 51, -1, -1, 54, -1, -1, 477, 58, 59, -1, - -1, 62, 483, -1, 65, 66, 67, 68, 1, 70, - 71, 72, 73, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, -1, -1, - -1, -1, 93, -1, 95, 96, -1, -1, 99, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, -1, - -1, 44, 45, 46, 47, 48, 49, 50, 51, -1, - -1, 54, -1, -1, -1, 58, 59, -1, -1, 62, - -1, -1, 65, 66, 67, 68, -1, 70, 71, 72, - 73, 44, -1, 76, -1, -1, -1, 50, -1, 82, - -1, 1, 85, 86, -1, -1, 59, -1, 61, -1, - 93, -1, 95, 96, 67, -1, 99, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, -1, -1, 82, - -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, - -1, 612, 613, 96, 44, 45, 46, -1, 48, 49, - 50, 51, -1, -1, 54, -1, -1, 628, 58, 59, - -1, -1, -1, -1, -1, 65, 66, 67, 68, 1, - 70, 71, 72, 73, -1, -1, 76, -1, -1, -1, - -1, -1, 82, -1, -1, 85, 86, -1, -1, -1, - -1, -1, -1, 93, -1, 95, 96, -1, -1, 99, - -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, - -1, -1, 44, 45, 46, -1, 48, 49, 50, 51, - -1, -1, 54, -1, -1, -1, 58, 59, -1, -1, - -1, -1, -1, 65, 66, 67, 68, 1, 70, 71, - 72, 73, -1, -1, 76, -1, -1, -1, -1, -1, - 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, - -1, 93, -1, 95, -1, -1, -1, 99, -1, -1, - 102, 103, 104, 105, -1, -1, 108, 109, -1, -1, - 44, 45, 46, -1, 48, 49, 50, 51, -1, -1, - 54, -1, -1, -1, 58, 59, -1, -1, -1, -1, - -1, 65, 66, 1, 68, -1, 70, 71, 72, 73, - -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, - -1, 85, 86, -1, -1, -1, -1, -1, -1, 93, - -1, 95, -1, -1, -1, 99, -1, -1, 102, 103, - 104, 105, -1, -1, 108, 109, 44, 45, 46, -1, - 48, 49, 50, 51, -1, -1, 54, -1, -1, -1, - 58, 59, -1, -1, -1, -1, -1, 65, 66, -1, - 68, -1, 70, 71, 72, 73, -1, 1, 76, 3, - 4, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, -1, -1, -1, -1, 93, -1, 95, -1, -1, - -1, 99, -1, -1, 102, 103, 104, 105, -1, -1, - 108, 109, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 45, 46, -1, -1, -1, 50, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, - -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, - -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, 95, 96, -1, -1, -1, -1, -1, 102, 103, - 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, - -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, - 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, - -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, 88, - 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, - -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, - 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, - 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, - 98, -1, -1, -1, 102, 103, 104, 105, -1, -1, - 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, - -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, - -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, - -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, - -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, 94, -1, 45, 46, -1, -1, -1, 50, 102, - 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, - -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, - 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, - 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, -1, -1, -1, 99, -1, -1, - 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, - -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, - -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, - -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, - 46, 98, -1, -1, 50, 102, 103, 104, 105, -1, - -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, - 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, - 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, - 86, -1, -1, 89, 90, -1, -1, 93, 94, -1, - -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, - -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, - -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, - -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, 45, 46, 98, -1, -1, - 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, - -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, - -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, - -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, 94, -1, -1, -1, -1, -1, - -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, - 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, - 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, - 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, 94, - -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, - 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, - -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, - -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, - -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - 94, -1, -1, -1, -1, -1, -1, -1, 102, 103, - 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, - -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, - 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, - -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, - 99, -1, 50, 102, 103, 104, 105, -1, -1, 108, - 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, - 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, - 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, - -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, - -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, - -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, - -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, 45, 46, -1, -1, -1, 50, 102, - 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, - -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, - 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, - 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, - 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, - -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, - -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, - -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, - 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, - -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, - 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, - 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, - 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, - -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, - -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, - -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, - -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, 45, 46, -1, -1, -1, - 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, - -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, - -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, - -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, -1, -1, -1, -1, - -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, - 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, - 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, - 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, - 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, - -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, - -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, - -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, - 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, - -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, - 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, - -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, - -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, - 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, - 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, - 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, - -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, - -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, - -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, - -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, 45, 46, -1, -1, -1, 50, 102, - 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, - -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, - 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, - 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, - 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, - -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, - -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, - -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, - 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, - -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, - 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, - 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, - 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, - -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, - -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, - -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, - -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, 45, 46, -1, -1, -1, - 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, - -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, - -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, - -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, -1, -1, -1, -1, - -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, - 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, - 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, - 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, - 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, - -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, - -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, - -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, - 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, - -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, - 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, - -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, - -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, - 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, - 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, - 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, - -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, - -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, - -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, - -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, 45, 46, -1, -1, -1, 50, 102, - 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, - -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, - 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, - 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, - 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, - -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, - -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, - -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, - 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, - -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, - 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, - 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, - 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, - -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, - -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, - -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, - -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, 45, 46, -1, -1, -1, - 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, - -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, - -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, - -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, -1, -1, -1, -1, - -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, - 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, - 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, - 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, - 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, - -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, - -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, - -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, - 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, - -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, - 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, - -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, - -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, - 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, - 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, - 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, - -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, - -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, - -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, - -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, 45, 46, -1, -1, -1, 50, 102, - 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, - -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, - 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, - 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, - 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, - -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, - -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, - -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, - 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, - -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, - 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, - 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, - 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, - -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, - -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, - -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, - -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, 45, 46, -1, -1, -1, - 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, - -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, - -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, - -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, -1, -1, -1, -1, - -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, - 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, - 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, - 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, - 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, - -1, 65, -1, 1, -1, -1, -1, -1, 72, -1, - -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, - -1, 85, 86, -1, -1, 89, 90, -1, 1, 93, - -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, - 104, 105, -1, -1, 108, 109, 44, 45, 46, -1, - -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, - 1, -1, 45, 46, 72, -1, -1, 50, 76, -1, - -1, -1, -1, -1, 82, -1, 59, 85, 86, -1, - -1, -1, 65, -1, -1, 93, -1, 3, 4, 72, - -1, 99, -1, 76, 102, 103, 104, 105, -1, 82, - 108, 109, 85, 86, 45, 46, -1, -1, -1, 50, - 93, 94, -1, -1, -1, -1, -1, -1, 59, 102, - 103, 104, 105, -1, 65, 108, 109, 1, -1, 45, - 46, 72, -1, -1, 50, 76, -1, -1, -1, -1, - -1, 82, -1, 59, 85, 86, -1, -1, -1, 65, - -1, -1, 93, 94, 3, 4, 72, -1, -1, -1, - 76, 102, 103, 104, 105, -1, 82, 108, 109, 85, - 86, 45, 46, 89, 90, -1, 50, 93, -1, 95, - 96, -1, -1, -1, -1, 59, 102, 103, 104, 105, - -1, 65, 108, 109, -1, -1, 45, 46, 72, -1, - -1, 50, 76, -1, -1, 3, 4, -1, 82, -1, - 59, 85, 86, -1, -1, -1, 65, -1, -1, 93, - -1, -1, -1, 72, -1, -1, -1, 76, 102, 103, - 104, 105, -1, 82, 108, 109, 85, 86, -1, -1, - 89, 90, -1, -1, 93, 94, -1, 45, 46, -1, - -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, - 109, 59, -1, -1, -1, -1, -1, 65, -1, -1, - 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, 94, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, - 108, 109, 45, 46, -1, -1, -1, 50, -1, -1, - -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, - -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, - -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, - -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, 94, -1, 45, 46, -1, -1, -1, 50, 102, - 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, - -1, -1, -1, 65, -1, -1, 3, 4, -1, -1, - 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, - 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, - 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, - -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, - -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, 44, 45, - 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, - -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, - 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, - 86, -1, -1, -1, -1, -1, -1, 93, -1, -1, - -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, - -1, -1, 108, 109 +static const yytype_int16 yycheck[] = +{ + 3, 330, 125, 6, 64, 289, 134, 64, 309, 131, + 205, 177, 0, 181, 1, 136, 485, 1, 119, 437, + 15, 1, 10, 11, 12, 1, 1, 94, 44, 1, + 97, 91, 48, 1, 91, 1, 96, 1, 1, 96, + 94, 44, 164, 1, 32, 48, 100, 35, 36, 171, + 66, 152, 1, 53, 155, 71, 10, 64, 1, 1, + 478, 64, 296, 66, 86, 53, 1, 131, 71, 1, + 304, 131, 306, 174, 131, 135, 64, 1, 135, 200, + 1, 35, 194, 195, 196, 197, 504, 638, 91, 96, + 202, 203, 87, 96, 1, 97, 667, 97, 162, 101, + 164, 67, 162, 348, 164, 162, 1, 164, 96, 638, + 355, 356, 99, 100, 130, 99, 100, 177, 93, 99, + 136, 101, 182, 99, 131, 182, 101, 130, 131, 101, + 94, 99, 135, 136, 4, 5, 99, 95, 101, 261, + 200, 99, 1, 131, 204, 1, 615, 135, 699, 1, + 99, 702, 94, 275, 0, 256, 99, 164, 281, 162, + 328, 164, 86, 98, 10, 11, 12, 99, 38, 39, + 699, 142, 42, 702, 177, 99, 164, 1, 99, 182, + 598, 1, 52, 1, 200, 1, 32, 758, 95, 35, + 36, 194, 195, 196, 197, 255, 767, 200, 255, 202, + 203, 204, 638, 1, 99, 1, 624, 53, 1, 1, + 331, 81, 1, 1, 765, 85, 634, 1, 64, 770, + 95, 772, 97, 774, 1, 285, 638, 472, 285, 289, + 475, 0, 650, 204, 205, 1, 765, 1, 94, 405, + 99, 770, 94, 772, 100, 774, 1, 1, 100, 309, + 96, 1, 255, 1, 124, 125, 95, 1, 0, 1, + 372, 373, 374, 699, 1, 1, 702, 255, 86, 1, + 330, 141, 1, 330, 558, 99, 1, 94, 94, 99, + 97, 99, 285, 67, 100, 131, 289, 699, 52, 590, + 702, 592, 487, 296, 86, 93, 177, 268, 94, 63, + 271, 304, 44, 306, 100, 98, 309, 177, 279, 98, + 98, 181, 1, 436, 643, 331, 734, 94, 164, 61, + 52, 309, 1, 100, 384, 67, 1, 330, 331, 765, + 1, 95, 98, 1, 770, 1, 772, 1, 774, 1, + 177, 95, 330, 98, 1, 405, 52, 95, 98, 633, + 220, 1, 101, 765, 98, 0, 1, 99, 770, 95, + 772, 98, 774, 95, 1, 94, 667, 479, 93, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 555, + 450, 1, 363, 450, 1, 63, 367, 100, 5, 44, + 270, 63, 405, 1, 638, 94, 97, 277, 289, 1, + 55, 281, 659, 1, 93, 296, 61, 88, 93, 289, + 86, 392, 67, 304, 88, 306, 296, 95, 309, 1, + 75, 1, 1, 95, 304, 92, 306, 94, 722, 410, + 97, 98, 99, 100, 94, 0, 1, 450, 1, 420, + 572, 422, 289, 575, 99, 94, 93, 758, 328, 296, + 52, 432, 101, 97, 1, 699, 767, 304, 702, 306, + 1, 63, 309, 720, 95, 345, 479, 1, 99, 86, + 1, 609, 485, 93, 455, 474, 457, 476, 86, 44, + 1, 725, 1, 47, 364, 555, 366, 177, 558, 627, + 471, 131, 614, 95, 738, 93, 61, 67, 62, 0, + 1, 482, 67, 131, 74, 1, 487, 86, 752, 100, + 92, 93, 1, 93, 405, 97, 98, 99, 100, 72, + 95, 765, 1, 86, 164, 405, 770, 1, 772, 50, + 774, 85, 96, 86, 99, 93, 164, 669, 59, 109, + 678, 1, 555, 44, 65, 558, 93, 98, 0, 1, + 688, 72, 93, 433, 55, 76, 436, 1, 405, 93, + 61, 82, 93, 633, 85, 86, 67, 86, 89, 90, + 124, 125, 93, 643, 92, 1, 643, 1, 1, 97, + 98, 102, 103, 104, 105, 45, 46, 108, 109, 659, + 86, 95, 44, 555, 0, 1, 558, 86, 99, 289, + 93, 614, 615, 55, 177, 177, 296, 86, 47, 61, + 1, 1, 86, 1, 304, 67, 306, 630, 44, 309, + 633, 0, 1, 62, 50, 638, 86, 96, 88, 1, + 643, 91, 92, 93, 99, 45, 46, 97, 44, 95, + 621, 101, 86, 1, 97, 643, 659, 99, 101, 55, + 720, 94, 722, 1, 97, 61, 82, 96, 101, 85, + 86, 67, 50, 86, 555, 44, 94, 558, 94, 1, + 1, 633, 100, 94, 655, 555, 67, 1, 558, 100, + 661, 72, 61, 44, 53, 76, 699, 97, 67, 702, + 1, 101, 100, 99, 82, 86, 86, 85, 86, 590, + 61, 592, 0, 1, 99, 100, 67, 720, 555, 722, + 97, 558, 725, 66, 86, 405, 289, 289, 71, 1, + 99, 1, 93, 296, 296, 738, 97, 177, 86, 1, + 101, 304, 304, 306, 306, 101, 309, 309, 86, 752, + 45, 46, 633, 590, 101, 592, 44, 638, 10, 101, + 12, 631, 765, 633, 86, 86, 737, 770, 638, 772, + 741, 774, 86, 61, 44, 94, 99, 100, 659, 67, + 50, 100, 44, 35, 94, 86, 667, 130, 50, 659, + 100, 472, 94, 65, 475, 67, 633, 59, 100, 61, + 72, 638, 97, 11, 76, 67, 101, 18, 19, 20, + 21, 99, 82, 177, 86, 85, 86, 12, 699, 95, + 82, 702, 659, 85, 86, 91, 92, 93, 13, 699, + 667, 97, 702, 91, 92, 101, 95, 96, 1, 720, + 99, 722, 405, 405, 725, 699, 57, 96, 702, 289, + 720, 100, 722, 14, 60, 725, 296, 738, 64, 5, + 6, 7, 699, 1, 304, 702, 306, 44, 738, 309, + 99, 752, 93, 50, 93, 555, 99, 758, 558, 91, + 92, 44, 752, 720, 765, 722, 767, 50, 725, 770, + 1, 772, 86, 774, 177, 765, 99, 91, 92, 93, + 770, 738, 772, 97, 774, 82, 99, 101, 85, 86, + 590, 765, 592, 45, 46, 752, 770, 94, 772, 82, + 774, 758, 85, 86, 97, 289, 100, 65, 765, 67, + 767, 11, 296, 770, 72, 772, 95, 774, 76, 50, + 304, 99, 306, 3, 4, 309, 50, 66, 86, 8, + 9, 10, 32, 633, 93, 59, 36, 93, 638, 16, + 17, 65, 97, 98, 99, 405, 91, 92, 72, 45, + 46, 82, 76, 53, 85, 86, 45, 46, 82, 659, + 1, 85, 86, 97, 98, 89, 90, 667, 88, 93, + 385, 386, 555, 555, 93, 558, 558, 44, 102, 103, + 104, 105, 99, 50, 108, 109, 289, 375, 376, 44, + 94, 1, 59, 296, 61, 50, 93, 99, 97, 699, + 67, 304, 702, 306, 94, 44, 309, 590, 590, 592, + 592, 50, 67, 94, 1, 82, 94, 100, 85, 86, + 720, 405, 722, 56, 56, 725, 99, 82, 95, 96, + 85, 86, 194, 195, 196, 197, 94, 94, 738, 1, + 202, 203, 94, 82, 94, 1, 85, 86, 99, 94, + 633, 633, 752, 99, 56, 638, 638, 94, 758, 384, + 1, 12, 3, 4, 56, 765, 77, 767, 255, 164, + 770, 141, 772, 44, 774, 162, 659, 659, 405, 50, + 380, 381, 382, 383, 667, 667, 86, 54, 59, 96, + 61, 91, 92, 93, 263, 555, 67, 97, 558, 289, + 309, 101, 405, 657, 45, 46, 377, 378, 379, 50, + 657, 82, 573, 309, 85, 86, 699, 699, 59, 702, + 702, 573, 387, 348, 65, 96, 388, 390, 389, 630, + 590, 72, 592, 391, -1, 76, 395, 720, 720, 722, + 722, 82, 725, 725, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, 95, 738, 738, -1, -1, -1, + -1, 102, 103, 104, 105, -1, -1, 108, 109, 752, + 752, 555, -1, 633, 558, 758, 758, -1, 638, -1, + -1, -1, 765, 765, 767, 767, -1, 770, 770, 772, + 772, 774, 774, -1, 91, 92, 93, -1, -1, 659, + 97, -1, -1, -1, 101, -1, 590, 667, 592, -1, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, -1, 385, 386, 387, 388, 389, 390, 391, + 44, 91, 92, 93, -1, -1, 50, 97, -1, 699, + -1, 101, 702, -1, -1, 59, -1, 61, -1, 633, + -1, -1, 555, 67, 638, 558, -1, -1, -1, -1, + 720, -1, 722, -1, -1, 725, -1, -1, 82, -1, + -1, 85, 86, -1, -1, 659, -1, -1, 738, -1, + -1, 95, 96, 667, -1, -1, -1, 590, -1, 592, + -1, -1, 752, -1, 194, 195, 196, 197, 758, -1, + -1, -1, 202, 203, -1, 765, -1, 767, -1, -1, + 770, -1, 772, -1, 774, 699, -1, 479, 702, -1, + -1, -1, 86, 485, -1, -1, -1, 91, 92, 93, + 633, -1, -1, 97, -1, 638, 720, 101, 722, -1, + 1, 725, 3, 4, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 738, -1, 659, -1, -1, -1, + -1, -1, -1, -1, 667, -1, -1, -1, 752, -1, + -1, -1, -1, -1, 758, -1, -1, -1, -1, -1, + -1, 765, -1, 767, 45, 46, 770, -1, 772, 50, + 774, -1, -1, -1, -1, -1, 699, -1, 59, 702, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, 72, -1, -1, -1, 76, -1, 720, -1, 722, + -1, 82, 725, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, -1, 738, -1, -1, 99, -1, + -1, 102, 103, 104, 105, -1, -1, 108, 109, 752, + 1, -1, 614, 615, -1, 758, -1, -1, -1, -1, + -1, -1, 765, -1, 767, -1, -1, 770, 630, 772, + -1, 774, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, -1, 385, 386, 387, 388, 389, + 390, 391, -1, 44, 45, 46, 47, 48, 49, 50, + 51, -1, -1, 54, -1, -1, -1, 58, 59, -1, + -1, 62, -1, -1, 65, 66, 67, 68, -1, 70, + 71, 72, 73, 1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, -1, -1, + -1, -1, 93, -1, 95, 96, -1, -1, 99, -1, + -1, 102, 103, 104, 105, -1, -1, 108, 109, -1, + -1, -1, -1, -1, -1, -1, 44, 45, 46, 47, + 48, 49, 50, 51, -1, -1, 54, -1, -1, 479, + 58, 59, -1, -1, 62, 485, -1, 65, 66, 67, + 68, 1, 70, 71, 72, 73, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, -1, -1, -1, -1, 93, -1, 95, 96, -1, + -1, 99, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, -1, -1, 44, 45, 46, 47, 48, 49, + 50, 51, -1, -1, 54, -1, -1, -1, 58, 59, + -1, -1, 62, -1, -1, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 44, -1, 76, -1, -1, -1, + 50, -1, 82, -1, 1, 85, 86, -1, -1, 59, + -1, 61, -1, 93, -1, 95, 96, 67, -1, 99, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + -1, -1, 82, -1, -1, 85, 86, -1, -1, -1, + -1, -1, -1, -1, 614, 615, 96, 44, 45, 46, + -1, 48, 49, 50, 51, -1, -1, 54, -1, -1, + 630, 58, 59, -1, -1, -1, -1, -1, 65, 66, + 67, 68, 1, 70, 71, 72, 73, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, -1, -1, -1, -1, 93, -1, 95, 96, + -1, -1, 99, -1, -1, 102, 103, 104, 105, -1, + -1, 108, 109, -1, -1, 44, 45, 46, -1, 48, + 49, 50, 51, -1, -1, 54, -1, -1, -1, 58, + 59, -1, -1, -1, -1, -1, 65, 66, 67, 68, + 1, 70, 71, 72, 73, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + -1, -1, -1, -1, 93, -1, 95, -1, -1, -1, + 99, -1, -1, 102, 103, 104, 105, -1, -1, 108, + 109, -1, -1, 44, 45, 46, -1, 48, 49, 50, + 51, -1, -1, 54, -1, -1, -1, 58, 59, -1, + -1, -1, -1, -1, 65, 66, 1, 68, -1, 70, + 71, 72, 73, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, -1, -1, + -1, -1, 93, -1, 95, -1, -1, -1, 99, -1, + -1, 102, 103, 104, 105, -1, -1, 108, 109, 44, + 45, 46, -1, 48, 49, 50, 51, -1, -1, 54, + -1, -1, -1, 58, 59, -1, -1, -1, -1, -1, + 65, 66, -1, 68, -1, 70, 71, 72, 73, -1, + 1, 76, 3, 4, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, -1, -1, -1, -1, 93, -1, + 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, + 105, -1, -1, 108, 109, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 45, 46, -1, -1, -1, 50, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, 95, 96, -1, -1, -1, -1, + -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, + 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, + -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, + -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, + 86, -1, 88, 89, 90, -1, -1, 93, -1, -1, + 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, + -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, + 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, + 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, + 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, + -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, + -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, + 90, -1, -1, 93, 94, -1, 45, 46, -1, -1, + -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, + 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, + 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, + 99, -1, -1, 102, 103, 104, 105, -1, -1, 108, + 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, + 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, + -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, + -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, + -1, -1, 45, 46, 98, -1, -1, 50, 102, 103, + 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, + -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, + -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, + 93, 94, -1, -1, -1, -1, -1, -1, -1, 102, + 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, + -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, + -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, + -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, + 98, -1, -1, 50, 102, 103, 104, 105, -1, -1, + 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, + -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, 94, -1, -1, + -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, + -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, + 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, + -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, + 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, + -1, 93, 94, -1, 45, 46, -1, -1, -1, 50, + 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, + -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, + -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, + 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, + -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, + -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, + 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, + 45, 46, -1, 99, -1, 50, 102, 103, 104, 105, + -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, + 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, + 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, + 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, + -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, + -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, + 90, -1, -1, 93, -1, -1, 45, 46, -1, -1, + -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, + 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, + 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, + -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, + 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, + 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, + -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, + -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, + -1, -1, 45, 46, -1, -1, -1, 50, 102, 103, + 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, + -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, + -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, + 93, -1, -1, -1, -1, -1, -1, -1, -1, 102, + 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, + -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, + -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, + -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, + -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, + 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, + -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, + -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, + -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, + 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, + -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, + 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, + -1, 93, -1, -1, 45, 46, -1, -1, -1, 50, + 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, + -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, + -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, + 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, + -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, + -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, + 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, + 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, + -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, + 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, + 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, + 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, + -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, + -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, + 90, -1, -1, 93, -1, -1, 45, 46, -1, -1, + -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, + 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, + 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, + -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, + 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, + 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, + -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, + -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, + -1, -1, 45, 46, -1, -1, -1, 50, 102, 103, + 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, + -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, + -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, + 93, -1, -1, -1, -1, -1, -1, -1, -1, 102, + 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, + -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, + -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, + -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, + -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, + 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, + -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, + -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, + -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, + 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, + -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, + 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, + -1, 93, -1, -1, 45, 46, -1, -1, -1, 50, + 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, + -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, + -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, + 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, + -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, + -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, + 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, + 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, + -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, + 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, + 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, + 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, + -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, + -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, + 90, -1, -1, 93, -1, -1, 45, 46, -1, -1, + -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, + 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, + 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, + -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, + 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, + 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, + -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, + -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, + -1, -1, 45, 46, -1, -1, -1, 50, 102, 103, + 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, + -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, + -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, + 93, -1, -1, -1, -1, -1, -1, -1, -1, 102, + 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, + -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, + -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, + -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, + -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, + 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, + -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, + -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, + -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, + 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, + -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, + 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, + -1, 93, -1, -1, 45, 46, -1, -1, -1, 50, + 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, + -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, + -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, + 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, + -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, + -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, + 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, + 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, + -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, + 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, + 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, + 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, + -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, + -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, + 90, -1, -1, 93, -1, -1, 45, 46, -1, -1, + -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, + 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, + 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, + -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, + 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, + 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, + -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, + -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, + -1, -1, 45, 46, -1, -1, -1, 50, 102, 103, + 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, + -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, + -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, + 93, -1, -1, -1, -1, -1, -1, -1, -1, 102, + 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, + -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, + -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, + -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, + -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, + 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, + -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, + -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, + -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, + 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, + -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, + 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, + -1, 93, -1, -1, 45, 46, -1, -1, -1, 50, + 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, + -1, -1, -1, -1, 65, -1, 1, -1, -1, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, 1, 93, -1, -1, -1, -1, -1, -1, -1, + -1, 102, 103, 104, 105, -1, -1, 108, 109, 44, + 45, 46, -1, -1, -1, 50, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, -1, -1, 1, -1, 45, 46, 72, -1, -1, + 50, 76, -1, -1, -1, -1, -1, 82, -1, 59, + 85, 86, -1, -1, -1, 65, -1, -1, 93, -1, + 3, 4, 72, -1, 99, -1, 76, 102, 103, 104, + 105, -1, 82, 108, 109, 85, 86, 45, 46, -1, + -1, -1, 50, 93, 94, -1, -1, -1, -1, -1, + -1, 59, 102, 103, 104, 105, -1, 65, 108, 109, + 1, -1, 45, 46, 72, -1, -1, 50, 76, -1, + -1, -1, -1, -1, 82, -1, 59, 85, 86, -1, + -1, -1, 65, -1, -1, 93, 94, 3, 4, 72, + -1, -1, -1, 76, 102, 103, 104, 105, -1, 82, + 108, 109, 85, 86, 45, 46, 89, 90, -1, 50, + 93, -1, 95, 96, -1, -1, -1, -1, 59, 102, + 103, 104, 105, -1, 65, 108, 109, -1, -1, 45, + 46, 72, -1, -1, 50, 76, -1, -1, 3, 4, + -1, 82, -1, 59, 85, 86, -1, -1, -1, 65, + -1, -1, 93, -1, -1, -1, 72, -1, -1, -1, + 76, 102, 103, 104, 105, -1, 82, 108, 109, 85, + 86, -1, -1, 89, 90, -1, -1, 93, 94, -1, + 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, + -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, + 65, -1, -1, 3, 4, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, 94, + -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, + 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, + 50, -1, -1, -1, 3, 4, -1, -1, -1, 59, + -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, + -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, + 90, -1, -1, 93, 94, -1, 45, 46, -1, -1, + -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, + 59, -1, -1, -1, -1, -1, 65, -1, -1, 3, + 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, 94, -1, -1, -1, -1, + -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, + 109, 45, 46, -1, -1, -1, 50, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, + -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, + -1, 44, 45, 46, -1, -1, -1, 50, 102, 103, + 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, + -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, + -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, + 93, -1, -1, -1, -1, -1, -1, -1, -1, 102, + 103, 104, 105, -1, -1, 108, 109 }; -#define YYPURE 1 -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/lib/bison.simple" -/* This file comes from bison-1.27. */ +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint16 yystos[] = +{ + 0, 1, 44, 55, 61, 67, 75, 99, 111, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 167, + 1, 86, 120, 121, 122, 123, 123, 1, 123, 1, + 120, 0, 126, 128, 131, 125, 126, 44, 61, 67, + 1, 99, 101, 1, 63, 168, 172, 1, 63, 136, + 1, 99, 101, 126, 123, 1, 123, 1, 5, 123, + 1, 116, 118, 120, 95, 173, 100, 170, 1, 116, + 117, 52, 137, 1, 169, 172, 1, 136, 1, 99, + 50, 59, 82, 85, 96, 113, 114, 115, 116, 119, + 120, 132, 133, 143, 150, 167, 174, 175, 176, 177, + 1, 118, 173, 1, 1, 118, 138, 135, 173, 171, + 137, 1, 123, 151, 1, 123, 144, 145, 146, 151, + 97, 97, 97, 1, 59, 113, 1, 99, 96, 175, + 100, 95, 139, 173, 134, 93, 53, 97, 154, 1, + 99, 100, 92, 97, 98, 154, 1, 98, 1, 98, + 98, 1, 151, 1, 144, 151, 1, 118, 44, 95, + 96, 121, 132, 133, 140, 141, 142, 143, 148, 150, + 157, 158, 159, 161, 162, 167, 180, 181, 139, 1, + 94, 113, 132, 152, 153, 1, 117, 155, 1, 98, + 1, 123, 145, 1, 3, 4, 45, 46, 59, 65, + 72, 76, 89, 90, 93, 95, 102, 103, 104, 105, + 108, 109, 112, 114, 120, 147, 178, 230, 231, 232, + 233, 235, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 265, 1, 98, + 1, 154, 99, 154, 96, 93, 162, 96, 141, 99, + 1, 149, 180, 160, 154, 1, 44, 48, 49, 51, + 54, 58, 65, 66, 68, 70, 71, 73, 76, 93, + 99, 113, 114, 120, 123, 132, 133, 166, 180, 183, + 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, + 196, 197, 199, 201, 207, 208, 210, 211, 212, 214, + 215, 219, 220, 221, 222, 223, 224, 225, 232, 240, + 242, 243, 244, 246, 247, 262, 1, 146, 113, 94, + 100, 100, 1, 120, 239, 241, 245, 1, 245, 1, + 245, 1, 245, 101, 1, 101, 1, 114, 116, 117, + 1, 245, 1, 245, 1, 114, 120, 265, 96, 147, + 179, 101, 93, 97, 101, 1, 101, 97, 1, 123, + 45, 46, 5, 6, 7, 3, 4, 8, 9, 10, + 18, 19, 20, 21, 57, 16, 17, 11, 12, 13, + 14, 15, 87, 91, 92, 264, 94, 152, 154, 99, + 156, 180, 99, 95, 163, 181, 95, 96, 99, 1, + 93, 1, 265, 1, 99, 123, 1, 99, 265, 1, + 93, 1, 93, 1, 180, 1, 93, 1, 99, 123, + 265, 144, 97, 101, 1, 88, 113, 93, 96, 182, + 184, 99, 44, 120, 187, 99, 200, 187, 187, 120, + 132, 186, 195, 216, 218, 99, 1, 93, 1, 146, + 1, 153, 1, 117, 1, 67, 1, 123, 97, 98, + 99, 97, 236, 237, 238, 236, 238, 1, 93, 94, + 97, 238, 97, 238, 1, 94, 96, 100, 1, 67, + 94, 234, 265, 1, 265, 1, 67, 72, 76, 72, + 123, 1, 265, 1, 93, 1, 245, 1, 245, 1, + 245, 1, 250, 1, 250, 1, 251, 1, 251, 1, + 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, + 114, 115, 1, 253, 1, 253, 1, 254, 1, 255, + 1, 256, 1, 257, 1, 258, 1, 88, 265, 1, + 261, 94, 99, 120, 164, 165, 166, 182, 183, 1, + 265, 1, 99, 1, 99, 1, 99, 1, 265, 1, + 265, 60, 64, 226, 227, 228, 229, 1, 1, 99, + 94, 65, 144, 1, 94, 234, 95, 202, 66, 1, + 100, 1, 99, 265, 1, 265, 94, 101, 93, 1, + 98, 265, 237, 238, 97, 178, 238, 178, 1, 94, + 234, 1, 245, 1, 94, 94, 248, 1, 96, 147, + 94, 100, 1, 98, 93, 1, 98, 94, 234, 1, + 88, 101, 164, 183, 93, 99, 164, 1, 94, 1, + 94, 94, 1, 93, 1, 180, 227, 229, 180, 1, + 93, 1, 1, 94, 47, 62, 96, 203, 204, 205, + 206, 93, 1, 195, 1, 217, 218, 99, 94, 94, + 94, 234, 1, 98, 1, 98, 139, 1, 94, 1, + 245, 1, 248, 1, 265, 94, 234, 139, 94, 1, + 260, 65, 164, 94, 234, 48, 187, 188, 189, 191, + 193, 198, 207, 209, 213, 215, 1, 1, 153, 1, + 94, 234, 1, 1, 88, 1, 265, 266, 96, 204, + 205, 96, 183, 206, 265, 94, 1, 217, 1, 180, + 94, 139, 94, 139, 93, 99, 94, 93, 56, 188, + 188, 99, 94, 94, 1, 1, 94, 1, 88, 96, + 94, 187, 94, 94, 234, 99, 265, 187, 99, 265, + 1, 99, 187, 99, 94, 94, 217, 99, 99, 188, + 94, 217, 56, 188, 94, 188, 188 +}; -/* Skeleton output parser for bison, - Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 - 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. +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab - 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 02111-1307, USA. */ - -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - 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 */ +/* 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. However, + YYFAIL appears to be in use. Nevertheless, it is formally deprecated + in Bison 2.4.2's NEWS entry, where a plan to phase it out is + discussed. */ -#ifdef YYSTACK_USE_ALLOCA -#define YYSTACK_ALLOC alloca -#else -#define YYSTACK_ALLOC malloc +#define YYFAIL goto yyerrlab +#if defined YYFAIL + /* This is here to suppress warnings from the GCC cpp's + -Wunused-macros. Normally we don't worry about that warning, but + some users do, and we want to make it easy for users to remove + YYFAIL uses, which will produce warnings from Bison 2.5. */ #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) -#define YYEMPTY -2 -#define YYEOF 0 -#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) \ + +#define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ - { yychar = (token), yylval = (value); \ - yychar1 = YYTRANSLATE (yychar); \ - YYPOPSTACK; \ + { \ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK (1); \ goto yybackup; \ } \ else \ - { yyerror ("syntax error: cannot back up"); YYERROR; } \ -while (0) + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (YYID (0)) + #define YYTERROR 1 #define YYERRCODE 256 -#ifndef YYPURE -#define YYLEX yylex() + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (YYID (0)) #endif -#ifdef YYPURE -#ifdef YYLSP_NEEDED -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) -#else -#define YYLEX yylex(&yylval, &yylloc) + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif #endif -#else /* not YYLSP_NEEDED */ + + +/* YYLEX -- calling `yylex' with the right arguments. */ + #ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, YYLEX_PARAM) +# define YYLEX yylex (&yylval, YYLEX_PARAM) #else -#define YYLEX yylex(&yylval) -#endif -#endif /* not YYLSP_NEEDED */ +# define YYLEX yylex (&yylval) #endif -/* If nonreentrant, generate the variables here */ +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} -#ifndef YYPURE -int yychar; /* the lookahead symbol */ -YYSTYPE yylval; /* the semantic value of the */ - /* lookahead symbol */ +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ -#ifdef YYLSP_NEEDED -YYLTYPE yylloc; /* location data for the lookahead */ - /* symbol */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; #endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); -int yynerrs; /* number of parse errors so far */ -#endif /* not YYPURE */ + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ -#if YYDEBUG != 0 -int yydebug; /* nonzero means print parse trace */ -/* Since this is uninitialized, it does not stop multiple parsers - from coexisting. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +#else +static void +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; #endif +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_reduce_print (YYSTYPE *yyvsp, int yyrule) +#else +static void +yy_reduce_print (yyvsp, yyrule) + YYSTYPE *yyvsp; + int yyrule; +#endif +{ + int yynrhs = yyr2[yyrule]; + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + YYFPRINTF (stderr, "\n"); + } +} -/* YYINITDEPTH indicates the initial size of the parser's stacks */ +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule); \ +} while (YYID (0)) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + +/* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH -#define YYINITDEPTH 200 +# 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). */ +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). -#if YYMAXDEPTH == 0 -#undef YYMAXDEPTH -#endif + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH -#define YYMAXDEPTH 10000 +# 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 +#if YYERROR_VERBOSE -/* 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; +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static YYSIZE_T +yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# 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. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static char * +yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif { - register char *f = from; - register char *t = to; - register int i = count; + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; - while (i-- > 0) - *t++ = *f++; + return yyd - 1; } +# endif +# endif -#else /* __cplusplus */ +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; -/* 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) + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) { - register char *t = to; - register char *f = from; - register int i = count; + int yyn = yypact[yystate]; + + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; + else + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } - while (i-- > 0) - *t++ = *f++; + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + + if (yysize_overflow) + return YYSIZE_MAXIMUM; + + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; + } } +#endif /* YYERROR_VERBOSE */ + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; #endif -#endif - -#line 216 "/usr/lib/bison.simple" +{ + YYUSE (yyvaluep); -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); -#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 */ + switch (yytype) + { + + default: + break; + } +} -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ +/* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM -int yyparse (void *); +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); #else -int yyparse (void); +int yyparse (); #endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (void); +#else +int yyparse (); #endif +#endif /* ! YYPARSE_PARAM */ + + + -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--) +/*-------------------------. +| yyparse or yypush_parse. | +`-------------------------*/ + +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) #else -#define YYPOPSTACK (yyvsp--, yyssp--) +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; #endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void) +#else +int +yyparse () - int yystacksize = YYINITDEPTH; - int yyfree_stacks = 0; - -#ifdef YYPURE - int yychar; - YYSTYPE yylval; - int yynerrs; -#ifdef YYLSP_NEEDED - YYLTYPE yylloc; #endif #endif +{ +/* The lookahead symbol. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; + + /* Number of syntax errors so far. */ + int yynerrs; + + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; - YYSTYPE yyval; /* the variable used to return */ - /* semantic values from the action */ - /* routines */ + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. - int yylen; + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Starting parse\n"); + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + + YYSIZE_T yystacksize; + + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); + yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - - yyssp = yyss - 1; + yyssp = yyss; 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: + goto yysetstate; - *++yyssp = yystate; +/*------------------------------------------------------------. +| 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++; - 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 + yysetstate: + *yyssp = yystate; + if (yyss + yystacksize - 1 <= yyssp) + { /* Get the current used size of the three stacks, in elements. */ - int size = yyssp - yyss + 1; + YYSIZE_T yysize = 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 + { + /* 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; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); - yyss = yyss1; yyvs = yyvs1; -#ifdef YYLSP_NEEDED - yyls = yyls1; -#endif + yyss = yyss1; + yyvs = yyvs1; + } #else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else /* 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; - } + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) + if (YYMAXDEPTH < yystacksize) 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 + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif #endif /* no yyoverflow */ - yyssp = yyss + size - 1; - yyvsp = yyvs + size - 1; -#ifdef YYLSP_NEEDED - yylsp = yyls + size - 1; -#endif + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Stack size increased to %d\n", yystacksize); -#endif + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) YYABORT; } -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Entering state %d\n", yystate); -#endif + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - goto yybackup; - yybackup: + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; -/* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ -/* yyresume: */ +/*-----------. +| yybackup. | +`-----------*/ +yybackup: - /* First try to decide what to do without reference to lookahead token. */ + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYFLAG) + if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Reading a token: "); -#endif + YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ + if (yychar <= YYEOF) { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Now at end of input.\n"); -#endif + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); } 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 + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) + if (yyn <= 0) { - if (yyn == YYFLAG) + if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } - else if (yyn == 0) - goto yyerrlab; - if (yyn == YYFINAL) - YYACCEPT; + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); -#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; + /* Discard the shifted token. */ + yychar = YYEMPTY; + yystate = yyn; *++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: +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; + goto yyreduce; -/* Do a reduction. yyn is the number of a rule to reduce with. */ + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ yyreduce: + /* yyn is the number of a rule to reduce with. */ 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]); + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. - /* 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 + Otherwise, the following line sets YYVAL to garbage. + 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]; - switch (yyn) { + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 2: -case 1: +/* Line 1464 of yacc.c */ #line 460 "./parse.y" -{; - break;} -case 18: + {;} + break; + + case 19: + +/* Line 1464 of yacc.c */ #line 504 "./parse.y" -{ - yyval.node = build_java_array_type (yyvsp[-2].node, -1); - CLASS_LOADED_P (yyval.node) = 1; - ; - break;} -case 19: + { + (yyval.node) = build_java_array_type ((yyvsp[(1) - (3)].node), -1); + CLASS_LOADED_P ((yyval.node)) = 1; + ;} + break; + + case 20: + +/* Line 1464 of yacc.c */ #line 509 "./parse.y" -{ yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; - break;} -case 20: + { (yyval.node) = build_unresolved_array_type ((yyvsp[(1) - (3)].node)); ;} + break; + + case 21: + +/* Line 1464 of yacc.c */ #line 511 "./parse.y" -{ yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; - break;} -case 21: + { (yyval.node) = build_unresolved_array_type ((yyvsp[(1) - (3)].node)); ;} + break; + + case 22: + +/* Line 1464 of yacc.c */ #line 513 "./parse.y" -{RULE ("']' expected"); RECOVER;; - break;} -case 22: + {RULE ("']' expected"); RECOVER;;} + break; + + case 23: + +/* Line 1464 of yacc.c */ #line 515 "./parse.y" -{RULE ("']' expected"); RECOVER;; - break;} -case 26: + {RULE ("']' expected"); RECOVER;;} + break; + + case 27: + +/* Line 1464 of yacc.c */ #line 530 "./parse.y" -{ yyval.node = make_qualified_name (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; - break;} -case 28: + { (yyval.node) = make_qualified_name ((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].operator).location); ;} + break; + + case 29: + +/* Line 1464 of yacc.c */ #line 539 "./parse.y" -{yyval.node = NULL;; - break;} -case 36: + {(yyval.node) = NULL;;} + break; + + case 37: + +/* Line 1464 of yacc.c */ #line 551 "./parse.y" -{ - yyval.node = NULL; - ; - break;} -case 37: + { + (yyval.node) = NULL; + ;} + break; + + case 38: + +/* Line 1464 of yacc.c */ #line 555 "./parse.y" -{ - yyval.node = NULL; - ; - break;} -case 40: + { + (yyval.node) = NULL; + ;} + break; + + case 41: + +/* Line 1464 of yacc.c */ #line 567 "./parse.y" -{ ctxp->package = EXPR_WFL_NODE (yyvsp[-1].node); ; - break;} -case 41: + { ctxp->package = EXPR_WFL_NODE ((yyvsp[(2) - (3)].node)); ;} + break; + + case 42: + +/* Line 1464 of yacc.c */ #line 569 "./parse.y" -{yyerror ("Missing name"); RECOVER;; - break;} -case 42: + {yyerror ("Missing name"); RECOVER;;} + break; + + case 43: + +/* Line 1464 of yacc.c */ #line 571 "./parse.y" -{yyerror ("';' expected"); RECOVER;; - break;} -case 45: + {yyerror ("';' expected"); RECOVER;;} + break; + + case 46: + +/* Line 1464 of yacc.c */ #line 581 "./parse.y" -{ - tree name = EXPR_WFL_NODE (yyvsp[-1].node), node, last_name; + { + tree name = EXPR_WFL_NODE ((yyvsp[(2) - (3)].node)), node, last_name; int i = IDENTIFIER_LENGTH (name)-1; char *last = &IDENTIFIER_POINTER (name)[i]; while (last != IDENTIFIER_POINTER (name)) @@ -2831,1405 +3628,2215 @@ tree err = find_name_in_single_imports (last_name); if (err && err != name) parse_error_context - (yyvsp[-1].node, "Ambiguous class: `%s' and `%s'", + ((yyvsp[(2) - (3)].node), "Ambiguous class: `%s' and `%s'", IDENTIFIER_POINTER (name), IDENTIFIER_POINTER (err)); else - REGISTER_IMPORT (yyvsp[-1].node, last_name) + REGISTER_IMPORT ((yyvsp[(2) - (3)].node), last_name) } else - REGISTER_IMPORT (yyvsp[-1].node, last_name); - ; - break;} -case 46: + REGISTER_IMPORT ((yyvsp[(2) - (3)].node), last_name); + ;} + break; + + case 47: + +/* Line 1464 of yacc.c */ #line 607 "./parse.y" -{yyerror ("Missing name"); RECOVER;; - break;} -case 47: + {yyerror ("Missing name"); RECOVER;;} + break; + + case 48: + +/* Line 1464 of yacc.c */ #line 609 "./parse.y" -{yyerror ("';' expected"); RECOVER;; - break;} -case 48: + {yyerror ("';' expected"); RECOVER;;} + break; + + case 49: + +/* Line 1464 of yacc.c */ #line 614 "./parse.y" -{ - tree name = EXPR_WFL_NODE (yyvsp[-3].node); + { + tree name = EXPR_WFL_NODE ((yyvsp[(2) - (5)].node)); /* Don't import java.lang.* twice. */ if (name != java_lang_id) { - tree node = build_tree_list (yyvsp[-3].node, NULL_TREE); - read_import_dir (yyvsp[-3].node); + tree node = build_tree_list ((yyvsp[(2) - (5)].node), NULL_TREE); + read_import_dir ((yyvsp[(2) - (5)].node)); TREE_CHAIN (node) = ctxp->import_demand_list; ctxp->import_demand_list = node; } - ; - break;} -case 49: + ;} + break; + + case 50: + +/* Line 1464 of yacc.c */ #line 626 "./parse.y" -{yyerror ("'*' expected"); RECOVER;; - break;} -case 50: + {yyerror ("'*' expected"); RECOVER;;} + break; + + case 51: + +/* Line 1464 of yacc.c */ #line 628 "./parse.y" -{yyerror ("';' expected"); RECOVER;; - break;} -case 51: + {yyerror ("';' expected"); RECOVER;;} + break; + + case 52: + +/* Line 1464 of yacc.c */ #line 633 "./parse.y" -{ + { maybe_generate_finit (); maybe_generate_clinit (); - yyval.node = yyvsp[0].node; - ; - break;} -case 52: + (yyval.node) = (yyvsp[(1) - (1)].node); + ;} + break; + + case 53: + +/* Line 1464 of yacc.c */ #line 639 "./parse.y" -{ + { maybe_generate_clinit (); - yyval.node = yyvsp[0].node; - ; - break;} -case 53: + (yyval.node) = (yyvsp[(1) - (1)].node); + ;} + break; + + case 54: + +/* Line 1464 of yacc.c */ #line 644 "./parse.y" -{ yyval.node = NULL; ; - break;} -case 54: + { (yyval.node) = NULL; ;} + break; + + case 55: + +/* Line 1464 of yacc.c */ #line 646 "./parse.y" -{ + { YYERROR_NOW; yyerror ("Class or interface declaration expected"); - ; - break;} -case 55: + ;} + break; + + case 56: + +/* Line 1464 of yacc.c */ #line 657 "./parse.y" -{ - yyval.value = (1 << yyvsp[0].value); - ; - break;} -case 56: + { + (yyval.value) = (1 << (yyvsp[(1) - (1)].value)); + ;} + break; + + case 57: + +/* Line 1464 of yacc.c */ #line 661 "./parse.y" -{ - int acc = (1 << yyvsp[0].value); - if (yyval.value & acc) + { + int acc = (1 << (yyvsp[(2) - (2)].value)); + if ((yyval.value) & acc) parse_error_context - (ctxp->modifier_ctx [yyvsp[0].value], "Modifier `%s' declared twice", + (ctxp->modifier_ctx [(yyvsp[(2) - (2)].value)], "Modifier `%s' declared twice", java_accstring_lookup (acc)); else { - yyval.value |= acc; + (yyval.value) |= acc; } - ; - break;} -case 57: + ;} + break; + + case 58: + +/* Line 1464 of yacc.c */ #line 677 "./parse.y" -{ create_class (yyvsp[-4].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 58: + { create_class ((yyvsp[(1) - (5)].value), (yyvsp[(3) - (5)].node), (yyvsp[(4) - (5)].node), (yyvsp[(5) - (5)].node)); ;} + break; + + case 59: + +/* Line 1464 of yacc.c */ #line 679 "./parse.y" -{ - yyval.node = yyvsp[0].node; - ; - break;} -case 59: + { + (yyval.node) = (yyvsp[(7) - (7)].node); + ;} + break; + + case 60: + +/* Line 1464 of yacc.c */ #line 683 "./parse.y" -{ create_class (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 60: + { create_class (0, (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node)); ;} + break; + + case 61: + +/* Line 1464 of yacc.c */ #line 685 "./parse.y" -{ - yyval.node = yyvsp[0].node; - ; - break;} -case 61: + { + (yyval.node) = (yyvsp[(6) - (6)].node); + ;} + break; + + case 62: + +/* Line 1464 of yacc.c */ #line 689 "./parse.y" -{yyerror ("Missing class name"); RECOVER;; - break;} -case 62: + {yyerror ("Missing class name"); RECOVER;;} + break; + + case 63: + +/* Line 1464 of yacc.c */ #line 691 "./parse.y" -{yyerror ("Missing class name"); RECOVER;; - break;} -case 63: + {yyerror ("Missing class name"); RECOVER;;} + break; + + case 64: + +/* Line 1464 of yacc.c */ #line 693 "./parse.y" -{ + { if (!ctxp->class_err) yyerror ("'{' expected"); DRECOVER(class1); - ; - break;} -case 64: + ;} + break; + + case 65: + +/* Line 1464 of yacc.c */ #line 698 "./parse.y" -{if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER;; - break;} -case 65: + {if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER;;} + break; + + case 66: + +/* Line 1464 of yacc.c */ #line 702 "./parse.y" -{ yyval.node = NULL; ; - break;} -case 66: + { (yyval.node) = NULL; ;} + break; + + case 67: + +/* Line 1464 of yacc.c */ #line 704 "./parse.y" -{ yyval.node = yyvsp[0].node; ; - break;} -case 67: + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} + break; + + case 68: + +/* Line 1464 of yacc.c */ #line 706 "./parse.y" -{yyerror ("'{' expected"); ctxp->class_err=1;; - break;} -case 68: + {yyerror ("'{' expected"); ctxp->class_err=1;;} + break; + + case 69: + +/* Line 1464 of yacc.c */ #line 708 "./parse.y" -{yyerror ("Missing super class name"); ctxp->class_err=1;; - break;} -case 69: + {yyerror ("Missing super class name"); ctxp->class_err=1;;} + break; + + case 70: + +/* Line 1464 of yacc.c */ #line 712 "./parse.y" -{ yyval.node = NULL_TREE; ; - break;} -case 70: + { (yyval.node) = NULL_TREE; ;} + break; + + case 71: + +/* Line 1464 of yacc.c */ #line 714 "./parse.y" -{ yyval.node = yyvsp[0].node; ; - break;} -case 71: + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} + break; + + case 72: + +/* Line 1464 of yacc.c */ #line 716 "./parse.y" -{ + { ctxp->class_err=1; yyerror ("Missing interface name"); - ; - break;} -case 72: + ;} + break; + + case 73: + +/* Line 1464 of yacc.c */ #line 724 "./parse.y" -{ + { ctxp->interface_number = 1; - yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); - ; - break;} -case 73: + (yyval.node) = build_tree_list ((yyvsp[(1) - (1)].node), NULL_TREE); + ;} + break; + + case 74: + +/* Line 1464 of yacc.c */ #line 729 "./parse.y" -{ + { ctxp->interface_number++; - yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); - ; - break;} -case 74: + (yyval.node) = chainon ((yyvsp[(1) - (3)].node), build_tree_list ((yyvsp[(3) - (3)].node), NULL_TREE)); + ;} + break; + + case 75: + +/* Line 1464 of yacc.c */ #line 734 "./parse.y" -{yyerror ("Missing interface name"); RECOVER;; - break;} -case 75: + {yyerror ("Missing interface name"); RECOVER;;} + break; + + case 76: + +/* Line 1464 of yacc.c */ #line 739 "./parse.y" -{ + { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) DECL_END_SOURCE_LINE (ctxp->current_parsed_class) = - EXPR_WFL_ADD_COL (yyvsp[0].operator.location, 1); - yyval.node = ctxp->current_parsed_class; - ; - break;} -case 76: + EXPR_WFL_ADD_COL ((yyvsp[(2) - (2)].operator).location, 1); + (yyval.node) = ctxp->current_parsed_class; + ;} + break; + + case 77: + +/* Line 1464 of yacc.c */ #line 747 "./parse.y" -{ + { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) DECL_END_SOURCE_LINE (ctxp->current_parsed_class) = - EXPR_WFL_ADD_COL (yyvsp[0].operator.location, 1); - yyval.node = ctxp->current_parsed_class; - ; - break;} -case 82: + EXPR_WFL_ADD_COL ((yyvsp[(3) - (3)].operator).location, 1); + (yyval.node) = ctxp->current_parsed_class; + ;} + break; + + case 83: + +/* Line 1464 of yacc.c */ #line 766 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("instance initializer"); ; - break;} -case 84: + { (yyval.node) = parse_jdk1_1_error ("instance initializer"); ;} + break; + + case 85: + +/* Line 1464 of yacc.c */ #line 772 "./parse.y" -{ yyval.node = yyvsp[-1].node; ; - break;} -case 86: + { (yyval.node) = (yyvsp[(1) - (2)].node); ;} + break; + + case 87: + +/* Line 1464 of yacc.c */ #line 775 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("inner classe declaration"); ; - break;} -case 87: + { (yyval.node) = parse_jdk1_1_error ("inner classe declaration"); ;} + break; + + case 88: + +/* Line 1464 of yacc.c */ #line 777 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("inner interface declaration"); ; - break;} -case 88: + { (yyval.node) = parse_jdk1_1_error ("inner interface declaration"); ;} + break; + + case 89: + +/* Line 1464 of yacc.c */ #line 783 "./parse.y" -{ register_fields (0, yyvsp[-2].node, yyvsp[-1].node); ; - break;} -case 89: + { register_fields (0, (yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node)); ;} + break; + + case 90: + +/* Line 1464 of yacc.c */ #line 785 "./parse.y" -{ + { check_modifiers ("Illegal modifier `%s' for field declaration", - yyvsp[-3].value, FIELD_MODIFIERS); - check_modifiers_consistency (yyvsp[-3].value); - register_fields (yyvsp[-3].value, yyvsp[-2].node, yyvsp[-1].node); - ; - break;} -case 91: + (yyvsp[(1) - (4)].value), FIELD_MODIFIERS); + check_modifiers_consistency ((yyvsp[(1) - (4)].value)); + register_fields ((yyvsp[(1) - (4)].value), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node)); + ;} + break; + + case 92: + +/* Line 1464 of yacc.c */ #line 798 "./parse.y" -{ yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; - break;} -case 92: + { (yyval.node) = chainon ((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;} + break; + + case 93: + +/* Line 1464 of yacc.c */ #line 800 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 93: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 94: + +/* Line 1464 of yacc.c */ #line 805 "./parse.y" -{ yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; - break;} -case 94: + { (yyval.node) = build_tree_list ((yyvsp[(1) - (1)].node), NULL_TREE); ;} + break; + + case 95: + +/* Line 1464 of yacc.c */ #line 807 "./parse.y" -{ + { if (java_error_count) - yyvsp[0].node = NULL_TREE; - yyval.node = build_tree_list - (yyvsp[-2].node, build_assignment (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node)); - ; - break;} -case 95: + (yyvsp[(3) - (3)].node) = NULL_TREE; + (yyval.node) = build_tree_list + ((yyvsp[(1) - (3)].node), build_assignment ((yyvsp[(2) - (3)].operator).token, (yyvsp[(2) - (3)].operator).location, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node))); + ;} + break; + + case 96: + +/* Line 1464 of yacc.c */ #line 814 "./parse.y" -{ + { yyerror ("Missing variable initializer"); - yyval.node = build_tree_list (yyvsp[-2].node, NULL_TREE); + (yyval.node) = build_tree_list ((yyvsp[(1) - (3)].node), NULL_TREE); RECOVER; - ; - break;} -case 96: + ;} + break; + + case 97: + +/* Line 1464 of yacc.c */ #line 820 "./parse.y" -{ + { yyerror ("';' expected"); - yyval.node = build_tree_list (yyvsp[-3].node, NULL_TREE); + (yyval.node) = build_tree_list ((yyvsp[(1) - (4)].node), NULL_TREE); RECOVER; - ; - break;} -case 98: + ;} + break; + + case 99: + +/* Line 1464 of yacc.c */ #line 830 "./parse.y" -{ yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; - break;} -case 99: + { (yyval.node) = build_unresolved_array_type ((yyvsp[(1) - (3)].node)); ;} + break; + + case 100: + +/* Line 1464 of yacc.c */ #line 832 "./parse.y" -{yyerror ("Invalid declaration"); DRECOVER(vdi);; - break;} -case 100: + {yyerror ("Invalid declaration"); DRECOVER(vdi);;} + break; + + case 101: + +/* Line 1464 of yacc.c */ #line 834 "./parse.y" -{yyerror ("']' expected"); DRECOVER(vdi);; - break;} -case 101: + {yyerror ("']' expected"); DRECOVER(vdi);;} + break; + + case 102: + +/* Line 1464 of yacc.c */ #line 836 "./parse.y" -{yyerror ("Unbalanced ']'"); DRECOVER(vdi);; - break;} -case 104: + {yyerror ("Unbalanced ']'"); DRECOVER(vdi);;} + break; + + case 105: + +/* Line 1464 of yacc.c */ #line 847 "./parse.y" -{ - current_function_decl = yyvsp[0].node; + { + current_function_decl = (yyvsp[(1) - (1)].node); source_start_java_method (current_function_decl); - ; - break;} -case 105: + ;} + break; + + case 106: + +/* Line 1464 of yacc.c */ #line 852 "./parse.y" -{ finish_method_declaration (yyvsp[0].node); ; - break;} -case 106: + { finish_method_declaration ((yyvsp[(3) - (3)].node)); ;} + break; + + case 107: + +/* Line 1464 of yacc.c */ #line 854 "./parse.y" -{YYNOT_TWICE yyerror ("'{' expected"); RECOVER;; - break;} -case 107: + {YYNOT_TWICE yyerror ("'{' expected"); RECOVER;;} + break; + + case 108: + +/* Line 1464 of yacc.c */ #line 859 "./parse.y" -{ yyval.node = method_header (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 108: + { (yyval.node) = method_header (0, (yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); ;} + break; + + case 109: + +/* Line 1464 of yacc.c */ #line 861 "./parse.y" -{ yyval.node = method_header (0, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 109: + { (yyval.node) = method_header (0, void_type_node, (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); ;} + break; + + case 110: + +/* Line 1464 of yacc.c */ #line 863 "./parse.y" -{ yyval.node = method_header (yyvsp[-3].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 110: + { (yyval.node) = method_header ((yyvsp[(1) - (4)].value), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node)); ;} + break; + + case 111: + +/* Line 1464 of yacc.c */ #line 865 "./parse.y" -{ yyval.node = method_header (yyvsp[-3].value, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 111: + { (yyval.node) = method_header ((yyvsp[(1) - (4)].value), void_type_node, (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node)); ;} + break; + + case 112: + +/* Line 1464 of yacc.c */ #line 867 "./parse.y" -{RECOVER;; - break;} -case 112: + {RECOVER;;} + break; + + case 113: + +/* Line 1464 of yacc.c */ #line 869 "./parse.y" -{RECOVER;; - break;} -case 113: + {RECOVER;;} + break; + + case 114: + +/* Line 1464 of yacc.c */ #line 871 "./parse.y" -{yyerror ("Identifier expected"); RECOVER;; - break;} -case 114: + {yyerror ("Identifier expected"); RECOVER;;} + break; + + case 115: + +/* Line 1464 of yacc.c */ #line 873 "./parse.y" -{yyerror ("Identifier expected"); RECOVER;; - break;} -case 115: + {yyerror ("Identifier expected"); RECOVER;;} + break; + + case 116: + +/* Line 1464 of yacc.c */ #line 875 "./parse.y" -{ + { yyerror ("Invalid method declaration, return type required"); RECOVER; - ; - break;} -case 116: + ;} + break; + + case 117: + +/* Line 1464 of yacc.c */ #line 883 "./parse.y" -{ yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; - break;} -case 117: + { (yyval.node) = method_declarator ((yyvsp[(1) - (3)].node), NULL_TREE); ;} + break; + + case 118: + +/* Line 1464 of yacc.c */ #line 885 "./parse.y" -{ yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; - break;} -case 118: + { (yyval.node) = method_declarator ((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node)); ;} + break; + + case 119: + +/* Line 1464 of yacc.c */ #line 887 "./parse.y" -{ - EXPR_WFL_LINECOL (wfl_operator) = yyvsp[-1].operator.location; - TREE_PURPOSE (yyvsp[-2].node) = - build_unresolved_array_type (TREE_PURPOSE (yyvsp[-2].node)); + { + EXPR_WFL_LINECOL (wfl_operator) = (yyvsp[(2) - (3)].operator).location; + TREE_PURPOSE ((yyvsp[(1) - (3)].node)) = + build_unresolved_array_type (TREE_PURPOSE ((yyvsp[(1) - (3)].node))); parse_warning_context (wfl_operator, "Discouraged form of returned type specification"); - ; - break;} -case 119: + ;} + break; + + case 120: + +/* Line 1464 of yacc.c */ #line 896 "./parse.y" -{yyerror ("')' expected"); DRECOVER(method_declarator);; - break;} -case 120: + {yyerror ("')' expected"); DRECOVER(method_declarator);;} + break; + + case 121: + +/* Line 1464 of yacc.c */ #line 898 "./parse.y" -{yyerror ("']' expected"); RECOVER;; - break;} -case 121: + {yyerror ("']' expected"); RECOVER;;} + break; + + case 122: + +/* Line 1464 of yacc.c */ #line 903 "./parse.y" -{ + { ctxp->formal_parameter_number = 1; - ; - break;} -case 122: + ;} + break; + + case 123: + +/* Line 1464 of yacc.c */ #line 907 "./parse.y" -{ + { ctxp->formal_parameter_number += 1; - yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 123: + (yyval.node) = chainon ((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 124: + +/* Line 1464 of yacc.c */ #line 912 "./parse.y" -{yyerror ("Missing formal parameter term"); RECOVER;; - break;} -case 124: + {yyerror ("Missing formal parameter term"); RECOVER;;} + break; + + case 125: + +/* Line 1464 of yacc.c */ #line 917 "./parse.y" -{ - yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); - ; - break;} -case 125: + { + (yyval.node) = build_tree_list ((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].node)); + ;} + break; + + case 126: + +/* Line 1464 of yacc.c */ #line 921 "./parse.y" -{ + { parse_jdk1_1_error ("final parameters"); - yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); - ; - break;} -case 126: + (yyval.node) = build_tree_list ((yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].node)); + ;} + break; + + case 127: + +/* Line 1464 of yacc.c */ #line 926 "./parse.y" -{yyerror ("Missing identifier"); RECOVER;; - break;} -case 127: + {yyerror ("Missing identifier"); RECOVER;;} + break; + + case 128: + +/* Line 1464 of yacc.c */ #line 928 "./parse.y" -{ - SOURCE_FRONTEND_DEBUG (("Modifiers: %d", yyvsp[-2].value)); + { + SOURCE_FRONTEND_DEBUG (("Modifiers: %d", (yyvsp[(1) - (3)].value))); yyerror ("Missing identifier"); RECOVER; - ; - break;} -case 128: + ;} + break; + + case 129: + +/* Line 1464 of yacc.c */ #line 935 "./parse.y" -{ yyval.node = NULL_TREE; ; - break;} -case 129: -#line 937 "./parse.y" -{ yyval.node = yyvsp[0].node; ; - break;} -case 130: + { (yyval.node) = NULL_TREE; ;} + break; + + case 130: + +/* Line 1464 of yacc.c */ +#line 937 "./parse.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} + break; + + case 131: + +/* Line 1464 of yacc.c */ #line 939 "./parse.y" -{yyerror ("Missing class type term"); RECOVER;; - break;} -case 131: + {yyerror ("Missing class type term"); RECOVER;;} + break; + + case 132: + +/* Line 1464 of yacc.c */ #line 944 "./parse.y" -{ yyval.node = build_tree_list (yyvsp[0].node, yyvsp[0].node); ; - break;} -case 132: + { (yyval.node) = build_tree_list ((yyvsp[(1) - (1)].node), (yyvsp[(1) - (1)].node)); ;} + break; + + case 133: + +/* Line 1464 of yacc.c */ #line 946 "./parse.y" -{ yyval.node = tree_cons (yyvsp[0].node, yyvsp[0].node, yyvsp[-2].node); ; - break;} -case 133: + { (yyval.node) = tree_cons ((yyvsp[(3) - (3)].node), (yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); ;} + break; + + case 134: + +/* Line 1464 of yacc.c */ #line 948 "./parse.y" -{yyerror ("Missing class type term"); RECOVER;; - break;} -case 136: + {yyerror ("Missing class type term"); RECOVER;;} + break; + + case 137: + +/* Line 1464 of yacc.c */ #line 955 "./parse.y" -{ yyval.node = NULL_TREE; ; - break;} -case 137: + { (yyval.node) = NULL_TREE; ;} + break; + + case 138: + +/* Line 1464 of yacc.c */ #line 961 "./parse.y" -{ - TREE_CHAIN (yyvsp[0].node) = ctxp->static_initialized; - ctxp->static_initialized = yyvsp[0].node; - ; - break;} -case 138: + { + TREE_CHAIN ((yyvsp[(2) - (2)].node)) = ctxp->static_initialized; + ctxp->static_initialized = (yyvsp[(2) - (2)].node); + ;} + break; + + case 139: + +/* Line 1464 of yacc.c */ #line 966 "./parse.y" -{ - TREE_CHAIN (yyvsp[-1].node) = ctxp->static_initialized; - ctxp->static_initialized = yyvsp[-1].node; - ; - break;} -case 139: + { + TREE_CHAIN ((yyvsp[(2) - (3)].node)) = ctxp->static_initialized; + ctxp->static_initialized = (yyvsp[(2) - (3)].node); + ;} + break; + + case 140: + +/* Line 1464 of yacc.c */ #line 974 "./parse.y" -{ - SOURCE_FRONTEND_DEBUG (("Modifiers: %d", yyvsp[0].value)); - ; - break;} -case 140: + { + SOURCE_FRONTEND_DEBUG (("Modifiers: %d", (yyvsp[(1) - (1)].value))); + ;} + break; + + case 141: + +/* Line 1464 of yacc.c */ #line 982 "./parse.y" -{ - current_function_decl = yyvsp[0].node; + { + current_function_decl = (yyvsp[(1) - (1)].node); source_start_java_method (current_function_decl); - ; - break;} -case 141: + ;} + break; + + case 142: + +/* Line 1464 of yacc.c */ #line 987 "./parse.y" -{ finish_method_declaration (yyvsp[0].node); ; - break;} -case 142: + { finish_method_declaration ((yyvsp[(3) - (3)].node)); ;} + break; + + case 143: + +/* Line 1464 of yacc.c */ #line 992 "./parse.y" -{ yyval.node = method_header (0, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 143: + { (yyval.node) = method_header (0, NULL_TREE, (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;} + break; + + case 144: + +/* Line 1464 of yacc.c */ #line 994 "./parse.y" -{ yyval.node = method_header (yyvsp[-2].value, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 144: + { (yyval.node) = method_header ((yyvsp[(1) - (3)].value), NULL_TREE, (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); ;} + break; + + case 145: + +/* Line 1464 of yacc.c */ #line 999 "./parse.y" -{ yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; - break;} -case 145: + { (yyval.node) = method_declarator ((yyvsp[(1) - (3)].node), NULL_TREE); ;} + break; + + case 146: + +/* Line 1464 of yacc.c */ #line 1001 "./parse.y" -{ yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; - break;} -case 146: + { (yyval.node) = method_declarator ((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node)); ;} + break; + + case 147: + +/* Line 1464 of yacc.c */ #line 1009 "./parse.y" -{ - BLOCK_EXPR_BODY (yyvsp[0].node) = empty_stmt_node; - yyval.node = yyvsp[0].node; - ; - break;} -case 147: + { + BLOCK_EXPR_BODY ((yyvsp[(2) - (2)].node)) = empty_stmt_node; + (yyval.node) = (yyvsp[(2) - (2)].node); + ;} + break; + + case 148: + +/* Line 1464 of yacc.c */ #line 1014 "./parse.y" -{ yyval.node = yyvsp[0].node; ; - break;} -case 148: + { (yyval.node) = (yyvsp[(3) - (3)].node); ;} + break; + + case 149: + +/* Line 1464 of yacc.c */ #line 1016 "./parse.y" -{ yyval.node = yyvsp[0].node; ; - break;} -case 149: + { (yyval.node) = (yyvsp[(3) - (3)].node); ;} + break; + + case 150: + +/* Line 1464 of yacc.c */ #line 1018 "./parse.y" -{ yyval.node = yyvsp[0].node; ; - break;} -case 152: + { (yyval.node) = (yyvsp[(4) - (4)].node); ;} + break; + + case 153: + +/* Line 1464 of yacc.c */ #line 1028 "./parse.y" -{ - yyval.node = build_method_invocation (yyvsp[-3].node, NULL_TREE); - yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-3].node), yyval.node); - yyval.node = java_method_add_stmt (current_function_decl, yyval.node); - ; - break;} -case 153: + { + (yyval.node) = build_method_invocation ((yyvsp[(1) - (4)].node), NULL_TREE); + (yyval.node) = build_debugable_stmt (EXPR_WFL_LINECOL ((yyvsp[(1) - (4)].node)), (yyval.node)); + (yyval.node) = java_method_add_stmt (current_function_decl, (yyval.node)); + ;} + break; + + case 154: + +/* Line 1464 of yacc.c */ #line 1034 "./parse.y" -{ - yyval.node = build_method_invocation (yyvsp[-4].node, yyvsp[-2].node); - yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-4].node), yyval.node); - yyval.node = java_method_add_stmt (current_function_decl, yyval.node); - ; - break;} -case 154: + { + (yyval.node) = build_method_invocation ((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node)); + (yyval.node) = build_debugable_stmt (EXPR_WFL_LINECOL ((yyvsp[(1) - (5)].node)), (yyval.node)); + (yyval.node) = java_method_add_stmt (current_function_decl, (yyval.node)); + ;} + break; + + case 155: + +/* Line 1464 of yacc.c */ #line 1042 "./parse.y" -{yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; - break;} -case 155: + {(yyval.node) = parse_jdk1_1_error ("explicit constructor invocation"); ;} + break; + + case 156: + +/* Line 1464 of yacc.c */ #line 1044 "./parse.y" -{yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; - break;} -case 156: + {(yyval.node) = parse_jdk1_1_error ("explicit constructor invocation"); ;} + break; + + case 157: + +/* Line 1464 of yacc.c */ #line 1049 "./parse.y" -{ + { tree wfl = build_wfl_node (this_identifier_node); - EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; - yyval.node = wfl; - ; - break;} -case 157: + EXPR_WFL_LINECOL (wfl) = (yyvsp[(1) - (1)].operator).location; + (yyval.node) = wfl; + ;} + break; + + case 158: + +/* Line 1464 of yacc.c */ #line 1055 "./parse.y" -{ + { tree wfl = build_wfl_node (super_identifier_node); - EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; - yyval.node = wfl; - ; - break;} -case 158: + EXPR_WFL_LINECOL (wfl) = (yyvsp[(1) - (1)].operator).location; + (yyval.node) = wfl; + ;} + break; + + case 159: + +/* Line 1464 of yacc.c */ #line 1066 "./parse.y" -{ create_interface (0, yyvsp[0].node, NULL_TREE); ; - break;} -case 159: + { create_interface (0, (yyvsp[(2) - (2)].node), NULL_TREE); ;} + break; + + case 160: + +/* Line 1464 of yacc.c */ #line 1068 "./parse.y" -{ - yyval.node = yyvsp[0].node; - ; - break;} -case 160: + { + (yyval.node) = (yyvsp[(4) - (4)].node); + ;} + break; + + case 161: + +/* Line 1464 of yacc.c */ #line 1072 "./parse.y" -{ create_interface (yyvsp[-2].value, yyvsp[0].node, NULL_TREE); ; - break;} -case 161: + { create_interface ((yyvsp[(1) - (3)].value), (yyvsp[(3) - (3)].node), NULL_TREE); ;} + break; + + case 162: + +/* Line 1464 of yacc.c */ #line 1074 "./parse.y" -{ - yyval.node = yyvsp[0].node; - ; - break;} -case 162: + { + (yyval.node) = (yyvsp[(5) - (5)].node); + ;} + break; + + case 163: + +/* Line 1464 of yacc.c */ #line 1078 "./parse.y" -{ create_interface (0, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 163: + { create_interface (0, (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); ;} + break; + + case 164: + +/* Line 1464 of yacc.c */ #line 1080 "./parse.y" -{ - yyval.node = yyvsp[0].node; - ; - break;} -case 164: + { + (yyval.node) = (yyvsp[(5) - (5)].node); + ;} + break; + + case 165: + +/* Line 1464 of yacc.c */ #line 1084 "./parse.y" -{ create_interface (yyvsp[-3].value, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 165: + { create_interface ((yyvsp[(1) - (4)].value), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node)); ;} + break; + + case 166: + +/* Line 1464 of yacc.c */ #line 1086 "./parse.y" -{ - yyval.node = yyvsp[0].node; - ; - break;} -case 166: + { + (yyval.node) = (yyvsp[(6) - (6)].node); + ;} + break; + + case 167: + +/* Line 1464 of yacc.c */ #line 1090 "./parse.y" -{yyerror ("'{' expected"); RECOVER;; - break;} -case 167: + {yyerror ("'{' expected"); RECOVER;;} + break; + + case 168: + +/* Line 1464 of yacc.c */ #line 1092 "./parse.y" -{yyerror ("'{' expected"); RECOVER;; - break;} -case 168: + {yyerror ("'{' expected"); RECOVER;;} + break; + + case 169: + +/* Line 1464 of yacc.c */ #line 1097 "./parse.y" -{ + { ctxp->interface_number = 1; - yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); - ; - break;} -case 169: + (yyval.node) = build_tree_list ((yyvsp[(2) - (2)].node), NULL_TREE); + ;} + break; + + case 170: + +/* Line 1464 of yacc.c */ #line 1102 "./parse.y" -{ + { ctxp->interface_number++; - yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); - ; - break;} -case 170: + (yyval.node) = chainon ((yyvsp[(1) - (3)].node), build_tree_list ((yyvsp[(3) - (3)].node), NULL_TREE)); + ;} + break; + + case 171: + +/* Line 1464 of yacc.c */ #line 1107 "./parse.y" -{yyerror ("Invalid interface type"); RECOVER;; - break;} -case 171: + {yyerror ("Invalid interface type"); RECOVER;;} + break; + + case 172: + +/* Line 1464 of yacc.c */ #line 1109 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 172: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 173: + +/* Line 1464 of yacc.c */ #line 1114 "./parse.y" -{ yyval.node = NULL_TREE; ; - break;} -case 173: + { (yyval.node) = NULL_TREE; ;} + break; + + case 174: + +/* Line 1464 of yacc.c */ #line 1116 "./parse.y" -{ yyval.node = NULL_TREE; ; - break;} -case 178: + { (yyval.node) = NULL_TREE; ;} + break; + + case 179: + +/* Line 1464 of yacc.c */ #line 1128 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("inner class declaration"); ; - break;} -case 179: + { (yyval.node) = parse_jdk1_1_error ("inner class declaration"); ;} + break; + + case 180: + +/* Line 1464 of yacc.c */ #line 1130 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("inner interface declaration"); ; - break;} -case 181: + { (yyval.node) = parse_jdk1_1_error ("inner interface declaration"); ;} + break; + + case 182: + +/* Line 1464 of yacc.c */ #line 1139 "./parse.y" -{ - check_abstract_method_header (yyvsp[-1].node); + { + check_abstract_method_header ((yyvsp[(1) - (2)].node)); current_function_decl = NULL_TREE; /* FIXME ? */ - ; - break;} -case 182: + ;} + break; + + case 183: + +/* Line 1464 of yacc.c */ #line 1144 "./parse.y" -{yyerror ("';' expected"); RECOVER;; - break;} -case 183: + {yyerror ("';' expected"); RECOVER;;} + break; + + case 184: + +/* Line 1464 of yacc.c */ #line 1150 "./parse.y" -{ yyval.node = build_new_array_init (yyvsp[-1].operator.location, NULL_TREE); ; - break;} -case 184: + { (yyval.node) = build_new_array_init ((yyvsp[(1) - (2)].operator).location, NULL_TREE); ;} + break; + + case 185: + +/* Line 1464 of yacc.c */ #line 1152 "./parse.y" -{ yyval.node = build_new_array_init (yyvsp[-2].operator.location, yyvsp[-1].node); ; - break;} -case 185: + { (yyval.node) = build_new_array_init ((yyvsp[(1) - (3)].operator).location, (yyvsp[(2) - (3)].node)); ;} + break; + + case 186: + +/* Line 1464 of yacc.c */ #line 1154 "./parse.y" -{ yyval.node = build_new_array_init (yyvsp[-3].operator.location, yyvsp[-2].node); ; - break;} -case 186: + { (yyval.node) = build_new_array_init ((yyvsp[(1) - (4)].operator).location, (yyvsp[(2) - (4)].node)); ;} + break; + + case 187: + +/* Line 1464 of yacc.c */ #line 1159 "./parse.y" -{ - yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), - yyvsp[0].node, NULL_TREE); - ; - break;} -case 187: + { + (yyval.node) = tree_cons (maybe_build_array_element_wfl ((yyvsp[(1) - (1)].node)), + (yyvsp[(1) - (1)].node), NULL_TREE); + ;} + break; + + case 188: + +/* Line 1464 of yacc.c */ #line 1164 "./parse.y" -{ - yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, yyvsp[-2].node); - ; - break;} -case 188: + { + (yyval.node) = tree_cons (maybe_build_array_element_wfl ((yyvsp[(3) - (3)].node)), (yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); + ;} + break; + + case 189: + +/* Line 1464 of yacc.c */ #line 1168 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 189: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 190: + +/* Line 1464 of yacc.c */ #line 1174 "./parse.y" -{ + { /* Store the location of the `}' when doing xrefs */ if (current_function_decl && flag_emit_xref) DECL_END_SOURCE_LINE (current_function_decl) = - EXPR_WFL_ADD_COL (yyvsp[0].operator.location, 1); - yyval.node = empty_stmt_node; - ; - break;} -case 190: + EXPR_WFL_ADD_COL ((yyvsp[(2) - (2)].operator).location, 1); + (yyval.node) = empty_stmt_node; + ;} + break; + + case 191: + +/* Line 1464 of yacc.c */ #line 1182 "./parse.y" -{ yyval.node = yyvsp[0].node; ; - break;} -case 191: + { (yyval.node) = (yyvsp[(3) - (3)].node); ;} + break; + + case 192: + +/* Line 1464 of yacc.c */ #line 1187 "./parse.y" -{ enter_block (); ; - break;} -case 192: + { enter_block (); ;} + break; + + case 193: + +/* Line 1464 of yacc.c */ #line 1192 "./parse.y" -{ + { maybe_absorb_scoping_blocks (); /* Store the location of the `}' when doing xrefs */ if (current_function_decl && flag_emit_xref) DECL_END_SOURCE_LINE (current_function_decl) = - EXPR_WFL_ADD_COL (yyvsp[0].operator.location, 1); - yyval.node = exit_block (); - ; - break;} -case 196: + EXPR_WFL_ADD_COL ((yyvsp[(1) - (1)].operator).location, 1); + (yyval.node) = exit_block (); + ;} + break; + + case 197: + +/* Line 1464 of yacc.c */ #line 1210 "./parse.y" -{ java_method_add_stmt (current_function_decl, yyvsp[0].node); ; - break;} -case 197: + { java_method_add_stmt (current_function_decl, (yyvsp[(1) - (1)].node)); ;} + break; + + case 198: + +/* Line 1464 of yacc.c */ #line 1212 "./parse.y" -{ parse_jdk1_1_error ("inner class declaration"); ; - break;} -case 199: + { parse_jdk1_1_error ("inner class declaration"); ;} + break; + + case 200: + +/* Line 1464 of yacc.c */ #line 1221 "./parse.y" -{ declare_local_variables (0, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 200: + { declare_local_variables (0, (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;} + break; + + case 201: + +/* Line 1464 of yacc.c */ #line 1223 "./parse.y" -{ declare_local_variables (yyvsp[-2].value, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 206: + { declare_local_variables ((yyvsp[(1) - (3)].value), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); ;} + break; + + case 207: + +/* Line 1464 of yacc.c */ #line 1233 "./parse.y" -{ yyval.node = exit_block (); ; - break;} -case 211: + { (yyval.node) = exit_block (); ;} + break; + + case 212: + +/* Line 1464 of yacc.c */ #line 1242 "./parse.y" -{ yyval.node = exit_block (); ; - break;} -case 223: + { (yyval.node) = exit_block (); ;} + break; + + case 224: + +/* Line 1464 of yacc.c */ #line 1261 "./parse.y" -{ yyval.node = empty_stmt_node; ; - break;} -case 224: + { (yyval.node) = empty_stmt_node; ;} + break; + + case 225: + +/* Line 1464 of yacc.c */ #line 1266 "./parse.y" -{ - yyval.node = build_labeled_block (EXPR_WFL_LINECOL (yyvsp[-1].node), - EXPR_WFL_NODE (yyvsp[-1].node)); + { + (yyval.node) = build_labeled_block (EXPR_WFL_LINECOL ((yyvsp[(1) - (2)].node)), + EXPR_WFL_NODE ((yyvsp[(1) - (2)].node))); pushlevel (2); - push_labeled_block (yyval.node); - PUSH_LABELED_BLOCK (yyval.node); - ; - break;} -case 225: + push_labeled_block ((yyval.node)); + PUSH_LABELED_BLOCK ((yyval.node)); + ;} + break; + + case 226: + +/* Line 1464 of yacc.c */ #line 1277 "./parse.y" -{ yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 226: + { (yyval.node) = finish_labeled_statement ((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;} + break; + + case 227: + +/* Line 1464 of yacc.c */ #line 1279 "./parse.y" -{yyerror ("':' expected"); RECOVER;; - break;} -case 227: + {yyerror ("':' expected"); RECOVER;;} + break; + + case 228: + +/* Line 1464 of yacc.c */ #line 1284 "./parse.y" -{ yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 228: + { (yyval.node) = finish_labeled_statement ((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;} + break; + + case 229: + +/* Line 1464 of yacc.c */ #line 1291 "./parse.y" -{ + { /* We have a statement. Generate a WFL around it so we can debug it */ - yyval.node = build_expr_wfl (yyvsp[-1].node, input_filename, lineno, 0); + (yyval.node) = build_expr_wfl ((yyvsp[(1) - (2)].node), input_filename, lineno, 0); /* We know we have a statement, so set the debug info to be eventually generate here. */ - yyval.node = JAVA_MAYBE_GENERATE_DEBUG_INFO (yyval.node); - ; - break;} -case 229: + (yyval.node) = JAVA_MAYBE_GENERATE_DEBUG_INFO ((yyval.node)); + ;} + break; + + case 230: + +/* Line 1464 of yacc.c */ #line 1300 "./parse.y" -{ + { if (ctxp->prevent_ese != lineno) yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); - ; - break;} -case 230: + ;} + break; + + case 231: + +/* Line 1464 of yacc.c */ #line 1306 "./parse.y" -{ + { if (ctxp->prevent_ese != lineno) yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); - ; - break;} -case 231: + ;} + break; + + case 232: + +/* Line 1464 of yacc.c */ #line 1312 "./parse.y" -{ + { if (ctxp->prevent_ese != lineno) yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); - ; - break;} -case 232: + ;} + break; + + case 233: + +/* Line 1464 of yacc.c */ #line 1318 "./parse.y" -{yyerror ("')' expected"); RECOVER;; - break;} -case 233: + {yyerror ("')' expected"); RECOVER;;} + break; + + case 234: + +/* Line 1464 of yacc.c */ #line 1320 "./parse.y" -{ + { yyerror ("Constructor invocation must be first " "thing in a constructor"); RECOVER; - ; - break;} -case 234: + ;} + break; + + case 235: + +/* Line 1464 of yacc.c */ #line 1326 "./parse.y" -{yyerror ("')' expected"); RECOVER;; - break;} -case 235: + {yyerror ("')' expected"); RECOVER;;} + break; + + case 236: + +/* Line 1464 of yacc.c */ #line 1328 "./parse.y" -{ + { yyerror ("Constructor invocation must be first " "thing in a constructor"); RECOVER; - ; - break;} -case 236: + ;} + break; + + case 237: + +/* Line 1464 of yacc.c */ #line 1334 "./parse.y" -{yyerror ("'(' expected"); RECOVER;; - break;} -case 237: + {yyerror ("'(' expected"); RECOVER;;} + break; + + case 238: + +/* Line 1464 of yacc.c */ #line 1336 "./parse.y" -{yyerror ("')' expected"); RECOVER;; - break;} -case 238: + {yyerror ("')' expected"); RECOVER;;} + break; + + case 239: + +/* Line 1464 of yacc.c */ #line 1338 "./parse.y" -{yyerror ("')' expected"); RECOVER;; - break;} -case 239: + {yyerror ("')' expected"); RECOVER;;} + break; + + case 240: + +/* Line 1464 of yacc.c */ #line 1340 "./parse.y" -{yyerror ("';' expected"); RECOVER;; - break;} -case 240: + {yyerror ("';' expected"); RECOVER;;} + break; + + case 241: + +/* Line 1464 of yacc.c */ #line 1342 "./parse.y" -{yyerror ("';' expected"); RECOVER;; - break;} -case 248: + {yyerror ("';' expected"); RECOVER;;} + break; + + case 249: + +/* Line 1464 of yacc.c */ #line 1357 "./parse.y" -{ - yyval.node = build_if_else_statement (yyvsp[-3].operator.location, yyvsp[-2].node, - yyvsp[0].node, NULL_TREE); - ; - break;} -case 249: + { + (yyval.node) = build_if_else_statement ((yyvsp[(2) - (5)].operator).location, (yyvsp[(3) - (5)].node), + (yyvsp[(5) - (5)].node), NULL_TREE); + ;} + break; + + case 250: + +/* Line 1464 of yacc.c */ #line 1362 "./parse.y" -{yyerror ("'(' expected"); RECOVER;; - break;} -case 250: + {yyerror ("'(' expected"); RECOVER;;} + break; + + case 251: + +/* Line 1464 of yacc.c */ #line 1364 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 251: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 252: + +/* Line 1464 of yacc.c */ #line 1366 "./parse.y" -{yyerror ("')' expected"); RECOVER;; - break;} -case 252: + {yyerror ("')' expected"); RECOVER;;} + break; + + case 253: + +/* Line 1464 of yacc.c */ #line 1371 "./parse.y" -{ yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; - break;} -case 253: + { (yyval.node) = build_if_else_statement ((yyvsp[(2) - (7)].operator).location, (yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)); ;} + break; + + case 254: + +/* Line 1464 of yacc.c */ #line 1376 "./parse.y" -{ yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; - break;} -case 254: + { (yyval.node) = build_if_else_statement ((yyvsp[(2) - (7)].operator).location, (yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)); ;} + break; + + case 255: + +/* Line 1464 of yacc.c */ #line 1381 "./parse.y" -{ + { enter_block (); - ; - break;} -case 255: + ;} + break; + + case 256: + +/* Line 1464 of yacc.c */ #line 1385 "./parse.y" -{ + { /* Make into "proper list" of COMPOUND_EXPRs. I.e. make the last statment also have its own COMPOUND_EXPR. */ maybe_absorb_scoping_blocks (); - TREE_OPERAND (yyvsp[-2].node, 1) = exit_block (); - yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-2].node), yyvsp[-2].node); - ; - break;} -case 256: + TREE_OPERAND ((yyvsp[(1) - (3)].node), 1) = exit_block (); + (yyval.node) = build_debugable_stmt (EXPR_WFL_LINECOL ((yyvsp[(1) - (3)].node)), (yyvsp[(1) - (3)].node)); + ;} + break; + + case 257: + +/* Line 1464 of yacc.c */ #line 1397 "./parse.y" -{ - yyval.node = build (SWITCH_EXPR, NULL_TREE, yyvsp[-1].node, NULL_TREE); - EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; - ; - break;} -case 257: + { + (yyval.node) = build (SWITCH_EXPR, NULL_TREE, (yyvsp[(3) - (4)].node), NULL_TREE); + EXPR_WFL_LINECOL ((yyval.node)) = (yyvsp[(2) - (4)].operator).location; + ;} + break; + + case 258: + +/* Line 1464 of yacc.c */ #line 1402 "./parse.y" -{yyerror ("'(' expected"); RECOVER;; - break;} -case 258: + {yyerror ("'(' expected"); RECOVER;;} + break; + + case 259: + +/* Line 1464 of yacc.c */ #line 1404 "./parse.y" -{yyerror ("Missing term or ')'"); DRECOVER(switch_statement);; - break;} -case 259: + {yyerror ("Missing term or ')'"); DRECOVER(switch_statement);;} + break; + + case 260: + +/* Line 1464 of yacc.c */ #line 1406 "./parse.y" -{yyerror ("'{' expected"); RECOVER;; - break;} -case 260: + {yyerror ("'{' expected"); RECOVER;;} + break; + + case 261: + +/* Line 1464 of yacc.c */ #line 1414 "./parse.y" -{ yyval.node = NULL_TREE; ; - break;} -case 261: + { (yyval.node) = NULL_TREE; ;} + break; + + case 262: + +/* Line 1464 of yacc.c */ #line 1416 "./parse.y" -{ yyval.node = NULL_TREE; ; - break;} -case 262: + { (yyval.node) = NULL_TREE; ;} + break; + + case 263: + +/* Line 1464 of yacc.c */ #line 1418 "./parse.y" -{ yyval.node = NULL_TREE; ; - break;} -case 263: + { (yyval.node) = NULL_TREE; ;} + break; + + case 264: + +/* Line 1464 of yacc.c */ #line 1420 "./parse.y" -{ yyval.node = NULL_TREE; ; - break;} -case 269: + { (yyval.node) = NULL_TREE; ;} + break; + + case 270: + +/* Line 1464 of yacc.c */ #line 1439 "./parse.y" -{ - tree lab = build1 (CASE_EXPR, NULL_TREE, yyvsp[-1].node); - EXPR_WFL_LINECOL (lab) = yyvsp[-2].operator.location; + { + tree lab = build1 (CASE_EXPR, NULL_TREE, (yyvsp[(2) - (3)].node)); + EXPR_WFL_LINECOL (lab) = (yyvsp[(1) - (3)].operator).location; java_method_add_stmt (current_function_decl, lab); - ; - break;} -case 270: + ;} + break; + + case 271: + +/* Line 1464 of yacc.c */ #line 1445 "./parse.y" -{ + { tree lab = build1 (DEFAULT_EXPR, NULL_TREE, NULL_TREE); - EXPR_WFL_LINECOL (lab) = yyvsp[-1].operator.location; + EXPR_WFL_LINECOL (lab) = (yyvsp[(1) - (2)].operator).location; java_method_add_stmt (current_function_decl, lab); - ; - break;} -case 271: + ;} + break; + + case 272: + +/* Line 1464 of yacc.c */ #line 1451 "./parse.y" -{yyerror ("Missing or invalid constant expression"); RECOVER;; - break;} -case 272: + {yyerror ("Missing or invalid constant expression"); RECOVER;;} + break; + + case 273: + +/* Line 1464 of yacc.c */ #line 1453 "./parse.y" -{yyerror ("':' expected"); RECOVER;; - break;} -case 273: + {yyerror ("':' expected"); RECOVER;;} + break; + + case 274: + +/* Line 1464 of yacc.c */ #line 1455 "./parse.y" -{yyerror ("':' expected"); RECOVER;; - break;} -case 274: + {yyerror ("':' expected"); RECOVER;;} + break; + + case 275: + +/* Line 1464 of yacc.c */ #line 1460 "./parse.y" -{ - tree body = build_loop_body (yyvsp[-2].operator.location, yyvsp[-1].node, 0); - yyval.node = build_new_loop (body); - ; - break;} -case 275: + { + tree body = build_loop_body ((yyvsp[(2) - (4)].operator).location, (yyvsp[(3) - (4)].node), 0); + (yyval.node) = build_new_loop (body); + ;} + break; + + case 276: + +/* Line 1464 of yacc.c */ #line 1468 "./parse.y" -{ yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; - break;} -case 276: + { (yyval.node) = finish_loop_body (0, NULL_TREE, (yyvsp[(2) - (2)].node), 0); ;} + break; + + case 277: + +/* Line 1464 of yacc.c */ #line 1470 "./parse.y" -{YYERROR_NOW; yyerror ("'(' expected"); RECOVER;; - break;} -case 277: + {YYERROR_NOW; yyerror ("'(' expected"); RECOVER;;} + break; + + case 278: + +/* Line 1464 of yacc.c */ #line 1472 "./parse.y" -{yyerror ("Missing term and ')' expected"); RECOVER;; - break;} -case 278: + {yyerror ("Missing term and ')' expected"); RECOVER;;} + break; + + case 279: + +/* Line 1464 of yacc.c */ #line 1474 "./parse.y" -{yyerror ("')' expected"); RECOVER;; - break;} -case 279: + {yyerror ("')' expected"); RECOVER;;} + break; + + case 280: + +/* Line 1464 of yacc.c */ #line 1479 "./parse.y" -{ yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; - break;} -case 280: + { (yyval.node) = finish_loop_body (0, NULL_TREE, (yyvsp[(2) - (2)].node), 0); ;} + break; + + case 281: + +/* Line 1464 of yacc.c */ #line 1484 "./parse.y" -{ + { tree body = build_loop_body (0, NULL_TREE, 1); - yyval.node = build_new_loop (body); - ; - break;} -case 281: + (yyval.node) = build_new_loop (body); + ;} + break; + + case 282: + +/* Line 1464 of yacc.c */ #line 1493 "./parse.y" -{ yyval.node = finish_loop_body (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-5].node, 1); ; - break;} -case 282: + { (yyval.node) = finish_loop_body ((yyvsp[(4) - (7)].operator).location, (yyvsp[(5) - (7)].node), (yyvsp[(2) - (7)].node), 1); ;} + break; + + case 283: + +/* Line 1464 of yacc.c */ #line 1498 "./parse.y" -{ yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; - break;} -case 283: + { (yyval.node) = finish_for_loop (EXPR_WFL_LINECOL ((yyvsp[(3) - (7)].node)), (yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)); ;} + break; + + case 284: + +/* Line 1464 of yacc.c */ #line 1500 "./parse.y" -{ - yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); + { + (yyval.node) = finish_for_loop (0, NULL_TREE, (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)); /* We have not condition, so we get rid of the EXIT_EXPR */ - LOOP_EXPR_BODY_CONDITION_EXPR (LOOP_EXPR_BODY (yyval.node), 0) = + LOOP_EXPR_BODY_CONDITION_EXPR (LOOP_EXPR_BODY ((yyval.node)), 0) = empty_stmt_node; - ; - break;} -case 284: + ;} + break; + + case 285: + +/* Line 1464 of yacc.c */ #line 1507 "./parse.y" -{yyerror ("Invalid control expression"); RECOVER;; - break;} -case 285: + {yyerror ("Invalid control expression"); RECOVER;;} + break; + + case 286: + +/* Line 1464 of yacc.c */ #line 1509 "./parse.y" -{yyerror ("Invalid update expression"); RECOVER;; - break;} -case 286: + {yyerror ("Invalid update expression"); RECOVER;;} + break; + + case 287: + +/* Line 1464 of yacc.c */ #line 1511 "./parse.y" -{yyerror ("Invalid update expression"); RECOVER;; - break;} -case 287: + {yyerror ("Invalid update expression"); RECOVER;;} + break; + + case 288: + +/* Line 1464 of yacc.c */ #line 1516 "./parse.y" -{ yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node);; - break;} -case 288: + { (yyval.node) = finish_for_loop (EXPR_WFL_LINECOL ((yyvsp[(3) - (7)].node)), (yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node));;} + break; + + case 289: + +/* Line 1464 of yacc.c */ #line 1518 "./parse.y" -{ - yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); + { + (yyval.node) = finish_for_loop (0, NULL_TREE, (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)); /* We have not condition, so we get rid of the EXIT_EXPR */ - LOOP_EXPR_BODY_CONDITION_EXPR (LOOP_EXPR_BODY (yyval.node), 0) = + LOOP_EXPR_BODY_CONDITION_EXPR (LOOP_EXPR_BODY ((yyval.node)), 0) = empty_stmt_node; - ; - break;} -case 289: + ;} + break; + + case 290: + +/* Line 1464 of yacc.c */ #line 1528 "./parse.y" -{ + { /* This scope defined for local variable that may be defined within the scope of the for loop */ enter_block (); - ; - break;} -case 290: + ;} + break; + + case 291: + +/* Line 1464 of yacc.c */ #line 1534 "./parse.y" -{yyerror ("'(' expected"); DRECOVER(for_1);; - break;} -case 291: + {yyerror ("'(' expected"); DRECOVER(for_1);;} + break; + + case 292: + +/* Line 1464 of yacc.c */ #line 1536 "./parse.y" -{yyerror ("Invalid init statement"); RECOVER;; - break;} -case 292: + {yyerror ("Invalid init statement"); RECOVER;;} + break; + + case 293: + +/* Line 1464 of yacc.c */ #line 1541 "./parse.y" -{ + { /* We now declare the loop body. The loop is declared as a for loop. */ tree body = build_loop_body (0, NULL_TREE, 0); - yyval.node = build_new_loop (body); - IS_FOR_LOOP_P (yyval.node) = 1; + (yyval.node) = build_new_loop (body); + IS_FOR_LOOP_P ((yyval.node)) = 1; /* The loop is added to the current block the for statement is defined within */ - java_method_add_stmt (current_function_decl, yyval.node); - ; - break;} -case 293: + java_method_add_stmt (current_function_decl, (yyval.node)); + ;} + break; + + case 294: + +/* Line 1464 of yacc.c */ #line 1553 "./parse.y" -{ yyval.node = empty_stmt_node; ; - break;} -case 294: + { (yyval.node) = empty_stmt_node; ;} + break; + + case 295: + +/* Line 1464 of yacc.c */ #line 1555 "./parse.y" -{ + { /* Init statement recorded within the previously defined block scope */ - yyval.node = java_method_add_stmt (current_function_decl, yyvsp[0].node); - ; - break;} -case 295: + (yyval.node) = java_method_add_stmt (current_function_decl, (yyvsp[(1) - (1)].node)); + ;} + break; + + case 296: + +/* Line 1464 of yacc.c */ #line 1561 "./parse.y" -{ + { /* Local variable are recorded within the previously defined block scope */ - yyval.node = NULL_TREE; - ; - break;} -case 296: + (yyval.node) = NULL_TREE; + ;} + break; + + case 297: + +/* Line 1464 of yacc.c */ #line 1567 "./parse.y" -{yyerror ("';' expected"); DRECOVER(for_init_1);; - break;} -case 297: + {yyerror ("';' expected"); DRECOVER(for_init_1);;} + break; + + case 298: + +/* Line 1464 of yacc.c */ #line 1571 "./parse.y" -{yyval.node = empty_stmt_node;; - break;} -case 298: + {(yyval.node) = empty_stmt_node;;} + break; + + case 299: + +/* Line 1464 of yacc.c */ #line 1573 "./parse.y" -{ yyval.node = build_debugable_stmt (BUILD_LOCATION (), yyvsp[0].node); ; - break;} -case 299: + { (yyval.node) = build_debugable_stmt (BUILD_LOCATION (), (yyvsp[(1) - (1)].node)); ;} + break; + + case 300: + +/* Line 1464 of yacc.c */ #line 1578 "./parse.y" -{ yyval.node = add_stmt_to_compound (NULL_TREE, NULL_TREE, yyvsp[0].node); ; - break;} -case 300: + { (yyval.node) = add_stmt_to_compound (NULL_TREE, NULL_TREE, (yyvsp[(1) - (1)].node)); ;} + break; + + case 301: + +/* Line 1464 of yacc.c */ #line 1580 "./parse.y" -{ yyval.node = add_stmt_to_compound (yyvsp[-2].node, NULL_TREE, yyvsp[0].node); ; - break;} -case 301: + { (yyval.node) = add_stmt_to_compound ((yyvsp[(1) - (3)].node), NULL_TREE, (yyvsp[(3) - (3)].node)); ;} + break; + + case 302: + +/* Line 1464 of yacc.c */ #line 1582 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 302: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 303: + +/* Line 1464 of yacc.c */ #line 1587 "./parse.y" -{ yyval.node = build_bc_statement (yyvsp[-1].operator.location, 1, NULL_TREE); ; - break;} -case 303: + { (yyval.node) = build_bc_statement ((yyvsp[(1) - (2)].operator).location, 1, NULL_TREE); ;} + break; + + case 304: + +/* Line 1464 of yacc.c */ #line 1589 "./parse.y" -{ yyval.node = build_bc_statement (yyvsp[-2].operator.location, 1, yyvsp[-1].node); ; - break;} -case 304: + { (yyval.node) = build_bc_statement ((yyvsp[(1) - (3)].operator).location, 1, (yyvsp[(2) - (3)].node)); ;} + break; + + case 305: + +/* Line 1464 of yacc.c */ #line 1591 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 305: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 306: + +/* Line 1464 of yacc.c */ #line 1593 "./parse.y" -{yyerror ("';' expected"); RECOVER;; - break;} -case 306: + {yyerror ("';' expected"); RECOVER;;} + break; + + case 307: + +/* Line 1464 of yacc.c */ #line 1598 "./parse.y" -{ yyval.node = build_bc_statement (yyvsp[-1].operator.location, 0, NULL_TREE); ; - break;} -case 307: + { (yyval.node) = build_bc_statement ((yyvsp[(1) - (2)].operator).location, 0, NULL_TREE); ;} + break; + + case 308: + +/* Line 1464 of yacc.c */ #line 1600 "./parse.y" -{ yyval.node = build_bc_statement (yyvsp[-2].operator.location, 0, yyvsp[-1].node); ; - break;} -case 308: + { (yyval.node) = build_bc_statement ((yyvsp[(1) - (3)].operator).location, 0, (yyvsp[(2) - (3)].node)); ;} + break; + + case 309: + +/* Line 1464 of yacc.c */ #line 1602 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 309: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 310: + +/* Line 1464 of yacc.c */ #line 1604 "./parse.y" -{yyerror ("';' expected"); RECOVER;; - break;} -case 310: + {yyerror ("';' expected"); RECOVER;;} + break; + + case 311: + +/* Line 1464 of yacc.c */ #line 1609 "./parse.y" -{ yyval.node = build_return (yyvsp[-1].operator.location, NULL_TREE); ; - break;} -case 311: + { (yyval.node) = build_return ((yyvsp[(1) - (2)].operator).location, NULL_TREE); ;} + break; + + case 312: + +/* Line 1464 of yacc.c */ #line 1611 "./parse.y" -{ yyval.node = build_return (yyvsp[-2].operator.location, yyvsp[-1].node); ; - break;} -case 312: + { (yyval.node) = build_return ((yyvsp[(1) - (3)].operator).location, (yyvsp[(2) - (3)].node)); ;} + break; + + case 313: + +/* Line 1464 of yacc.c */ #line 1613 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 313: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 314: + +/* Line 1464 of yacc.c */ #line 1615 "./parse.y" -{yyerror ("';' expected"); RECOVER;; - break;} -case 314: + {yyerror ("';' expected"); RECOVER;;} + break; + + case 315: + +/* Line 1464 of yacc.c */ #line 1620 "./parse.y" -{ - yyval.node = build1 (THROW_EXPR, NULL_TREE, yyvsp[-1].node); - EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; - ; - break;} -case 315: + { + (yyval.node) = build1 (THROW_EXPR, NULL_TREE, (yyvsp[(2) - (3)].node)); + EXPR_WFL_LINECOL ((yyval.node)) = (yyvsp[(1) - (3)].operator).location; + ;} + break; + + case 316: + +/* Line 1464 of yacc.c */ #line 1625 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 316: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 317: + +/* Line 1464 of yacc.c */ #line 1627 "./parse.y" -{yyerror ("';' expected"); RECOVER;; - break;} -case 317: + {yyerror ("';' expected"); RECOVER;;} + break; + + case 318: + +/* Line 1464 of yacc.c */ #line 1632 "./parse.y" -{ - yyval.node = build (SYNCHRONIZED_EXPR, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); - EXPR_WFL_LINECOL (yyval.node) = + { + (yyval.node) = build (SYNCHRONIZED_EXPR, NULL_TREE, (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); + EXPR_WFL_LINECOL ((yyval.node)) = EXPR_WFL_LINECOL (MODIFIER_WFL (SYNCHRONIZED_TK)); - ; - break;} -case 318: + ;} + break; + + case 319: + +/* Line 1464 of yacc.c */ #line 1638 "./parse.y" -{yyerror ("'{' expected"); RECOVER;; - break;} -case 319: + {yyerror ("'{' expected"); RECOVER;;} + break; + + case 320: + +/* Line 1464 of yacc.c */ #line 1640 "./parse.y" -{yyerror ("'(' expected"); RECOVER;; - break;} -case 320: + {yyerror ("'(' expected"); RECOVER;;} + break; + + case 321: + +/* Line 1464 of yacc.c */ #line 1642 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 321: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 322: + +/* Line 1464 of yacc.c */ #line 1644 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 322: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 323: + +/* Line 1464 of yacc.c */ #line 1649 "./parse.y" -{ - if ((1 << yyvsp[0].value) != ACC_SYNCHRONIZED) - fatal ("synchronized was '%d' - yyparse", (1 << yyvsp[0].value)); - ; - break;} -case 323: + { + if ((1 << (yyvsp[(1) - (1)].value)) != ACC_SYNCHRONIZED) + fatal ("synchronized was '%d' - yyparse", (1 << (yyvsp[(1) - (1)].value))); + ;} + break; + + case 324: + +/* Line 1464 of yacc.c */ #line 1657 "./parse.y" -{ yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 324: + { (yyval.node) = build_try_statement ((yyvsp[(1) - (3)].operator).location, (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); ;} + break; + + case 325: + +/* Line 1464 of yacc.c */ #line 1659 "./parse.y" -{ yyval.node = build_try_finally_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; - break;} -case 325: + { (yyval.node) = build_try_finally_statement ((yyvsp[(1) - (3)].operator).location, (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); ;} + break; + + case 326: + +/* Line 1464 of yacc.c */ #line 1661 "./parse.y" -{ yyval.node = build_try_finally_statement - (yyvsp[-3].operator.location, build_try_statement (yyvsp[-3].operator.location, - yyvsp[-2].node, yyvsp[-1].node), yyvsp[0].node); - ; - break;} -case 326: + { (yyval.node) = build_try_finally_statement + ((yyvsp[(1) - (4)].operator).location, build_try_statement ((yyvsp[(1) - (4)].operator).location, + (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node)), (yyvsp[(4) - (4)].node)); + ;} + break; + + case 327: + +/* Line 1464 of yacc.c */ #line 1666 "./parse.y" -{yyerror ("'{' expected"); DRECOVER (try_statement);; - break;} -case 328: + {yyerror ("'{' expected"); DRECOVER (try_statement);;} + break; + + case 329: + +/* Line 1464 of yacc.c */ #line 1672 "./parse.y" -{ - TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; - yyval.node = yyvsp[0].node; - ; - break;} -case 329: + { + TREE_CHAIN ((yyvsp[(2) - (2)].node)) = (yyvsp[(1) - (2)].node); + (yyval.node) = (yyvsp[(2) - (2)].node); + ;} + break; + + case 330: + +/* Line 1464 of yacc.c */ #line 1680 "./parse.y" -{ - java_method_add_stmt (current_function_decl, yyvsp[0].node); + { + java_method_add_stmt (current_function_decl, (yyvsp[(2) - (2)].node)); exit_block (); - yyval.node = yyvsp[-1].node; - ; - break;} -case 330: + (yyval.node) = (yyvsp[(1) - (2)].node); + ;} + break; + + case 331: + +/* Line 1464 of yacc.c */ #line 1688 "./parse.y" -{ + { /* We add a block to define a scope for formal_parameter (CCBP). The formal parameter is declared initialized by the appropriate function call */ tree ccpb = enter_block (); - tree init = build_assignment (ASSIGN_TK, yyvsp[-2].operator.location, - TREE_PURPOSE (yyvsp[-1].node), + tree init = build_assignment (ASSIGN_TK, (yyvsp[(2) - (4)].operator).location, + TREE_PURPOSE ((yyvsp[(3) - (4)].node)), soft_exceptioninfo_call_node); - declare_local_variables (0, TREE_VALUE (yyvsp[-1].node), - build_tree_list (TREE_PURPOSE (yyvsp[-1].node), + declare_local_variables (0, TREE_VALUE ((yyvsp[(3) - (4)].node)), + build_tree_list (TREE_PURPOSE ((yyvsp[(3) - (4)].node)), init)); - yyval.node = build1 (CATCH_EXPR, NULL_TREE, ccpb); - EXPR_WFL_LINECOL (yyval.node) = yyvsp[-3].operator.location; - ; - break;} -case 331: + (yyval.node) = build1 (CATCH_EXPR, NULL_TREE, ccpb); + EXPR_WFL_LINECOL ((yyval.node)) = (yyvsp[(1) - (4)].operator).location; + ;} + break; + + case 332: + +/* Line 1464 of yacc.c */ #line 1704 "./parse.y" -{yyerror ("'(' expected"); RECOVER;; - break;} -case 332: + {yyerror ("'(' expected"); RECOVER;;} + break; + + case 333: + +/* Line 1464 of yacc.c */ #line 1706 "./parse.y" -{yyerror ("Missing term or ')' expected"); DRECOVER (2);; - break;} -case 333: + {yyerror ("Missing term or ')' expected"); DRECOVER (2);;} + break; + + case 334: + +/* Line 1464 of yacc.c */ #line 1708 "./parse.y" -{yyerror ("')' expected"); DRECOVER (1);; - break;} -case 334: + {yyerror ("')' expected"); DRECOVER (1);;} + break; + + case 335: + +/* Line 1464 of yacc.c */ #line 1713 "./parse.y" -{ yyval.node = yyvsp[0].node; ; - break;} -case 335: + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} + break; + + case 336: + +/* Line 1464 of yacc.c */ #line 1715 "./parse.y" -{yyerror ("'{' expected"); RECOVER; ; - break;} -case 339: + {yyerror ("'{' expected"); RECOVER; ;} + break; + + case 340: + +/* Line 1464 of yacc.c */ #line 1727 "./parse.y" -{ yyval.node = build_this (yyvsp[0].operator.location); ; - break;} -case 340: + { (yyval.node) = build_this ((yyvsp[(1) - (1)].operator).location); ;} + break; + + case 341: + +/* Line 1464 of yacc.c */ #line 1729 "./parse.y" -{yyval.node = yyvsp[-1].node;; - break;} -case 345: + {(yyval.node) = (yyvsp[(2) - (3)].node);;} + break; + + case 346: + +/* Line 1464 of yacc.c */ #line 1738 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("named class literals"); ; - break;} -case 346: + { (yyval.node) = parse_jdk1_1_error ("named class literals"); ;} + break; + + case 347: + +/* Line 1464 of yacc.c */ #line 1740 "./parse.y" -{ yyval.node = build_class_ref (yyvsp[-2].node); ; - break;} -case 347: + { (yyval.node) = build_class_ref ((yyvsp[(1) - (3)].node)); ;} + break; + + case 348: + +/* Line 1464 of yacc.c */ #line 1742 "./parse.y" -{ yyval.node = build_class_ref (void_type_node); ; - break;} -case 348: + { (yyval.node) = build_class_ref (void_type_node); ;} + break; + + case 349: + +/* Line 1464 of yacc.c */ #line 1747 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("class literals"); ; - break;} -case 349: + { (yyval.node) = parse_jdk1_1_error ("class literals"); ;} + break; + + case 350: + +/* Line 1464 of yacc.c */ #line 1749 "./parse.y" -{yyerror ("')' expected"); RECOVER;; - break;} -case 350: + {yyerror ("')' expected"); RECOVER;;} + break; + + case 351: + +/* Line 1464 of yacc.c */ #line 1751 "./parse.y" -{yyerror ("'class' or 'this' expected" ); RECOVER;; - break;} -case 351: + {yyerror ("'class' or 'this' expected" ); RECOVER;;} + break; + + case 352: + +/* Line 1464 of yacc.c */ #line 1753 "./parse.y" -{yyerror ("'class' expected" ); RECOVER;; - break;} -case 352: + {yyerror ("'class' expected" ); RECOVER;;} + break; + + case 353: + +/* Line 1464 of yacc.c */ #line 1755 "./parse.y" -{yyerror ("'class' expected" ); RECOVER;; - break;} -case 353: + {yyerror ("'class' expected" ); RECOVER;;} + break; + + case 354: + +/* Line 1464 of yacc.c */ #line 1760 "./parse.y" -{ yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); ; - break;} -case 354: + { (yyval.node) = build_new_invocation ((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].node)); ;} + break; + + case 355: + +/* Line 1464 of yacc.c */ #line 1762 "./parse.y" -{ yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); ; - break;} -case 355: + { (yyval.node) = build_new_invocation ((yyvsp[(2) - (4)].node), NULL_TREE); ;} + break; + + case 356: + +/* Line 1464 of yacc.c */ #line 1767 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("inner class instance creation"); ; - break;} -case 356: + { (yyval.node) = parse_jdk1_1_error ("inner class instance creation"); ;} + break; + + case 357: + +/* Line 1464 of yacc.c */ #line 1769 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("inner class instance creation"); ; - break;} -case 361: + { (yyval.node) = parse_jdk1_1_error ("inner class instance creation"); ;} + break; + + case 362: + +/* Line 1464 of yacc.c */ #line 1778 "./parse.y" -{yyerror ("'(' expected"); DRECOVER(new_1);; - break;} -case 362: + {yyerror ("'(' expected"); DRECOVER(new_1);;} + break; + + case 363: + +/* Line 1464 of yacc.c */ #line 1780 "./parse.y" -{yyerror ("'(' expected"); RECOVER;; - break;} -case 363: + {yyerror ("'(' expected"); RECOVER;;} + break; + + case 364: + +/* Line 1464 of yacc.c */ #line 1782 "./parse.y" -{yyerror ("')' or term expected"); RECOVER;; - break;} -case 364: + {yyerror ("')' or term expected"); RECOVER;;} + break; + + case 365: + +/* Line 1464 of yacc.c */ #line 1784 "./parse.y" -{yyerror ("')' expected"); RECOVER;; - break;} -case 365: + {yyerror ("')' expected"); RECOVER;;} + break; + + case 366: + +/* Line 1464 of yacc.c */ #line 1786 "./parse.y" -{YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;; - break;} -case 366: + {YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;;} + break; + + case 367: + +/* Line 1464 of yacc.c */ #line 1788 "./parse.y" -{yyerror ("'(' expected"); RECOVER;; - break;} -case 369: + {yyerror ("'(' expected"); RECOVER;;} + break; + + case 370: + +/* Line 1464 of yacc.c */ #line 1798 "./parse.y" -{ - yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, NULL_TREE); + { + (yyval.node) = tree_cons (NULL_TREE, (yyvsp[(1) - (1)].node), NULL_TREE); ctxp->formal_parameter_number = 1; - ; - break;} -case 370: + ;} + break; + + case 371: + +/* Line 1464 of yacc.c */ #line 1803 "./parse.y" -{ + { ctxp->formal_parameter_number += 1; - yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node); - ; - break;} -case 371: + (yyval.node) = tree_cons (NULL_TREE, (yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); + ;} + break; + + case 372: + +/* Line 1464 of yacc.c */ #line 1808 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 372: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 373: + +/* Line 1464 of yacc.c */ #line 1813 "./parse.y" -{ yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; - break;} -case 373: + { (yyval.node) = build_newarray_node ((yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node), 0); ;} + break; + + case 374: + +/* Line 1464 of yacc.c */ #line 1815 "./parse.y" -{ yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; - break;} -case 374: + { (yyval.node) = build_newarray_node ((yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node), 0); ;} + break; + + case 375: + +/* Line 1464 of yacc.c */ #line 1817 "./parse.y" -{ yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, CURRENT_OSB (ctxp));; - break;} -case 375: + { (yyval.node) = build_newarray_node ((yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), CURRENT_OSB (ctxp));;} + break; + + case 376: + +/* Line 1464 of yacc.c */ #line 1819 "./parse.y" -{ yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, CURRENT_OSB (ctxp));; - break;} -case 376: + { (yyval.node) = build_newarray_node ((yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), CURRENT_OSB (ctxp));;} + break; + + case 377: + +/* Line 1464 of yacc.c */ #line 1823 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("anonymous array"); ; - break;} -case 377: + { (yyval.node) = parse_jdk1_1_error ("anonymous array"); ;} + break; + + case 378: + +/* Line 1464 of yacc.c */ #line 1825 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("anonymous array"); ; - break;} -case 378: + { (yyval.node) = parse_jdk1_1_error ("anonymous array"); ;} + break; + + case 379: + +/* Line 1464 of yacc.c */ #line 1827 "./parse.y" -{yyerror ("'[' expected"); DRECOVER ("]");; - break;} -case 379: + {yyerror ("'[' expected"); DRECOVER ("]");;} + break; + + case 380: + +/* Line 1464 of yacc.c */ #line 1829 "./parse.y" -{yyerror ("']' expected"); RECOVER;; - break;} -case 380: + {yyerror ("']' expected"); RECOVER;;} + break; + + case 381: + +/* Line 1464 of yacc.c */ #line 1834 "./parse.y" -{ yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ; - break;} -case 381: + { (yyval.node) = build_tree_list (NULL_TREE, (yyvsp[(1) - (1)].node)); ;} + break; + + case 382: + +/* Line 1464 of yacc.c */ #line 1836 "./parse.y" -{ yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); ; - break;} -case 382: + { (yyval.node) = tree_cons (NULL_TREE, (yyvsp[(2) - (2)].node), (yyval.node)); ;} + break; + + case 383: + +/* Line 1464 of yacc.c */ #line 1841 "./parse.y" -{ - EXPR_WFL_LINECOL (yyvsp[-1].node) = yyvsp[-2].operator.location; - yyval.node = yyvsp[-1].node; - ; - break;} -case 383: + { + EXPR_WFL_LINECOL ((yyvsp[(2) - (3)].node)) = (yyvsp[(1) - (3)].operator).location; + (yyval.node) = (yyvsp[(2) - (3)].node); + ;} + break; + + case 384: + +/* Line 1464 of yacc.c */ #line 1846 "./parse.y" -{yyerror ("']' expected"); RECOVER;; - break;} -case 384: + {yyerror ("']' expected"); RECOVER;;} + break; + + case 385: + +/* Line 1464 of yacc.c */ #line 1848 "./parse.y" -{ + { yyerror ("Missing term"); yyerror ("']' expected"); RECOVER; - ; - break;} -case 385: + ;} + break; + + case 386: + +/* Line 1464 of yacc.c */ #line 1857 "./parse.y" -{ + { int allocate = 0; /* If not initialized, allocate memory for the osb numbers stack */ @@ -4253,712 +5860,970 @@ } ctxp->osb_depth++; CURRENT_OSB (ctxp) = 1; - ; - break;} -case 386: + ;} + break; + + case 387: + +/* Line 1464 of yacc.c */ #line 1883 "./parse.y" -{ CURRENT_OSB (ctxp)++; ; - break;} -case 387: + { CURRENT_OSB (ctxp)++; ;} + break; + + case 388: + +/* Line 1464 of yacc.c */ #line 1885 "./parse.y" -{ yyerror ("']' expected"); RECOVER;; - break;} -case 388: + { yyerror ("']' expected"); RECOVER;;} + break; + + case 389: + +/* Line 1464 of yacc.c */ #line 1890 "./parse.y" -{ yyval.node = make_qualified_primary (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; - break;} -case 389: + { (yyval.node) = make_qualified_primary ((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].operator).location); ;} + break; + + case 390: + +/* Line 1464 of yacc.c */ #line 1894 "./parse.y" -{ + { tree super_wfl = build_wfl_node (super_identifier_node); - EXPR_WFL_LINECOL (super_wfl) = yyvsp[-2].operator.location; - yyval.node = make_qualified_name (super_wfl, yyvsp[0].node, yyvsp[-1].operator.location); - ; - break;} -case 390: + EXPR_WFL_LINECOL (super_wfl) = (yyvsp[(1) - (3)].operator).location; + (yyval.node) = make_qualified_name (super_wfl, (yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].operator).location); + ;} + break; + + case 391: + +/* Line 1464 of yacc.c */ #line 1901 "./parse.y" -{yyerror ("Field expected"); DRECOVER (super_field_acces);; - break;} -case 391: + {yyerror ("Field expected"); DRECOVER (super_field_acces);;} + break; + + case 392: + +/* Line 1464 of yacc.c */ #line 1906 "./parse.y" -{ yyval.node = build_method_invocation (yyvsp[-2].node, NULL_TREE); ; - break;} -case 392: + { (yyval.node) = build_method_invocation ((yyvsp[(1) - (3)].node), NULL_TREE); ;} + break; + + case 393: + +/* Line 1464 of yacc.c */ #line 1908 "./parse.y" -{ yyval.node = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); ; - break;} -case 393: + { (yyval.node) = build_method_invocation ((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node)); ;} + break; + + case 394: + +/* Line 1464 of yacc.c */ #line 1910 "./parse.y" -{ - if (TREE_CODE (yyvsp[-4].node) == THIS_EXPR) - yyval.node = build_this_super_qualified_invocation - (1, yyvsp[-2].node, NULL_TREE, 0, yyvsp[-3].operator.location); + { + if (TREE_CODE ((yyvsp[(1) - (5)].node)) == THIS_EXPR) + (yyval.node) = build_this_super_qualified_invocation + (1, (yyvsp[(3) - (5)].node), NULL_TREE, 0, (yyvsp[(2) - (5)].operator).location); else { - tree invok = build_method_invocation (yyvsp[-2].node, NULL_TREE); - yyval.node = make_qualified_primary (yyvsp[-4].node, invok, yyvsp[-3].operator.location); + tree invok = build_method_invocation ((yyvsp[(3) - (5)].node), NULL_TREE); + (yyval.node) = make_qualified_primary ((yyvsp[(1) - (5)].node), invok, (yyvsp[(2) - (5)].operator).location); } - ; - break;} -case 394: + ;} + break; + + case 395: + +/* Line 1464 of yacc.c */ #line 1921 "./parse.y" -{ - if (TREE_CODE (yyvsp[-5].node) == THIS_EXPR) - yyval.node = build_this_super_qualified_invocation - (1, yyvsp[-3].node, yyvsp[-1].node, 0, yyvsp[-4].operator.location); + { + if (TREE_CODE ((yyvsp[(1) - (6)].node)) == THIS_EXPR) + (yyval.node) = build_this_super_qualified_invocation + (1, (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), 0, (yyvsp[(2) - (6)].operator).location); else { - tree invok = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); - yyval.node = make_qualified_primary (yyvsp[-5].node, invok, yyvsp[-4].operator.location); + tree invok = build_method_invocation ((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node)); + (yyval.node) = make_qualified_primary ((yyvsp[(1) - (6)].node), invok, (yyvsp[(2) - (6)].operator).location); } - ; - break;} -case 395: + ;} + break; + + case 396: + +/* Line 1464 of yacc.c */ #line 1932 "./parse.y" -{ - yyval.node = build_this_super_qualified_invocation - (0, yyvsp[-2].node, NULL_TREE, yyvsp[-4].operator.location, yyvsp[-3].operator.location); - ; - break;} -case 396: + { + (yyval.node) = build_this_super_qualified_invocation + (0, (yyvsp[(3) - (5)].node), NULL_TREE, (yyvsp[(1) - (5)].operator).location, (yyvsp[(2) - (5)].operator).location); + ;} + break; + + case 397: + +/* Line 1464 of yacc.c */ #line 1937 "./parse.y" -{ - yyval.node = build_this_super_qualified_invocation - (0, yyvsp[-3].node, yyvsp[-1].node, yyvsp[-5].operator.location, yyvsp[-4].operator.location); - ; - break;} -case 397: + { + (yyval.node) = build_this_super_qualified_invocation + (0, (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yyvsp[(1) - (6)].operator).location, (yyvsp[(2) - (6)].operator).location); + ;} + break; + + case 398: + +/* Line 1464 of yacc.c */ #line 1946 "./parse.y" -{ yyerror ("'(' expected"); DRECOVER (method_invocation); ; - break;} -case 398: + { yyerror ("'(' expected"); DRECOVER (method_invocation); ;} + break; + + case 399: + +/* Line 1464 of yacc.c */ #line 1948 "./parse.y" -{ yyerror ("'(' expected"); DRECOVER (method_invocation); ; - break;} -case 399: + { yyerror ("'(' expected"); DRECOVER (method_invocation); ;} + break; + + case 400: + +/* Line 1464 of yacc.c */ #line 1953 "./parse.y" -{ yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; - break;} -case 400: + { (yyval.node) = build_array_ref ((yyvsp[(2) - (4)].operator).location, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node)); ;} + break; + + case 401: + +/* Line 1464 of yacc.c */ #line 1955 "./parse.y" -{ yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; - break;} -case 401: + { (yyval.node) = build_array_ref ((yyvsp[(2) - (4)].operator).location, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node)); ;} + break; + + case 402: + +/* Line 1464 of yacc.c */ #line 1957 "./parse.y" -{ + { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); - ; - break;} -case 402: + ;} + break; + + case 403: + +/* Line 1464 of yacc.c */ #line 1962 "./parse.y" -{ + { yyerror ("']' expected"); DRECOVER(array_access); - ; - break;} -case 403: + ;} + break; + + case 404: + +/* Line 1464 of yacc.c */ #line 1967 "./parse.y" -{ + { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); - ; - break;} -case 404: + ;} + break; + + case 405: + +/* Line 1464 of yacc.c */ #line 1972 "./parse.y" -{ + { yyerror ("']' expected"); DRECOVER(array_access); - ; - break;} -case 409: + ;} + break; + + case 410: + +/* Line 1464 of yacc.c */ #line 1987 "./parse.y" -{ yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; - break;} -case 410: + { (yyval.node) = build_incdec ((yyvsp[(2) - (2)].operator).token, (yyvsp[(2) - (2)].operator).location, (yyvsp[(1) - (2)].node), 1); ;} + break; + + case 411: + +/* Line 1464 of yacc.c */ #line 1992 "./parse.y" -{ yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; - break;} -case 413: + { (yyval.node) = build_incdec ((yyvsp[(2) - (2)].operator).token, (yyvsp[(2) - (2)].operator).location, (yyvsp[(1) - (2)].node), 1); ;} + break; + + case 414: + +/* Line 1464 of yacc.c */ #line 1999 "./parse.y" -{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; - break;} -case 414: + {(yyval.node) = build_unaryop ((yyvsp[(1) - (2)].operator).token, (yyvsp[(1) - (2)].operator).location, (yyvsp[(2) - (2)].node)); ;} + break; + + case 415: + +/* Line 1464 of yacc.c */ #line 2001 "./parse.y" -{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; - break;} -case 416: + {(yyval.node) = build_unaryop ((yyvsp[(1) - (2)].operator).token, (yyvsp[(1) - (2)].operator).location, (yyvsp[(2) - (2)].node)); ;} + break; + + case 417: + +/* Line 1464 of yacc.c */ #line 2004 "./parse.y" -{yyerror ("Missing term"); RECOVER; - break;} -case 417: + {yyerror ("Missing term"); RECOVER;} + break; + + case 418: + +/* Line 1464 of yacc.c */ #line 2006 "./parse.y" -{yyerror ("Missing term"); RECOVER; - break;} -case 418: + {yyerror ("Missing term"); RECOVER;} + break; + + case 419: + +/* Line 1464 of yacc.c */ #line 2011 "./parse.y" -{yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; - break;} -case 419: + {(yyval.node) = build_incdec ((yyvsp[(1) - (2)].operator).token, (yyvsp[(1) - (2)].operator).location, (yyvsp[(2) - (2)].node), 0); ;} + break; + + case 420: + +/* Line 1464 of yacc.c */ #line 2013 "./parse.y" -{yyerror ("Missing term"); RECOVER; - break;} -case 420: + {yyerror ("Missing term"); RECOVER;} + break; + + case 421: + +/* Line 1464 of yacc.c */ #line 2018 "./parse.y" -{yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; - break;} -case 421: + {(yyval.node) = build_incdec ((yyvsp[(1) - (2)].operator).token, (yyvsp[(1) - (2)].operator).location, (yyvsp[(2) - (2)].node), 0); ;} + break; + + case 422: + +/* Line 1464 of yacc.c */ #line 2020 "./parse.y" -{yyerror ("Missing term"); RECOVER; - break;} -case 423: + {yyerror ("Missing term"); RECOVER;} + break; + + case 424: + +/* Line 1464 of yacc.c */ #line 2026 "./parse.y" -{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; - break;} -case 424: + {(yyval.node) = build_unaryop ((yyvsp[(1) - (2)].operator).token, (yyvsp[(1) - (2)].operator).location, (yyvsp[(2) - (2)].node)); ;} + break; + + case 425: + +/* Line 1464 of yacc.c */ #line 2028 "./parse.y" -{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; - break;} -case 426: + {(yyval.node) = build_unaryop ((yyvsp[(1) - (2)].operator).token, (yyvsp[(1) - (2)].operator).location, (yyvsp[(2) - (2)].node)); ;} + break; + + case 427: + +/* Line 1464 of yacc.c */ #line 2031 "./parse.y" -{yyerror ("Missing term"); RECOVER; - break;} -case 427: + {yyerror ("Missing term"); RECOVER;} + break; + + case 428: + +/* Line 1464 of yacc.c */ #line 2033 "./parse.y" -{yyerror ("Missing term"); RECOVER; - break;} -case 428: + {yyerror ("Missing term"); RECOVER;} + break; + + case 429: + +/* Line 1464 of yacc.c */ #line 2038 "./parse.y" -{ - tree type = yyvsp[-3].node; + { + tree type = (yyvsp[(2) - (5)].node); while (CURRENT_OSB (ctxp)--) type = build_java_array_type (type, -1); ctxp->osb_depth--; - yyval.node = build_cast (yyvsp[-4].operator.location, type, yyvsp[0].node); - ; - break;} -case 429: + (yyval.node) = build_cast ((yyvsp[(1) - (5)].operator).location, type, (yyvsp[(5) - (5)].node)); + ;} + break; + + case 430: + +/* Line 1464 of yacc.c */ #line 2046 "./parse.y" -{ yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; - break;} -case 430: + { (yyval.node) = build_cast ((yyvsp[(1) - (4)].operator).location, (yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].node)); ;} + break; + + case 431: + +/* Line 1464 of yacc.c */ #line 2048 "./parse.y" -{ yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; - break;} -case 431: + { (yyval.node) = build_cast ((yyvsp[(1) - (4)].operator).location, (yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].node)); ;} + break; + + case 432: + +/* Line 1464 of yacc.c */ #line 2050 "./parse.y" -{ + { char *ptr; while (CURRENT_OSB (ctxp)--) obstack_1grow (&temporary_obstack, '['); ctxp->osb_depth--; obstack_grow0 (&temporary_obstack, - IDENTIFIER_POINTER (EXPR_WFL_NODE (yyvsp[-3].node)), - IDENTIFIER_LENGTH (EXPR_WFL_NODE (yyvsp[-3].node))); + IDENTIFIER_POINTER (EXPR_WFL_NODE ((yyvsp[(2) - (5)].node))), + IDENTIFIER_LENGTH (EXPR_WFL_NODE ((yyvsp[(2) - (5)].node)))); ptr = obstack_finish (&temporary_obstack); - EXPR_WFL_NODE (yyvsp[-3].node) = get_identifier (ptr); - yyval.node = build_cast (yyvsp[-4].operator.location, yyvsp[-3].node, yyvsp[0].node); - ; - break;} -case 432: + EXPR_WFL_NODE ((yyvsp[(2) - (5)].node)) = get_identifier (ptr); + (yyval.node) = build_cast ((yyvsp[(1) - (5)].operator).location, (yyvsp[(2) - (5)].node), (yyvsp[(5) - (5)].node)); + ;} + break; + + case 433: + +/* Line 1464 of yacc.c */ #line 2063 "./parse.y" -{yyerror ("']' expected, invalid type expression");; - break;} -case 433: + {yyerror ("']' expected, invalid type expression");;} + break; + + case 434: + +/* Line 1464 of yacc.c */ #line 2065 "./parse.y" -{ + { if (ctxp->prevent_ese != lineno) yyerror ("Invalid type expression"); RECOVER; RECOVER; - ; - break;} -case 434: + ;} + break; + + case 435: + +/* Line 1464 of yacc.c */ #line 2071 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 435: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 436: + +/* Line 1464 of yacc.c */ #line 2073 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 436: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 437: + +/* Line 1464 of yacc.c */ #line 2075 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 438: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 439: + +/* Line 1464 of yacc.c */ #line 2081 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), - yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 439: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), + (yyvsp[(2) - (3)].operator).location, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 440: + +/* Line 1464 of yacc.c */ #line 2086 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 440: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 441: + +/* Line 1464 of yacc.c */ #line 2091 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 441: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 442: + +/* Line 1464 of yacc.c */ #line 2096 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 442: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 443: + +/* Line 1464 of yacc.c */ #line 2098 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 443: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 444: + +/* Line 1464 of yacc.c */ #line 2100 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 445: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 446: + +/* Line 1464 of yacc.c */ #line 2106 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 446: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 447: + +/* Line 1464 of yacc.c */ #line 2111 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 447: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 448: + +/* Line 1464 of yacc.c */ #line 2116 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 448: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 449: + +/* Line 1464 of yacc.c */ #line 2118 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 450: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 451: + +/* Line 1464 of yacc.c */ #line 2124 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 451: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 452: + +/* Line 1464 of yacc.c */ #line 2129 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 452: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 453: + +/* Line 1464 of yacc.c */ #line 2134 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 453: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 454: + +/* Line 1464 of yacc.c */ #line 2139 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 454: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 455: + +/* Line 1464 of yacc.c */ #line 2141 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 455: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 456: + +/* Line 1464 of yacc.c */ #line 2143 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 457: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 458: + +/* Line 1464 of yacc.c */ #line 2149 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 458: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 459: + +/* Line 1464 of yacc.c */ #line 2154 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 459: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 460: + +/* Line 1464 of yacc.c */ #line 2159 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 460: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 461: + +/* Line 1464 of yacc.c */ #line 2164 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 461: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 462: + +/* Line 1464 of yacc.c */ #line 2169 "./parse.y" -{ yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; - break;} -case 462: + { (yyval.node) = build_binop (INSTANCEOF_EXPR, (yyvsp[(2) - (3)].operator).location, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;} + break; + + case 463: + +/* Line 1464 of yacc.c */ #line 2171 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 463: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 464: + +/* Line 1464 of yacc.c */ #line 2173 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 464: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 465: + +/* Line 1464 of yacc.c */ #line 2175 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 465: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 466: + +/* Line 1464 of yacc.c */ #line 2177 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 466: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 467: + +/* Line 1464 of yacc.c */ #line 2179 "./parse.y" -{yyerror ("Invalid reference type"); RECOVER;; - break;} -case 468: + {yyerror ("Invalid reference type"); RECOVER;;} + break; + + case 469: + +/* Line 1464 of yacc.c */ #line 2185 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 469: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 470: + +/* Line 1464 of yacc.c */ #line 2190 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 470: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 471: + +/* Line 1464 of yacc.c */ #line 2195 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 471: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 472: + +/* Line 1464 of yacc.c */ #line 2197 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 473: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 474: + +/* Line 1464 of yacc.c */ #line 2203 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 474: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 475: + +/* Line 1464 of yacc.c */ #line 2208 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 476: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 477: + +/* Line 1464 of yacc.c */ #line 2214 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 477: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 478: + +/* Line 1464 of yacc.c */ #line 2219 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 479: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 480: + +/* Line 1464 of yacc.c */ #line 2225 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 480: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 481: + +/* Line 1464 of yacc.c */ #line 2230 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 482: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 483: + +/* Line 1464 of yacc.c */ #line 2236 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 483: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 484: + +/* Line 1464 of yacc.c */ #line 2241 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 485: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 486: + +/* Line 1464 of yacc.c */ #line 2247 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; - break;} -case 486: + { + (yyval.node) = build_binop (BINOP_LOOKUP ((yyvsp[(2) - (3)].operator).token), (yyvsp[(2) - (3)].operator).location, + (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + ;} + break; + + case 487: + +/* Line 1464 of yacc.c */ #line 2252 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} -case 488: + {yyerror ("Missing term"); RECOVER;;} + break; + + case 489: + +/* Line 1464 of yacc.c */ #line 2258 "./parse.y" -{ - yyval.node = build (CONDITIONAL_EXPR, NULL_TREE, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); - EXPR_WFL_LINECOL (yyval.node) = yyvsp[-3].operator.location; - ; - break;} -case 489: + { + (yyval.node) = build (CONDITIONAL_EXPR, NULL_TREE, (yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); + EXPR_WFL_LINECOL ((yyval.node)) = (yyvsp[(2) - (5)].operator).location; + ;} + break; + + case 490: + +/* Line 1464 of yacc.c */ #line 2263 "./parse.y" -{ + { YYERROR_NOW; yyerror ("Missing term"); DRECOVER (1); - ; - break;} -case 490: + ;} + break; + + case 491: + +/* Line 1464 of yacc.c */ #line 2269 "./parse.y" -{yyerror ("Missing term"); DRECOVER (2);; - break;} -case 491: + {yyerror ("Missing term"); DRECOVER (2);;} + break; + + case 492: + +/* Line 1464 of yacc.c */ #line 2271 "./parse.y" -{yyerror ("Missing term"); DRECOVER (3);; - break;} -case 494: + {yyerror ("Missing term"); DRECOVER (3);;} + break; + + case 495: + +/* Line 1464 of yacc.c */ #line 2281 "./parse.y" -{ yyval.node = build_assignment (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; - break;} -case 495: + { (yyval.node) = build_assignment ((yyvsp[(2) - (3)].operator).token, (yyvsp[(2) - (3)].operator).location, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;} + break; + + case 496: + +/* Line 1464 of yacc.c */ #line 2283 "./parse.y" -{ + { if (ctxp->prevent_ese != lineno) yyerror ("Missing term"); DRECOVER (assign); - ; - break;} -} - /* the action file gets copied in in place of this dollarsign */ -#line 542 "/usr/lib/bison.simple" - - yyvsp -= yylen; - yyssp -= yylen; -#ifdef YYLSP_NEEDED - yylsp -= yylen; -#endif + ;} + break; -#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; +/* Line 1464 of yacc.c */ +#line 6616 "parse.c" + default: break; } - else - { - yylsp->last_line = (yylsp+yylen-1)->last_line; - yylsp->last_column = (yylsp+yylen-1)->last_column; - } -#endif + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); - /* 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. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + /* 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]; - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else - yystate = yydefgoto[yyn - YYNTBASE]; + yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; -yyerrlab: /* here on detecting error */ - if (! yyerrstatus) - /* If not already recovering from an error, report this error. */ +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) { ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC_MAXIMUM; + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yyalloc); + if (yymsg) + yymsg_alloc = yyalloc; + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + } -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - 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"); + if (0 < yysize && yysize <= yymsg_alloc) + { + (void) yysyntax_error (yymsg, yystate, yychar); + yyerror (yymsg); + } + else + { + yyerror (YY_("syntax error")); + if (yysize != 0) + goto yyexhaustedlab; + } + } +#endif } - 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 + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ - yychar = YYEMPTY; + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } } - /* Else will try to reuse lookahead token - after shifting the error token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; -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 +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; -yyerrpop: /* pop the current state because it cannot handle the error token */ - if (yyssp == yyss) YYABORT; - yyvsp--; - yystate = *--yyssp; -#ifdef YYLSP_NEEDED - yylsp--; -#endif +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ -#if YYDEBUG != 0 - if (yydebug) + for (;;) { - 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 != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); } - else if (yyn == 0) - goto yyerrpop; - if (yyn == YYFINAL) - YYACCEPT; + *++yyvsp = yylval; -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting error token, "); -#endif - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 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); +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#if !defined(yyoverflow) || YYERROR_VERBOSE +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); #endif - } - return 1; + /* Make sure YYID is used. */ + return YYID (yyresult); } + + + +/* Line 1684 of yacc.c */ #line 2309 "./parse.y" @@ -12836,7 +14701,7 @@ /* Check on cast that are proven correct at compile time */ if (JNUMERIC_TYPE_P (cast_type) && JNUMERIC_TYPE_P (op_type)) { - static tree convert_narrow (); + tree convert_narrow (); /* Same type */ if (cast_type == op_type) return node; @@ -14427,3 +16292,4 @@ { } #endif + diff -urN gcc-2.95.2.org/gcc/java/parse.y gcc-2.95.2/gcc/java/parse.y --- gcc-2.95.2.org/gcc/java/parse.y 1999-06-27 20:56:22.000000000 -0700 +++ gcc-2.95.2/gcc/java/parse.y 2011-03-20 04:12:11.000000000 -0700 @@ -378,8 +378,8 @@ %type name simple_name qualified_name %type class_declaration type_declaration compilation_unit field_declaration method_declaration extends_interfaces - interfaces interface_type_list - interface_declaration class_member_declaration + interfaces + interface_declaration import_declarations package_declaration type_declarations interface_body interface_member_declaration constant_declaration @@ -411,7 +411,7 @@ method_invocation array_access something_dot_new argument_list postfix_expression while_expression post_increment_expression post_decrement_expression - unary_expression_not_plus_minus unary_expression + unary_expression pre_increment_expression pre_decrement_expression unary_expression_not_plus_minus cast_expression multiplicative_expression additive_expression @@ -10182,7 +10182,7 @@ /* Check on cast that are proven correct at compile time */ if (JNUMERIC_TYPE_P (cast_type) && JNUMERIC_TYPE_P (op_type)) { - static tree convert_narrow (); + tree convert_narrow (); /* Same type */ if (cast_type == op_type) return node;