🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.bug
Article #2661

2 bugs in gcc1.34/1.35 (one is Encore specific)

#2661
From: michael lawley
Date: Tue, 23 May 1989 03:54
76 lines
2522 bytes
First the Encore specific bug (see below for machine/OS details).

When compiled with gcc 1.34 or 1.35 _and_ optimisation, the following
code:

main()
{
    int a=1;

    if(a) a++;
    if ( 2 == a) a++;
}

gives the assembler output:

	.file	"s22.c"
gcc_compiled.:
.text
	.align 16
.globl _main
_main:
	enter [],0
	movl $2,f0
	exit []
	ret 0

which doesn't assemble due to the floating point register! Why a float
register should be there I have no idea. Here is the output from gcc1.35:

gcc -v -O gcc-bug.c
gcc version 1.35
 /nip/usr/lib/gcc-cpp -v -undef -D__GNUC__ -Dns32000 -Dn16 -Dns16000 -Dns32332 -Dunix -D__ns32000__ -D__n16__ -D__ns16000__ -D__ns32332__ -D__unix__ -D__OPTIMIZE__ gcc-bug.c /tmp/cc014955.cpp
GNU CPP version 1.35
 /nip/usr/lib/gcc-cc1 /tmp/cc014955.cpp -quiet -dumpbase gcc-bug.c -O -version -o /tmp/cc014955.s
GNU C version 1.35 (32000, Encore syntax) compiled by GNU C version 1.35.
 as -j -o gcc-bug.o /tmp/cc014955.s
Assembler: gcc-bug.c
	aline 8	: illegal operand

The configuration is as follows:

lrwxr-xr-x  1 lawley   staff       15 May 17 15:11 md@ -> config/ns32k.md
lrwxr-xr-x  1 lawley   staff       18 May 17 15:11 tm.h@ -> config/tm-encore.h

Machine is an Encore Multimax with 12 NS32032 processors running
UMAX 4.2 Release R3.3.0 (bug was also there for R3.1.0)

Also, if the second "a++" in the above code is changed to "return 2"
(giving "if ( a == 2 ) return 2;") then the assembler output is:

gcc -o /dev/tty -O -S gcc-bug2.c
	.file	"gcc-bug2.c"
gcc_compiled.:
.text
	.align 16
.globl _main
_main:
	enter [],0
	movl $2,f0
	cmpl f0,f0
	bne .L3
	movqd $2,r0
.L3:
	exit []
	ret 0

Comparing a register with itself ! (Still with float register bug.)

cheers, mike.

	   /----------------------------------------------------\
           | ACSnet: lawley@munnari.oz.au                       |
	   | UUCP:   {uunet,ukc,ubc-cs,mcvax}!munnari.oz!lawley |
	   | ARPA:   lawley%munnari.oz@uunet.uu.net             |
	   \----------------------------------------------------/
Technical Details
Message-ID: <8905221254.16884@mullauna.cs.mu.oz>
Path: arc1-ca.pugleaf.net!utzoo!telly!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!mullauna.cs.mu.oz.au!lawley

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!telly!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!mullauna.cs.mu.oz.au!lawley
From: lawley@mullauna.cs.mu.oz.au (michael lawley)
Newsgroups: gnu.gcc.bug
Subject: 2 bugs in gcc1.34/1.35 (one is Encore specific)
Message-ID: <8905221254.16884@mullauna.cs.mu.oz>
Date: 23 May 89 03:54:20 GMT
Sender: daemon@tut.cis.ohio-state.edu
Distribution: gnu
Organization: GNUs Not Usenet
Lines: 76