From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Green To: gcc-gnats@gcc.gnu.org Subject: java/4717: miscompiling class reference Date: Sun, 28 Oct 2001 04:56:00 -0000 Message-id: <200110281245.EAA24412@fencer.cygnus.com> X-SW-Source: 2001-10/msg00604.html List-Id: >Number: 4717 >Category: java >Synopsis: miscompiling class reference >Confidential: no >Severity: critical >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Sun Oct 28 04:56:02 PST 2001 >Closed-Date: >Last-Modified: >Originator: Anthony Green >Release: 3.1 20011024 (experimental) >Organization: >Environment: System: Linux fencer.cygnus.com 2.2.12-20smp #1 SMP Mon Sep 27 10:34:45 EDT 1999 i686 unknown Architecture: i686 host: i686-pc-linux-gnu build: i686-pc-linux-gnu target: i686-pc-linux-gnu configured with: /fencer/cutlass/aph/green/trunk/gcc/configure --prefix=/fencer/cutlass/aph/green/trunk/i --enable-threads --enable-languages=c,c++,java --with-languages=c,c++,java : (reconfigured) >Description: The shar file below has two classes: a.b.Foo and z.b.c.Bar. Every reference to a.b.Foo in z.b.c.Bar is being turned into a reference to the non-existant class z.b.Foo. This problem makes it impossible to link, for instance, the gtk peers in gnu.awt.gtk. >How-To-Repeat: unshar and run make #!/bin/sh # This is a shell archive (produced by GNU sharutils 4.2.1). # To extract the files from this archive, save it to some FILE, remove # everything before the `!/bin/sh' line above, then type `sh FILE'. # # Made on 2001-10-28 04:36 PST by . # Source directory was `/tmp/t'. # # Existing files will *not* be overwritten unless `-c' is specified. # # This shar contains: # length mode name # ------ ---------- ------------------------------------------ # 88 -rw-rw-r-- Makefile # 45 -rw-rw-r-- a/b/Foo.java # 204 -rw-rw-r-- z/b/c/Bar.java # save_IFS="${IFS}" IFS="${IFS}:" gettext_dir=FAILED locale_dir=FAILED first_param="$1" for dir in $PATH do if test "$gettext_dir" = FAILED && test -f $dir/gettext \ && ($dir/gettext --version >/dev/null 2>&1) then set `$dir/gettext --version 2>&1` if test "$3" = GNU then gettext_dir=$dir fi fi if test "$locale_dir" = FAILED && test -f $dir/shar \ && ($dir/shar --print-text-domain-dir >/dev/null 2>&1) then locale_dir=`$dir/shar --print-text-domain-dir` fi done IFS="$save_IFS" if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED then echo=echo else TEXTDOMAINDIR=$locale_dir export TEXTDOMAINDIR TEXTDOMAIN=sharutils export TEXTDOMAIN echo="$gettext_dir/gettext -s" fi if touch -am -t 200112312359.59 $$.touch >/dev/null 2>&1 && test ! -f 200112312359.59 -a -f $$.touch; then shar_touch='touch -am -t $1$2$3$4$5$6.$7 "$8"' elif touch -am 123123592001.59 $$.touch >/dev/null 2>&1 && test ! -f 123123592001.59 -a ! -f 123123592001.5 -a -f $$.touch; then shar_touch='touch -am $3$4$5$6$1$2.$7 "$8"' elif touch -am 1231235901 $$.touch >/dev/null 2>&1 && test ! -f 1231235901 -a -f $$.touch; then shar_touch='touch -am $3$4$5$6$2 "$8"' else shar_touch=: echo $echo 'WARNING: not restoring timestamps. Consider getting and' $echo "installing GNU \`touch', distributed in GNU File Utilities..." echo fi rm -f 200112312359.59 123123592001.59 123123592001.5 1231235901 $$.touch # if mkdir _sh18081; then $echo 'x -' 'creating lock directory' else $echo 'failed to create lock directory' exit 1 fi # ============= Makefile ============== if test -f 'Makefile' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'Makefile' '(file already exists)' else $echo 'x -' extracting 'Makefile' '(gzipped)' sed 's/^X//' << 'SHAR_EOF' | uudecode && begin 600 _sh18081/gzi M'XL(`$W[VSL"`RM)+2ZQXN),3\Y2T$U6J-)/TD_6=THLTLM*+$M4T,U7`+'S MN3CS 'Makefile' && (set 20 01 10 28 04 34 21 'Makefile'; eval "$shar_touch") && chmod 0664 'Makefile' || $echo 'restore of' 'Makefile' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'Makefile:' 'MD5 check failed' b52c408e60577fb0e6a4645261ff815f Makefile SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'Makefile'`" test 88 -eq "$shar_count" || $echo 'Makefile:' 'original size' '88,' 'current size' "$shar_count!" fi fi # ============= a/b/Foo.java ============== if test ! -d 'a'; then $echo 'x -' 'creating directory' 'a' mkdir 'a' fi if test ! -d 'a/b'; then $echo 'x -' 'creating directory' 'a/b' mkdir 'a/b' fi if test -f 'a/b/Foo.java' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'a/b/Foo.java' '(file already exists)' else $echo 'x -' extracting 'a/b/Foo.java' '(gzipped)' sed 's/^X//' << 'SHAR_EOF' | uudecode && begin 600 _sh18081/gzi M'XL(`+CYVSL"`RM(3,Y.3$]52-1+LN;B*BA-RLE,5DC.22PN5G#+SU?@JN92 44,C,*U&HL.:JY0(`?E!ZQRT```!+ ` end SHAR_EOF $echo 'gunzipping file' 'a/b/Foo.java' && gzip -d < _sh18081/gzi > 'a/b/Foo.java' && (set 20 01 10 28 04 27 36 'a/b/Foo.java'; eval "$shar_touch") && chmod 0664 'a/b/Foo.java' || $echo 'restore of' 'a/b/Foo.java' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'a/b/Foo.java:' 'MD5 check failed' 251c49a61e8c8a1f8da00db5cccfd1b6 a/b/Foo.java SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'a/b/Foo.java'`" test 45 -eq "$shar_count" || $echo 'a/b/Foo.java:' 'original size' '45,' 'current size' "$shar_count!" fi fi # ============= z/b/c/Bar.java ============== if test ! -d 'z'; then $echo 'x -' 'creating directory' 'z' mkdir 'z' fi if test ! -d 'z/b'; then $echo 'x -' 'creating directory' 'z/b' mkdir 'z/b' fi if test ! -d 'z/b/c'; then $echo 'x -' 'creating directory' 'z/b/c' mkdir 'z/b/c' fi if test -f 'z/b/c/Bar.java' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'z/b/c/Bar.java' '(file already exists)' else $echo 'x -' extracting 'z/b/c/Bar.java' '(gzipped)' sed 's/^X//' << 'SHAR_EOF' | uudecode && begin 600 _sh18081/gzi M'XL(`*#ZVSL"`X6-O1+"(!"$>YYBRVA!1MMT%CZ!+W"02V0DP`"QB..[>_A3 MV]S.SGZWF\C>:&9LVF@[*.66%',%B=V+3:OQSL)Z*@4GRNJA@+['YZ]^+,```` ` end SHAR_EOF $echo 'gunzipping file' 'z/b/c/Bar.java' && gzip -d < _sh18081/gzi > 'z/b/c/Bar.java' && (set 20 01 10 28 04 31 28 'z/b/c/Bar.java'; eval "$shar_touch") && chmod 0664 'z/b/c/Bar.java' || $echo 'restore of' 'z/b/c/Bar.java' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'z/b/c/Bar.java:' 'MD5 check failed' 1474ab0c6fd4fe1433f4be35204ec981 z/b/c/Bar.java SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'z/b/c/Bar.java'`" test 204 -eq "$shar_count" || $echo 'z/b/c/Bar.java:' 'original size' '204,' 'current size' "$shar_count!" fi fi rm -fr _sh18081 exit 0 >Fix: >Release-Note: >Audit-Trail: >Unformatted: