https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99383
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- For the specific case of strings switch-conversion could also generate a combined string (with intermediate '\0's) and use a table of offsets into said string, thus doing a single relocation to the combined string in .text (or GOT) plus offsetting that with the offset from the table. (at the cost of less string merging and thus larger .string) I guess relocs to .string aren't any better than relocs to .{,ro}data.