https://llvm.org/bugs/show_bug.cgi?id=26745

            Bug ID: 26745
           Summary: internalize can't deal with .symver renaming symbols
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Interprocedural Optimizations
          Assignee: unassignedb...@nondot.org
          Reporter: richard-l...@metafoo.co.uk
                CC: llvm-bugs@lists.llvm.org
    Classification: Unclassified

Simple testcase:

  void foo() {}
  __asm__(".symver foo,bar@@VER");

Run through clang and then opt -internalize -internalize-public-api-list=bar,
the 'foo' function is deleted but the .symver is retained.

Either the .symver should be deleted as well, or the symbol should be kept
alive (because the versioned symbol 'bar' is part of the declared public API).
Removing one but not the other breaks the IR and results in:

  fatal error: error in backend: A @@ version cannot be undefined

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to