This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[committed] delete default definition of ASM_OUTPUT_ADDR_VEC_ELT


This fixes a problem that Mike Stump reported on the gcc list about 6
weeks ago.
    http://gcc.gnu.org/ml/gcc/2005-06/msg01011.html

We have a default definition for ASM_OUTPUT_ADDR_VEC_ELT that is
unusable, because it is emitting a label definition rather than a label
reference.  We have an ifdef around the only use in final.c, which is
redundant with the default definition.  We don't need both.  There are
two ports that define ASM_OUTPUT_ADDR_VEC_ELT to gcc_unreachable,
because it is an error if this macro is used.  This is the same code we
would get if we didn't have a default definition.  Also, there was a
similarly broken default definition for ASM_OUTPUT_ADDR_DIFF_VEC_ELT
which was removed in March 1996.

I'm fixing this by deleting the useless default definition, and removing
the now unnecessary definitions from the alpha and ia64 ports.  Now the
code makes more sense.

I tested the three affected alpha ports by building quick cross
compilers to make sure they still built OK.  These are alpha-linux,
alpha-dec-vms, and alpha-unicosmk.  In the process of doing this, I
discovered that the alpha-unicosmk port was broken last December when a
macro was hookized.  I fixed the typo so it would build.  I also looked
at preprocessed final.i to make sure it was what we wanted for the
alpha-linux port.

I also tested this with a C only bootstrap and make check on
ia64-linux.  There were no regressions.

I have checked in the patch.
-- 
Jim Wilson, GNU Tools Support, http://www.specifix.com

Attachment: patch.output.addr-vec
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]