Date: Wed, 27 Aug 2008 18:29:43 +0200
From: Hans-Peter Nilsson <hp@axis.com>
Main points:
- #ifndef ASM_OUTPUT_EXTERNAL was around the weak-handling too.
- Inlined functions and emitted variables can be marked as weak;
there must be no weak-*reference* annotation for them.
- output_operand doesn't catch all from code referenced
symbol_ref's.
...but those were beside the original point, that it's not
enough to, in output_operand, look inside mems to see all
required symbol_refs.
As mentioned, revision 138310 (and its add-on for PR 36974) is
an attempt to fix one special case of this. With the previous
patch applied, it's redundant but benevolent except for being
misleading. My guess is that it "worked" where output_operand
failed only because the mem(*) is usually outside, not part of
the match_operand part in call insns (the one reaching
output_operand), and luckily the reported platforms had a
symbol_ref there in bootstrap and tests (and not e.g. a reg).
Can someone with an affected system (HPPA) pretty please test
this patch, reverting 138310 and the later change, on top of my
previous one?