https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99383
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Note, it could be even POINTER_DIFF_EXPR of the value and the first value in the table or something similar. The generic code would need to ensure for flag_pic that either reloc is null_pointer_node for all entries in the table, or is different from that for all and all the relocations are against symbols that bind to current DSO and then ask the backend what type to use and if it is safe. But, perhaps we could use this biasing even for very large constants if they fit into smaller range (say ullong where all fit into 8-bit wide range etc.).