diff -Nrcpad gcc-3.3.5/boehm-gc/ChangeLog gcc-3.3.6/boehm-gc/ChangeLog *** gcc-3.3.5/boehm-gc/ChangeLog 2004-09-30 16:47:55.000000000 +0000 --- gcc-3.3.6/boehm-gc/ChangeLog 2005-05-03 10:55:55.000000000 +0000 *************** *** 1,3 **** --- 1,18 ---- + 2005-05-03 Release Manager + + * GCC 3.3.6 Released. + + 2005-04-17 David S. Miller + + * include/private/gcconfig.h (sparc-linux): Use LINUX_STACKBOTTOM. + * os_dep.c (GC_linux_stack_base): Check for bug present in some + Sparc glibc variants where __libc_stack_end is erroneously set + to "1". Fallback to procfs code in that case. + + 2005-04-11 Richard Henderson + + * include/private/gcconfig.h (alpha-linux): Use LINUX_STACKBOTTOM. + 2004-09-30 Release Manager * GCC 3.3.5 Released. diff -Nrcpad gcc-3.3.5/boehm-gc/include/private/gcconfig.h gcc-3.3.6/boehm-gc/include/private/gcconfig.h *** gcc-3.3.5/boehm-gc/include/private/gcconfig.h 2004-04-07 23:06:50.000000000 +0000 --- gcc-3.3.6/boehm-gc/include/private/gcconfig.h 2005-04-18 22:25:05.000000000 +0000 *************** *** 821,832 **** # define SVR4 # ifdef __arch64__ /* libc_stack_end is not set reliably for sparc64 */ - # define STACKBOTTOM ((ptr_t) 0x80000000000) # define DATASTART (ptr_t)GC_SysVGetDataStart(0x100000, _etext) # else - # define LINUX_STACKBOTTOM # define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, _etext) # endif # endif # ifdef OPENBSD # define OS_TYPE "OPENBSD" --- 821,831 ---- # define SVR4 # ifdef __arch64__ /* libc_stack_end is not set reliably for sparc64 */ # define DATASTART (ptr_t)GC_SysVGetDataStart(0x100000, _etext) # else # define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, _etext) # endif + # define LINUX_STACKBOTTOM # endif # ifdef OPENBSD # define OS_TYPE "OPENBSD" *************** *** 1387,1393 **** # ifdef LINUX # define OS_TYPE "LINUX" # define CPP_WORDSZ 64 ! # define STACKBOTTOM ((ptr_t) 0x120000000) # ifdef __ELF__ # define SEARCH_FOR_DATA_START # define DATASTART GC_data_start --- 1386,1392 ---- # ifdef LINUX # define OS_TYPE "LINUX" # define CPP_WORDSZ 64 ! # define LINUX_STACKBOTTOM # ifdef __ELF__ # define SEARCH_FOR_DATA_START # define DATASTART GC_data_start diff -Nrcpad gcc-3.3.5/boehm-gc/os_dep.c gcc-3.3.6/boehm-gc/os_dep.c *** gcc-3.3.5/boehm-gc/os_dep.c 2002-07-19 08:54:43.000000000 +0000 --- gcc-3.3.6/boehm-gc/os_dep.c 2005-04-18 22:25:05.000000000 +0000 *************** ptr_t GC_get_stack_base() *** 710,716 **** --- 710,725 ---- /* First try the easy way. This should work for glibc 2.2 */ if (0 != &__libc_stack_end) { + # ifdef SPARC + /* Older versions of glibc for 64-bit Sparc do not set + * this variable correctly, it gets set to either zero + * or one. + */ + if (__libc_stack_end != (ptr_t) (unsigned long)0x1) + return __libc_stack_end; + # else return __libc_stack_end; + # endif } f = open("/proc/self/stat", O_RDONLY); if (f < 0 || STAT_READ(f, stat_buf, STAT_BUF_SIZE) < 2 * STAT_SKIP) { diff -Nrcpad gcc-3.3.5/fastjar/ChangeLog gcc-3.3.6/fastjar/ChangeLog *** gcc-3.3.5/fastjar/ChangeLog 2004-09-30 16:47:08.000000000 +0000 --- gcc-3.3.6/fastjar/ChangeLog 2005-05-03 10:55:12.000000000 +0000 *************** *** 1,3 **** --- 1,7 ---- + 2005-05-03 Release Manager + + * GCC 3.3.6 Released. + 2004-09-30 Release Manager * GCC 3.3.5 Released. diff -Nrcpad gcc-3.3.5/fastjar/fastjar.info gcc-3.3.6/fastjar/fastjar.info *** gcc-3.3.5/fastjar/fastjar.info 2004-09-30 17:50:06.000000000 +0000 --- gcc-3.3.6/fastjar/fastjar.info 2005-05-03 12:56:26.000000000 +0000 *************** *** 1,4 **** ! This is fastjar.info, produced by makeinfo version 4.5 from fastjar.texi. INFO-DIR-SECTION Programming --- 1,4 ---- ! This is fastjar.info, produced by makeinfo version 4.7 from fastjar.texi. INFO-DIR-SECTION Programming *************** File: fastjar.info, Node: Top, Next: I *** 28,34 **** Introduction ************ ! This manual describes how to use `jar' and `grepjar'. * Menu: --- 28,34 ---- Introduction ************ ! This manual describes how to use `jar' and `grepjar'. * Menu: *************** Introduction *** 39,49 ****  File: fastjar.info, Node: Invoking jar, Next: Invoking grepjar, Prev: Top, Up: Top ! Invoking jar ! ************ ! `fastjar' is an implementation of Sun's jar utility that comes with ! the JDK, written entirely in C, and runs in a fraction of the time while being feature compatible. If any file is a directory then it is processed recursively. The --- 39,49 ----  File: fastjar.info, Node: Invoking jar, Next: Invoking grepjar, Prev: Top, Up: Top ! 1 Invoking jar ! ************** ! `fastjar' is an implementation of Sun's jar utility that comes with the ! JDK, written entirely in C, and runs in a fraction of the time while being feature compatible. If any file is a directory then it is processed recursively. The *************** the same order the `-m' and `-f' flags a *** 107,117 ****  File: fastjar.info, Node: Invoking grepjar, Next: Copying, Prev: Invoking jar, Up: Top ! Invoking grepjar ! **************** ! The `grepjar' program can be used to search files in a jar file for ! a pattern. `-b' Print byte offset of match. --- 107,117 ----  File: fastjar.info, Node: Invoking grepjar, Next: Copying, Prev: Invoking jar, Up: Top ! 2 Invoking grepjar ! ****************** ! The `grepjar' program can be used to search files in a jar file for a ! pattern. `-b' Print byte offset of match. *************** GNU GENERAL PUBLIC LICENSE *** 148,165 **** ************************** Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble ======== ! The licenses for most software are designed to take away your ! freedom to share and change it. By contrast, the GNU General Public ! License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to --- 148,166 ---- ************************** Version 2, June 1991 + Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble ======== ! The licenses for most software are designed to take away your freedom ! to share and change it. By contrast, the GNU General Public License is ! intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to *************** modification follow. *** 412,418 **** and reuse of software generally. NO WARRANTY - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT --- 413,418 ---- *************** modification follow. *** 436,446 **** ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS - How to Apply These Terms to Your New Programs ============================================= ! If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. --- 436,445 ---- ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs ============================================= ! If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. *************** the "copyright" line and a pointer to wh *** 452,468 **** ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES. Copyright (C) YEAR NAME OF AUTHOR ! 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 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. --- 451,467 ---- ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES. Copyright (C) YEAR NAME OF AUTHOR ! 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 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *************** if necessary. Here is a sample; alter t *** 491,497 **** Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. ! SIGNATURE OF TY COON, 1 April 1989 Ty Coon, President of Vice --- 490,496 ---- Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. ! SIGNATURE OF TY COON, 1 April 1989 Ty Coon, President of Vice *************** GNU Library General Public License inste *** 505,512 ****  Tag Table: Node: Top822 ! Node: Invoking jar1127 ! Node: Invoking grepjar2910 ! Node: Copying3516  End Tag Table --- 504,511 ----  Tag Table: Node: Top822 ! Node: Invoking jar1124 ! Node: Invoking grepjar2908 ! Node: Copying3515  End Tag Table diff -Nrcpad gcc-3.3.5/fastjar/grepjar.1 gcc-3.3.6/fastjar/grepjar.1 *** gcc-3.3.5/fastjar/grepjar.1 2004-09-30 17:50:08.000000000 +0000 --- gcc-3.3.6/fastjar/grepjar.1 2005-05-03 12:56:32.000000000 +0000 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13 .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GREPJAR 1" ! .TH GREPJAR 1 "2004-09-30" "gcc-3.3.5" "GNU" .SH "NAME" grepjar \- search files in a jar file for a pattern .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GREPJAR 1" ! .TH GREPJAR 1 "2005-05-03" "gcc-3.3.6" "GNU" .SH "NAME" grepjar \- search files in a jar file for a pattern .SH "SYNOPSIS" diff -Nrcpad gcc-3.3.5/fastjar/jar.1 gcc-3.3.6/fastjar/jar.1 *** gcc-3.3.5/fastjar/jar.1 2004-09-30 17:50:08.000000000 +0000 --- gcc-3.3.6/fastjar/jar.1 2005-05-03 12:56:32.000000000 +0000 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13 .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "FASTJAR 1" ! .TH FASTJAR 1 "2004-09-30" "gcc-3.3.5" "GNU" .SH "NAME" jar \- archive tool for Java archives .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "FASTJAR 1" ! .TH FASTJAR 1 "2005-05-03" "gcc-3.3.6" "GNU" .SH "NAME" jar \- archive tool for Java archives .SH "SYNOPSIS" diff -Nrcpad gcc-3.3.5/gcc/java/ChangeLog gcc-3.3.6/gcc/java/ChangeLog *** gcc-3.3.5/gcc/java/ChangeLog 2004-09-30 16:44:23.000000000 +0000 --- gcc-3.3.6/gcc/java/ChangeLog 2005-05-03 10:50:50.000000000 +0000 *************** *** 1,3 **** --- 1,7 ---- + 2005-05-03 Release Manager + + * GCC 3.3.6 Released. + 2004-09-30 Release Manager * GCC 3.3.5 Released. diff -Nrcpad gcc-3.3.5/gcc/java/gcj.1 gcc-3.3.6/gcc/java/gcj.1 *** gcc-3.3.5/gcc/java/gcj.1 2004-09-30 17:38:17.000000000 +0000 --- gcc-3.3.6/gcc/java/gcj.1 2005-05-03 12:41:30.000000000 +0000 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13 .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCJ 1" ! .TH GCJ 1 "2004-09-30" "gcc-3.3.5" "GNU" .SH "NAME" gcj \- Ahead\-of\-time compiler for the Java language .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCJ 1" ! .TH GCJ 1 "2005-05-03" "gcc-3.3.6" "GNU" .SH "NAME" gcj \- Ahead\-of\-time compiler for the Java language .SH "SYNOPSIS" diff -Nrcpad gcc-3.3.5/gcc/java/gcjh.1 gcc-3.3.6/gcc/java/gcjh.1 *** gcc-3.3.5/gcc/java/gcjh.1 2004-09-30 17:38:17.000000000 +0000 --- gcc-3.3.6/gcc/java/gcjh.1 2005-05-03 12:41:30.000000000 +0000 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13 .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCJH 1" ! .TH GCJH 1 "2004-09-30" "gcc-3.3.5" "GNU" .SH "NAME" gcjh \- generate header files from Java class files .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCJH 1" ! .TH GCJH 1 "2005-05-03" "gcc-3.3.6" "GNU" .SH "NAME" gcjh \- generate header files from Java class files .SH "SYNOPSIS" diff -Nrcpad gcc-3.3.5/gcc/java/gcj.info gcc-3.3.6/gcc/java/gcj.info *** gcc-3.3.5/gcc/java/gcj.info 2004-09-30 17:38:13.000000000 +0000 --- gcc-3.3.6/gcc/java/gcj.info 2005-05-03 12:41:24.000000000 +0000 *************** *** 1,6 **** ! This is gcj.info, produced by makeinfo version 4.5 from gcj.texi. ! Copyright (C) 2001, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or --- 1,6 ---- ! This is gcj.info, produced by makeinfo version 4.7 from gcj.texi. ! Copyright (C) 2001, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or *************** texts being (a) (see below), and with th *** 18,24 **** You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise ! funds for GNU development. INFO-DIR-SECTION Programming START-INFO-DIR-ENTRY * Gcj: (gcj). Ahead-of-time compiler for the Java language --- 18,25 ---- You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise ! funds for GNU development. man end ! INFO-DIR-SECTION Programming START-INFO-DIR-ENTRY * Gcj: (gcj). Ahead-of-time compiler for the Java language *************** START-INFO-DIR-ENTRY *** 41,47 **** The remote object registry. END-INFO-DIR-ENTRY ! Copyright (C) 2001, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or --- 42,48 ---- The remote object registry. END-INFO-DIR-ENTRY ! Copyright (C) 2001, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or *************** texts being (a) (see below), and with th *** 59,73 **** You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise ! funds for GNU development.  File: gcj.info, Node: Top, Next: Copying, Up: (dir) Introduction ************ ! This manual describes how to use `gcj', the GNU compiler for the ! Java programming language. `gcj' can generate both `.class' files and object files, and it can read both Java source code and `.class' files. * Menu: --- 60,75 ---- You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise ! funds for GNU development. man end !  File: gcj.info, Node: Top, Next: Copying, Up: (dir) Introduction ************ ! This manual describes how to use `gcj', the GNU compiler for the Java ! programming language. `gcj' can generate both `.class' files and object files, and it can read both Java source code and `.class' files. * Menu: *************** GNU GENERAL PUBLIC LICENSE *** 95,112 **** ************************** Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble ======== ! The licenses for most software are designed to take away your ! freedom to share and change it. By contrast, the GNU General Public ! License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to --- 97,115 ---- ************************** Version 2, June 1991 + Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble ======== ! The licenses for most software are designed to take away your freedom ! to share and change it. By contrast, the GNU General Public License is ! intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to *************** modification follow. *** 359,365 **** and reuse of software generally. NO WARRANTY - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT --- 362,367 ---- *************** modification follow. *** 383,393 **** ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS - How to Apply These Terms to Your New Programs ============================================= ! If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. --- 385,394 ---- ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs ============================================= ! If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. *************** the "copyright" line and a pointer to wh *** 399,415 **** ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES. Copyright (C) YEAR NAME OF AUTHOR ! 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 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. --- 400,416 ---- ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES. Copyright (C) YEAR NAME OF AUTHOR ! 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 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *************** if necessary. Here is a sample; alter t *** 438,444 **** Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. ! SIGNATURE OF TY COON, 1 April 1989 Ty Coon, President of Vice --- 439,445 ---- Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. ! SIGNATURE OF TY COON, 1 April 1989 Ty Coon, President of Vice *************** GNU Free Documentation License *** 455,463 **** ****************************** Version 1.2, November 2002 Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. --- 456,465 ---- ****************************** Version 1.2, November 2002 + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. *************** GNU Free Documentation License *** 851,857 **** ADDENDUM: How to use this License for your documents ==================================================== ! To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: --- 853,859 ---- ADDENDUM: How to use this License for your documents ==================================================== ! To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: *************** permit their use in free software. *** 882,891 ****  File: gcj.info, Node: Invoking gcj, Next: Compatibility, Prev: GNU Free Documentation License, Up: Top ! Invoking gcj ! ************ ! As `gcj' is just another front end to `gcc', it supports many of the same options as gcc. *Note Option Summary: (gcc)Option Summary. This manual only documents the options specific to `gcj'. --- 884,893 ----  File: gcj.info, Node: Invoking gcj, Next: Compatibility, Prev: GNU Free Documentation License, Up: Top ! 1 Invoking gcj ! ************** ! As `gcj' is just another front end to `gcc', it supports many of the same options as gcc. *Note Option Summary: (gcc)Option Summary. This manual only documents the options specific to `gcj'. *************** manual only documents the options specif *** 901,910 ****  File: gcj.info, Node: Input and output files, Next: Input Options, Up: Invoking gcj ! Input and output files ! ====================== ! A `gcj' command is like a `gcc' command, in that it consists of a number of options and file names. The following kinds of input file names are supported: --- 903,912 ----  File: gcj.info, Node: Input and output files, Next: Input Options, Up: Invoking gcj ! 1.1 Input and output files ! ========================== ! A `gcj' command is like a `gcc' command, in that it consists of a number of options and file names. The following kinds of input file names are supported: *************** to fix this.) *** 942,951 ****  File: gcj.info, Node: Input Options, Next: Encodings, Prev: Input and output files, Up: Invoking gcj ! Input Options ! ============= ! `gcj' has options to control where it looks to find files it needs. For instance, `gcj' might need to load a class that is referenced by the file it has been asked to compile. Like other compilers for the Java language, `gcj' has a notion of a "class path". There are several --- 944,953 ----  File: gcj.info, Node: Input Options, Next: Encodings, Prev: Input and output files, Up: Invoking gcj ! 1.2 Input Options ! ================= ! `gcj' has options to control where it looks to find files it needs. For instance, `gcj' might need to load a class that is referenced by the file it has been asked to compile. Like other compilers for the Java language, `gcj' has a notion of a "class path". There are several *************** in this particular case.) *** 1018,1028 ****  File: gcj.info, Node: Encodings, Next: Warnings, Prev: Input Options, Up: Invoking gcj ! Encodings ! ========= ! The Java programming language uses Unicode throughout. In an effort ! to integrate well with other locales, `gcj' allows `.java' files to be written using almost any encoding. `gcj' knows how to convert these encodings into its internal encoding at compile time. --- 1020,1030 ----  File: gcj.info, Node: Encodings, Next: Warnings, Prev: Input Options, Up: Invoking gcj ! 1.3 Encodings ! ============= ! The Java programming language uses Unicode throughout. In an effort to ! integrate well with other locales, `gcj' allows `.java' files to be written using almost any encoding. `gcj' knows how to convert these encodings into its internal encoding at compile time. *************** every host. *** 1045,1054 ****  File: gcj.info, Node: Warnings, Next: Code Generation, Prev: Encodings, Up: Invoking gcj ! Warnings ! ======== ! `gcj' implements several warnings. As with other generic `gcc' warnings, if an option of the form `-Wfoo' enables a warning, then `-Wno-foo' will disable it. Here we've chosen to document the form of the warning which will have an effect - the default being the opposite --- 1047,1056 ----  File: gcj.info, Node: Warnings, Next: Code Generation, Prev: Encodings, Up: Invoking gcj ! 1.4 Warnings ! ============ ! `gcj' implements several warnings. As with other generic `gcc' warnings, if an option of the form `-Wfoo' enables a warning, then `-Wno-foo' will disable it. Here we've chosen to document the form of the warning which will have an effect - the default being the opposite *************** of what is listed. *** 1077,1086 ****  File: gcj.info, Node: Code Generation, Next: Configure-time Options, Prev: Warnings, Up: Invoking gcj ! Code Generation ! =============== ! In addition to the many `gcc' options controlling code generation, `gcj' has several options specific to itself. `--main=CLASSNAME' --- 1079,1088 ----  File: gcj.info, Node: Code Generation, Next: Configure-time Options, Prev: Warnings, Up: Invoking gcj ! 1.5 Code Generation ! =================== ! In addition to the many `gcc' options controlling code generation, `gcj' has several options specific to itself. `--main=CLASSNAME' *************** starting the application. *** 1164,1173 ****  File: gcj.info, Node: Configure-time Options, Prev: Code Generation, Up: Invoking gcj ! Configure-time Options ! ====================== ! Some `gcj' code generations options affect the resulting ABI, and so can only be meaningfully given when `libgcj', the runtime package, is configured. `libgcj' puts the appropriate options from this group into a `spec' file which is read by `gcj'. These options are listed here --- 1166,1175 ----  File: gcj.info, Node: Configure-time Options, Prev: Code Generation, Up: Invoking gcj ! 1.6 Configure-time Options ! ========================== ! Some `gcj' code generations options affect the resulting ABI, and so can only be meaningfully given when `libgcj', the runtime package, is configured. `libgcj' puts the appropriate options from this group into a `spec' file which is read by `gcj'. These options are listed here *************** touch these options. *** 1199,1211 ****  File: gcj.info, Node: Compatibility, Next: Invoking gcjh, Prev: Invoking gcj, Up: Top ! Compatibility with the Java Platform ! ************************************ ! As we believe it is important that the Java platform not be ! fragmented, `gcj' and `libgcj' try to conform to the relevant Java ! specifications. However, limited manpower and incomplete and unclear ! documentation work against us. So, there are caveats to using `gcj'. * Menu: --- 1201,1213 ----  File: gcj.info, Node: Compatibility, Next: Invoking gcjh, Prev: Invoking gcj, Up: Top ! 2 Compatibility with the Java Platform ! ************************************** ! As we believe it is important that the Java platform not be fragmented, ! `gcj' and `libgcj' try to conform to the relevant Java specifications. ! However, limited manpower and incomplete and unclear documentation work ! against us. So, there are caveats to using `gcj'. * Menu: *************** documentation work against us. So, ther *** 1215,1224 ****  File: gcj.info, Node: Limitations, Next: Extensions, Up: Compatibility ! Standard features not yet supported ! =================================== ! This list of compatibility issues is by no means complete. * `gcj' implements the JDK 1.2 language. It supports inner classes and the new 1.4 `assert' keyword. It does not yet support the --- 1217,1226 ----  File: gcj.info, Node: Limitations, Next: Extensions, Up: Compatibility ! 2.1 Standard features not yet supported ! ======================================= ! This list of compatibility issues is by no means complete. * `gcj' implements the JDK 1.2 language. It supports inner classes and the new 1.4 `assert' keyword. It does not yet support the *************** Standard features not yet supported *** 1249,1258 ****  File: gcj.info, Node: Extensions, Prev: Limitations, Up: Compatibility ! Extra features unique to gcj ! ============================ ! The main feature of `gcj' is that it can compile programs written in the Java programming language to native code. Most extensions that have been added are to facilitate this functionality. --- 1251,1260 ----  File: gcj.info, Node: Extensions, Prev: Limitations, Up: Compatibility ! 2.2 Extra features unique to gcj ! ================================ ! The main feature of `gcj' is that it can compile programs written in the Java programming language to native code. Most extensions that have been added are to facilitate this functionality. *************** have been added are to facilitate this f *** 1276,1286 ****  File: gcj.info, Node: Invoking gcjh, Next: Invoking jv-scan, Prev: Compatibility, Up: Top ! Invoking gcjh ! ************* ! The `gcjh' program is used to generate header files from class ! files. It can generate both CNI and JNI header files, as well as stub implementation files which can be used as a basis for implementing the required native methods. --- 1278,1288 ----  File: gcj.info, Node: Invoking gcjh, Next: Invoking jv-scan, Prev: Compatibility, Up: Top ! 3 Invoking gcjh ! *************** ! The `gcjh' program is used to generate header files from class files. ! It can generate both CNI and JNI header files, as well as stub implementation files which can be used as a basis for implementing the required native methods. *************** required native methods. *** 1350,1359 ****  File: gcj.info, Node: Invoking jv-scan, Next: Invoking jcf-dump, Prev: Invoking gcjh, Up: Top ! Invoking jv-scan ! **************** ! The `jv-scan' program can be used to print information about a Java source file (`.java' file). `--no-assert' --- 1352,1361 ----  File: gcj.info, Node: Invoking jv-scan, Next: Invoking jcf-dump, Prev: Invoking gcjh, Up: Top ! 4 Invoking jv-scan ! ****************** ! The `jv-scan' program can be used to print information about a Java source file (`.java' file). `--no-assert' *************** source file (`.java' file). *** 1390,1399 ****  File: gcj.info, Node: Invoking jcf-dump, Next: Invoking gij, Prev: Invoking jv-scan, Up: Top ! Invoking jcf-dump ! ***************** ! This is a class file examiner, similar to `javap'. It will print information about a number of classes, which are specified by class name or file name. --- 1392,1401 ----  File: gcj.info, Node: Invoking jcf-dump, Next: Invoking gij, Prev: Invoking jv-scan, Up: Top ! 5 Invoking jcf-dump ! ******************* ! This is a class file examiner, similar to `javap'. It will print information about a number of classes, which are specified by class name or file name. *************** or file name. *** 1423,1434 ****  File: gcj.info, Node: Invoking gij, Next: Invoking jv-convert, Prev: Invoking jcf-dump, Up: Top ! Invoking gij ! ************ ! `gij' is a Java bytecode interpreter included with `libgcj'. `gij' ! is not available on every platform; porting it requires a small amount ! of assembly programming which has not been done for all the targets supported by `gcj'. The primary argument to `gij' is the name of a class or, with --- 1425,1436 ----  File: gcj.info, Node: Invoking gij, Next: Invoking jv-convert, Prev: Invoking jcf-dump, Up: Top ! 6 Invoking gij ! ************** ! `gij' is a Java bytecode interpreter included with `libgcj'. `gij' is ! not available on every platform; porting it requires a small amount of ! assembly programming which has not been done for all the targets supported by `gcj'. The primary argument to `gij' is the name of a class or, with *************** been compiled and put into a shared libr *** 1487,1496 ****  File: gcj.info, Node: Invoking jv-convert, Next: Invoking rmic, Prev: Invoking gij, Up: Top ! Invoking jv-convert ! ******************* ! `jv-convert' [`OPTION'] ... [INPUTFILE [OUTPUTFILE]] `jv-convert' is a utility included with `libgcj' which converts a file from one encoding to another. It is similar to the Unix `iconv' --- 1489,1498 ----  File: gcj.info, Node: Invoking jv-convert, Next: Invoking rmic, Prev: Invoking gij, Up: Top ! 7 Invoking jv-convert ! ********************* ! `jv-convert' [`OPTION'] ... [INPUTFILE [OUTPUTFILE]] `jv-convert' is a utility included with `libgcj' which converts a file from one encoding to another. It is similar to the Unix `iconv' *************** Currently there is no way to get a list *** 1526,1535 ****  File: gcj.info, Node: Invoking rmic, Next: Invoking rmiregistry, Prev: Invoking jv-convert, Up: Top ! Invoking rmic ! ************* ! `rmic' [`OPTION'] ... CLASS ... `rmic' is a utility included with `libgcj' which generates stubs for remote objects. --- 1528,1537 ----  File: gcj.info, Node: Invoking rmic, Next: Invoking rmiregistry, Prev: Invoking jv-convert, Up: Top ! 8 Invoking rmic ! *************** ! `rmic' [`OPTION'] ... CLASS ... `rmic' is a utility included with `libgcj' which generates stubs for remote objects. *************** instance, `--help' is accepted. *** 1577,1586 ****  File: gcj.info, Node: Invoking rmiregistry, Next: About CNI, Prev: Invoking rmic, Up: Top ! Invoking rmiregistry ! ******************** ! `rmic' [`OPTION'] ... [PORT] `rmiregistry' starts a remote object registry on the current host. If no port number is specified, then port 1099 is used. --- 1579,1588 ----  File: gcj.info, Node: Invoking rmiregistry, Next: About CNI, Prev: Invoking rmic, Up: Top ! 9 Invoking rmiregistry ! ********************** ! `rmic' [`OPTION'] ... [PORT] `rmiregistry' starts a remote object registry on the current host. If no port number is specified, then port 1099 is used. *************** If no port number is specified, then por *** 1594,1603 ****  File: gcj.info, Node: About CNI, Next: System properties, Prev: Invoking rmiregistry, Up: Top ! About CNI ! ********* ! This documents CNI, the Cygnus Native Interface, which is is a convenient way to write Java native methods using C++. This is a more efficient, more convenient, but less portable alternative to the standard JNI (Java Native Interface). --- 1596,1605 ----  File: gcj.info, Node: About CNI, Next: System properties, Prev: Invoking rmiregistry, Up: Top ! 10 About CNI ! ************ ! This documents CNI, the Cygnus Native Interface, which is is a convenient way to write Java native methods using C++. This is a more efficient, more convenient, but less portable alternative to the standard JNI (Java Native Interface). *************** standard JNI (Java Native Interface). *** 1623,1641 ****  File: gcj.info, Node: Basic concepts, Next: Packages, Up: About CNI ! Basic concepts ! ============== ! In terms of languages features, Java is mostly a subset of C++. ! Java has a few important extensions, plus a powerful standard class ! library, but on the whole that does not change the basic similarity. ! Java is a hybrid object-oriented language, with a few native types, in ! addition to class types. It is class-based, where a class may have ! static as well as per-object fields, and static as well as instance ! methods. Non-static methods may be virtual, and may be overloaded. ! Overloading is resolved at compile time by matching the actual argument ! types against the parameter types. Virtual methods are implemented ! using indirect calls through a dispatch table (virtual function table). Objects are allocated on the heap, and initialized using a constructor method. Classes are organized in a package hierarchy. --- 1625,1643 ----  File: gcj.info, Node: Basic concepts, Next: Packages, Up: About CNI ! 10.1 Basic concepts ! =================== ! In terms of languages features, Java is mostly a subset of C++. Java ! has a few important extensions, plus a powerful standard class library, ! but on the whole that does not change the basic similarity. Java is a ! hybrid object-oriented language, with a few native types, in addition ! to class types. It is class-based, where a class may have static as ! well as per-object fields, and static as well as instance methods. ! Non-static methods may be virtual, and may be overloaded. Overloading ! is resolved at compile time by matching the actual argument types ! against the parameter types. Virtual methods are implemented using ! indirect calls through a dispatch table (virtual function table). Objects are allocated on the heap, and initialized using a constructor method. Classes are organized in a package hierarchy. *************** and we will try to come up with an alter *** 1674,1684 **** lists `_Jv_AllocBytes' as an example; CNI should instead provide a `JvAllocBytes' function.) ! Limitations ! ----------- ! Whilst a Java class is just a C++ class that doesn't mean that you ! are freed from the shackles of Java, a CNI C++ class must adhere to the rules of the Java programming language. For example: it is not possible to declare a method in a CNI class --- 1676,1686 ---- lists `_Jv_AllocBytes' as an example; CNI should instead provide a `JvAllocBytes' function.) ! 10.1.1 Limitations ! ------------------ ! Whilst a Java class is just a C++ class that doesn't mean that you are ! freed from the shackles of Java, a CNI C++ class must adhere to the rules of the Java programming language. For example: it is not possible to declare a method in a CNI class *************** member variable of some non-Java datatyp *** 1688,1697 ****  File: gcj.info, Node: Packages, Next: Primitive types, Prev: Basic concepts, Up: About CNI ! Packages ! ======== ! The only global names in Java are class names, and packages. A "package" can contain zero or more classes, and also zero or more sub-packages. Every class belongs to either an unnamed package or a package that has a hierarchical and globally unique name. --- 1690,1699 ----  File: gcj.info, Node: Packages, Next: Primitive types, Prev: Basic concepts, Up: About CNI ! 10.2 Packages ! ============= ! The only global names in Java are class names, and packages. A "package" can contain zero or more classes, and also zero or more sub-packages. Every class belongs to either an unnamed package or a package that has a hierarchical and globally unique name. *************** Here is how you could express this: *** 1712,1718 **** ... } } ! class java::lang::String : public java::lang::Object { ... --- 1714,1720 ---- ... } } ! class java::lang::String : public java::lang::Object { ... *************** Here is how you could express this: *** 1721,1735 **** The `gcjh' tool automatically generates the necessary namespace declarations. ! Leaving out package names ! ------------------------- ! Always using the fully-qualified name of a java class can be ! tiresomely verbose. Using the full qualified name also ties the code ! to a single package making code changes necessary should the class move ! from one package to another. The Java `package' declaration specifies ! that the following class declarations are in the named package, without ! having to explicitly name the full package qualifiers. The `package' declaration can be followed by zero or more `import' declarations, which allows either a single class or all the classes in a package to be named by a simple identifier. C++ provides something similar with the --- 1723,1737 ---- The `gcjh' tool automatically generates the necessary namespace declarations. ! 10.2.1 Leaving out package names ! -------------------------------- ! Always using the fully-qualified name of a java class can be tiresomely ! verbose. Using the full qualified name also ties the code to a single ! package making code changes necessary should the class move from one ! package to another. The Java `package' declaration specifies that the ! following class declarations are in the named package, without having ! to explicitly name the full package qualifiers. The `package' declaration can be followed by zero or more `import' declarations, which allows either a single class or all the classes in a package to be named by a simple identifier. C++ provides something similar with the *************** The same effect can be achieved in C++ l *** 1760,1769 ****  File: gcj.info, Node: Primitive types, Next: Interfaces, Prev: Packages, Up: About CNI ! Primitive types ! =============== ! Java provides 8 "primitives" types which represent integers, floats, characters and booleans (and also the void type). C++ has its own very similar concrete types. Such types in C++ however are not always implemented in the same way (an int might be 16, 32 or 64 bits for --- 1762,1771 ----  File: gcj.info, Node: Primitive types, Next: Interfaces, Prev: Packages, Up: About CNI ! 10.3 Primitive types ! ==================== ! Java provides 8 "primitives" types which represent integers, floats, characters and booleans (and also the void type). C++ has its own very similar concrete types. Such types in C++ however are not always implemented in the same way (an int might be 16, 32 or 64 bits for *************** type: *** 1784,1798 **** When referring to a Java type You should always use these C++ typenames (e.g.: `jint') to avoid disappointment. ! Reference types associated with primitive types ! ----------------------------------------------- ! In Java each primitive type has an associated reference type, e.g.: `boolean' has an associated `java.lang.Boolean' class. In order to make working with such classes easier GCJ provides the macro `JvPrimClass': ! - macro: JvPrimClass type Return a pointer to the `Class' object corresponding to the type supplied. --- 1786,1800 ---- When referring to a Java type You should always use these C++ typenames (e.g.: `jint') to avoid disappointment. ! 10.3.1 Reference types associated with primitive types ! ------------------------------------------------------ ! In Java each primitive type has an associated reference type, e.g.: `boolean' has an associated `java.lang.Boolean' class. In order to make working with such classes easier GCJ provides the macro `JvPrimClass': ! -- macro: JvPrimClass type Return a pointer to the `Class' object corresponding to the type supplied. *************** make working with such classes easier GC *** 1802,1812 ****  File: gcj.info, Node: Interfaces, Next: Objects and Classes, Prev: Primitive types, Up: About CNI ! Interfaces ! ========== ! A Java class can "implement" zero or more "interfaces", in addition ! to inheriting from a single base class. CNI allows CNI code to implement methods of interfaces. You can also call methods through interface references, with some limitations. --- 1804,1814 ----  File: gcj.info, Node: Interfaces, Next: Objects and Classes, Prev: Primitive types, Up: About CNI ! 10.4 Interfaces ! =============== ! A Java class can "implement" zero or more "interfaces", in addition to ! inheriting from a single base class. CNI allows CNI code to implement methods of interfaces. You can also call methods through interface references, with some limitations. *************** superinterface. *** 1823,1829 **** { void a(); } ! interface B extends A { void b(); --- 1825,1831 ---- { void a(); } ! interface B extends A { void b(); *************** unless you cast it to an `A' first. *** 1835,1847 ****  File: gcj.info, Node: Objects and Classes, Next: Class Initialization, Prev: Interfaces, Up: About CNI ! Objects and Classes ! =================== ! Classes ! ------- ! All Java classes are derived from `java.lang.Object'. C++ does not have a unique root class, but we use the C++ class `java::lang::Object' as the C++ version of the `java.lang.Object' Java class. All other Java classes are mapped into corresponding C++ classes derived from --- 1837,1849 ----  File: gcj.info, Node: Objects and Classes, Next: Class Initialization, Prev: Interfaces, Up: About CNI ! 10.5 Objects and Classes ! ======================== ! 10.5.1 Classes ! -------------- ! All Java classes are derived from `java.lang.Object'. C++ does not have a unique root class, but we use the C++ class `java::lang::Object' as the C++ version of the `java.lang.Object' Java class. All other Java classes are mapped into corresponding C++ classes derived from *************** Java classes are mapped into correspondi *** 1850,1864 **** Interface inheritance (the `implements' keyword) is currently not reflected in the C++ mapping. ! Object fields ! ------------- ! Each object contains an object header, followed by the instance ! fields of the class, in order. The object header consists of a single ! pointer to a dispatch or virtual function table. (There may be extra ! fields _in front of_ the object, for example for memory management, but ! this is invisible to the application, and the reference to the object ! points to the dispatch table pointer.) The fields are laid out in the same order, alignment, and size as in C++. Specifically, 8-bite and 16-bit native types (`byte', `short', --- 1852,1866 ---- Interface inheritance (the `implements' keyword) is currently not reflected in the C++ mapping. ! 10.5.2 Object fields ! -------------------- ! Each object contains an object header, followed by the instance fields ! of the class, in order. The object header consists of a single pointer ! to a dispatch or virtual function table. (There may be extra fields ! _in front of_ the object, for example for memory management, but this ! is invisible to the application, and the reference to the object points ! to the dispatch table pointer.) The fields are laid out in the same order, alignment, and size as in C++. Specifically, 8-bite and 16-bit native types (`byte', `short', *************** the following Java class: *** 1881,1887 **** #include ; #include ; ! Int* mult (Int *p, jint k) { --- 1883,1889 ---- #include ; #include ; ! Int* mult (Int *p, jint k) { *************** the following Java class: *** 1890,1916 **** return new Int(p->i * k); } ! Access specifiers ! ----------------- ! CNI does not strictly enforce the Java access specifiers, because ! Java permissions cannot be directly mapped into C++ permission. ! Private Java fields and methods are mapped to private C++ fields and ! methods, but other fields and methods are mapped to public fields and ! methods.  File: gcj.info, Node: Class Initialization, Next: Object allocation, Prev: Objects and Classes, Up: About CNI ! Class Initialization ! ==================== ! Java requires that each class be automatically initialized at the ! time of the first active use. Initializing a class involves ! initializing the static fields, running code in class initializer ! methods, and initializing base classes. There may also be some ! implementation specific actions, such as allocating `String' objects ! corresponding to string literals in the code. The GCJ compiler inserts calls to `JvInitClass' at appropriate places to ensure that a class is initialized when required. The C++ --- 1892,1917 ---- return new Int(p->i * k); } ! 10.5.3 Access specifiers ! ------------------------ ! CNI does not strictly enforce the Java access specifiers, because Java ! permissions cannot be directly mapped into C++ permission. Private ! Java fields and methods are mapped to private C++ fields and methods, ! but other fields and methods are mapped to public fields and methods.  File: gcj.info, Node: Class Initialization, Next: Object allocation, Prev: Objects and Classes, Up: About CNI ! 10.6 Class Initialization ! ========================= ! Java requires that each class be automatically initialized at the time ! of the first active use. Initializing a class involves initializing ! the static fields, running code in class initializer methods, and ! initializing base classes. There may also be some implementation ! specific actions, such as allocating `String' objects corresponding to ! string literals in the code. The GCJ compiler inserts calls to `JvInitClass' at appropriate places to ensure that a class is initialized when required. The C++ *************** a static field from C++. *** 1948,1957 ****  File: gcj.info, Node: Object allocation, Next: Arrays, Prev: Class Initialization, Up: About CNI ! Object allocation ! ================= ! New Java objects are allocated using a "class instance creation expression", e.g.: new TYPE ( ... ) --- 1949,1958 ----  File: gcj.info, Node: Object allocation, Next: Arrays, Prev: Class Initialization, Up: About CNI ! 10.7 Object allocation ! ====================== ! New Java objects are allocated using a "class instance creation expression", e.g.: new TYPE ( ... ) *************** For example: *** 1968,1974 **** java::util::Hashtable *ht = new java::util::Hashtable(120); ! - Function: void* _Jv_AllocBytes (jsize SIZE) Allocates SIZE bytes from the heap. The memory is not scanned by the garbage collector but it freed if no references to it are discovered. --- 1969,1975 ---- java::util::Hashtable *ht = new java::util::Hashtable(120); ! -- Function: void* _Jv_AllocBytes (jsize SIZE) Allocates SIZE bytes from the heap. The memory is not scanned by the garbage collector but it freed if no references to it are discovered. *************** For example: *** 1976,1987 ****  File: gcj.info, Node: Arrays, Next: Methods, Prev: Object allocation, Up: About CNI ! Arrays ! ====== ! While in many ways Java is similar to C and C++, it is quite ! different in its treatment of arrays. C arrays are based on the idea ! of pointer arithmetic, which would be incompatible with Java's security requirements. Java arrays are true objects (array types inherit from `java.lang.Object'). An array-valued variable is one that contains a reference (pointer) to an array object. --- 1977,1988 ----  File: gcj.info, Node: Arrays, Next: Methods, Prev: Object allocation, Up: About CNI ! 10.8 Arrays ! =========== ! While in many ways Java is similar to C and C++, it is quite different ! in its treatment of arrays. C arrays are based on the idea of pointer ! arithmetic, which would be incompatible with Java's security requirements. Java arrays are true objects (array types inherit from `java.lang.Object'). An array-valued variable is one that contains a reference (pointer) to an array object. *************** template, which as defined as follows: *** 1994,2000 **** public: int length; }; ! template class JArray : public __JArray { --- 1995,2001 ---- public: int length; }; ! template class JArray : public __JArray { *************** type: *** 2018,2024 **** typedef JArray *jfloatArray; typedef JArray *jdoubleArray; ! - Method on template: T* elements (JArray ARRAY) This template function can be used to get a pointer to the elements of the `array'. For instance, you can fetch a pointer to the integers that make up an `int[]' like so: --- 2019,2025 ---- typedef JArray *jfloatArray; typedef JArray *jdoubleArray; ! -- Method on template: T* elements (JArray ARRAY) This template function can be used to get a pointer to the elements of the `array'. For instance, you can fetch a pointer to the integers that make up an `int[]' like so: *************** type: *** 2028,2044 **** The name of this function may change in the future. ! - Function: jobjectArray JvNewObjectArray (jsize LENGTH, jclass KLASS, ! jobject INIT) Here `klass' is the type of elements of the array and `init' is the initial value put into every slot in the array. ! Creating arrays ! --------------- ! For each primitive type there is a function which can be used to ! create a new array of that type. The name of the function is of the ! form: JvNewTYPEArray --- 2029,2044 ---- The name of this function may change in the future. ! -- Function: jobjectArray JvNewObjectArray (jsize LENGTH, jclass ! KLASS, jobject INIT) Here `klass' is the type of elements of the array and `init' is the initial value put into every slot in the array. ! 10.8.1 Creating arrays ! ---------------------- ! For each primitive type there is a function which can be used to create ! a new array of that type. The name of the function is of the form: JvNewTYPEArray *************** can be used to create an array of Java p *** 2051,2082 **** The following function definition is the template for all such functions: ! - Function: jbooleanArray JvNewBooleanArray (jint LENGTH) Create's an array LENGTH indices long. ! - Function: jsize JvGetArrayLength (jarray ARRAY) Returns the length of the ARRAY.  File: gcj.info, Node: Methods, Next: Strings, Prev: Arrays, Up: About CNI ! Methods ! ======= ! Java methods are mapped directly into C++ methods. The header files generated by `gcjh' include the appropriate method definitions. Basically, the generated methods have the same names and _corresponding_ types as the Java methods, and are called in the natural manner. ! Overloading ! ----------- ! Both Java and C++ provide method overloading, where multiple methods ! in a class have the same name, and the correct one is chosen (at ! compile time) depending on the argument types. The rules for choosing ! the correct method are (as expected) more complicated in C++ than in ! Java, but given a set of overloaded methods generated by `gcjh' the C++ compiler will choose the expected one. Common assemblers and linkers are not aware of C++ overloading, so --- 2051,2082 ---- The following function definition is the template for all such functions: ! -- Function: jbooleanArray JvNewBooleanArray (jint LENGTH) Create's an array LENGTH indices long. ! -- Function: jsize JvGetArrayLength (jarray ARRAY) Returns the length of the ARRAY.  File: gcj.info, Node: Methods, Next: Strings, Prev: Arrays, Up: About CNI ! 10.9 Methods ! ============ ! Java methods are mapped directly into C++ methods. The header files generated by `gcjh' include the appropriate method definitions. Basically, the generated methods have the same names and _corresponding_ types as the Java methods, and are called in the natural manner. ! 10.9.1 Overloading ! ------------------ ! Both Java and C++ provide method overloading, where multiple methods in ! a class have the same name, and the correct one is chosen (at compile ! time) depending on the argument types. The rules for choosing the ! correct method are (as expected) more complicated in C++ than in Java, ! but given a set of overloaded methods generated by `gcjh' the C++ compiler will choose the expected one. Common assemblers and linkers are not aware of C++ overloading, so *************** mechanism is used to implement Java over *** 2087,2097 **** interoperability, it is important that both the Java and C++ compilers use the _same_ encoding scheme. ! Static methods ! -------------- ! Static Java methods are invoked in CNI using the standard C++ ! syntax, using the `::' operator rather than the `.' operator. For example: --- 2087,2097 ---- interoperability, it is important that both the Java and C++ compilers use the _same_ encoding scheme. ! 10.9.2 Static methods ! --------------------- ! Static Java methods are invoked in CNI using the standard C++ syntax, ! using the `::' operator rather than the `.' operator. For example: *************** For example: *** 2107,2117 **** ... } ! Object Constructors ! ------------------- ! Constructors are called implicitly as part of object allocation ! using the `new' operator. For example: --- 2107,2117 ---- ... } ! 10.9.3 Object Constructors ! -------------------------- ! Constructors are called implicitly as part of object allocation using ! the `new' operator. For example: *************** For example: *** 2121,2131 **** limitation can be coded round however because a constructor can _call_ a native method. ! Instance methods ! ---------------- ! Calling a Java instance method from a C++ CNI method is done using ! the standard C++ syntax, e.g.: // First create the Java object. java::lang::Integer *x = new java::lang::Integer(234); --- 2121,2131 ---- limitation can be coded round however because a constructor can _call_ a native method. ! 10.9.4 Instance methods ! ----------------------- ! Calling a Java instance method from a C++ CNI method is done using the ! standard C++ syntax, e.g.: // First create the Java object. java::lang::Integer *x = new java::lang::Integer(234); *************** the standard C++ syntax, e.g.: *** 2137,2188 **** Defining a Java native instance method is also done the natural way: #include ! jdouble java::lang:Integer::doubleValue() { return (jdouble) value; } ! Interface methods ! ----------------- ! In Java you can call a method using an interface reference. This is supported, but not completely. *Note Interfaces::.  File: gcj.info, Node: Strings, Next: Mixing with C++, Prev: Methods, Up: About CNI ! Strings ! ======= ! CNI provides a number of utility functions for working with Java ! Java `String' objects. The names and interfaces are analogous to those ! of JNI. ! - Function: jstring JvNewString (const char* CHARS, jsize LEN) Returns a Java `String' object with characters from the C string CHARS up to the index LEN in that array. ! - Function: jstring JvNewStringLatin1 (const char* BYTES, jsize LEN) Returns a Java `String' made up of LEN bytes from BYTES. ! - Function: jstring JvNewStringLatin1 (const char* BYTES) As above but the length of the `String' is `strlen(BYTES)'. ! - Function: jstring JvNewStringUTF (const char* BYTES) Returns a `String' which is made up of the UTF encoded characters present in the C string BYTES. ! - Function: jchar* JvGetStringChars (jstring STR) Returns a pointer to an array of characters making up the `String' STR. ! - Function: int JvGetStringUTFLength (jstring STR) Returns the number of bytes required to encode the contents of the `String' STR in UTF-8. ! - Function: jsize JvGetStringUTFRegion (jstring STR, jsize START, jsize LEN, char* BUF) Puts the UTF-8 encoding of a region of the `String' STR into the buffer `buf'. The region to fetch is marked by START and LEN. --- 2137,2188 ---- Defining a Java native instance method is also done the natural way: #include ! jdouble java::lang:Integer::doubleValue() { return (jdouble) value; } ! 10.9.5 Interface methods ! ------------------------ ! In Java you can call a method using an interface reference. This is supported, but not completely. *Note Interfaces::.  File: gcj.info, Node: Strings, Next: Mixing with C++, Prev: Methods, Up: About CNI ! 10.10 Strings ! ============= ! CNI provides a number of utility functions for working with Java Java ! `String' objects. The names and interfaces are analogous to those of ! JNI. ! -- Function: jstring JvNewString (const char* CHARS, jsize LEN) Returns a Java `String' object with characters from the C string CHARS up to the index LEN in that array. ! -- Function: jstring JvNewStringLatin1 (const char* BYTES, jsize LEN) Returns a Java `String' made up of LEN bytes from BYTES. ! -- Function: jstring JvNewStringLatin1 (const char* BYTES) As above but the length of the `String' is `strlen(BYTES)'. ! -- Function: jstring JvNewStringUTF (const char* BYTES) Returns a `String' which is made up of the UTF encoded characters present in the C string BYTES. ! -- Function: jchar* JvGetStringChars (jstring STR) Returns a pointer to an array of characters making up the `String' STR. ! -- Function: int JvGetStringUTFLength (jstring STR) Returns the number of bytes required to encode the contents of the `String' STR in UTF-8. ! -- Function: jsize JvGetStringUTFRegion (jstring STR, jsize START, jsize LEN, char* BUF) Puts the UTF-8 encoding of a region of the `String' STR into the buffer `buf'. The region to fetch is marked by START and LEN. *************** of JNI. *** 2193,2203 ****  File: gcj.info, Node: Mixing with C++, Next: Exception Handling, Prev: Strings, Up: About CNI ! Interoperating with C/C++ ! ========================= ! Because CNI is designed to represent Java classes and methods it ! cannot be mixed readily with C/C++ types. One important restriction is that Java classes cannot have non-Java type instance or static variables and cannot have methods which take --- 2193,2203 ----  File: gcj.info, Node: Mixing with C++, Next: Exception Handling, Prev: Strings, Up: About CNI ! 10.11 Interoperating with C/C++ ! =============================== ! Because CNI is designed to represent Java classes and methods it cannot ! be mixed readily with C/C++ types. One important restriction is that Java classes cannot have non-Java type instance or static variables and cannot have methods which take *************** None of the following is possible with C *** 2210,2217 **** { char* variable; // char* is not a valid Java type. } ! ! uint ::SomeClass::someMethod (char *arg) { --- 2210,2217 ---- { char* variable; // char* is not a valid Java type. } ! ! uint ::SomeClass::someMethod (char *arg) { *************** Here are some examples: *** 2245,2268 **** class ::MyClass : public java::lang::Object { gnu.gcj.RawData string; ! MyClass (); gnu.gcj.RawData getText (); void printText (); } ! ::MyClass::MyClass () { char* text = ... string = text; } ! gnu.gcj.RawData ::MyClass::getText () { return string; } ! void ::MyClass::printText () { --- 2245,2268 ---- class ::MyClass : public java::lang::Object { gnu.gcj.RawData string; ! MyClass (); gnu.gcj.RawData getText (); void printText (); } ! ::MyClass::MyClass () { char* text = ... string = text; } ! gnu.gcj.RawData ::MyClass::getText () { return string; } ! void ::MyClass::printText () { *************** Here are some examples: *** 2272,2284 ****  File: gcj.info, Node: Exception Handling, Next: Synchronization, Prev: Mixing with C++, Up: About CNI ! Exception Handling ! ================== ! While C++ and Java share a common exception handling framework, ! things are not yet perfectly integrated. The main issue is that the ! run-time type information facilities of the two languages are not ! integrated. Still, things work fairly well. You can throw a Java exception from C++ using the ordinary `throw' construct, and this exception can be --- 2272,2283 ----  File: gcj.info, Node: Exception Handling, Next: Synchronization, Prev: Mixing with C++, Up: About CNI ! 10.12 Exception Handling ! ======================== ! While C++ and Java share a common exception handling framework, things ! are not yet perfectly integrated. The main issue is that the run-time ! type information facilities of the two languages are not integrated. Still, things work fairly well. You can throw a Java exception from C++ using the ordinary `throw' construct, and this exception can be *************** exceptions are thrown through it, GCC wi *** 2297,2305 **** problematic code: struct S { ~S(); }; ! extern void bar(); // Is implemented in Java and may throw exceptions. ! void foo() { S s; --- 2296,2304 ---- problematic code: struct S { ~S(); }; ! extern void bar(); // Is implemented in Java and may throw exceptions. ! void foo() { S s; *************** destructors when exceptions are thrown t *** 2318,2327 ****  File: gcj.info, Node: Synchronization, Next: Invocation, Prev: Exception Handling, Up: About CNI ! Synchronization ! =============== ! Each Java object has an implicit monitor. The Java VM uses the instruction `monitorenter' to acquire and lock a monitor, and `monitorexit' to release it. --- 2317,2326 ----  File: gcj.info, Node: Synchronization, Next: Invocation, Prev: Exception Handling, Up: About CNI ! 10.13 Synchronization ! ===================== ! Each Java object has an implicit monitor. The Java VM uses the instruction `monitorenter' to acquire and lock a monitor, and `monitorexit' to release it. *************** manually add `JvSynchronize' in a `nativ *** 2374,2387 ****  File: gcj.info, Node: Invocation, Next: Reflection, Prev: Synchronization, Up: About CNI ! Invocation ! ========== ! CNI permits C++ applications to make calls into Java classes, in addition to allowing Java code to call into C++. Several functions, known as the "invocation API", are provided to support this. ! - Function: jint JvCreateJavaVM (void* VM_ARGS) Initializes the Java runtime. This function performs essential initialization of the threads interface, garbage collector, exception handling and other key aspects of the runtime. It must --- 2373,2386 ----  File: gcj.info, Node: Invocation, Next: Reflection, Prev: Synchronization, Up: About CNI ! 10.14 Invocation ! ================ ! CNI permits C++ applications to make calls into Java classes, in addition to allowing Java code to call into C++. Several functions, known as the "invocation API", are provided to support this. ! -- Function: jint JvCreateJavaVM (void* VM_ARGS) Initializes the Java runtime. This function performs essential initialization of the threads interface, garbage collector, exception handling and other key aspects of the runtime. It must *************** known as the "invocation API", are provi *** 2396,2402 **** _Note:_ In GCJ 3.1, the `vm_args' parameter is ignored. It may be used in a future release. ! - Function: java::lang::Thread* JvAttachCurrentThread (jstring NAME, java::lang::ThreadGroup* GROUP) Registers an existing thread with the Java runtime. This must be called once from each thread, before that thread makes any other --- 2395,2401 ---- _Note:_ In GCJ 3.1, the `vm_args' parameter is ignored. It may be used in a future release. ! -- Function: java::lang::Thread* JvAttachCurrentThread (jstring NAME, java::lang::ThreadGroup* GROUP) Registers an existing thread with the Java runtime. This must be called once from each thread, before that thread makes any other *************** known as the "invocation API", are provi *** 2410,2416 **** the thread is already attached, the call is ignored and the current thread object is returned. ! - Function: jint JvDetachCurrentThread () Unregisters a thread from the Java runtime. This should be called by threads that were attached using `JvAttachCurrentThread()', after they have finished making calls to Java code. This ensures --- 2409,2415 ---- the thread is already attached, the call is ignored and the current thread object is returned. ! -- Function: jint JvDetachCurrentThread () Unregisters a thread from the Java runtime. This should be called by threads that were attached using `JvAttachCurrentThread()', after they have finished making calls to Java code. This ensures *************** known as the "invocation API", are provi *** 2418,2442 **** garbage collection. This function returns `0' upon success, or `-1' if the current thread is not attached. ! Handling uncaught exceptions ! ---------------------------- ! If an exception is thrown from Java code called using the invocation API, and no handler for the exception can be found, the runtime will abort the application. In order to make the application more robust, it is recommended that code which uses the invocation API be wrapped by a top-level try/catch block that catches all Java exceptions. ! Example ! ------- ! The following code demonstrates the use of the invocation API. In ! this example, the C++ application initializes the Java runtime and ! attaches itself. The `java.lang.System' class is initialized in order to ! access its `out' field, and a Java string is printed. Finally, the ! thread is detached from the runtime once it has finished making Java ! calls. Everything is wrapped with a try/catch block to provide a ! default handler for any uncaught exceptions. The example can be compiled with `c++ test.cc -lgcj'. --- 2417,2441 ---- garbage collection. This function returns `0' upon success, or `-1' if the current thread is not attached. ! 10.14.1 Handling uncaught exceptions ! ------------------------------------ ! If an exception is thrown from Java code called using the invocation API, and no handler for the exception can be found, the runtime will abort the application. In order to make the application more robust, it is recommended that code which uses the invocation API be wrapped by a top-level try/catch block that catches all Java exceptions. ! 10.14.2 Example ! --------------- ! The following code demonstrates the use of the invocation API. In this ! example, the C++ application initializes the Java runtime and attaches ! itself. The `java.lang.System' class is initialized in order to access ! its `out' field, and a Java string is printed. Finally, the thread is ! detached from the runtime once it has finished making Java calls. ! Everything is wrapped with a try/catch block to provide a default ! handler for any uncaught exceptions. The example can be compiled with `c++ test.cc -lgcj'. *************** default handler for any uncaught excepti *** 2445,2464 **** #include #include #include ! int main(int argc, char *argv) { using namespace java::lang; ! try { JvCreateJavaVM(NULL); JvAttachCurrentThread(NULL, NULL); ! String *message = JvNewStringLatin1("Hello from C++"); JvInitClass(&System::class$); System::out->println(message); ! JvDetachCurrentThread(); } catch (Throwable *t) --- 2444,2463 ---- #include #include #include ! int main(int argc, char *argv) { using namespace java::lang; ! try { JvCreateJavaVM(NULL); JvAttachCurrentThread(NULL, NULL); ! String *message = JvNewStringLatin1("Hello from C++"); JvInitClass(&System::class$); System::out->println(message); ! JvDetachCurrentThread(); } catch (Throwable *t) *************** default handler for any uncaught excepti *** 2471,2481 ****  File: gcj.info, Node: Reflection, Prev: Invocation, Up: About CNI ! Reflection ! ========== ! Reflection is possible with CNI code, it functions similarly to how ! it functions with JNI. The types `jfieldID' and `jmethodID' are as in JNI. --- 2470,2480 ----  File: gcj.info, Node: Reflection, Prev: Invocation, Up: About CNI ! 10.15 Reflection ! ================ ! Reflection is possible with CNI code, it functions similarly to how it ! functions with JNI. The types `jfieldID' and `jmethodID' are as in JNI. *************** will be added shortly, as will other fun *** 2494,2506 ****  File: gcj.info, Node: System properties, Next: Resources, Prev: About CNI, Up: Top ! System properties ! ***************** ! The runtime behavior of the `libgcj' library can be modified by ! setting certain system properties. These properties can be compiled ! into the program using the `-DNAME[=VALUE]' option to `gcj' or by ! setting them explicitly in the program by calling the `java.lang.System.setProperty()' method. Some system properties are only used for informational purposes (like giving a version number or a user name). A program can inspect the current value of a property by --- 2493,2505 ----  File: gcj.info, Node: System properties, Next: Resources, Prev: About CNI, Up: Top ! 11 System properties ! ******************** ! The runtime behavior of the `libgcj' library can be modified by setting ! certain system properties. These properties can be compiled into the ! program using the `-DNAME[=VALUE]' option to `gcj' or by setting them ! explicitly in the program by calling the `java.lang.System.setProperty()' method. Some system properties are only used for informational purposes (like giving a version number or a user name). A program can inspect the current value of a property by *************** calling the `java.lang.System.getPropert *** 2515,2525 ****  File: gcj.info, Node: Standard Properties, Next: GNU Classpath Properties, Up: System properties ! Standard Properties ! =================== ! The following properties are normally found in all implementations ! of the core libraries for the Java language. `java.version' The `libgcj' version number. --- 2514,2524 ----  File: gcj.info, Node: Standard Properties, Next: GNU Classpath Properties, Up: System properties ! 11.1 Standard Properties ! ======================== ! The following properties are normally found in all implementations of ! the core libraries for the Java language. `java.version' The `libgcj' version number. *************** of the core libraries for the Java langu *** 2670,2682 ****  File: gcj.info, Node: GNU Classpath Properties, Next: libgcj Runtime Properties, Prev: Standard Properties, Up: System properties ! GNU Classpath Properties ! ======================== ! `libgcj' is based on the GNU Classpath (Essential Libraries for ! Java) a GNU project to create free core class libraries for use with ! virtual machines and compilers for the Java language. The following ! properties are common to libraries based on GNU Classpath. `gcj.dumpobject' Enables printing serialization debugging by the --- 2669,2681 ----  File: gcj.info, Node: GNU Classpath Properties, Next: libgcj Runtime Properties, Prev: Standard Properties, Up: System properties ! 11.2 GNU Classpath Properties ! ============================= ! `libgcj' is based on the GNU Classpath (Essential Libraries for Java) a ! GNU project to create free core class libraries for use with virtual ! machines and compilers for the Java language. The following properties ! are common to libraries based on GNU Classpath. `gcj.dumpobject' Enables printing serialization debugging by the *************** properties are common to libraries based *** 2697,2708 ****  File: gcj.info, Node: libgcj Runtime Properties, Prev: GNU Classpath Properties, Up: System properties ! libgcj Runtime Properties ! ========================= ! The following properties are specific to the `libgcj' runtime and ! will normally not be found in other core libraries for the java ! language. `java.fullversion' The combination of `java.vm.name' and `java.vm.version'. --- 2696,2706 ----  File: gcj.info, Node: libgcj Runtime Properties, Prev: GNU Classpath Properties, Up: System properties ! 11.3 libgcj Runtime Properties ! ============================== ! The following properties are specific to the `libgcj' runtime and will ! normally not be found in other core libraries for the java language. `java.fullversion' The combination of `java.vm.name' and `java.vm.version'. *************** language. *** 2750,2760 ****  File: gcj.info, Node: Resources, Prev: System properties, Up: Top ! Resources ! ********* ! While writing `gcj' and `libgcj' we have, of course, relied heavily ! on documentation from Sun Microsystems. In particular we have used The Java Language Specification (both first and second editions), the Java Class Libraries (volumes one and two), and the Java Virtual Machine Specification. In addition we've used the online documentation at --- 2748,2758 ----  File: gcj.info, Node: Resources, Prev: System properties, Up: Top ! 12 Resources ! ************ ! While writing `gcj' and `libgcj' we have, of course, relied heavily on ! documentation from Sun Microsystems. In particular we have used The Java Language Specification (both first and second editions), the Java Class Libraries (volumes one and two), and the Java Virtual Machine Specification. In addition we've used the online documentation at *************** for more information. *** 2772,2818 ****  Tag Table: ! Node: Top2511 ! Node: Copying3668 ! Node: GNU Free Documentation License22868 ! Node: Invoking gcj45277 ! Node: Input and output files45928 ! Node: Input Options47291 ! Node: Encodings50434 ! Node: Warnings51635 ! Node: Code Generation52666 ! Ref: Code Generation-Footnote-156326 ! Node: Configure-time Options56635 ! Node: Compatibility58053 ! Node: Limitations58533 ! Node: Extensions60110 ! Node: Invoking gcjh61362 ! Node: Invoking jv-scan63418 ! Node: Invoking jcf-dump64458 ! Node: Invoking gij65230 ! Node: Invoking jv-convert67437 ! Node: Invoking rmic68507 ! Node: Invoking rmiregistry69882 ! Node: About CNI70286 ! Node: Basic concepts71577 ! Node: Packages74560 ! Node: Primitive types76875 ! Node: Interfaces78524 ! Node: Objects and Classes79433 ! Node: Class Initialization81594 ! Node: Object allocation83930 ! Node: Arrays84905 ! Node: Methods87492 ! Node: Strings90244 ! Node: Mixing with C++91712 ! Node: Exception Handling93595 ! Node: Synchronization95230 ! Node: Invocation97211 ! Node: Reflection101281 ! Node: System properties101733 ! Node: Standard Properties102607 ! Node: GNU Classpath Properties107065 ! Node: libgcj Runtime Properties108104 ! Node: Resources110106  End Tag Table --- 2770,2816 ----  Tag Table: ! Node: Top2533 ! Node: Copying3687 ! Node: GNU Free Documentation License22855 ! Node: Invoking gcj45257 ! Node: Input and output files45909 ! Node: Input Options47277 ! Node: Encodings50425 ! Node: Warnings51631 ! Node: Code Generation52667 ! Ref: Code Generation-Footnote-156332 ! Node: Configure-time Options56641 ! Node: Compatibility58064 ! Node: Limitations58544 ! Node: Extensions60126 ! Node: Invoking gcjh61383 ! Node: Invoking jv-scan63439 ! Node: Invoking jcf-dump64480 ! Node: Invoking gij65253 ! Node: Invoking jv-convert67461 ! Node: Invoking rmic68532 ! Node: Invoking rmiregistry69908 ! Node: About CNI70313 ! Node: Basic concepts71607 ! Node: Packages74610 ! Node: Primitive types76938 ! Node: Interfaces78606 ! Node: Objects and Classes79517 ! Node: Class Initialization81717 ! Node: Object allocation84060 ! Node: Arrays85043 ! Node: Methods87647 ! Node: Strings90456 ! Node: Mixing with C++91940 ! Node: Exception Handling93802 ! Node: Synchronization95436 ! Node: Invocation97426 ! Node: Reflection101514 ! Node: System properties101975 ! Node: Standard Properties102852 ! Node: GNU Classpath Properties107317 ! Node: libgcj Runtime Properties108363 ! Node: Resources110372  End Tag Table diff -Nrcpad gcc-3.3.5/gcc/java/gij.1 gcc-3.3.6/gcc/java/gij.1 *** gcc-3.3.5/gcc/java/gij.1 2004-09-30 17:38:17.000000000 +0000 --- gcc-3.3.6/gcc/java/gij.1 2005-05-03 12:41:31.000000000 +0000 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13 .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GIJ 1" ! .TH GIJ 1 "2004-09-30" "gcc-3.3.5" "GNU" .SH "NAME" gij \- GNU interpreter for Java bytecode .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GIJ 1" ! .TH GIJ 1 "2005-05-03" "gcc-3.3.6" "GNU" .SH "NAME" gij \- GNU interpreter for Java bytecode .SH "SYNOPSIS" diff -Nrcpad gcc-3.3.5/gcc/java/jcf-dump.1 gcc-3.3.6/gcc/java/jcf-dump.1 *** gcc-3.3.5/gcc/java/jcf-dump.1 2004-09-30 17:38:17.000000000 +0000 --- gcc-3.3.6/gcc/java/jcf-dump.1 2005-05-03 12:41:31.000000000 +0000 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13 .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "JCF-DUMP 1" ! .TH JCF-DUMP 1 "2004-09-30" "gcc-3.3.5" "GNU" .SH "NAME" jcf\-dump \- print information about Java class files .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "JCF-DUMP 1" ! .TH JCF-DUMP 1 "2005-05-03" "gcc-3.3.6" "GNU" .SH "NAME" jcf\-dump \- print information about Java class files .SH "SYNOPSIS" diff -Nrcpad gcc-3.3.5/gcc/java/jv-convert.1 gcc-3.3.6/gcc/java/jv-convert.1 *** gcc-3.3.5/gcc/java/jv-convert.1 2004-09-30 17:38:17.000000000 +0000 --- gcc-3.3.6/gcc/java/jv-convert.1 2005-05-03 12:41:31.000000000 +0000 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13 .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "JV-CONVERT 1" ! .TH JV-CONVERT 1 "2004-09-30" "gcc-3.3.5" "GNU" .SH "NAME" jv\-convert \- Convert file from one encoding to another .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "JV-CONVERT 1" ! .TH JV-CONVERT 1 "2005-05-03" "gcc-3.3.6" "GNU" .SH "NAME" jv\-convert \- Convert file from one encoding to another .SH "SYNOPSIS" diff -Nrcpad gcc-3.3.5/gcc/java/jv-scan.1 gcc-3.3.6/gcc/java/jv-scan.1 *** gcc-3.3.5/gcc/java/jv-scan.1 2004-09-30 17:38:17.000000000 +0000 --- gcc-3.3.6/gcc/java/jv-scan.1 2005-05-03 12:41:30.000000000 +0000 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13 .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "JV-SCAN 1" ! .TH JV-SCAN 1 "2004-09-30" "gcc-3.3.5" "GNU" .SH "NAME" jv\-scan \- print information about Java source file .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "JV-SCAN 1" ! .TH JV-SCAN 1 "2005-05-03" "gcc-3.3.6" "GNU" .SH "NAME" jv\-scan \- print information about Java source file .SH "SYNOPSIS" diff -Nrcpad gcc-3.3.5/gcc/java/parse.c gcc-3.3.6/gcc/java/parse.c *** gcc-3.3.5/gcc/java/parse.c 2004-09-30 17:44:03.000000000 +0000 --- gcc-3.3.6/gcc/java/parse.c 2005-05-03 12:49:03.000000000 +0000 *************** *** 1,4 **** ! /* A Bison parser, made from /home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y, by GNU bison 1.75. */ /* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. --- 1,4 ---- ! /* A Bison parser, made by GNU Bison 1.875. */ /* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. *************** *** 34,43 **** USER NAME SPACE" below. */ /* Identify Bison output. */ ! #define YYBISON 1 /* Pure parsers. */ ! #define YYPURE 1 /* Using locations. */ #define YYLSP_NEEDED 0 --- 34,46 ---- USER NAME SPACE" below. */ /* Identify Bison output. */ ! #define YYBISON 1 ! ! /* Skeleton name. */ ! #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ ! #define YYPURE 1 /* Using locations. */ #define YYLSP_NEEDED 0 *************** *** 284,290 **** /* Copy the first part of user declarations. */ ! #line 5 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" #include "config.h" #include "system.h" --- 287,293 ---- /* Copy the first part of user declarations. */ ! #line 48 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" #include "config.h" #include "system.h" *************** static GTY(()) tree src_parse_roots[1]; *** 694,702 **** # define YYERROR_VERBOSE 0 #endif ! #ifndef YYSTYPE ! #line 401 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! typedef union { tree node; int sub_token; struct { --- 697,705 ---- # define YYERROR_VERBOSE 0 #endif ! #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) ! #line 444 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! typedef union YYSTYPE { tree node; int sub_token; struct { *************** typedef union { *** 704,736 **** int location; } operator; int value; ! } yystype; ! /* Line 193 of /usr/share/bison/yacc.c. */ ! #line 710 "p13913.c" ! # define YYSTYPE yystype # define YYSTYPE_IS_TRIVIAL 1 #endif ! #ifndef YYLTYPE ! typedef struct yyltype ! { ! int first_line; ! int first_column; ! int last_line; ! int last_column; ! } yyltype; ! # define YYLTYPE yyltype ! # define YYLTYPE_IS_TRIVIAL 1 ! #endif /* Copy the second part of user declarations. */ ! #line 411 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" #include "lex.c" ! /* Line 213 of /usr/share/bison/yacc.c. */ ! #line 734 "p13913.c" #if ! defined (yyoverflow) || YYERROR_VERBOSE --- 707,730 ---- int location; } operator; int value; ! } YYSTYPE; ! /* Line 191 of yacc.c. */ ! #line 712 "p19564.c" ! # define yystype YYSTYPE /* obsolescent; will be withdrawn */ ! # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif ! /* Copy the second part of user declarations. */ ! #line 454 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" #include "lex.c" ! /* Line 214 of yacc.c. */ ! #line 727 "p19564.c" #if ! defined (yyoverflow) || YYERROR_VERBOSE *************** typedef struct yyltype *** 766,772 **** #if (! defined (yyoverflow) \ && (! defined (__cplusplus) \ ! || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc --- 760,766 ---- #if (! defined (yyoverflow) \ && (! defined (__cplusplus) \ ! || (YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc *************** union yyalloc *** 776,788 **** }; /* The size of the maximum gap between one aligned stack and the next. */ ! # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ ! + YYSTACK_GAP_MAX) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ --- 770,782 ---- }; /* The size of the maximum gap between one aligned stack and the next. */ ! # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ ! + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ *************** union yyalloc *** 796,802 **** { \ register YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ ! (To)[yyi] = (From)[yyi]; \ } \ while (0) # endif --- 790,796 ---- { \ register YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ ! (To)[yyi] = (From)[yyi]; \ } \ while (0) # endif *************** union yyalloc *** 813,819 **** YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ ! yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) --- 807,813 ---- YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ ! yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) *************** union yyalloc *** 828,833 **** --- 822,828 ---- /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 + /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 5787 /* YYNTOKENS -- Number of terminals. */ *************** union yyalloc *** 843,850 **** #define YYUNDEFTOK 2 #define YYMAXUTOK 366 ! #define YYTRANSLATE(X) \ ! ((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const unsigned char yytranslate[] = --- 838,845 ---- #define YYUNDEFTOK 2 #define YYMAXUTOK 366 ! #define YYTRANSLATE(YYX) \ ! ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const unsigned char yytranslate[] = *************** static const short yyrhs[] = *** 1130,1187 **** /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short yyrline[] = { ! 0, 562, 562, 561, 577, 579, 580, 581, 582, 583, ! 587, 589, 592, 594, 595, 598, 600, 603, 607, 611, ! 615, 624, 635, 637, 640, 644, 649, 654, 656, 657, ! 658, 659, 660, 661, 662, 665, 670, 676, 678, 681, ! 687, 689, 693, 695, 698, 725, 727, 731, 750, 752, ! 756, 759, 761, 762, 770, 775, 792, 790, 796, 795, ! 799, 801, 803, 808, 812, 814, 816, 818, 822, 824, ! 826, 833, 839, 844, 848, 857, 867, 869, 872, 874, ! 875, 876, 886, 888, 889, 891, 893, 897, 900, 910, ! 913, 915, 919, 922, 929, 935, 943, 945, 947, 949, ! 954, 958, 960, 966, 964, 976, 980, 983, 985, 987, ! 989, 994, 999, 1004, 1009, 1016, 1022, 1024, 1033, 1035, ! 1039, 1044, 1049, 1053, 1058, 1063, 1068, 1075, 1085, 1087, ! 1089, 1093, 1096, 1098, 1102, 1104, 1108, 1117, 1135, 1133, ! 1143, 1146, 1150, 1156, 1160, 1167, 1169, 1171, 1175, 1180, ! 1187, 1194, 1196, 1200, 1207, 1219, 1217, 1223, 1222, 1227, ! 1226, 1231, 1230, 1234, 1236, 1240, 1246, 1251, 1253, 1257, ! 1260, 1264, 1266, 1269, 1271, 1272, 1274, 1278, 1282, 1288, ! 1293, 1296, 1298, 1300, 1304, 1310, 1314, 1319, 1328, 1332, ! 1337, 1351, 1353, 1356, 1358, 1360, 1367, 1371, 1374, 1378, ! 1380, 1381, 1382, 1383, 1384, 1388, 1390, 1391, 1392, 1393, ! 1397, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, ! 1408, 1409, 1412, 1430, 1441, 1444, 1448, 1454, 1464, 1469, ! 1474, 1479, 1481, 1486, 1488, 1493, 1495, 1497, 1499, 1501, ! 1505, 1507, 1508, 1509, 1510, 1511, 1512, 1515, 1521, 1523, ! 1525, 1529, 1534, 1541, 1539, 1555, 1561, 1563, 1565, 1571, ! 1574, 1576, 1578, 1582, 1584, 1587, 1591, 1593, 1596, 1603, ! 1609, 1611, 1613, 1617, 1625, 1628, 1630, 1632, 1636, 1641, ! 1650, 1655, 1662, 1669, 1671, 1673, 1677, 1680, 1689, 1696, ! 1698, 1702, 1715, 1717, 1723, 1729, 1733, 1735, 1739, 1742, ! 1744, 1748, 1751, 1753, 1755, 1759, 1762, 1764, 1766, 1770, ! 1773, 1775, 1777, 1781, 1787, 1789, 1793, 1798, 1802, 1804, ! 1808, 1815, 1817, 1819, 1821, 1825, 1837, 1840, 1842, 1847, ! 1851, 1853, 1860, 1869, 1886, 1888, 1893, 1897, 1900, 1905, ! 1907, 1910, 1912, 1914, 1916, 1917, 1918, 1919, 1920, 1922, ! 1927, 1929, 1931, 1933, 1937, 1940, 1942, 1944, 1951, 1954, ! 1956, 1958, 1964, 1965, 1971, 1972, 1974, 1976, 1978, 1980, ! 1982, 1990, 1988, 2023, 2022, 2039, 2042, 2046, 2052, 2057, ! 2061, 2064, 2066, 2068, 2071, 2082, 2091, 2093, 2097, 2100, ! 2104, 2115, 2117, 2125, 2152, 2154, 2158, 2162, 2168, 2172, ! 2175, 2177, 2188, 2199, 2204, 2210, 2212, 2216, 2219, 2221, ! 2226, 2231, 2236, 2243, 2245, 2246, 2247, 2250, 2255, 2260, ! 2262, 2263, 2265, 2266, 2270, 2276, 2278, 2282, 2285, 2289, ! 2292, 2296, 2298, 2300, 2302, 2303, 2305, 2309, 2318, 2320, ! 2322, 2336, 2338, 2343, 2345, 2347, 2351, 2353, 2358, 2363, ! 2368, 2370, 2372, 2376, 2378, 2383, 2388, 2390, 2394, 2396, ! 2401, 2406, 2411, 2413, 2415, 2419, 2421, 2426, 2431, 2436, ! 2441, 2443, 2445, 2447, 2449, 2451, 2455, 2457, 2462, 2467, ! 2469, 2473, 2475, 2480, 2484, 2486, 2491, 2495, 2497, 2502, ! 2506, 2508, 2513, 2517, 2519, 2524, 2528, 2530, 2535, 2541, ! 2543, 2547, 2549, 2552, 2555, 2562, 2564, 2565, 2568, 2570, ! 2573, 2577 }; #endif --- 1125,1182 ---- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short yyrline[] = { ! 0, 606, 606, 606, 622, 623, 624, 625, 626, 627, ! 632, 633, 637, 638, 639, 643, 644, 648, 652, 656, ! 660, 668, 680, 681, 685, 689, 694, 699, 700, 701, ! 702, 703, 704, 705, 706, 710, 714, 721, 722, 726, ! 731, 733, 738, 739, 743, 769, 771, 776, 794, 796, ! 801, 803, 805, 806, 817, 821, 838, 837, 842, 841, ! 845, 847, 849, 854, 859, 860, 862, 864, 869, 870, ! 872, 880, 885, 890, 895, 903, 914, 915, 919, 920, ! 921, 922, 933, 934, 935, 937, 939, 944, 946, 958, ! 959, 961, 966, 968, 975, 981, 990, 991, 993, 995, ! 1000, 1005, 1006, 1012, 1011, 1022, 1027, 1029, 1031, 1033, ! 1035, 1040, 1045, 1050, 1055, 1063, 1068, 1070, 1079, 1081, ! 1086, 1090, 1095, 1100, 1104, 1109, 1114, 1122, 1132, 1133, ! 1135, 1140, 1142, 1144, 1149, 1150, 1155, 1164, 1181, 1180, ! 1190, 1192, 1197, 1202, 1210, 1215, 1217, 1219, 1224, 1229, ! 1235, 1243, 1245, 1250, 1256, 1268, 1267, 1272, 1271, 1276, ! 1275, 1280, 1279, 1283, 1285, 1290, 1295, 1300, 1302, 1307, ! 1309, 1314, 1315, 1319, 1320, 1321, 1323, 1328, 1332, 1337, ! 1343, 1345, 1347, 1349, 1354, 1359, 1363, 1369, 1377, 1382, ! 1387, 1401, 1402, 1406, 1407, 1409, 1417, 1421, 1423, 1428, ! 1429, 1430, 1431, 1432, 1433, 1438, 1439, 1440, 1441, 1442, ! 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, ! 1457, 1458, 1462, 1480, 1491, 1493, 1498, 1505, 1514, 1519, ! 1524, 1529, 1531, 1536, 1538, 1543, 1545, 1547, 1549, 1551, ! 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1566, 1571, 1573, ! 1575, 1580, 1585, 1591, 1590, 1606, 1611, 1613, 1615, 1623, ! 1625, 1627, 1629, 1634, 1635, 1639, 1643, 1644, 1648, 1654, ! 1660, 1662, 1664, 1669, 1677, 1679, 1681, 1683, 1688, 1693, ! 1702, 1707, 1713, 1720, 1722, 1724, 1729, 1731, 1741, 1747, ! 1749, 1754, 1767, 1768, 1774, 1780, 1785, 1786, 1791, 1793, ! 1795, 1800, 1802, 1804, 1806, 1811, 1813, 1815, 1817, 1822, ! 1824, 1826, 1828, 1833, 1838, 1840, 1845, 1849, 1853, 1855, ! 1860, 1866, 1868, 1870, 1872, 1877, 1889, 1891, 1893, 1898, ! 1903, 1904, 1912, 1921, 1937, 1939, 1944, 1949, 1951, 1957, ! 1958, 1962, 1963, 1965, 1967, 1968, 1969, 1970, 1971, 1975, ! 1980, 1982, 1984, 1986, 1991, 1993, 1995, 1997, 2005, 2007, ! 2009, 2013, 2019, 2020, 2026, 2027, 2029, 2031, 2033, 2035, ! 2037, 2048, 2047, 2081, 2080, 2098, 2100, 2105, 2110, 2115, ! 2120, 2122, 2124, 2126, 2130, 2141, 2150, 2152, 2157, 2159, ! 2164, 2174, 2176, 2185, 2211, 2213, 2218, 2222, 2228, 2233, ! 2235, 2237, 2248, 2259, 2264, 2273, 2275, 2280, 2282, 2284, ! 2289, 2294, 2299, 2307, 2308, 2309, 2310, 2314, 2319, 2324, ! 2325, 2326, 2328, 2329, 2334, 2339, 2341, 2346, 2348, 2353, ! 2355, 2360, 2361, 2363, 2365, 2366, 2368, 2373, 2381, 2383, ! 2385, 2399, 2401, 2406, 2408, 2410, 2415, 2416, 2421, 2426, ! 2431, 2433, 2435, 2440, 2441, 2446, 2451, 2453, 2458, 2459, ! 2464, 2469, 2474, 2476, 2478, 2483, 2484, 2489, 2494, 2499, ! 2504, 2506, 2508, 2510, 2512, 2514, 2519, 2520, 2525, 2530, ! 2532, 2537, 2538, 2543, 2548, 2549, 2554, 2559, 2560, 2565, ! 2570, 2571, 2576, 2581, 2582, 2587, 2592, 2593, 2598, 2604, ! 2606, 2611, 2612, 2616, 2618, 2626, 2627, 2628, 2632, 2633, ! 2637, 2641 }; #endif *************** static const short yypgoto[] = *** 1621,1627 **** /* 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, parse error. */ #define YYTABLE_NINF -508 static const short yytable[] = { --- 1616,1622 ---- /* 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 -508 static const short yytable[] = { *************** static const unsigned short yystos[] = *** 2892,2898 **** #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) ! #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT goto yyacceptlab --- 2887,2893 ---- #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) ! #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab *************** do \ *** 2913,2925 **** { \ yychar = (Token); \ yylval = (Value); \ ! yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ ! yyerror ("syntax error: cannot back up"); \ YYERROR; \ } \ while (0) --- 2908,2920 ---- { \ yychar = (Token); \ yylval = (Value); \ ! yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ ! yyerror ("syntax error: cannot back up");\ YYERROR; \ } \ while (0) *************** while (0) *** 2931,2937 **** are run). */ #ifndef YYLLOC_DEFAULT ! # define YYLLOC_DEFAULT(Current, Rhs, N) \ Current.first_line = Rhs[1].first_line; \ Current.first_column = Rhs[1].first_column; \ Current.last_line = Rhs[N].last_line; \ --- 2926,2932 ---- are run). */ #ifndef YYLLOC_DEFAULT ! # define YYLLOC_DEFAULT(Current, Rhs, N) \ Current.first_line = Rhs[1].first_line; \ Current.first_column = Rhs[1].first_column; \ Current.last_line = Rhs[N].last_line; \ *************** while (0) *** 2941,2949 **** /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM ! # define YYLEX yylex (&yylval, YYLEX_PARAM) #else ! # define YYLEX yylex (&yylval) #endif /* Enable debugging if requested. */ --- 2936,2944 ---- /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM ! # define YYLEX yylex (&yylval, YYLEX_PARAM) #else ! # define YYLEX yylex (&yylval) #endif /* Enable debugging if requested. */ *************** do { \ *** 2959,2977 **** --- 2954,3046 ---- if (yydebug) \ YYFPRINTF Args; \ } while (0) + # define YYDSYMPRINT(Args) \ do { \ if (yydebug) \ yysymprint Args; \ } while (0) + + # define YYDSYMPRINTF(Title, Token, Value, Location) \ + do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yysymprint (stderr, \ + Token, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ + } while (0) + + /*------------------------------------------------------------------. + | yy_stack_print -- Print the state stack from its BOTTOM up to its | + | TOP (cinluded). | + `------------------------------------------------------------------*/ + + #if defined (__STDC__) || defined (__cplusplus) + static void + yy_stack_print (short *bottom, short *top) + #else + static void + yy_stack_print (bottom, top) + short *bottom; + short *top; + #endif + { + YYFPRINTF (stderr, "Stack now"); + for (/* Nothing. */; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); + } + + # define YY_STACK_PRINT(Bottom, Top) \ + do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ + } while (0) + + + /*------------------------------------------------. + | Report that the YYRULE is going to be reduced. | + `------------------------------------------------*/ + + #if defined (__STDC__) || defined (__cplusplus) + static void + yy_reduce_print (int yyrule) + #else + static void + yy_reduce_print (yyrule) + int yyrule; + #endif + { + int yyi; + unsigned int yylineno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", + yyrule - 1, yylineno); + /* Print the symbols being reduced, and their result. */ + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) + YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); + YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); + } + + # define YY_REDUCE_PRINT(Rule) \ + do { \ + if (yydebug) \ + yy_reduce_print (Rule); \ + } while (0) + /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YYDSYMPRINT(Args) + # define YYDSYMPRINTF(Title, Token, 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 *************** yystpcpy (yydest, yysrc) *** 3050,3151 **** #if YYDEBUG ! /*-----------------------------. ! | Print this symbol on YYOUT. | ! `-----------------------------*/ - static void #if defined (__STDC__) || defined (__cplusplus) ! yysymprint (FILE* yyout, int yytype, YYSTYPE yyvalue) #else ! yysymprint (yyout, yytype, yyvalue) ! FILE* yyout; int yytype; ! YYSTYPE yyvalue; #endif { /* Pacify ``unused variable'' warnings. */ ! (void) yyvalue; if (yytype < YYNTOKENS) { ! YYFPRINTF (yyout, "token %s (", yytname[yytype]); # ifdef YYPRINT ! YYPRINT (yyout, yytoknum[yytype], yyvalue); # endif } else ! YYFPRINTF (yyout, "nterm %s (", yytname[yytype]); switch (yytype) { default: break; } ! YYFPRINTF (yyout, ")"); } - #endif /* YYDEBUG. */ - /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ - static void #if defined (__STDC__) || defined (__cplusplus) ! yydestruct (int yytype, YYSTYPE yyvalue) #else ! yydestruct (yytype, yyvalue) int yytype; ! YYSTYPE yyvalue; #endif { /* Pacify ``unused variable'' warnings. */ ! (void) yyvalue; switch (yytype) { default: break; } } - ! /* 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. */ #ifdef YYPARSE_PARAM # if defined (__STDC__) || defined (__cplusplus) ! # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM ! # define YYPARSE_PARAM_DECL # else ! # define YYPARSE_PARAM_ARG YYPARSE_PARAM ! # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; # endif ! #else /* !YYPARSE_PARAM */ ! # define YYPARSE_PARAM_ARG ! # define YYPARSE_PARAM_DECL ! #endif /* !YYPARSE_PARAM */ ! ! /* Prevent warning if -Wstrict-prototypes. */ ! #ifdef __GNUC__ ! # ifdef YYPARSE_PARAM ! int yyparse (void *); ! # else int yyparse (void); ! # endif #endif int ! yyparse (YYPARSE_PARAM_ARG) ! YYPARSE_PARAM_DECL { /* The lookahead symbol. */ int yychar; --- 3119,3229 ---- #if YYDEBUG ! /*--------------------------------. ! | Print this symbol on YYOUTPUT. | ! `--------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) ! static void ! yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) #else ! static void ! yysymprint (yyoutput, yytype, yyvaluep) ! FILE *yyoutput; int yytype; ! YYSTYPE *yyvaluep; #endif { /* Pacify ``unused variable'' warnings. */ ! (void) yyvaluep; if (yytype < YYNTOKENS) { ! YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); # ifdef YYPRINT ! YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # endif } else ! YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); switch (yytype) { default: break; } ! YYFPRINTF (yyoutput, ")"); } + #endif /* ! YYDEBUG */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) ! static void ! yydestruct (int yytype, YYSTYPE *yyvaluep) #else ! static void ! yydestruct (yytype, yyvaluep) int yytype; ! YYSTYPE *yyvaluep; #endif { /* Pacify ``unused variable'' warnings. */ ! (void) yyvaluep; switch (yytype) { + default: break; } } ! /* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM # if defined (__STDC__) || defined (__cplusplus) ! int yyparse (void *YYPARSE_PARAM); # else ! int yyparse (); # endif ! #else /* ! YYPARSE_PARAM */ ! #if defined (__STDC__) || defined (__cplusplus) int yyparse (void); ! #else ! int yyparse (); #endif + #endif /* ! YYPARSE_PARAM */ + + + /*----------. + | yyparse. | + `----------*/ + + #ifdef YYPARSE_PARAM + # if defined (__STDC__) || defined (__cplusplus) + int yyparse (void *YYPARSE_PARAM) + # else + int yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; + # endif + #else /* ! YYPARSE_PARAM */ + #if defined (__STDC__) || defined (__cplusplus) int ! yyparse (void) ! #else ! int ! yyparse () ! ! #endif ! #endif { /* The lookahead symbol. */ int yychar; *************** int yychar; *** 3153,3159 **** /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; ! /* Number of parse errors so far. */ int yynerrs; register int yystate; --- 3231,3237 ---- /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; ! /* Number of syntax errors so far. */ int yynerrs; register int yystate; *************** int yynerrs; *** 3162,3168 **** /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Lookahead token as an internal (translated) token number. */ ! int yychar1 = 0; /* Three stacks and their tools: `yyss': related to states, --- 3240,3246 ---- /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Lookahead token as an internal (translated) token number. */ ! int yytoken = 0; /* Three stacks and their tools: `yyss': related to states, *************** int yynerrs; *** 3226,3232 **** yysetstate: *yyssp = yystate; ! if (yyssp >= yyss + yystacksize - 1) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; --- 3304,3310 ---- yysetstate: *yyssp = yystate; ! if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; *************** int yynerrs; *** 3258,3267 **** goto yyoverflowlab; # else /* Extend the stack our own way. */ ! if (yystacksize >= YYMAXDEPTH) goto yyoverflowlab; yystacksize *= 2; ! if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; { --- 3336,3345 ---- goto yyoverflowlab; # else /* Extend the stack our own way. */ ! if (YYMAXDEPTH <= yystacksize) goto yyoverflowlab; yystacksize *= 2; ! if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { *************** int yynerrs; *** 3287,3293 **** YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); ! if (yyssp >= yyss + yystacksize - 1) YYABORT; } --- 3365,3371 ---- YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); ! if (yyss + yystacksize - 1 <= yyssp) YYABORT; } *************** yybackup: *** 3312,3350 **** /* 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. */ ! if (yychar == YYEMPTY) { 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. */ { ! yychar1 = 0; ! yychar = YYEOF; /* Don't call YYLEX any more. */ ! YYDPRINTF ((stderr, "Now at end of input.\n")); } else { ! yychar1 = YYTRANSLATE (yychar); ! ! /* We have to keep this `#if YYDEBUG', since we use variables ! which are defined only if `YYDEBUG' is set. */ ! YYDPRINTF ((stderr, "Next token is ")); ! YYDSYMPRINT ((stderr, yychar1, yylval)); ! YYDPRINTF ((stderr, "\n")); } ! /* If the proper action on seeing token YYCHAR1 is to reduce or to detect an error, take that action. */ ! yyn += yychar1; ! if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) --- 3390,3417 ---- /* Not known => get a lookahead token if don't already have one. */ ! /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } ! if (yychar <= YYEOF) { ! yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { ! yytoken = YYTRANSLATE (yychar); ! YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); } ! /* 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]; if (yyn <= 0) *************** yybackup: *** 3359,3366 **** YYACCEPT; /* Shift the lookahead token. */ ! YYDPRINTF ((stderr, "Shifting token %d (%s), ", ! yychar, yytname[yychar1])); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) --- 3426,3432 ---- YYACCEPT; /* Shift the lookahead token. */ ! YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) *************** yyreduce: *** 3406,3432 **** yyval = yyvsp[1-yylen]; ! ! #if YYDEBUG ! /* We have to keep this `#if YYDEBUG', since we use variables which ! are defined only if `YYDEBUG' is set. */ ! if (yydebug) ! { ! int yyi; ! ! YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", ! yyn - 1, yyrline[yyn]); ! ! /* Print the symbols being reduced, and their result. */ ! for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++) ! YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); ! YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); ! } ! #endif switch (yyn) { case 2: ! #line 562 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { /* Register static variables with the garbage collector. */ --- 3472,3482 ---- yyval = yyvsp[1-yylen]; ! YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: ! #line 606 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { /* Register static variables with the garbage collector. */ *************** yyreduce: *** 3436,3515 **** ggc_add_root (&ctxp_for_generation, 1, sizeof (struct parser_ctxt *), mark_parser_ctxt); ! } break; case 3: ! #line 573 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {} break; case 20: ! #line 617 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = build_java_array_type ((yyvsp[-1].node), -1); while (--osb) t = build_unresolved_array_type (t); yyval.node = t; ! } break; case 21: ! #line 625 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = yyvsp[-1].node; while (osb--) t = build_unresolved_array_type (t); yyval.node = t; ! } break; case 25: ! #line 646 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = make_qualified_name (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); } break; case 27: ! #line 655 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyval.node = NULL;} break; case 35: ! #line 667 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = NULL; ! } break; case 36: ! #line 671 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = NULL; ! } break; case 39: ! #line 683 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { ctxp->package = EXPR_WFL_NODE (yyvsp[-1].node); register_package (ctxp->package); ! } break; case 40: ! #line 688 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing name"); RECOVER;} break; case 41: ! #line 690 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;} break; case 44: ! #line 700 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-1].node), last_name; int i = IDENTIFIER_LENGTH (name)-1; --- 3486,3565 ---- ggc_add_root (&ctxp_for_generation, 1, sizeof (struct parser_ctxt *), mark_parser_ctxt); ! ;} break; case 3: ! #line 617 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {;} break; case 20: ! #line 661 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = build_java_array_type ((yyvsp[-1].node), -1); while (--osb) t = build_unresolved_array_type (t); yyval.node = t; ! ;} break; case 21: ! #line 669 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = yyvsp[-1].node; while (osb--) t = build_unresolved_array_type (t); yyval.node = t; ! ;} break; case 25: ! #line 690 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = make_qualified_name (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ;} break; case 27: ! #line 699 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyval.node = NULL;;} break; case 35: ! #line 711 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = NULL; ! ;} break; case 36: ! #line 715 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = NULL; ! ;} break; case 39: ! #line 727 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { ctxp->package = EXPR_WFL_NODE (yyvsp[-1].node); register_package (ctxp->package); ! ;} break; case 40: ! #line 732 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing name"); RECOVER;;} break; case 41: ! #line 734 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;;} break; case 44: ! #line 744 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-1].node), last_name; int i = IDENTIFIER_LENGTH (name)-1; *************** yyreduce: *** 3534,3554 **** } else REGISTER_IMPORT (yyvsp[-1].node, last_name); ! } break; case 45: ! #line 726 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing name"); RECOVER;} break; case 46: ! #line 728 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;} break; case 47: ! #line 733 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-3].node); tree it; --- 3584,3604 ---- } else REGISTER_IMPORT (yyvsp[-1].node, last_name); ! ;} break; case 45: ! #line 770 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing name"); RECOVER;;} break; case 46: ! #line 772 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;;} break; case 47: ! #line 777 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-3].node); tree it; *************** yyreduce: *** 3565,3610 **** chainon (ctxp->import_demand_list, build_tree_list (yyvsp[-3].node, NULL_TREE)); } ! } break; case 48: ! #line 751 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'*' expected"); RECOVER;} break; case 49: ! #line 753 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;} break; case 50: ! #line 758 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { end_class_declaration (0); } break; case 51: ! #line 760 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { end_class_declaration (0); } break; case 53: ! #line 763 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Class or interface declaration expected"); ! } break; case 54: ! #line 772 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.value = (1 << yyvsp[0].value); ! } break; case 55: ! #line 776 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { int acc = (1 << yyvsp[0].value); if (yyval.value & acc) --- 3615,3660 ---- chainon (ctxp->import_demand_list, build_tree_list (yyvsp[-3].node, NULL_TREE)); } ! ;} break; case 48: ! #line 795 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'*' expected"); RECOVER;;} break; case 49: ! #line 797 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;;} break; case 50: ! #line 802 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { end_class_declaration (0); ;} break; case 51: ! #line 804 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { end_class_declaration (0); ;} break; case 53: ! #line 807 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Class or interface declaration expected"); ! ;} break; case 54: ! #line 818 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.value = (1 << yyvsp[0].value); ! ;} break; case 55: ! #line 822 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { int acc = (1 << yyvsp[0].value); if (yyval.value & acc) *************** yyreduce: *** 3615,3852 **** { yyval.value |= acc; } ! } break; case 56: ! #line 792 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { create_class (yyvsp[-4].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); } break; case 57: ! #line 794 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {;} break; case 58: ! #line 796 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { create_class (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); } break; case 59: ! #line 798 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {;} break; case 60: ! #line 800 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyerror ("Missing class name"); RECOVER; } break; case 61: ! #line 802 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyerror ("Missing class name"); RECOVER; } break; case 62: ! #line 804 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { if (!ctxp->class_err) yyerror ("'{' expected"); DRECOVER(class1); ! } break; case 63: ! #line 809 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER; } break; case 64: ! #line 813 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = NULL; } break; case 65: ! #line 815 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; } break; case 66: ! #line 817 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'{' expected"); ctxp->class_err=1;} break; case 67: ! #line 819 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing super class name"); ctxp->class_err=1;} break; case 68: ! #line 823 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = NULL_TREE; } break; case 69: ! #line 825 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; } break; case 70: ! #line 827 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { ctxp->class_err=1; yyerror ("Missing interface name"); ! } break; case 71: ! #line 835 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ! } break; case 72: ! #line 840 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ! } break; case 73: ! #line 845 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing interface name"); RECOVER;} break; case 74: ! #line 850 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) DECL_END_SOURCE_LINE (GET_CPC ()) = EXPR_WFL_ADD_COL (yyvsp[0].operator.location, 1); yyval.node = GET_CPC (); ! } break; case 75: ! #line 858 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) DECL_END_SOURCE_LINE (GET_CPC ()) = EXPR_WFL_ADD_COL (yyvsp[0].operator.location, 1); yyval.node = GET_CPC (); ! } break; case 81: ! #line 877 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { if (yyvsp[0].node != empty_stmt_node) { TREE_CHAIN (yyvsp[0].node) = CPC_INSTANCE_INITIALIZER_STMT (ctxp); SET_CPC_INSTANCE_INITIALIZER_STMT (ctxp, yyvsp[0].node); } ! } break; case 84: ! #line 890 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { end_class_declaration (1); } break; case 85: ! #line 892 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { end_class_declaration (1); } break; case 87: ! #line 899 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { register_fields (0, yyvsp[-2].node, yyvsp[-1].node); } break; case 88: ! #line 901 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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 90: ! #line 914 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); } break; case 91: ! #line 916 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 92: ! #line 921 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); } break; case 93: ! #line 923 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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 94: ! #line 930 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("Missing variable initializer"); yyval.node = build_tree_list (yyvsp[-2].node, NULL_TREE); RECOVER; ! } break; case 95: ! #line 936 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("';' expected"); yyval.node = build_tree_list (yyvsp[-3].node, NULL_TREE); RECOVER; ! } break; case 97: ! #line 946 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_unresolved_array_type (yyvsp[-2].node); } break; case 98: ! #line 948 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Invalid declaration"); DRECOVER(vdi);} break; case 99: ! #line 950 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(vdi); ! } break; case 100: ! #line 955 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Unbalanced ']'"); DRECOVER(vdi);} break; case 103: ! #line 966 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; if (current_function_decl --- 3665,3902 ---- { yyval.value |= acc; } ! ;} break; case 56: ! #line 838 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { create_class (yyvsp[-4].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ;} break; case 57: ! #line 840 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {;;} break; case 58: ! #line 842 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { create_class (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ;} break; case 59: ! #line 844 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {;;} break; case 60: ! #line 846 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyerror ("Missing class name"); RECOVER; ;} break; case 61: ! #line 848 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyerror ("Missing class name"); RECOVER; ;} break; case 62: ! #line 850 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { if (!ctxp->class_err) yyerror ("'{' expected"); DRECOVER(class1); ! ;} break; case 63: ! #line 855 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER; ;} break; case 64: ! #line 859 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = NULL; ;} break; case 65: ! #line 861 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; ;} break; case 66: ! #line 863 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'{' expected"); ctxp->class_err=1;;} break; case 67: ! #line 865 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing super class name"); ctxp->class_err=1;;} break; case 68: ! #line 869 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = NULL_TREE; ;} break; case 69: ! #line 871 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; ;} break; case 70: ! #line 873 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { ctxp->class_err=1; yyerror ("Missing interface name"); ! ;} break; case 71: ! #line 881 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ! ;} break; case 72: ! #line 886 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ! ;} break; case 73: ! #line 891 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing interface name"); RECOVER;;} break; case 74: ! #line 896 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) DECL_END_SOURCE_LINE (GET_CPC ()) = EXPR_WFL_ADD_COL (yyvsp[0].operator.location, 1); yyval.node = GET_CPC (); ! ;} break; case 75: ! #line 904 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) DECL_END_SOURCE_LINE (GET_CPC ()) = EXPR_WFL_ADD_COL (yyvsp[0].operator.location, 1); yyval.node = GET_CPC (); ! ;} break; case 81: ! #line 923 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { if (yyvsp[0].node != empty_stmt_node) { TREE_CHAIN (yyvsp[0].node) = CPC_INSTANCE_INITIALIZER_STMT (ctxp); SET_CPC_INSTANCE_INITIALIZER_STMT (ctxp, yyvsp[0].node); } ! ;} break; case 84: ! #line 936 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { end_class_declaration (1); ;} break; case 85: ! #line 938 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { end_class_declaration (1); ;} break; case 87: ! #line 945 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { register_fields (0, yyvsp[-2].node, yyvsp[-1].node); ;} break; case 88: ! #line 947 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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 90: ! #line 960 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ;} break; case 91: ! #line 962 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 92: ! #line 967 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ;} break; case 93: ! #line 969 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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 94: ! #line 976 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("Missing variable initializer"); yyval.node = build_tree_list (yyvsp[-2].node, NULL_TREE); RECOVER; ! ;} break; case 95: ! #line 982 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("';' expected"); yyval.node = build_tree_list (yyvsp[-3].node, NULL_TREE); RECOVER; ! ;} break; case 97: ! #line 992 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_unresolved_array_type (yyvsp[-2].node); ;} break; case 98: ! #line 994 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Invalid declaration"); DRECOVER(vdi);;} break; case 99: ! #line 996 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(vdi); ! ;} break; case 100: ! #line 1001 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Unbalanced ']'"); DRECOVER(vdi);;} break; case 103: ! #line 1012 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; if (current_function_decl *************** yyreduce: *** 3854,3947 **** source_start_java_method (current_function_decl); else current_function_decl = NULL_TREE; ! } break; case 104: ! #line 975 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { finish_method_declaration (yyvsp[0].node); } break; case 105: ! #line 977 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {YYNOT_TWICE yyerror ("'{' expected"); RECOVER;} break; case 106: ! #line 982 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = method_header (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); } break; case 107: ! #line 984 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = method_header (0, void_type_node, yyvsp[-1].node, yyvsp[0].node); } break; case 108: ! #line 986 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = method_header (yyvsp[-3].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); } break; case 109: ! #line 988 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = method_header (yyvsp[-3].value, void_type_node, yyvsp[-1].node, yyvsp[0].node); } break; case 110: ! #line 990 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("Invalid method declaration, method name required"); RECOVER; ! } break; case 111: ! #line 995 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("Identifier expected"); RECOVER; ! } break; case 112: ! #line 1000 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("Identifier expected"); RECOVER; ! } break; case 113: ! #line 1005 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("Identifier expected"); RECOVER; ! } break; case 114: ! #line 1010 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("Invalid method declaration, return type required"); RECOVER; ! } break; case 115: ! #line 1018 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ! } break; case 116: ! #line 1023 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); } break; case 117: ! #line 1025 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { EXPR_WFL_LINECOL (wfl_operator) = yyvsp[-1].operator.location; TREE_PURPOSE (yyvsp[-2].node) = --- 3904,3997 ---- source_start_java_method (current_function_decl); else current_function_decl = NULL_TREE; ! ;} break; case 104: ! #line 1021 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { finish_method_declaration (yyvsp[0].node); ;} break; case 105: ! #line 1023 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {YYNOT_TWICE yyerror ("'{' expected"); RECOVER;;} break; case 106: ! #line 1028 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = method_header (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ;} break; case 107: ! #line 1030 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = method_header (0, void_type_node, yyvsp[-1].node, yyvsp[0].node); ;} break; case 108: ! #line 1032 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = method_header (yyvsp[-3].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ;} break; case 109: ! #line 1034 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = method_header (yyvsp[-3].value, void_type_node, yyvsp[-1].node, yyvsp[0].node); ;} break; case 110: ! #line 1036 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("Invalid method declaration, method name required"); RECOVER; ! ;} break; case 111: ! #line 1041 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("Identifier expected"); RECOVER; ! ;} break; case 112: ! #line 1046 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("Identifier expected"); RECOVER; ! ;} break; case 113: ! #line 1051 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("Identifier expected"); RECOVER; ! ;} break; case 114: ! #line 1056 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("Invalid method declaration, return type required"); RECOVER; ! ;} break; case 115: ! #line 1064 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ! ;} break; case 116: ! #line 1069 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ;} break; case 117: ! #line 1071 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { EXPR_WFL_LINECOL (wfl_operator) = yyvsp[-1].operator.location; TREE_PURPOSE (yyvsp[-2].node) = *************** yyreduce: *** 3949,4074 **** parse_warning_context (wfl_operator, "Discouraged form of returned type specification"); ! } break; case 118: ! #line 1034 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("')' expected"); DRECOVER(method_declarator);} break; case 119: ! #line 1036 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("']' expected"); RECOVER;} break; case 120: ! #line 1041 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { ctxp->formal_parameter_number = 1; ! } break; case 121: ! #line 1045 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ! } break; case 122: ! #line 1050 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyerror ("Missing formal parameter term"); RECOVER; } break; case 123: ! #line 1055 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ! } break; case 124: ! #line 1059 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ARG_FINAL_P (yyval.node) = 1; ! } break; case 125: ! #line 1064 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ! } break; case 126: ! #line 1069 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ! } break; case 127: ! #line 1077 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s'. Only `final' was expected here", yyvsp[0].value, ACC_FINAL); if (yyvsp[0].value != ACC_FINAL) MODIFIER_WFL (FINAL_TK) = build_wfl_node (NULL_TREE); ! } break; case 128: ! #line 1086 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = NULL_TREE; } break; case 129: ! #line 1088 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; } break; case 130: ! #line 1090 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing class type term"); RECOVER;} break; case 131: ! #line 1095 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[0].node); } break; case 132: ! #line 1097 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = tree_cons (yyvsp[0].node, yyvsp[0].node, yyvsp[-2].node); } break; case 133: ! #line 1099 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing class type term"); RECOVER;} break; case 135: ! #line 1104 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = NULL_TREE; } break; case 136: ! #line 1110 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = CPC_STATIC_INITIALIZER_STMT (ctxp); SET_CPC_STATIC_INITIALIZER_STMT (ctxp, yyvsp[0].node); current_static_block = NULL_TREE; ! } break; case 137: ! #line 1119 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s' for static initializer", yyvsp[0].value, ACC_STATIC); /* Can't have a static initializer in an innerclass */ --- 3999,4124 ---- parse_warning_context (wfl_operator, "Discouraged form of returned type specification"); ! ;} break; case 118: ! #line 1080 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("')' expected"); DRECOVER(method_declarator);;} break; case 119: ! #line 1082 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("']' expected"); RECOVER;;} break; case 120: ! #line 1087 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { ctxp->formal_parameter_number = 1; ! ;} break; case 121: ! #line 1091 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 122: ! #line 1096 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyerror ("Missing formal parameter term"); RECOVER; ;} break; case 123: ! #line 1101 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ! ;} break; case 124: ! #line 1105 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ARG_FINAL_P (yyval.node) = 1; ! ;} break; case 125: ! #line 1110 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ! ;} break; case 126: ! #line 1115 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ! ;} break; case 127: ! #line 1123 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s'. Only `final' was expected here", yyvsp[0].value, ACC_FINAL); if (yyvsp[0].value != ACC_FINAL) MODIFIER_WFL (FINAL_TK) = build_wfl_node (NULL_TREE); ! ;} break; case 128: ! #line 1132 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = NULL_TREE; ;} break; case 129: ! #line 1134 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; ;} break; case 130: ! #line 1136 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing class type term"); RECOVER;;} break; case 131: ! #line 1141 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[0].node); ;} break; case 132: ! #line 1143 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = tree_cons (yyvsp[0].node, yyvsp[0].node, yyvsp[-2].node); ;} break; case 133: ! #line 1145 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing class type term"); RECOVER;;} break; case 135: ! #line 1150 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = NULL_TREE; ;} break; case 136: ! #line 1156 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = CPC_STATIC_INITIALIZER_STMT (ctxp); SET_CPC_STATIC_INITIALIZER_STMT (ctxp, yyvsp[0].node); current_static_block = NULL_TREE; ! ;} break; case 137: ! #line 1165 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s' for static initializer", yyvsp[0].value, ACC_STATIC); /* Can't have a static initializer in an innerclass */ *************** yyreduce: *** 4079,4364 **** "Can't define static initializer in class `%s'. Static initializer can only be defined in top-level classes", IDENTIFIER_POINTER (DECL_NAME (GET_CPC ()))); SOURCE_FRONTEND_DEBUG (("Modifiers: %d", yyvsp[0].value)); ! } break; case 138: ! #line 1135 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; source_start_java_method (current_function_decl); ! } break; case 139: ! #line 1140 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { finish_method_declaration (yyvsp[0].node); } break; case 140: ! #line 1145 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = method_header (0, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); } break; case 141: ! #line 1147 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = method_header (yyvsp[-2].value, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); } break; case 142: ! #line 1152 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ! } break; case 143: ! #line 1157 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); } break; case 144: ! #line 1163 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { BLOCK_EXPR_BODY (yyvsp[0].node) = empty_stmt_node; yyval.node = yyvsp[0].node; ! } break; case 145: ! #line 1168 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; } break; case 146: ! #line 1170 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; } break; case 147: ! #line 1172 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; } break; case 149: ! #line 1182 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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 150: ! #line 1188 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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 151: ! #line 1195 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); } break; case 152: ! #line 1197 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); } break; case 153: ! #line 1202 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree wfl = build_wfl_node (this_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; yyval.node = wfl; ! } break; case 154: ! #line 1208 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; yyval.node = wfl; ! } break; case 155: ! #line 1219 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { create_interface (0, yyvsp[0].node, NULL_TREE); } break; case 156: ! #line 1221 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { ; } break; case 157: ! #line 1223 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { create_interface (yyvsp[-2].value, yyvsp[0].node, NULL_TREE); } break; case 158: ! #line 1225 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { ; } break; case 159: ! #line 1227 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { create_interface (0, yyvsp[-1].node, yyvsp[0].node); } break; case 160: ! #line 1229 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { ; } break; case 161: ! #line 1231 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { create_interface (yyvsp[-3].value, yyvsp[-1].node, yyvsp[0].node); } break; case 162: ! #line 1233 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { ; } break; case 163: ! #line 1235 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyerror ("'{' expected"); RECOVER; } break; case 164: ! #line 1237 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyerror ("'{' expected"); RECOVER; } break; case 165: ! #line 1242 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ! } break; case 166: ! #line 1247 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ! } break; case 167: ! #line 1252 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Invalid interface type"); RECOVER;} break; case 168: ! #line 1254 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 169: ! #line 1259 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = NULL_TREE; } break; case 170: ! #line 1261 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = NULL_TREE; } break; case 175: ! #line 1273 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { end_class_declaration (1); } break; case 176: ! #line 1275 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { end_class_declaration (1); } break; case 178: ! #line 1284 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { check_abstract_method_header (yyvsp[-1].node); current_function_decl = NULL_TREE; /* FIXME ? */ ! } break; case 179: ! #line 1289 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;} break; case 180: ! #line 1295 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_new_array_init (yyvsp[-1].operator.location, NULL_TREE); } break; case 181: ! #line 1297 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_new_array_init (yyvsp[-2].operator.location, NULL_TREE); } break; case 182: ! #line 1299 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_new_array_init (yyvsp[-2].operator.location, yyvsp[-1].node); } break; case 183: ! #line 1301 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_new_array_init (yyvsp[-3].operator.location, yyvsp[-2].node); } break; case 184: ! #line 1306 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, NULL_TREE); ! } break; case 185: ! #line 1311 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, yyvsp[-2].node); ! } break; case 186: ! #line 1315 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 187: ! #line 1321 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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 188: ! #line 1329 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; } break; case 189: ! #line 1334 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { enter_block (); } break; case 190: ! #line 1339 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { maybe_absorb_scoping_blocks (); /* Store the location of the `}' when doing xrefs */ --- 4129,4414 ---- "Can't define static initializer in class `%s'. Static initializer can only be defined in top-level classes", IDENTIFIER_POINTER (DECL_NAME (GET_CPC ()))); SOURCE_FRONTEND_DEBUG (("Modifiers: %d", yyvsp[0].value)); ! ;} break; case 138: ! #line 1181 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; source_start_java_method (current_function_decl); ! ;} break; case 139: ! #line 1186 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { finish_method_declaration (yyvsp[0].node); ;} break; case 140: ! #line 1191 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = method_header (0, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ;} break; case 141: ! #line 1193 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = method_header (yyvsp[-2].value, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ;} break; case 142: ! #line 1198 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ! ;} break; case 143: ! #line 1203 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ;} break; case 144: ! #line 1211 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { BLOCK_EXPR_BODY (yyvsp[0].node) = empty_stmt_node; yyval.node = yyvsp[0].node; ! ;} break; case 145: ! #line 1216 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; ;} break; case 146: ! #line 1218 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; ;} break; case 147: ! #line 1220 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; ;} break; case 149: ! #line 1230 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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 150: ! #line 1236 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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 151: ! #line 1244 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ;} break; case 152: ! #line 1246 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ;} break; case 153: ! #line 1251 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree wfl = build_wfl_node (this_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; yyval.node = wfl; ! ;} break; case 154: ! #line 1257 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; yyval.node = wfl; ! ;} break; case 155: ! #line 1268 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { create_interface (0, yyvsp[0].node, NULL_TREE); ;} break; case 156: ! #line 1270 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { ; ;} break; case 157: ! #line 1272 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { create_interface (yyvsp[-2].value, yyvsp[0].node, NULL_TREE); ;} break; case 158: ! #line 1274 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { ; ;} break; case 159: ! #line 1276 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { create_interface (0, yyvsp[-1].node, yyvsp[0].node); ;} break; case 160: ! #line 1278 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { ; ;} break; case 161: ! #line 1280 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { create_interface (yyvsp[-3].value, yyvsp[-1].node, yyvsp[0].node); ;} break; case 162: ! #line 1282 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { ; ;} break; case 163: ! #line 1284 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyerror ("'{' expected"); RECOVER; ;} break; case 164: ! #line 1286 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyerror ("'{' expected"); RECOVER; ;} break; case 165: ! #line 1291 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ! ;} break; case 166: ! #line 1296 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ! ;} break; case 167: ! #line 1301 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Invalid interface type"); RECOVER;;} break; case 168: ! #line 1303 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 169: ! #line 1308 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = NULL_TREE; ;} break; case 170: ! #line 1310 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = NULL_TREE; ;} break; case 175: ! #line 1322 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { end_class_declaration (1); ;} break; case 176: ! #line 1324 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { end_class_declaration (1); ;} break; case 178: ! #line 1333 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { check_abstract_method_header (yyvsp[-1].node); current_function_decl = NULL_TREE; /* FIXME ? */ ! ;} break; case 179: ! #line 1338 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;;} break; case 180: ! #line 1344 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_new_array_init (yyvsp[-1].operator.location, NULL_TREE); ;} break; case 181: ! #line 1346 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_new_array_init (yyvsp[-2].operator.location, NULL_TREE); ;} break; case 182: ! #line 1348 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_new_array_init (yyvsp[-2].operator.location, yyvsp[-1].node); ;} break; case 183: ! #line 1350 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_new_array_init (yyvsp[-3].operator.location, yyvsp[-2].node); ;} break; case 184: ! #line 1355 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, NULL_TREE); ! ;} break; case 185: ! #line 1360 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, yyvsp[-2].node); ! ;} break; case 186: ! #line 1364 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 187: ! #line 1370 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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 188: ! #line 1378 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; ;} break; case 189: ! #line 1383 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { enter_block (); ;} break; case 190: ! #line 1388 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { maybe_absorb_scoping_blocks (); /* Store the location of the `}' when doing xrefs */ *************** yyreduce: *** 4368,4411 **** yyval.node = exit_block (); if (!BLOCK_SUBBLOCKS (yyval.node)) BLOCK_SUBBLOCKS (yyval.node) = empty_stmt_node; ! } break; case 194: ! #line 1359 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { java_method_add_stmt (current_function_decl, yyvsp[0].node); } break; case 195: ! #line 1361 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { LOCAL_CLASS_P (TREE_TYPE (GET_CPC ())) = 1; end_class_declaration (1); ! } break; case 197: ! #line 1373 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { declare_local_variables (0, yyvsp[-1].node, yyvsp[0].node); } break; case 198: ! #line 1375 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { declare_local_variables (yyvsp[-2].value, yyvsp[-1].node, yyvsp[0].node); } break; case 204: ! #line 1385 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = exit_block (); } break; case 209: ! #line 1394 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = exit_block (); } break; case 222: ! #line 1414 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { if (flag_extraneous_semicolon && ! current_static_block --- 4418,4461 ---- yyval.node = exit_block (); if (!BLOCK_SUBBLOCKS (yyval.node)) BLOCK_SUBBLOCKS (yyval.node) = empty_stmt_node; ! ;} break; case 194: ! #line 1408 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { java_method_add_stmt (current_function_decl, yyvsp[0].node); ;} break; case 195: ! #line 1410 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { LOCAL_CLASS_P (TREE_TYPE (GET_CPC ())) = 1; end_class_declaration (1); ! ;} break; case 197: ! #line 1422 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { declare_local_variables (0, yyvsp[-1].node, yyvsp[0].node); ;} break; case 198: ! #line 1424 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { declare_local_variables (yyvsp[-2].value, yyvsp[-1].node, yyvsp[0].node); ;} break; case 204: ! #line 1434 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = exit_block (); ;} break; case 209: ! #line 1443 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = exit_block (); ;} break; case 222: ! #line 1463 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { if (flag_extraneous_semicolon && ! current_static_block *************** yyreduce: *** 4419,4455 **** parse_warning_context (wfl_operator, "An empty declaration is a deprecated feature that should not be used"); } yyval.node = empty_stmt_node; ! } break; case 223: ! #line 1432 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_labeled_block (EXPR_WFL_LINECOL (yyvsp[-1].node), EXPR_WFL_NODE (yyvsp[-1].node)); pushlevel (2); push_labeled_block (yyval.node); PUSH_LABELED_BLOCK (yyval.node); ! } break; case 224: ! #line 1443 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); } break; case 225: ! #line 1445 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("':' expected"); RECOVER;} break; case 226: ! #line 1450 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); } break; case 227: ! #line 1456 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { /* We have a statement. Generate a WFL around it so we can debug it */ --- 4469,4505 ---- parse_warning_context (wfl_operator, "An empty declaration is a deprecated feature that should not be used"); } yyval.node = empty_stmt_node; ! ;} break; case 223: ! #line 1481 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_labeled_block (EXPR_WFL_LINECOL (yyvsp[-1].node), EXPR_WFL_NODE (yyvsp[-1].node)); pushlevel (2); push_labeled_block (yyval.node); PUSH_LABELED_BLOCK (yyval.node); ! ;} break; case 224: ! #line 1492 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ;} break; case 225: ! #line 1494 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("':' expected"); RECOVER;;} break; case 226: ! #line 1499 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ;} break; case 227: ! #line 1506 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { /* We have a statement. Generate a WFL around it so we can debug it */ *************** yyreduce: *** 4457,4582 **** /* 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 228: ! #line 1465 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ! } break; case 229: ! #line 1470 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ! } break; case 230: ! #line 1475 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ! } break; case 231: ! #line 1480 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;} break; case 232: ! #line 1482 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ! } break; case 233: ! #line 1487 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;} break; case 234: ! #line 1489 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ! } break; case 235: ! #line 1494 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER;} break; case 236: ! #line 1496 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;} break; case 237: ! #line 1498 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;} break; case 238: ! #line 1500 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;} break; case 239: ! #line 1502 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;} break; case 247: ! #line 1517 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_if_else_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node, NULL_TREE); ! } break; case 248: ! #line 1522 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER;} break; case 249: ! #line 1524 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 250: ! #line 1526 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;} break; case 251: ! #line 1531 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); } break; case 252: ! #line 1536 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); } break; case 253: ! #line 1541 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { enter_block (); ! } break; case 254: ! #line 1545 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { /* Make into "proper list" of COMPOUND_EXPRs. I.e. make the last statement also have its own --- 4507,4632 ---- /* 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 228: ! #line 1515 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ! ;} break; case 229: ! #line 1520 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ! ;} break; case 230: ! #line 1525 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ! ;} break; case 231: ! #line 1530 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;;} break; case 232: ! #line 1532 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ! ;} break; case 233: ! #line 1537 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;;} break; case 234: ! #line 1539 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ! ;} break; case 235: ! #line 1544 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER;;} break; case 236: ! #line 1546 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;;} break; case 237: ! #line 1548 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;;} break; case 238: ! #line 1550 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;;} break; case 239: ! #line 1552 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;;} break; case 247: ! #line 1567 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_if_else_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node, NULL_TREE); ! ;} break; case 248: ! #line 1572 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER;;} break; case 249: ! #line 1574 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 250: ! #line 1576 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;;} break; case 251: ! #line 1581 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ;} break; case 252: ! #line 1586 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ;} break; case 253: ! #line 1591 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { enter_block (); ! ;} break; case 254: ! #line 1595 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { /* Make into "proper list" of COMPOUND_EXPRs. I.e. make the last statement also have its own *************** yyreduce: *** 4584,4784 **** 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 255: ! #line 1557 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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 256: ! #line 1562 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER;} break; case 257: ! #line 1564 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term or ')'"); DRECOVER(switch_statement);} break; case 258: ! #line 1566 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'{' expected"); RECOVER;} break; case 259: ! #line 1573 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = NULL_TREE; } break; case 260: ! #line 1575 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = NULL_TREE; } break; case 261: ! #line 1577 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = NULL_TREE; } break; case 262: ! #line 1579 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = NULL_TREE; } break; case 268: ! #line 1598 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree lab = build1 (CASE_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (lab) = yyvsp[-2].operator.location; java_method_add_stmt (current_function_decl, lab); ! } break; case 269: ! #line 1604 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree lab = build (DEFAULT_EXPR, NULL_TREE, NULL_TREE); EXPR_WFL_LINECOL (lab) = yyvsp[-1].operator.location; java_method_add_stmt (current_function_decl, lab); ! } break; case 270: ! #line 1610 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing or invalid constant expression"); RECOVER;} break; case 271: ! #line 1612 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("':' expected"); RECOVER;} break; case 272: ! #line 1614 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("':' expected"); RECOVER;} break; case 273: ! #line 1619 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree body = build_loop_body (yyvsp[-2].operator.location, yyvsp[-1].node, 0); yyval.node = build_new_loop (body); ! } break; case 274: ! #line 1627 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); } break; case 275: ! #line 1629 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {YYERROR_NOW; yyerror ("'(' expected"); RECOVER;} break; case 276: ! #line 1631 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term and ')' expected"); RECOVER;} break; case 277: ! #line 1633 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;} break; case 278: ! #line 1638 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); } break; case 279: ! #line 1643 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree body = build_loop_body (0, NULL_TREE, 1); yyval.node = build_new_loop (body); ! } break; case 280: ! #line 1652 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = finish_loop_body (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-5].node, 1); } break; case 281: ! #line 1657 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-4].node)) == 'c') yyvsp[-4].node = build_wfl_node (yyvsp[-4].node); yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ! } break; case 282: ! #line 1663 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ LOOP_EXPR_BODY_CONDITION_EXPR (LOOP_EXPR_BODY (yyval.node), 0) = empty_stmt_node; ! } break; case 283: ! #line 1670 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Invalid control expression"); RECOVER;} break; case 284: ! #line 1672 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Invalid update expression"); RECOVER;} break; case 285: ! #line 1674 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Invalid update expression"); RECOVER;} break; case 286: ! #line 1679 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node);} break; case 287: ! #line 1681 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ LOOP_EXPR_BODY_CONDITION_EXPR (LOOP_EXPR_BODY (yyval.node), 0) = empty_stmt_node; ! } break; case 288: ! #line 1691 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { /* This scope defined for local variable that may be defined within the scope of the for loop */ enter_block (); ! } break; case 289: ! #line 1697 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'(' expected"); DRECOVER(for_1);} break; case 290: ! #line 1699 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Invalid init statement"); RECOVER;} break; case 291: ! #line 1704 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { /* We now declare the loop body. The loop is declared as a for loop. */ --- 4634,4834 ---- 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 255: ! #line 1607 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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 256: ! #line 1612 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER;;} break; case 257: ! #line 1614 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term or ')'"); DRECOVER(switch_statement);;} break; case 258: ! #line 1616 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'{' expected"); RECOVER;;} break; case 259: ! #line 1624 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = NULL_TREE; ;} break; case 260: ! #line 1626 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = NULL_TREE; ;} break; case 261: ! #line 1628 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = NULL_TREE; ;} break; case 262: ! #line 1630 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = NULL_TREE; ;} break; case 268: ! #line 1649 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree lab = build1 (CASE_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (lab) = yyvsp[-2].operator.location; java_method_add_stmt (current_function_decl, lab); ! ;} break; case 269: ! #line 1655 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree lab = build (DEFAULT_EXPR, NULL_TREE, NULL_TREE); EXPR_WFL_LINECOL (lab) = yyvsp[-1].operator.location; java_method_add_stmt (current_function_decl, lab); ! ;} break; case 270: ! #line 1661 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing or invalid constant expression"); RECOVER;;} break; case 271: ! #line 1663 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("':' expected"); RECOVER;;} break; case 272: ! #line 1665 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("':' expected"); RECOVER;;} break; case 273: ! #line 1670 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree body = build_loop_body (yyvsp[-2].operator.location, yyvsp[-1].node, 0); yyval.node = build_new_loop (body); ! ;} break; case 274: ! #line 1678 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ;} break; case 275: ! #line 1680 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {YYERROR_NOW; yyerror ("'(' expected"); RECOVER;;} break; case 276: ! #line 1682 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term and ')' expected"); RECOVER;;} break; case 277: ! #line 1684 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;;} break; case 278: ! #line 1689 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ;} break; case 279: ! #line 1694 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree body = build_loop_body (0, NULL_TREE, 1); yyval.node = build_new_loop (body); ! ;} break; case 280: ! #line 1703 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = finish_loop_body (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-5].node, 1); ;} break; case 281: ! #line 1708 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-4].node)) == 'c') yyvsp[-4].node = build_wfl_node (yyvsp[-4].node); yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 282: ! #line 1714 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ LOOP_EXPR_BODY_CONDITION_EXPR (LOOP_EXPR_BODY (yyval.node), 0) = empty_stmt_node; ! ;} break; case 283: ! #line 1721 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Invalid control expression"); RECOVER;;} break; case 284: ! #line 1723 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Invalid update expression"); RECOVER;;} break; case 285: ! #line 1725 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Invalid update expression"); RECOVER;;} break; case 286: ! #line 1730 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node);;} break; case 287: ! #line 1732 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ LOOP_EXPR_BODY_CONDITION_EXPR (LOOP_EXPR_BODY (yyval.node), 0) = empty_stmt_node; ! ;} break; case 288: ! #line 1742 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { /* This scope defined for local variable that may be defined within the scope of the for loop */ enter_block (); ! ;} break; case 289: ! #line 1748 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'(' expected"); DRECOVER(for_1);;} break; case 290: ! #line 1750 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Invalid init statement"); RECOVER;;} break; case 291: ! #line 1755 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { /* We now declare the loop body. The loop is declared as a for loop. */ *************** yyreduce: *** 4788,4982 **** /* 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 292: ! #line 1716 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = empty_stmt_node; } break; case 293: ! #line 1718 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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 294: ! #line 1724 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { /* Local variable are recorded within the previously defined block scope */ yyval.node = NULL_TREE; ! } break; case 295: ! #line 1730 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("';' expected"); DRECOVER(for_init_1);} break; case 296: ! #line 1734 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyval.node = empty_stmt_node;} break; case 297: ! #line 1736 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_debugable_stmt (BUILD_LOCATION (), yyvsp[0].node); } break; case 298: ! #line 1741 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = add_stmt_to_compound (NULL_TREE, NULL_TREE, yyvsp[0].node); } break; case 299: ! #line 1743 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = add_stmt_to_compound (yyvsp[-2].node, NULL_TREE, yyvsp[0].node); } break; case 300: ! #line 1745 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 301: ! #line 1750 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 1, NULL_TREE); } break; case 302: ! #line 1752 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 1, yyvsp[-1].node); } break; case 303: ! #line 1754 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 304: ! #line 1756 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;} break; case 305: ! #line 1761 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 0, NULL_TREE); } break; case 306: ! #line 1763 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 0, yyvsp[-1].node); } break; case 307: ! #line 1765 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 308: ! #line 1767 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;} break; case 309: ! #line 1772 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_return (yyvsp[-1].operator.location, NULL_TREE); } break; case 310: ! #line 1774 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_return (yyvsp[-2].operator.location, yyvsp[-1].node); } break; case 311: ! #line 1776 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 312: ! #line 1778 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;} break; case 313: ! #line 1783 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build1 (THROW_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; ! } break; case 314: ! #line 1788 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 315: ! #line 1790 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;} break; case 316: ! #line 1795 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_assertion (yyvsp[-4].operator.location, yyvsp[-3].node, yyvsp[-1].node); ! } break; case 317: ! #line 1799 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_assertion (yyvsp[-2].operator.location, yyvsp[-1].node, NULL_TREE); ! } break; case 318: ! #line 1803 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 319: ! #line 1805 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;} break; case 320: ! #line 1810 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build (SYNCHRONIZED_EXPR, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = EXPR_WFL_LINECOL (MODIFIER_WFL (SYNCHRONIZED_TK)); ! } break; case 321: ! #line 1816 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'{' expected"); RECOVER;} break; case 322: ! #line 1818 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER;} break; case 323: ! #line 1820 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 324: ! #line 1822 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 325: ! #line 1827 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { check_modifiers ( "Illegal modifier `%s'. Only `synchronized' was expected here", --- 4838,5032 ---- /* 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 292: ! #line 1767 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = empty_stmt_node; ;} break; case 293: ! #line 1769 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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 294: ! #line 1775 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { /* Local variable are recorded within the previously defined block scope */ yyval.node = NULL_TREE; ! ;} break; case 295: ! #line 1781 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("';' expected"); DRECOVER(for_init_1);;} break; case 296: ! #line 1785 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyval.node = empty_stmt_node;;} break; case 297: ! #line 1787 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_debugable_stmt (BUILD_LOCATION (), yyvsp[0].node); ;} break; case 298: ! #line 1792 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = add_stmt_to_compound (NULL_TREE, NULL_TREE, yyvsp[0].node); ;} break; case 299: ! #line 1794 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = add_stmt_to_compound (yyvsp[-2].node, NULL_TREE, yyvsp[0].node); ;} break; case 300: ! #line 1796 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 301: ! #line 1801 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 1, NULL_TREE); ;} break; case 302: ! #line 1803 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 1, yyvsp[-1].node); ;} break; case 303: ! #line 1805 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 304: ! #line 1807 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;;} break; case 305: ! #line 1812 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 0, NULL_TREE); ;} break; case 306: ! #line 1814 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 0, yyvsp[-1].node); ;} break; case 307: ! #line 1816 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 308: ! #line 1818 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;;} break; case 309: ! #line 1823 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_return (yyvsp[-1].operator.location, NULL_TREE); ;} break; case 310: ! #line 1825 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_return (yyvsp[-2].operator.location, yyvsp[-1].node); ;} break; case 311: ! #line 1827 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 312: ! #line 1829 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;;} break; case 313: ! #line 1834 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build1 (THROW_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; ! ;} break; case 314: ! #line 1839 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 315: ! #line 1841 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;;} break; case 316: ! #line 1846 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_assertion (yyvsp[-4].operator.location, yyvsp[-3].node, yyvsp[-1].node); ! ;} break; case 317: ! #line 1850 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_assertion (yyvsp[-2].operator.location, yyvsp[-1].node, NULL_TREE); ! ;} break; case 318: ! #line 1854 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 319: ! #line 1856 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("';' expected"); RECOVER;;} break; case 320: ! #line 1861 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build (SYNCHRONIZED_EXPR, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = EXPR_WFL_LINECOL (MODIFIER_WFL (SYNCHRONIZED_TK)); ! ;} break; case 321: ! #line 1867 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'{' expected"); RECOVER;;} break; case 322: ! #line 1869 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER;;} break; case 323: ! #line 1871 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 324: ! #line 1873 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 325: ! #line 1878 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { check_modifiers ( "Illegal modifier `%s'. Only `synchronized' was expected here", *************** yyreduce: *** 4984,5034 **** if (yyvsp[0].value != ACC_SYNCHRONIZED) MODIFIER_WFL (SYNCHRONIZED_TK) = build_wfl_node (NULL_TREE); ! } break; case 326: ! #line 1839 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); } break; case 327: ! #line 1841 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_try_finally_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); } break; case 328: ! #line 1843 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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 329: ! #line 1848 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'{' expected"); DRECOVER (try_statement);} break; case 331: ! #line 1854 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; yyval.node = yyvsp[0].node; ! } break; case 332: ! #line 1862 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); exit_block (); yyval.node = yyvsp[-1].node; ! } break; case 333: ! #line 1871 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { /* We add a block to define a scope for formal_parameter (CCBP). The formal parameter is --- 5034,5084 ---- if (yyvsp[0].value != ACC_SYNCHRONIZED) MODIFIER_WFL (SYNCHRONIZED_TK) = build_wfl_node (NULL_TREE); ! ;} break; case 326: ! #line 1890 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ;} break; case 327: ! #line 1892 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_try_finally_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ;} break; case 328: ! #line 1894 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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 329: ! #line 1899 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'{' expected"); DRECOVER (try_statement);;} break; case 331: ! #line 1905 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; yyval.node = yyvsp[0].node; ! ;} break; case 332: ! #line 1913 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); exit_block (); yyval.node = yyvsp[-1].node; ! ;} break; case 333: ! #line 1922 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { /* We add a block to define a scope for formal_parameter (CCBP). The formal parameter is *************** yyreduce: *** 5043,5205 **** init)); yyval.node = build1 (CATCH_EXPR, NULL_TREE, ccpb); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-3].operator.location; ! } break; case 334: ! #line 1887 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER; yyval.node = NULL_TREE;} break; case 335: ! #line 1889 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("Missing term or ')' expected"); RECOVER; yyval.node = NULL_TREE; ! } break; case 336: ! #line 1894 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER; yyval.node = NULL_TREE;} break; case 337: ! #line 1899 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; } break; case 338: ! #line 1901 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'{' expected"); RECOVER; } break; case 342: ! #line 1913 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_this (yyvsp[0].operator.location); } break; case 343: ! #line 1915 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyval.node = yyvsp[-1].node;} break; case 349: ! #line 1923 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree wfl = build_wfl_node (this_identifier_node); yyval.node = make_qualified_primary (yyvsp[-2].node, wfl, EXPR_WFL_LINECOL (yyvsp[-2].node)); ! } break; case 350: ! #line 1928 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;} break; case 351: ! #line 1930 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'class' or 'this' expected" ); RECOVER;} break; case 352: ! #line 1932 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'class' expected" ); RECOVER;} break; case 353: ! #line 1934 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'class' expected" ); RECOVER;} break; case 354: ! #line 1939 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); } break; case 355: ! #line 1941 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); } break; case 356: ! #line 1943 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); } break; case 357: ! #line 1945 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, void_type_node); ! } break; case 358: ! #line 1953 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); } break; case 359: ! #line 1955 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); } break; case 361: ! #line 1959 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-2].node, NULL_TREE); yyval.node = make_qualified_primary (yyvsp[-3].node, ctor, EXPR_WFL_LINECOL (yyvsp[-3].node)); ! } break; case 363: ! #line 1966 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); yyval.node = make_qualified_primary (yyvsp[-4].node, ctor, EXPR_WFL_LINECOL (yyvsp[-4].node)); ! } break; case 365: ! #line 1973 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'(' expected"); DRECOVER(new_1);} break; case 366: ! #line 1975 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER;} break; case 367: ! #line 1977 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("')' or term expected"); RECOVER;} break; case 368: ! #line 1979 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;} break; case 369: ! #line 1981 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;} break; case 370: ! #line 1983 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER;} break; case 371: ! #line 1990 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { create_anonymous_class (yyvsp[-4].operator.location, yyvsp[-3].node); } break; case 372: ! #line 1992 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-5].node); --- 5093,5255 ---- init)); yyval.node = build1 (CATCH_EXPR, NULL_TREE, ccpb); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-3].operator.location; ! ;} break; case 334: ! #line 1938 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER; yyval.node = NULL_TREE;;} break; case 335: ! #line 1940 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("Missing term or ')' expected"); RECOVER; yyval.node = NULL_TREE; ! ;} break; case 336: ! #line 1945 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER; yyval.node = NULL_TREE;;} break; case 337: ! #line 1950 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = yyvsp[0].node; ;} break; case 338: ! #line 1952 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'{' expected"); RECOVER; ;} break; case 342: ! #line 1964 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_this (yyvsp[0].operator.location); ;} break; case 343: ! #line 1966 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyval.node = yyvsp[-1].node;;} break; case 349: ! #line 1976 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree wfl = build_wfl_node (this_identifier_node); yyval.node = make_qualified_primary (yyvsp[-2].node, wfl, EXPR_WFL_LINECOL (yyvsp[-2].node)); ! ;} break; case 350: ! #line 1981 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;;} break; case 351: ! #line 1983 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'class' or 'this' expected" ); RECOVER;;} break; case 352: ! #line 1985 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'class' expected" ); RECOVER;;} break; case 353: ! #line 1987 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'class' expected" ); RECOVER;;} break; case 354: ! #line 1992 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ;} break; case 355: ! #line 1994 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ;} break; case 356: ! #line 1996 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ;} break; case 357: ! #line 1998 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, void_type_node); ! ;} break; case 358: ! #line 2006 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); ;} break; case 359: ! #line 2008 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); ;} break; case 361: ! #line 2014 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-2].node, NULL_TREE); yyval.node = make_qualified_primary (yyvsp[-3].node, ctor, EXPR_WFL_LINECOL (yyvsp[-3].node)); ! ;} break; case 363: ! #line 2021 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); yyval.node = make_qualified_primary (yyvsp[-4].node, ctor, EXPR_WFL_LINECOL (yyvsp[-4].node)); ! ;} break; case 365: ! #line 2028 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'(' expected"); DRECOVER(new_1);;} break; case 366: ! #line 2030 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER;;} break; case 367: ! #line 2032 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("')' or term expected"); RECOVER;;} break; case 368: ! #line 2034 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("')' expected"); RECOVER;;} break; case 369: ! #line 2036 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;;} break; case 370: ! #line 2038 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'(' expected"); RECOVER;;} break; case 371: ! #line 2048 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { create_anonymous_class (yyvsp[-4].operator.location, yyvsp[-3].node); ;} break; case 372: ! #line 2050 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-5].node); *************** yyreduce: *** 5229,5244 **** be generated for the anonymous class, with the right arguments. */ ! } break; case 373: ! #line 2023 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { create_anonymous_class (yyvsp[-3].operator.location, yyvsp[-2].node); } break; case 374: ! #line 2025 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-4].node); --- 5279,5294 ---- be generated for the anonymous class, with the right arguments. */ ! ;} break; case 373: ! #line 2081 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { create_anonymous_class (yyvsp[-3].operator.location, yyvsp[-2].node); ;} break; case 374: ! #line 2083 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-4].node); *************** yyreduce: *** 5250,5311 **** constructor can be generated, since its signature is already known. */ yyval.node = build_new_invocation (id, NULL_TREE); ! } break; case 375: ! #line 2041 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = yyvsp[-2].node; } break; case 376: ! #line 2043 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = yyvsp[-2].node; } break; case 377: ! #line 2048 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, NULL_TREE); ctxp->formal_parameter_number = 1; ! } break; case 378: ! #line 2053 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node); ! } break; case 379: ! #line 2058 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 380: ! #line 2063 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); } break; case 381: ! #line 2065 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); } break; case 382: ! #line 2067 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));} break; case 383: ! #line 2069 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));} break; case 384: ! #line 2072 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { char *sig; int osb = pop_current_osb (ctxp); --- 5300,5361 ---- constructor can be generated, since its signature is already known. */ yyval.node = build_new_invocation (id, NULL_TREE); ! ;} break; case 375: ! #line 2099 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = yyvsp[-2].node; ;} break; case 376: ! #line 2101 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = yyvsp[-2].node; ;} break; case 377: ! #line 2106 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, NULL_TREE); ctxp->formal_parameter_number = 1; ! ;} break; case 378: ! #line 2111 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node); ! ;} break; case 379: ! #line 2116 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 380: ! #line 2121 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ;} break; case 381: ! #line 2123 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ;} break; case 382: ! #line 2125 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));;} break; case 383: ! #line 2127 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));;} break; case 384: ! #line 2131 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { char *sig; int osb = pop_current_osb (ctxp); *************** yyreduce: *** 5315,5325 **** sig = obstack_finish (&temporary_obstack); yyval.node = build (NEW_ANONYMOUS_ARRAY_EXPR, NULL_TREE, yyvsp[-2].node, get_identifier (sig), yyvsp[0].node); ! } break; case 385: ! #line 2083 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree type = yyvsp[-2].node; --- 5365,5375 ---- sig = obstack_finish (&temporary_obstack); yyval.node = build (NEW_ANONYMOUS_ARRAY_EXPR, NULL_TREE, yyvsp[-2].node, get_identifier (sig), yyvsp[0].node); ! ;} break; case 385: ! #line 2142 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree type = yyvsp[-2].node; *************** yyreduce: *** 5327,5357 **** type = build_java_array_type (type, -1); yyval.node = build (NEW_ANONYMOUS_ARRAY_EXPR, NULL_TREE, build_pointer_type (type), NULL_TREE, yyvsp[0].node); ! } break; case 386: ! #line 2092 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("'[' expected"); DRECOVER ("]");} break; case 387: ! #line 2094 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("']' expected"); RECOVER;} break; case 388: ! #line 2099 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); } break; case 389: ! #line 2101 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); } break; case 390: ! #line 2106 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { if (JNUMERIC_TYPE_P (TREE_TYPE (yyvsp[-1].node))) { --- 5377,5407 ---- type = build_java_array_type (type, -1); yyval.node = build (NEW_ANONYMOUS_ARRAY_EXPR, NULL_TREE, build_pointer_type (type), NULL_TREE, yyvsp[0].node); ! ;} break; case 386: ! #line 2151 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("'[' expected"); DRECOVER ("]");;} break; case 387: ! #line 2153 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("']' expected"); RECOVER;;} break; case 388: ! #line 2158 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ;} break; case 389: ! #line 2160 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); ;} break; case 390: ! #line 2165 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { if (JNUMERIC_TYPE_P (TREE_TYPE (yyvsp[-1].node))) { *************** yyreduce: *** 5360,5384 **** } EXPR_WFL_LINECOL (yyvsp[-1].node) = yyvsp[-2].operator.location; yyval.node = yyvsp[-1].node; ! } break; case 391: ! #line 2116 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("']' expected"); RECOVER;} break; case 392: ! #line 2118 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("Missing term"); yyerror ("']' expected"); RECOVER; ! } break; case 393: ! #line 2127 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { int allocate = 0; /* If not initialized, allocate memory for the osb --- 5410,5434 ---- } EXPR_WFL_LINECOL (yyvsp[-1].node) = yyvsp[-2].operator.location; yyval.node = yyvsp[-1].node; ! ;} break; case 391: ! #line 2175 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("']' expected"); RECOVER;;} break; case 392: ! #line 2177 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("Missing term"); yyerror ("']' expected"); RECOVER; ! ;} break; case 393: ! #line 2186 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { int allocate = 0; /* If not initialized, allocate memory for the osb *************** yyreduce: *** 5403,5452 **** } ctxp->osb_depth++; CURRENT_OSB (ctxp) = 1; ! } break; case 394: ! #line 2153 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { CURRENT_OSB (ctxp)++; } break; case 395: ! #line 2155 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyerror ("']' expected"); RECOVER;} break; case 396: ! #line 2160 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = make_qualified_primary (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); } break; case 397: ! #line 2163 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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 398: ! #line 2169 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Field expected"); DRECOVER (super_field_acces);} break; case 399: ! #line 2174 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_method_invocation (yyvsp[-2].node, NULL_TREE); } break; case 400: ! #line 2176 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); } break; case 401: ! #line 2178 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-4].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation --- 5453,5502 ---- } ctxp->osb_depth++; CURRENT_OSB (ctxp) = 1; ! ;} break; case 394: ! #line 2212 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { CURRENT_OSB (ctxp)++; ;} break; case 395: ! #line 2214 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyerror ("']' expected"); RECOVER;;} break; case 396: ! #line 2219 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = make_qualified_primary (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ;} break; case 397: ! #line 2223 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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 398: ! #line 2229 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Field expected"); DRECOVER (super_field_acces);;} break; case 399: ! #line 2234 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_method_invocation (yyvsp[-2].node, NULL_TREE); ;} break; case 400: ! #line 2236 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); ;} break; case 401: ! #line 2238 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-4].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation *************** yyreduce: *** 5456,5466 **** tree invok = build_method_invocation (yyvsp[-2].node, NULL_TREE); yyval.node = make_qualified_primary (yyvsp[-4].node, invok, yyvsp[-3].operator.location); } ! } break; case 402: ! #line 2189 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-5].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation --- 5506,5516 ---- tree invok = build_method_invocation (yyvsp[-2].node, NULL_TREE); yyval.node = make_qualified_primary (yyvsp[-4].node, invok, yyvsp[-3].operator.location); } ! ;} break; case 402: ! #line 2249 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-5].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation *************** yyreduce: *** 5470,5647 **** tree invok = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); yyval.node = make_qualified_primary (yyvsp[-5].node, invok, yyvsp[-4].operator.location); } ! } break; case 403: ! #line 2200 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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 404: ! #line 2205 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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 405: ! #line 2211 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyerror ("'(' expected"); DRECOVER (method_invocation); } break; case 406: ! #line 2213 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyerror ("'(' expected"); DRECOVER (method_invocation); } break; case 407: ! #line 2218 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); } break; case 408: ! #line 2220 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); } break; case 409: ! #line 2222 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ! } break; case 410: ! #line 2227 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ! } break; case 411: ! #line 2232 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ! } break; case 412: ! #line 2237 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ! } break; case 417: ! #line 2252 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); } break; case 418: ! #line 2257 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); } break; case 421: ! #line 2264 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); } break; case 423: ! #line 2267 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER} break; case 424: ! #line 2272 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { error_if_numeric_overflow (yyvsp[0].node); yyval.node = yyvsp[0].node; ! } break; case 425: ! #line 2277 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); } break; case 426: ! #line 2279 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER} break; case 427: ! #line 2284 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); } break; case 428: ! #line 2286 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER} break; case 429: ! #line 2291 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); } break; case 430: ! #line 2293 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER} break; case 432: ! #line 2299 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); } break; case 433: ! #line 2301 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); } break; case 435: ! #line 2304 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER} break; case 436: ! #line 2306 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER} break; case 437: ! #line 2311 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { tree type = yyvsp[-3].node; int osb = pop_current_osb (ctxp); while (osb--) type = build_java_array_type (type, -1); yyval.node = build_cast (yyvsp[-4].operator.location, type, yyvsp[0].node); ! } break; case 438: ! #line 2319 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); } break; case 439: ! #line 2321 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); } break; case 440: ! #line 2323 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { const char *ptr; int osb = pop_current_osb (ctxp); --- 5520,5697 ---- tree invok = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); yyval.node = make_qualified_primary (yyvsp[-5].node, invok, yyvsp[-4].operator.location); } ! ;} break; case 403: ! #line 2260 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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 404: ! #line 2265 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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 405: ! #line 2274 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyerror ("'(' expected"); DRECOVER (method_invocation); ;} break; case 406: ! #line 2276 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyerror ("'(' expected"); DRECOVER (method_invocation); ;} break; case 407: ! #line 2281 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ;} break; case 408: ! #line 2283 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ;} break; case 409: ! #line 2285 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ! ;} break; case 410: ! #line 2290 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ! ;} break; case 411: ! #line 2295 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ! ;} break; case 412: ! #line 2300 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ! ;} break; case 417: ! #line 2315 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ;} break; case 418: ! #line 2320 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ;} break; case 421: ! #line 2327 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ;} break; case 423: ! #line 2330 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 424: ! #line 2335 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { error_if_numeric_overflow (yyvsp[0].node); yyval.node = yyvsp[0].node; ! ;} break; case 425: ! #line 2340 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ;} break; case 426: ! #line 2342 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 427: ! #line 2347 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ;} break; case 428: ! #line 2349 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 429: ! #line 2354 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ;} break; case 430: ! #line 2356 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 432: ! #line 2362 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ;} break; case 433: ! #line 2364 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ;} break; case 435: ! #line 2367 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 436: ! #line 2369 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 437: ! #line 2374 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { tree type = yyvsp[-3].node; int osb = pop_current_osb (ctxp); while (osb--) type = build_java_array_type (type, -1); yyval.node = build_cast (yyvsp[-4].operator.location, type, yyvsp[0].node); ! ;} break; case 438: ! #line 2382 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ;} break; case 439: ! #line 2384 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ;} break; case 440: ! #line 2386 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { const char *ptr; int osb = pop_current_osb (ctxp); *************** yyreduce: *** 5654,6007 **** 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 441: ! #line 2337 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("']' expected, invalid type expression");} break; case 442: ! #line 2339 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid type expression"); RECOVER; RECOVER; ! } break; case 443: ! #line 2344 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 444: ! #line 2346 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 445: ! #line 2348 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 447: ! #line 2354 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! } break; case 448: ! #line 2359 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! } break; case 449: ! #line 2364 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! } break; case 450: ! #line 2369 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 451: ! #line 2371 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 452: ! #line 2373 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 454: ! #line 2379 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! } break; case 455: ! #line 2384 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! } break; case 456: ! #line 2389 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 457: ! #line 2391 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 459: ! #line 2397 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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: ! #line 2402 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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: ! #line 2407 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! } break; case 462: ! #line 2412 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 463: ! #line 2414 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 464: ! #line 2416 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 466: ! #line 2422 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! } break; case 467: ! #line 2427 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! } break; case 468: ! #line 2432 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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: ! #line 2437 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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: ! #line 2442 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); } break; case 471: ! #line 2444 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 472: ! #line 2446 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 473: ! #line 2448 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 474: ! #line 2450 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 475: ! #line 2452 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Invalid reference type"); RECOVER;} break; case 477: ! #line 2458 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! } break; case 478: ! #line 2463 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! } break; case 479: ! #line 2468 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 480: ! #line 2470 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 482: ! #line 2476 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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: ! #line 2481 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 485: ! #line 2487 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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: ! #line 2492 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 488: ! #line 2498 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! } break; case 489: ! #line 2503 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 491: ! #line 2509 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! } break; case 492: ! #line 2514 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 494: ! #line 2520 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! } break; case 495: ! #line 2525 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;} break; case 497: ! #line 2531 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/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 498: ! #line 2536 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Missing term"); DRECOVER (1); ! } break; case 499: ! #line 2542 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); DRECOVER (2);} break; case 500: ! #line 2544 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! {yyerror ("Missing term"); DRECOVER (3);} break; case 503: ! #line 2554 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" ! { yyval.node = build_assignment (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); } break; case 504: ! #line 2556 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Missing term"); DRECOVER (assign); ! } break; } ! /* Line 1016 of /usr/share/bison/yacc.c. */ ! #line 5990 "p13913.c" yyvsp -= yylen; yyssp -= yylen; ! #if YYDEBUG ! if (yydebug) ! { ! short *yyssp1 = yyss - 1; ! YYFPRINTF (stderr, "state stack now"); ! while (yyssp1 != yyssp) ! YYFPRINTF (stderr, " %d", *++yyssp1); ! YYFPRINTF (stderr, "\n"); ! } ! #endif *++yyvsp = yyval; --- 5704,6048 ---- 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 441: ! #line 2400 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("']' expected, invalid type expression");;} break; case 442: ! #line 2402 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid type expression"); RECOVER; RECOVER; ! ;} break; case 443: ! #line 2407 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 444: ! #line 2409 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 445: ! #line 2411 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 447: ! #line 2417 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 448: ! #line 2422 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 449: ! #line 2427 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 450: ! #line 2432 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 451: ! #line 2434 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 452: ! #line 2436 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 454: ! #line 2442 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 455: ! #line 2447 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 456: ! #line 2452 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 457: ! #line 2454 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 459: ! #line 2460 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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: ! #line 2465 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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: ! #line 2470 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 462: ! #line 2475 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 463: ! #line 2477 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 464: ! #line 2479 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 466: ! #line 2485 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 467: ! #line 2490 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 468: ! #line 2495 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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: ! #line 2500 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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: ! #line 2505 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ;} break; case 471: ! #line 2507 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 472: ! #line 2509 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 473: ! #line 2511 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 474: ! #line 2513 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 475: ! #line 2515 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Invalid reference type"); RECOVER;;} break; case 477: ! #line 2521 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 478: ! #line 2526 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 479: ! #line 2531 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 480: ! #line 2533 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 482: ! #line 2539 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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: ! #line 2544 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 485: ! #line 2550 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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: ! #line 2555 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 488: ! #line 2561 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 489: ! #line 2566 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 491: ! #line 2572 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 492: ! #line 2577 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 494: ! #line 2583 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ! ;} break; case 495: ! #line 2588 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 497: ! #line 2594 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/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 498: ! #line 2599 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Missing term"); DRECOVER (1); ! ;} break; case 499: ! #line 2605 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); DRECOVER (2);;} break; case 500: ! #line 2607 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! {yyerror ("Missing term"); DRECOVER (3);;} break; case 503: ! #line 2617 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" ! { yyval.node = build_assignment (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ;} break; case 504: ! #line 2619 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Missing term"); DRECOVER (assign); ! ;} break; } ! /* Line 991 of yacc.c. */ ! #line 6039 "p19564.c" yyvsp -= yylen; yyssp -= yylen; ! YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; *************** yyerrlab: *** 6046,6057 **** yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) yysize += yystrlen (yytname[yyx]) + 15, yycount++; ! yysize += yystrlen ("parse error, unexpected ") + 1; yysize += yystrlen (yytname[yytype]); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { ! char *yyp = yystpcpy (yymsg, "parse error, unexpected "); yyp = yystpcpy (yyp, yytname[yytype]); if (yycount < 5) --- 6087,6098 ---- yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) yysize += yystrlen (yytname[yyx]) + 15, yycount++; ! yysize += yystrlen ("syntax error, unexpected ") + 1; yysize += yystrlen (yytname[yytype]); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { ! char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); yyp = yystpcpy (yyp, yytname[yytype]); if (yycount < 5) *************** yyerrlab: *** 6072,6090 **** YYSTACK_FREE (yymsg); } else ! yyerror ("parse error; also virtual memory exhausted"); } else #endif /* YYERROR_VERBOSE */ ! yyerror ("parse error"); } - goto yyerrlab1; ! /*----------------------------------------------------. ! | yyerrlab1 -- error raised explicitly by an action. | ! `----------------------------------------------------*/ ! yyerrlab1: if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an --- 6113,6127 ---- YYSTACK_FREE (yymsg); } else ! yyerror ("syntax error; also virtual memory exhausted"); } else #endif /* YYERROR_VERBOSE */ ! yyerror ("syntax error"); } ! if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an *************** yyerrlab1: *** 6096,6123 **** /* Pop the error token. */ YYPOPSTACK; /* Pop the rest of the stack. */ ! while (yyssp > yyss) { ! YYDPRINTF ((stderr, "Error: popping ")); ! YYDSYMPRINT ((stderr, ! yystos[*yyssp], ! *yyvsp)); ! YYDPRINTF ((stderr, "\n")); ! yydestruct (yystos[*yyssp], *yyvsp); YYPOPSTACK; } YYABORT; } ! YYDPRINTF ((stderr, "Discarding token %d (%s).\n", ! yychar, yytname[yychar1])); ! yydestruct (yychar1, yylval); yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) --- 6133,6178 ---- /* Pop the error token. */ YYPOPSTACK; /* Pop the rest of the stack. */ ! while (yyss < yyssp) { ! YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); ! yydestruct (yystos[*yyssp], yyvsp); YYPOPSTACK; } YYABORT; } ! YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); ! yydestruct (yytoken, &yylval); yychar = YYEMPTY; + } /* Else will try to reuse lookahead token after shifting the error token. */ + goto yyerrlab2; + + + /*----------------------------------------------------. + | yyerrlab1 -- error raised explicitly by an action. | + `----------------------------------------------------*/ + yyerrlab1: + /* Suppress GCC warning that yyerrlab1 is unused when no action + invokes YYERROR. */ + #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) \ + && !defined __cplusplus + __attribute__ ((__unused__)) + #endif + + + goto yyerrlab2; + + + /*---------------------------------------------------------------. + | yyerrlab2 -- pop states until the error token can be shifted. | + `---------------------------------------------------------------*/ + yyerrlab2: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) *************** yyerrlab1: *** 6138,6163 **** if (yyssp == yyss) YYABORT; ! YYDPRINTF ((stderr, "Error: popping ")); ! YYDSYMPRINT ((stderr, ! yystos[*yyssp], *yyvsp)); ! YYDPRINTF ((stderr, "\n")); ! ! yydestruct (yystos[yystate], *yyvsp); yyvsp--; yystate = *--yyssp; ! ! #if YYDEBUG ! if (yydebug) ! { ! short *yyssp1 = yyss - 1; ! YYFPRINTF (stderr, "Error: state stack now"); ! while (yyssp1 != yyssp) ! YYFPRINTF (stderr, " %d", *++yyssp1); ! YYFPRINTF (stderr, "\n"); ! } ! #endif } if (yyn == YYFINAL) --- 6193,6204 ---- if (yyssp == yyss) YYABORT; ! YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); ! yydestruct (yystos[yystate], yyvsp); yyvsp--; yystate = *--yyssp; ! YY_STACK_PRINT (yyss, yyssp); } if (yyn == YYFINAL) *************** yyreturn: *** 6205,6211 **** } ! #line 2581 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse.y" /* Helper function to retrieve an OSB count. Should be used when the --- 6246,6252 ---- } ! #line 2644 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse.y" /* Helper function to retrieve an OSB count. Should be used when the diff -Nrcpad gcc-3.3.5/gcc/java/parse-scan.c gcc-3.3.6/gcc/java/parse-scan.c *** gcc-3.3.5/gcc/java/parse-scan.c 2004-09-30 17:44:38.000000000 +0000 --- gcc-3.3.6/gcc/java/parse-scan.c 2005-05-03 12:49:54.000000000 +0000 *************** *** 1,4 **** ! /* A Bison parser, made from /home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y, by GNU bison 1.75. */ /* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. --- 1,4 ---- ! /* A Bison parser, made by GNU Bison 1.875. */ /* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. *************** *** 34,43 **** USER NAME SPACE" below. */ /* Identify Bison output. */ ! #define YYBISON 1 /* Pure parsers. */ ! #define YYPURE 1 /* Using locations. */ #define YYLSP_NEEDED 0 --- 34,46 ---- USER NAME SPACE" below. */ /* Identify Bison output. */ ! #define YYBISON 1 ! ! /* Skeleton name. */ ! #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ ! #define YYPURE 1 /* Using locations. */ #define YYLSP_NEEDED 0 *************** *** 275,281 **** /* Copy the first part of user declarations. */ ! #line 5 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" #define JC1_LITE --- 278,284 ---- /* Copy the first part of user declarations. */ ! #line 37 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" #define JC1_LITE *************** void report PARAMS ((void)); *** 383,423 **** # define YYERROR_VERBOSE 0 #endif ! #ifndef YYSTYPE ! #line 99 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! typedef union { char *node; struct method_declarator *declarator; int value; /* For modifiers */ ! } yystype; ! /* Line 193 of /usr/share/bison/yacc.c. */ ! #line 395 "ps14046.c" ! # define YYSTYPE yystype # define YYSTYPE_IS_TRIVIAL 1 #endif ! #ifndef YYLTYPE ! typedef struct yyltype ! { ! int first_line; ! int first_column; ! int last_line; ! int last_column; ! } yyltype; ! # define YYLTYPE yyltype ! # define YYLTYPE_IS_TRIVIAL 1 ! #endif /* Copy the second part of user declarations. */ ! #line 105 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" extern int flag_assert; #include "lex.c" ! /* Line 213 of /usr/share/bison/yacc.c. */ ! #line 421 "ps14046.c" #if ! defined (yyoverflow) || YYERROR_VERBOSE --- 386,417 ---- # define YYERROR_VERBOSE 0 #endif ! #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) ! #line 131 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! typedef union YYSTYPE { char *node; struct method_declarator *declarator; int value; /* For modifiers */ ! } YYSTYPE; ! /* Line 191 of yacc.c. */ ! #line 397 "ps19697.c" ! # define yystype YYSTYPE /* obsolescent; will be withdrawn */ ! # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif ! /* Copy the second part of user declarations. */ ! #line 137 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" extern int flag_assert; #include "lex.c" ! /* Line 214 of yacc.c. */ ! #line 414 "ps19697.c" #if ! defined (yyoverflow) || YYERROR_VERBOSE *************** extern int flag_assert; *** 453,459 **** #if (! defined (yyoverflow) \ && (! defined (__cplusplus) \ ! || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc --- 447,453 ---- #if (! defined (yyoverflow) \ && (! defined (__cplusplus) \ ! || (YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc *************** union yyalloc *** 463,475 **** }; /* The size of the maximum gap between one aligned stack and the next. */ ! # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ ! + YYSTACK_GAP_MAX) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ --- 457,469 ---- }; /* The size of the maximum gap between one aligned stack and the next. */ ! # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ ! + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ *************** union yyalloc *** 483,489 **** { \ register YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ ! (To)[yyi] = (From)[yyi]; \ } \ while (0) # endif --- 477,483 ---- { \ register YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ ! (To)[yyi] = (From)[yyi]; \ } \ while (0) # endif *************** union yyalloc *** 500,506 **** YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ ! yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) --- 494,500 ---- YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ ! yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) *************** union yyalloc *** 515,520 **** --- 509,515 ---- /* YYFINAL -- State number of the termination state. */ #define YYFINAL 28 + /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 3334 /* YYNTOKENS -- Number of terminals. */ *************** union yyalloc *** 530,537 **** #define YYUNDEFTOK 2 #define YYMAXUTOK 366 ! #define YYTRANSLATE(X) \ ! ((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const unsigned char yytranslate[] = --- 525,532 ---- #define YYUNDEFTOK 2 #define YYMAXUTOK 366 ! #define YYTRANSLATE(YYX) \ ! ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const unsigned char yytranslate[] = *************** static const short yyrhs[] = *** 742,783 **** /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short yyrline[] = { ! 0, 177, 177, 182, 184, 185, 186, 187, 188, 192, ! 194, 197, 203, 208, 215, 217, 220, 224, 228, 232, ! 238, 246, 248, 251, 255, 262, 267, 268, 269, 270, ! 271, 272, 273, 274, 277, 279, 282, 284, 287, 292, ! 294, 297, 301, 305, 307, 308, 312, 321, 334, 332, ! 340, 339, 344, 345, 348, 349, 352, 355, 359, 362, ! 366, 368, 371, 373, 374, 375, 378, 380, 381, 382, ! 383, 387, 390, 394, 397, 400, 402, 405, 408, 412, ! 414, 420, 418, 425, 428, 429, 431, 438, 445, 451, ! 454, 456, 462, 478, 494, 495, 498, 501, 505, 507, ! 511, 515, 522, 524, 527, 529, 534, 537, 541, 543, ! 544, 545, 549, 551, 553, 555, 559, 561, 568, 566, ! 571, 570, 574, 573, 577, 576, 581, 583, 586, 589, ! 593, 595, 598, 600, 601, 602, 605, 609, 614, 616, ! 617, 618, 621, 623, 627, 629, 632, 634, 637, 639, ! 640, 643, 647, 650, 654, 656, 657, 658, 659, 660, ! 663, 665, 666, 667, 668, 671, 673, 674, 675, 676, ! 677, 678, 679, 680, 681, 682, 683, 686, 690, 695, ! 699, 704, 708, 710, 711, 712, 713, 714, 715, 718, ! 722, 727, 732, 736, 738, 739, 740, 743, 745, 748, ! 753, 755, 758, 760, 763, 767, 771, 775, 779, 784, ! 786, 789, 791, 794, 798, 801, 802, 803, 806, 807, ! 810, 812, 815, 817, 821, 823, 826, 828, 831, 835, ! 837, 838, 840, 843, 845, 848, 853, 855, 856, 859, ! 861, 864, 868, 873, 875, 878, 880, 881, 882, 883, ! 884, 885, 886, 888, 892, 895, 897, 899, 903, 905, ! 906, 907, 908, 909, 910, 915, 913, 918, 917, 922, ! 925, 928, 930, 931, 934, 936, 937, 938, 940, 941, ! 944, 946, 949, 953, 956, 960, 962, 966, 969, 971, ! 972, 973, 974, 977, 980, 983, 985, 987, 988, 991, ! 995, 999, 1001, 1002, 1003, 1004, 1007, 1011, 1015, 1017, ! 1018, 1019, 1022, 1024, 1025, 1026, 1029, 1031, 1032, 1033, ! 1036, 1038, 1039, 1042, 1044, 1045, 1046, 1049, 1051, 1052, ! 1053, 1054, 1055, 1058, 1060, 1061, 1064, 1066, 1069, 1071, ! 1074, 1076, 1079, 1081, 1085, 1087, 1091, 1093, 1097, 1099, ! 1102, 1106, 1109, 1110, 1113, 1115, 1118, 1122 }; #endif --- 737,778 ---- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short yyrline[] = { ! 0, 211, 211, 216, 217, 218, 219, 220, 221, 226, ! 227, 231, 236, 241, 249, 250, 254, 258, 262, 266, ! 271, 280, 281, 285, 289, 296, 300, 301, 302, 303, ! 304, 305, 306, 307, 311, 312, 316, 317, 321, 326, ! 327, 331, 335, 339, 340, 341, 348, 356, 369, 368, ! 375, 374, 379, 380, 383, 384, 388, 390, 395, 397, ! 402, 403, 407, 408, 409, 410, 414, 415, 416, 417, ! 418, 423, 425, 431, 432, 436, 437, 441, 443, 448, ! 449, 455, 454, 461, 463, 464, 466, 474, 480, 486, ! 490, 491, 498, 513, 529, 530, 534, 536, 541, 542, ! 547, 551, 561, 562, 565, 567, 574, 576, 581, 582, ! 583, 584, 589, 590, 593, 595, 600, 601, 608, 607, ! 611, 610, 614, 613, 617, 616, 622, 623, 627, 629, ! 634, 635, 639, 640, 641, 642, 646, 650, 655, 656, ! 657, 658, 662, 663, 668, 669, 673, 674, 678, 679, ! 680, 684, 688, 690, 695, 696, 697, 698, 699, 700, ! 704, 705, 706, 707, 708, 712, 713, 714, 715, 716, ! 717, 718, 719, 720, 721, 722, 723, 727, 731, 736, ! 740, 746, 750, 751, 752, 753, 754, 755, 756, 760, ! 764, 769, 774, 778, 779, 780, 781, 785, 786, 790, ! 795, 796, 800, 801, 805, 809, 813, 817, 821, 826, ! 827, 831, 832, 836, 840, 842, 843, 844, 847, 848, ! 852, 853, 857, 858, 864, 865, 869, 870, 874, 878, ! 879, 880, 882, 886, 887, 891, 896, 897, 898, 902, ! 903, 907, 911, 916, 917, 921, 922, 923, 924, 925, ! 926, 927, 928, 932, 937, 939, 941, 943, 948, 949, ! 950, 951, 952, 953, 954, 959, 958, 962, 961, 967, ! 969, 973, 974, 975, 979, 980, 981, 982, 985, 986, ! 990, 991, 995, 999, 1001, 1006, 1007, 1014, 1016, 1018, ! 1019, 1020, 1021, 1025, 1027, 1031, 1032, 1034, 1035, 1039, ! 1043, 1047, 1048, 1049, 1050, 1051, 1055, 1059, 1063, 1064, ! 1065, 1066, 1070, 1071, 1072, 1073, 1077, 1078, 1079, 1080, ! 1084, 1085, 1086, 1090, 1091, 1092, 1093, 1097, 1098, 1099, ! 1100, 1101, 1102, 1106, 1107, 1108, 1112, 1113, 1117, 1118, ! 1122, 1123, 1127, 1128, 1133, 1134, 1139, 1140, 1145, 1146, ! 1150, 1154, 1156, 1157, 1161, 1162, 1166, 1170 }; #endif *************** static const short yypgoto[] = *** 1145,1151 **** /* 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, parse error. */ #define YYTABLE_NINF -354 static const short yytable[] = { --- 1140,1146 ---- /* 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 -354 static const short yytable[] = { *************** static const unsigned short yystos[] = *** 1909,1915 **** #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) ! #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT goto yyacceptlab --- 1904,1910 ---- #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) ! #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab *************** do \ *** 1930,1942 **** { \ yychar = (Token); \ yylval = (Value); \ ! yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ ! yyerror ("syntax error: cannot back up"); \ YYERROR; \ } \ while (0) --- 1925,1937 ---- { \ yychar = (Token); \ yylval = (Value); \ ! yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ ! yyerror ("syntax error: cannot back up");\ YYERROR; \ } \ while (0) *************** while (0) *** 1948,1954 **** are run). */ #ifndef YYLLOC_DEFAULT ! # define YYLLOC_DEFAULT(Current, Rhs, N) \ Current.first_line = Rhs[1].first_line; \ Current.first_column = Rhs[1].first_column; \ Current.last_line = Rhs[N].last_line; \ --- 1943,1949 ---- are run). */ #ifndef YYLLOC_DEFAULT ! # define YYLLOC_DEFAULT(Current, Rhs, N) \ Current.first_line = Rhs[1].first_line; \ Current.first_column = Rhs[1].first_column; \ Current.last_line = Rhs[N].last_line; \ *************** while (0) *** 1958,1966 **** /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM ! # define YYLEX yylex (&yylval, YYLEX_PARAM) #else ! # define YYLEX yylex (&yylval) #endif /* Enable debugging if requested. */ --- 1953,1961 ---- /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM ! # define YYLEX yylex (&yylval, YYLEX_PARAM) #else ! # define YYLEX yylex (&yylval) #endif /* Enable debugging if requested. */ *************** do { \ *** 1976,1994 **** --- 1971,2063 ---- if (yydebug) \ YYFPRINTF Args; \ } while (0) + # define YYDSYMPRINT(Args) \ do { \ if (yydebug) \ yysymprint Args; \ } while (0) + + # define YYDSYMPRINTF(Title, Token, Value, Location) \ + do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yysymprint (stderr, \ + Token, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ + } while (0) + + /*------------------------------------------------------------------. + | yy_stack_print -- Print the state stack from its BOTTOM up to its | + | TOP (cinluded). | + `------------------------------------------------------------------*/ + + #if defined (__STDC__) || defined (__cplusplus) + static void + yy_stack_print (short *bottom, short *top) + #else + static void + yy_stack_print (bottom, top) + short *bottom; + short *top; + #endif + { + YYFPRINTF (stderr, "Stack now"); + for (/* Nothing. */; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); + } + + # define YY_STACK_PRINT(Bottom, Top) \ + do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ + } while (0) + + + /*------------------------------------------------. + | Report that the YYRULE is going to be reduced. | + `------------------------------------------------*/ + + #if defined (__STDC__) || defined (__cplusplus) + static void + yy_reduce_print (int yyrule) + #else + static void + yy_reduce_print (yyrule) + int yyrule; + #endif + { + int yyi; + unsigned int yylineno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", + yyrule - 1, yylineno); + /* Print the symbols being reduced, and their result. */ + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) + YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); + YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); + } + + # define YY_REDUCE_PRINT(Rule) \ + do { \ + if (yydebug) \ + yy_reduce_print (Rule); \ + } while (0) + /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YYDSYMPRINT(Args) + # define YYDSYMPRINTF(Title, Token, 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 *************** yystpcpy (yydest, yysrc) *** 2067,2168 **** #if YYDEBUG ! /*-----------------------------. ! | Print this symbol on YYOUT. | ! `-----------------------------*/ - static void #if defined (__STDC__) || defined (__cplusplus) ! yysymprint (FILE* yyout, int yytype, YYSTYPE yyvalue) #else ! yysymprint (yyout, yytype, yyvalue) ! FILE* yyout; int yytype; ! YYSTYPE yyvalue; #endif { /* Pacify ``unused variable'' warnings. */ ! (void) yyvalue; if (yytype < YYNTOKENS) { ! YYFPRINTF (yyout, "token %s (", yytname[yytype]); # ifdef YYPRINT ! YYPRINT (yyout, yytoknum[yytype], yyvalue); # endif } else ! YYFPRINTF (yyout, "nterm %s (", yytname[yytype]); switch (yytype) { default: break; } ! YYFPRINTF (yyout, ")"); } - #endif /* YYDEBUG. */ - /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ - static void #if defined (__STDC__) || defined (__cplusplus) ! yydestruct (int yytype, YYSTYPE yyvalue) #else ! yydestruct (yytype, yyvalue) int yytype; ! YYSTYPE yyvalue; #endif { /* Pacify ``unused variable'' warnings. */ ! (void) yyvalue; switch (yytype) { default: break; } } - ! /* 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. */ #ifdef YYPARSE_PARAM # if defined (__STDC__) || defined (__cplusplus) ! # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM ! # define YYPARSE_PARAM_DECL # else ! # define YYPARSE_PARAM_ARG YYPARSE_PARAM ! # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; # endif ! #else /* !YYPARSE_PARAM */ ! # define YYPARSE_PARAM_ARG ! # define YYPARSE_PARAM_DECL ! #endif /* !YYPARSE_PARAM */ ! ! /* Prevent warning if -Wstrict-prototypes. */ ! #ifdef __GNUC__ ! # ifdef YYPARSE_PARAM ! int yyparse (void *); ! # else int yyparse (void); ! # endif #endif int ! yyparse (YYPARSE_PARAM_ARG) ! YYPARSE_PARAM_DECL { /* The lookahead symbol. */ int yychar; --- 2136,2246 ---- #if YYDEBUG ! /*--------------------------------. ! | Print this symbol on YYOUTPUT. | ! `--------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) ! static void ! yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) #else ! static void ! yysymprint (yyoutput, yytype, yyvaluep) ! FILE *yyoutput; int yytype; ! YYSTYPE *yyvaluep; #endif { /* Pacify ``unused variable'' warnings. */ ! (void) yyvaluep; if (yytype < YYNTOKENS) { ! YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); # ifdef YYPRINT ! YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # endif } else ! YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); switch (yytype) { default: break; } ! YYFPRINTF (yyoutput, ")"); } + #endif /* ! YYDEBUG */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) ! static void ! yydestruct (int yytype, YYSTYPE *yyvaluep) #else ! static void ! yydestruct (yytype, yyvaluep) int yytype; ! YYSTYPE *yyvaluep; #endif { /* Pacify ``unused variable'' warnings. */ ! (void) yyvaluep; switch (yytype) { + default: break; } } ! /* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM # if defined (__STDC__) || defined (__cplusplus) ! int yyparse (void *YYPARSE_PARAM); # else ! int yyparse (); # endif ! #else /* ! YYPARSE_PARAM */ ! #if defined (__STDC__) || defined (__cplusplus) int yyparse (void); ! #else ! int yyparse (); #endif + #endif /* ! YYPARSE_PARAM */ + + + + /*----------. + | yyparse. | + `----------*/ + #ifdef YYPARSE_PARAM + # if defined (__STDC__) || defined (__cplusplus) + int yyparse (void *YYPARSE_PARAM) + # else + int yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; + # endif + #else /* ! YYPARSE_PARAM */ + #if defined (__STDC__) || defined (__cplusplus) int ! yyparse (void) ! #else ! int ! yyparse () ! ! #endif ! #endif { /* The lookahead symbol. */ int yychar; *************** int yychar; *** 2170,2176 **** /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; ! /* Number of parse errors so far. */ int yynerrs; register int yystate; --- 2248,2254 ---- /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; ! /* Number of syntax errors so far. */ int yynerrs; register int yystate; *************** int yynerrs; *** 2179,2185 **** /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Lookahead token as an internal (translated) token number. */ ! int yychar1 = 0; /* Three stacks and their tools: `yyss': related to states, --- 2257,2263 ---- /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Lookahead token as an internal (translated) token number. */ ! int yytoken = 0; /* Three stacks and their tools: `yyss': related to states, *************** int yynerrs; *** 2243,2249 **** yysetstate: *yyssp = yystate; ! if (yyssp >= yyss + yystacksize - 1) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; --- 2321,2327 ---- yysetstate: *yyssp = yystate; ! if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; *************** int yynerrs; *** 2275,2284 **** goto yyoverflowlab; # else /* Extend the stack our own way. */ ! if (yystacksize >= YYMAXDEPTH) goto yyoverflowlab; yystacksize *= 2; ! if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; { --- 2353,2362 ---- goto yyoverflowlab; # else /* Extend the stack our own way. */ ! if (YYMAXDEPTH <= yystacksize) goto yyoverflowlab; yystacksize *= 2; ! if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { *************** int yynerrs; *** 2304,2310 **** YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); ! if (yyssp >= yyss + yystacksize - 1) YYABORT; } --- 2382,2388 ---- YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); ! if (yyss + yystacksize - 1 <= yyssp) YYABORT; } *************** yybackup: *** 2329,2367 **** /* 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. */ ! if (yychar == YYEMPTY) { 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. */ { ! yychar1 = 0; ! yychar = YYEOF; /* Don't call YYLEX any more. */ ! YYDPRINTF ((stderr, "Now at end of input.\n")); } else { ! yychar1 = YYTRANSLATE (yychar); ! ! /* We have to keep this `#if YYDEBUG', since we use variables ! which are defined only if `YYDEBUG' is set. */ ! YYDPRINTF ((stderr, "Next token is ")); ! YYDSYMPRINT ((stderr, yychar1, yylval)); ! YYDPRINTF ((stderr, "\n")); } ! /* If the proper action on seeing token YYCHAR1 is to reduce or to detect an error, take that action. */ ! yyn += yychar1; ! if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) --- 2407,2434 ---- /* Not known => get a lookahead token if don't already have one. */ ! /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } ! if (yychar <= YYEOF) { ! yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { ! yytoken = YYTRANSLATE (yychar); ! YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); } ! /* 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]; if (yyn <= 0) *************** yybackup: *** 2376,2383 **** YYACCEPT; /* Shift the lookahead token. */ ! YYDPRINTF ((stderr, "Shifting token %d (%s), ", ! yychar, yytname[yychar1])); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) --- 2443,2449 ---- YYACCEPT; /* Shift the lookahead token. */ ! YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) *************** yyreduce: *** 2423,2629 **** yyval = yyvsp[1-yylen]; ! ! #if YYDEBUG ! /* We have to keep this `#if YYDEBUG', since we use variables which ! are defined only if `YYDEBUG' is set. */ ! if (yydebug) ! { ! int yyi; ! ! YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", ! yyn - 1, yyrline[yyn]); ! ! /* Print the symbols being reduced, and their result. */ ! for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++) ! YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); ! YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); ! } ! #endif switch (yyn) { case 11: ! #line 199 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("int"); ! } break; case 12: ! #line 204 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("double"); ! } break; case 13: ! #line 209 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("boolean"); ! } break; case 19: ! #line 234 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ! } break; case 20: ! #line 239 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ! } break; case 24: ! #line 257 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ".", yyvsp[0].node, NULL); ! } break; case 38: ! #line 289 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { package_name = yyvsp[-1].node; } break; case 46: ! #line 314 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; if (yyvsp[0].value == STATIC_TK) modifier_value++; USE_ABSORBER; ! } break; case 47: ! #line 322 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; if (yyvsp[0].value == STATIC_TK) modifier_value++; USE_ABSORBER; ! } break; case 48: ! #line 334 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); modifier_value = 0; ! } break; case 50: ! #line 340 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { report_class_declaration(yyvsp[-2].node); } break; case 56: ! #line 354 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 57: ! #line 356 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 58: ! #line 361 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { pop_class_context (); } break; case 59: ! #line 363 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { pop_class_context (); } break; case 71: ! #line 389 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 72: ! #line 391 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { modifier_value = 0; } break; case 77: ! #line 407 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { bracket_count = 0; USE_ABSORBER; } break; case 78: ! #line 409 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++bracket_count; } break; case 81: ! #line 420 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++method_depth; } break; case 82: ! #line 422 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { --method_depth; } break; case 83: ! #line 427 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 85: ! #line 430 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { modifier_value = 0; } break; case 86: ! #line 432 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { report_main_declaration (yyvsp[-1].declarator); modifier_value = 0; ! } break; case 87: ! #line 440 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { struct method_declarator *d; NEW_METHOD_DECLARATOR (d, yyvsp[-2].node, NULL); yyval.declarator = d; ! } break; case 88: ! #line 446 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { struct method_declarator *d; NEW_METHOD_DECLARATOR (d, yyvsp[-3].node, yyvsp[-1].node); yyval.declarator = d; ! } break; case 91: ! #line 457 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ",", yyvsp[0].node, NULL); ! } break; case 92: ! #line 464 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { USE_ABSORBER; if (bracket_count) --- 2489,2679 ---- yyval = yyvsp[1-yylen]; ! YY_REDUCE_PRINT (yyn); switch (yyn) { case 11: ! #line 232 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("int"); ! ;} break; case 12: ! #line 237 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("double"); ! ;} break; case 13: ! #line 242 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("boolean"); ! ;} break; case 19: ! #line 267 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ! ;} break; case 20: ! #line 272 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ! ;} break; case 24: ! #line 290 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ".", yyvsp[0].node, NULL); ! ;} break; case 38: ! #line 322 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { package_name = yyvsp[-1].node; ;} break; case 46: ! #line 349 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; if (yyvsp[0].value == STATIC_TK) modifier_value++; USE_ABSORBER; ! ;} break; case 47: ! #line 357 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; if (yyvsp[0].value == STATIC_TK) modifier_value++; USE_ABSORBER; ! ;} break; case 48: ! #line 369 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); modifier_value = 0; ! ;} break; case 50: ! #line 375 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { report_class_declaration(yyvsp[-2].node); ;} break; case 56: ! #line 389 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 57: ! #line 391 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 58: ! #line 396 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { pop_class_context (); ;} break; case 59: ! #line 398 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { pop_class_context (); ;} break; case 71: ! #line 424 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 72: ! #line 426 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { modifier_value = 0; ;} break; case 77: ! #line 442 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { bracket_count = 0; USE_ABSORBER; ;} break; case 78: ! #line 444 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++bracket_count; ;} break; case 81: ! #line 455 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++method_depth; ;} break; case 82: ! #line 457 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { --method_depth; ;} break; case 83: ! #line 462 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 85: ! #line 465 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { modifier_value = 0; ;} break; case 86: ! #line 467 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { report_main_declaration (yyvsp[-1].declarator); modifier_value = 0; ! ;} break; case 87: ! #line 475 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { struct method_declarator *d; NEW_METHOD_DECLARATOR (d, yyvsp[-2].node, NULL); yyval.declarator = d; ! ;} break; case 88: ! #line 481 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { struct method_declarator *d; NEW_METHOD_DECLARATOR (d, yyvsp[-3].node, yyvsp[-1].node); yyval.declarator = d; ! ;} break; case 91: ! #line 492 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ",", yyvsp[0].node, NULL); ! ;} break; case 92: ! #line 499 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { USE_ABSORBER; if (bracket_count) *************** yyreduce: *** 2637,2647 **** } else yyval.node = yyvsp[-1].node; ! } break; case 93: ! #line 479 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" { if (bracket_count) { --- 2687,2697 ---- } else yyval.node = yyvsp[-1].node; ! ;} break; case 93: ! #line 514 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" { if (bracket_count) { *************** yyreduce: *** 2654,2952 **** } else yyval.node = yyvsp[-1].node; ! } break; case 96: ! #line 500 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 97: ! #line 502 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 101: ! #line 517 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 103: ! #line 525 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { modifier_value = 0; } break; case 105: ! #line 530 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { modifier_value = 0; } break; case 106: ! #line 536 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 107: ! #line 538 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 114: ! #line 554 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 115: ! #line 556 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 118: ! #line 568 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { report_class_declaration (yyvsp[0].node); modifier_value = 0; } break; case 120: ! #line 571 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { report_class_declaration (yyvsp[0].node); modifier_value = 0; } break; case 122: ! #line 574 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { report_class_declaration (yyvsp[-1].node); modifier_value = 0; } break; case 124: ! #line 577 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { report_class_declaration (yyvsp[-1].node); modifier_value = 0; } break; case 128: ! #line 588 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { pop_class_context (); } break; case 129: ! #line 590 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { pop_class_context (); } break; case 152: ! #line 649 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 153: ! #line 651 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { modifier_value = 0; } break; case 178: ! #line 692 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 189: ! #line 719 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 190: ! #line 724 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 191: ! #line 729 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 199: ! #line 749 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 204: ! #line 764 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 208: ! #line 781 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 214: ! #line 799 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 225: ! #line 823 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 228: ! #line 832 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 231: ! #line 839 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! {yyerror ("Missing term"); RECOVER;} break; case 232: ! #line 841 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! {yyerror ("';' expected"); RECOVER;} break; case 235: ! #line 850 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 241: ! #line 865 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 242: ! #line 869 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 253: ! #line 889 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 254: ! #line 894 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 255: ! #line 896 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 256: ! #line 898 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 257: ! #line 900 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 265: ! #line 915 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { report_class_declaration (anonymous_context); } break; case 267: ! #line 918 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { report_class_declaration (anonymous_context); } break; case 269: ! #line 924 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 283: ! #line 955 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { bracket_count = 1; } break; case 284: ! #line 957 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { bracket_count++; } break; case 287: ! #line 968 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; ++complexity; } break; case 288: ! #line 970 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; ++complexity; } break; case 289: ! #line 971 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 290: ! #line 972 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 291: ! #line 973 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 292: ! #line 974 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 293: ! #line 979 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 296: ! #line 986 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; case 343: ! #line 1082 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 345: ! #line 1088 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 347: ! #line 1094 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { ++complexity; } break; case 351: ! #line 1108 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" ! { USE_ABSORBER; } break; } ! /* Line 1016 of /usr/share/bison/yacc.c. */ ! #line 2935 "ps14046.c" yyvsp -= yylen; yyssp -= yylen; ! #if YYDEBUG ! if (yydebug) ! { ! short *yyssp1 = yyss - 1; ! YYFPRINTF (stderr, "state stack now"); ! while (yyssp1 != yyssp) ! YYFPRINTF (stderr, " %d", *++yyssp1); ! YYFPRINTF (stderr, "\n"); ! } ! #endif *++yyvsp = yyval; --- 2704,2993 ---- } else yyval.node = yyvsp[-1].node; ! ;} break; case 96: ! #line 535 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 97: ! #line 537 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 101: ! #line 552 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 103: ! #line 563 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { modifier_value = 0; ;} break; case 105: ! #line 568 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { modifier_value = 0; ;} break; case 106: ! #line 575 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 107: ! #line 577 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 114: ! #line 594 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 115: ! #line 596 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 118: ! #line 608 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { report_class_declaration (yyvsp[0].node); modifier_value = 0; ;} break; case 120: ! #line 611 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { report_class_declaration (yyvsp[0].node); modifier_value = 0; ;} break; case 122: ! #line 614 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ;} break; case 124: ! #line 617 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ;} break; case 128: ! #line 628 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { pop_class_context (); ;} break; case 129: ! #line 630 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { pop_class_context (); ;} break; case 152: ! #line 689 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 153: ! #line 691 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { modifier_value = 0; ;} break; case 178: ! #line 732 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 189: ! #line 760 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 190: ! #line 765 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 191: ! #line 770 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 199: ! #line 790 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 204: ! #line 805 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 208: ! #line 822 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 214: ! #line 840 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 225: ! #line 865 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 228: ! #line 874 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 231: ! #line 881 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! {yyerror ("Missing term"); RECOVER;;} break; case 232: ! #line 883 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! {yyerror ("';' expected"); RECOVER;;} break; case 235: ! #line 892 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 241: ! #line 907 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 242: ! #line 911 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 253: ! #line 933 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 254: ! #line 938 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 255: ! #line 940 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 256: ! #line 942 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 257: ! #line 944 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 265: ! #line 959 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { report_class_declaration (anonymous_context); ;} break; case 267: ! #line 962 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { report_class_declaration (anonymous_context); ;} break; case 269: ! #line 968 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 283: ! #line 1000 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { bracket_count = 1; ;} break; case 284: ! #line 1002 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { bracket_count++; ;} break; case 287: ! #line 1015 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ++complexity; ;} break; case 288: ! #line 1017 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ++complexity; ;} break; case 289: ! #line 1018 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 290: ! #line 1019 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 291: ! #line 1020 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 292: ! #line 1021 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 293: ! #line 1026 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 296: ! #line 1033 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; case 343: ! #line 1129 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 345: ! #line 1135 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 347: ! #line 1141 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { ++complexity; ;} break; case 351: ! #line 1155 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" ! { USE_ABSORBER; ;} break; } ! /* Line 991 of yacc.c. */ ! #line 2984 "ps19697.c" yyvsp -= yylen; yyssp -= yylen; ! YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; *************** yyerrlab: *** 2991,3002 **** yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) yysize += yystrlen (yytname[yyx]) + 15, yycount++; ! yysize += yystrlen ("parse error, unexpected ") + 1; yysize += yystrlen (yytname[yytype]); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { ! char *yyp = yystpcpy (yymsg, "parse error, unexpected "); yyp = yystpcpy (yyp, yytname[yytype]); if (yycount < 5) --- 3032,3043 ---- yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) yysize += yystrlen (yytname[yyx]) + 15, yycount++; ! yysize += yystrlen ("syntax error, unexpected ") + 1; yysize += yystrlen (yytname[yytype]); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { ! char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); yyp = yystpcpy (yyp, yytname[yytype]); if (yycount < 5) *************** yyerrlab: *** 3017,3035 **** YYSTACK_FREE (yymsg); } else ! yyerror ("parse error; also virtual memory exhausted"); } else #endif /* YYERROR_VERBOSE */ ! yyerror ("parse error"); } - goto yyerrlab1; ! /*----------------------------------------------------. ! | yyerrlab1 -- error raised explicitly by an action. | ! `----------------------------------------------------*/ ! yyerrlab1: if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an --- 3058,3072 ---- YYSTACK_FREE (yymsg); } else ! yyerror ("syntax error; also virtual memory exhausted"); } else #endif /* YYERROR_VERBOSE */ ! yyerror ("syntax error"); } ! if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an *************** yyerrlab1: *** 3041,3068 **** /* Pop the error token. */ YYPOPSTACK; /* Pop the rest of the stack. */ ! while (yyssp > yyss) { ! YYDPRINTF ((stderr, "Error: popping ")); ! YYDSYMPRINT ((stderr, ! yystos[*yyssp], ! *yyvsp)); ! YYDPRINTF ((stderr, "\n")); ! yydestruct (yystos[*yyssp], *yyvsp); YYPOPSTACK; } YYABORT; } ! YYDPRINTF ((stderr, "Discarding token %d (%s).\n", ! yychar, yytname[yychar1])); ! yydestruct (yychar1, yylval); yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) --- 3078,3123 ---- /* Pop the error token. */ YYPOPSTACK; /* Pop the rest of the stack. */ ! while (yyss < yyssp) { ! YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); ! yydestruct (yystos[*yyssp], yyvsp); YYPOPSTACK; } YYABORT; } ! YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); ! yydestruct (yytoken, &yylval); yychar = YYEMPTY; + } /* Else will try to reuse lookahead token after shifting the error token. */ + goto yyerrlab2; + + /*----------------------------------------------------. + | yyerrlab1 -- error raised explicitly by an action. | + `----------------------------------------------------*/ + yyerrlab1: + + /* Suppress GCC warning that yyerrlab1 is unused when no action + invokes YYERROR. */ + #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) \ + && !defined __cplusplus + __attribute__ ((__unused__)) + #endif + + + goto yyerrlab2; + + + /*---------------------------------------------------------------. + | yyerrlab2 -- pop states until the error token can be shifted. | + `---------------------------------------------------------------*/ + yyerrlab2: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) *************** yyerrlab1: *** 3083,3108 **** if (yyssp == yyss) YYABORT; ! YYDPRINTF ((stderr, "Error: popping ")); ! YYDSYMPRINT ((stderr, ! yystos[*yyssp], *yyvsp)); ! YYDPRINTF ((stderr, "\n")); ! ! yydestruct (yystos[yystate], *yyvsp); yyvsp--; yystate = *--yyssp; ! ! #if YYDEBUG ! if (yydebug) ! { ! short *yyssp1 = yyss - 1; ! YYFPRINTF (stderr, "Error: state stack now"); ! while (yyssp1 != yyssp) ! YYFPRINTF (stderr, " %d", *++yyssp1); ! YYFPRINTF (stderr, "\n"); ! } ! #endif } if (yyn == YYFINAL) --- 3138,3149 ---- if (yyssp == yyss) YYABORT; ! YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); ! yydestruct (yystos[yystate], yyvsp); yyvsp--; yystate = *--yyssp; ! YY_STACK_PRINT (yyss, yyssp); } if (yyn == YYFINAL) *************** yyreturn: *** 3150,3156 **** } ! #line 1126 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y" /* Create a new parser context */ --- 3191,3197 ---- } ! #line 1173 "/home/gdr/gcc-3.3.6/gcc-3.3.6/gcc/java/parse-scan.y" /* Create a new parser context */ diff -Nrcpad gcc-3.3.5/gcc/java/rmic.1 gcc-3.3.6/gcc/java/rmic.1 *** gcc-3.3.5/gcc/java/rmic.1 2004-09-30 17:38:17.000000000 +0000 --- gcc-3.3.6/gcc/java/rmic.1 2005-05-03 12:41:31.000000000 +0000 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13 .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "RMIC 1" ! .TH RMIC 1 "2004-09-30" "gcc-3.3.5" "GNU" .SH "NAME" rmic \- Generate stubs for Remote Method Invocation .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "RMIC 1" ! .TH RMIC 1 "2005-05-03" "gcc-3.3.6" "GNU" .SH "NAME" rmic \- Generate stubs for Remote Method Invocation .SH "SYNOPSIS" diff -Nrcpad gcc-3.3.5/gcc/java/rmiregistry.1 gcc-3.3.6/gcc/java/rmiregistry.1 *** gcc-3.3.5/gcc/java/rmiregistry.1 2004-09-30 17:38:18.000000000 +0000 --- gcc-3.3.6/gcc/java/rmiregistry.1 2005-05-03 12:41:31.000000000 +0000 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13 .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "RMIREGISTRY 1" ! .TH RMIREGISTRY 1 "2004-09-30" "gcc-3.3.5" "GNU" .SH "NAME" rmiregistry \- Remote object registry .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "RMIREGISTRY 1" ! .TH RMIREGISTRY 1 "2005-05-03" "gcc-3.3.6" "GNU" .SH "NAME" rmiregistry \- Remote object registry .SH "SYNOPSIS" diff -Nrcpad gcc-3.3.5/libffi/ChangeLog gcc-3.3.6/libffi/ChangeLog *** gcc-3.3.5/libffi/ChangeLog 2004-09-30 16:47:51.000000000 +0000 --- gcc-3.3.6/libffi/ChangeLog 2005-05-03 10:55:45.000000000 +0000 *************** *** 1,3 **** --- 1,7 ---- + 2005-05-03 Release Manager + + * GCC 3.3.6 Released. + 2004-09-30 Release Manager * GCC 3.3.5 Released. diff -Nrcpad gcc-3.3.5/libjava/ChangeLog gcc-3.3.6/libjava/ChangeLog *** gcc-3.3.5/libjava/ChangeLog 2004-09-30 16:46:52.000000000 +0000 --- gcc-3.3.6/libjava/ChangeLog 2005-05-03 10:54:47.000000000 +0000 *************** *** 1,3 **** --- 1,7 ---- + 2005-05-03 Release Manager + + * GCC 3.3.6 Released. + 2004-09-30 Release Manager * GCC 3.3.5 Released. diff -Nrcpad gcc-3.3.5/libjava/libltdl/ChangeLog gcc-3.3.6/libjava/libltdl/ChangeLog *** gcc-3.3.5/libjava/libltdl/ChangeLog 2004-09-30 16:46:41.000000000 +0000 --- gcc-3.3.6/libjava/libltdl/ChangeLog 2005-05-03 10:54:41.000000000 +0000 *************** *** 1,3 **** --- 1,7 ---- + 2005-05-03 Release Manager + + * GCC 3.3.6 Released. + 2004-09-30 Release Manager * GCC 3.3.5 Released. diff -Nrcpad gcc-3.3.5/libjava/testsuite/ChangeLog gcc-3.3.6/libjava/testsuite/ChangeLog *** gcc-3.3.5/libjava/testsuite/ChangeLog 2004-09-30 16:47:00.000000000 +0000 --- gcc-3.3.6/libjava/testsuite/ChangeLog 2005-05-03 10:55:01.000000000 +0000 *************** *** 1,3 **** --- 1,7 ---- + 2005-05-03 Release Manager + + * GCC 3.3.6 Released. + 2004-09-30 Release Manager * GCC 3.3.5 Released. diff -Nrcpad gcc-3.3.5/zlib/ChangeLog gcc-3.3.6/zlib/ChangeLog *** gcc-3.3.5/zlib/ChangeLog 2004-09-30 16:46:04.000000000 +0000 --- gcc-3.3.6/zlib/ChangeLog 2005-05-03 10:54:09.000000000 +0000 *************** *** 1,3 **** --- 1,7 ---- + 2005-05-03 Release Manager + + * GCC 3.3.6 Released. + 2004-09-30 Release Manager * GCC 3.3.5 Released.