Move getRealLinkageName to a common place and remove all the duplicates of it.
[oota-llvm.git] / include / llvm / IR / GlobalValue.h
index 260302a594b424f2de492a34d6c4d44c9ad2ab39..1dc99cfaa412e70b39a70e3c7f95faacfae6a509 100644 (file)
@@ -239,6 +239,15 @@ public:
   /// create a GlobalValue) from the GlobalValue Src to this one.
   virtual void copyAttributesFrom(const GlobalValue *Src);
 
+  /// getRealLinkageName - If special LLVM prefix that is used to inform the asm
+  /// printer to not emit usual symbol prefix before the symbol name is used
+  /// then return linkage name after skipping this special LLVM prefix.
+  static StringRef getRealLinkageName(StringRef Name) {
+    if (!Name.empty() && Name[0] == '\1')
+      return Name.substr(1);
+    return Name;
+  }
+
 /// @name Materialization
 /// Materialization is used to construct functions only as they're needed. This
 /// is useful to reduce memory usage in LLVM or parsing work done by the