As far as I know, there are two bugs in the gcc included in Redhat 4.2 (gcc-2.7.2.1-2). The first is that gcc might produce code which the assembler can't assemble. This can be triggered by very large stack frames, and manifests itself by the messages such as:
/tmp/cca01041.s: Assembler messages: /tmp/cca01041.s:786: Error: macro requires $at register while noat in effect
when compiling programs.
Richard Henderson fixed the problem and posted a patch to axp-list@redhat.com.
The other bug is a profiling failure (which I'm not sure I've witnessed). Toon Moene posted a patch for this.
Here're the two patches as well as an RPM spec file for rebuilding gcc-2.7.2.1. They've been tarred, gzipped uuencoded, named gcc-new-patches.tar.gz.uue and included in the Patches section.
You should install the Redhat gcc-2.7.2.1-2.src.rpm (rpm -Uvh gcc-2.7.2.1-2.src.rpm), then untar this, put the gcc-2.7.2.1.spec included here into /usr/src/redhat/SPECS, put rth-gcc-2.7.2-970921.diff.gz and gcc-alpha-profiling-patch-2.7.2.1-toon-971001 into /usr/src/redhat/SOURCES, and build gcc (rpm -ba /usr/src/redhat/SPECS/gcc-2.7.2.1.spec). This will create a binary rpm for gcc in /usr/src/redhat/RPMS/alpha named gcc-2.7.2.1-2c.alpha.rpm which you can then install.