https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81979
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target|powerpcspe-*-linux-gnu* |powerpc-*-linux-gnu*,
| |powerpcspe-*-linux-gnu*
CC| |jakub at gcc dot gnu.org
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
It fails even on powerpc64-linux-gnu with -m32 -fPIC -O2
-freorder-blocks-and-partition, so no, it hasn't been fixed.
The problem is that the .LCLn and .LCFn labels have to be emitted in the same
section; the .LCLn label is emitted in the .text section by
rs6000_elf_declare_function_name (or is it generally in the section in which
the function starts?), but the corresponding .LCFn label is emitted by the
load_toc_v4_PIC_1_normal instruction.
So, I'd say uses_TOC should return 2 instead of 1 if while looking for
UNSPEC_TOC instruction it crossed a NOTE_INSN_SWITCH_TEXT_SECTIONS and the
caller should deal with that. Let me try that.