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

            Bug ID: 61635
           Summary: LTO partitioner does not handle &&label in statics
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: lto
          Assignee: unassigned at gcc dot gnu.org
          Reporter: andi-gcc at firstfloor dot org

I currently don't have a small compilable test case, except a build tree from a
large project. But what happened was code like this

f()
{
   static void *addr[] = {
          &&label1,
          &&label2, 
          ..
   };
   /* labels defined in the code */
}

The LTO partitioner would put addr into a different ltrans unit than f.
But the assembler output of addr contains direct references to the code labels
in the assembler of f.

This results in lots of assembler errors for undefined labels.

Reply via email to