https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99383

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |marxin at gcc dot gnu.org
             Status|UNCONFIRMED                 |NEW
           Keywords|                            |missed-optimization
   Last reconfirmed|                            |2021-03-04
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Same for -fPIE.  The reason is:

Bailing out - value from a case would need runtime relocations.

                  reloc = initializer_constant_valid_p (val, TREE_TYPE (val));
                  if ((flag_pic && reloc != null_pointer_node)
                      || (!flag_pic && reloc == NULL_TREE))
                    {
                      if (reloc)
                        reason
                          = "value from a case would need runtime relocations";

reloc is a STRING_CST here.  Not sure why it says 'runtime relocation' or what
that should be.  It's a reloc in .rodata to sth in .string.

Reply via email to