https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66486
Bug ID: 66486
Summary: MMIX code produced is invalid
Product: gcc
Version: 4.0.1
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: ruckert at cs dot hm.edu
Target Milestone: ---
The following c code:
typedef struct node { struct node *next; int i; } node;
void InsertEnd(node *p, node **head)
{ while (*head!=0) head=&((*head)->next);
*head=p;
}
compliled with mmix-gcc -O2 -S bug.c
produces:
InsertEnd IS @
LDO $15,$1,0
BZ $15,L:9
L:5 IS @
SET $1,$2
LDO $2,$1,0
PBNZ $2,L:5
L:9 IS @
STOU $0,$1,0
POP 0,0
In the first SET instruction $2 is uninitialized. Probably the $15 in the
first two instructions should be a $2.