[PATCH] Setting a symbol's type to function has no effect if its type	is gnu_indirect_function.
    Peter Collingbourne 
    peter at pcc.me.uk
       
    Mon Apr  1 18:44:54 PDT 2013
    
    
  
http://llvm-reviews.chandlerc.com/D607
Files:
  lib/MC/MCELFStreamer.cpp
  test/MC/ELF/type.s
Index: lib/MC/MCELFStreamer.cpp
===================================================================
--- lib/MC/MCELFStreamer.cpp
+++ lib/MC/MCELFStreamer.cpp
@@ -187,7 +187,8 @@
     break;
 
   case MCSA_ELF_TypeFunction:
-    MCELF::SetType(SD, ELF::STT_FUNC);
+    if (MCELF::GetType(SD) != ELF::STT_GNU_IFUNC)
+      MCELF::SetType(SD, ELF::STT_FUNC);
     break;
 
   case MCSA_ELF_TypeIndFunction:
Index: test/MC/ELF/type.s
===================================================================
--- test/MC/ELF/type.s
+++ test/MC/ELF/type.s
@@ -15,6 +15,7 @@
 ifunc:
         .global ifunc
         .type ifunc, at gnu_indirect_function
+        .type ifunc, at function
 
 // CHECK:      # Symbol 4
 // CHECK-NEXT: (('st_name', 0x00000005) # 'bar'
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D607.1.patch
Type: text/x-patch
Size: 746 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130401/5ab8302e/attachment.bin>
    
    
More information about the llvm-commits
mailing list