The global prefix is always one char. Don't use a string for it.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 28 Nov 2013 17:00:49 +0000 (17:00 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 28 Nov 2013 17:00:49 +0000 (17:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195926 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/MC/MCAsmInfo.h
lib/MC/MCAsmInfo.cpp
lib/MC/MCAsmInfoCOFF.cpp
lib/MC/MCAsmInfoDarwin.cpp
lib/Target/Mangler.cpp
lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp

index 7a993946214756f436d5c499963bc166404b8320..6dfb42c76ab433452a3b834eef70a58e328b57f3 100644 (file)
@@ -115,9 +115,9 @@ namespace llvm {
     /// LabelSuffix - This is appended to emitted labels.
     const char *DebugLabelSuffix;                 // Defaults to ":"
 
-    /// GlobalPrefix - If this is set to a non-empty string, it is prepended
-    /// onto all global symbols.  This is often used for "_" or ".".
-    const char *GlobalPrefix;                // Defaults to ""
+    /// If this is set to anything other than '\0', it is prepended
+    /// onto all global symbols.  This is often used for '_'.
+    char GlobalPrefix;                // Defaults to '\0'
 
     /// PrivateGlobalPrefix - This prefix is used for globals like constant
     /// pool entries that are completely private to the .s file and should not
@@ -428,7 +428,7 @@ namespace llvm {
       return DebugLabelSuffix;
     }
 
-    const char *getGlobalPrefix() const {
+    char getGlobalPrefix() const {
       return GlobalPrefix;
     }
     const char *getPrivateGlobalPrefix() const {
index 28f1c951641c5c068ac655c60ba248a19d7d1bf5..a2ff92ff4f987d022e45e6f87090e33e2609b581 100644 (file)
@@ -41,7 +41,7 @@ MCAsmInfo::MCAsmInfo() {
   CommentString = "#";
   LabelSuffix = ":";
   DebugLabelSuffix = ":";
-  GlobalPrefix = "";
+  GlobalPrefix = '\0';
   PrivateGlobalPrefix = ".";
   LinkerPrivateGlobalPrefix = "";
   InlineAsmStart = "APP";
index 9d9f98e72b96c429f700882d2a29bc454727f483..54ae3a272dbeea183afcc48c426b0a484424adf6 100644 (file)
@@ -18,7 +18,7 @@ using namespace llvm;
 void MCAsmInfoCOFF::anchor() { }
 
 MCAsmInfoCOFF::MCAsmInfoCOFF() {
-  GlobalPrefix = "_";
+  GlobalPrefix = '_';
   // MingW 4.5 and later support .comm with log2 alignment, but .lcomm uses byte
   // alignment.
   COMMDirectiveAlignmentIsInBytes = false;
index 704c8161f88073282354de125179a30685264dd9..8a021ce3ae7a696449fa0b8deb17f1089ba64d22 100644 (file)
@@ -23,7 +23,7 @@ void MCAsmInfoDarwin::anchor() { }
 MCAsmInfoDarwin::MCAsmInfoDarwin() {
   // Common settings for all Darwin targets.
   // Syntax:
-  GlobalPrefix = "_";
+  GlobalPrefix = '_';
   PrivateGlobalPrefix = "L";
   LinkerPrivateGlobalPrefix = "l";
   HasSingleParameterDotFile = false;
index 5430d50945256f2a9efb21ca2a931533612592ee..c41a0f3591bd9eef365f1a854fb444f2f697522f 100644 (file)
@@ -47,14 +47,9 @@ void Mangler::getNameWithPrefix(SmallVectorImpl<char> &OutName,
     }
 
 
-    const char *Prefix = MAI->getGlobalPrefix();
-    if (Prefix[0] == 0)
-      ; // Common noop, no prefix.
-    else if (Prefix[1] == 0)
-      OutName.push_back(Prefix[0]);  // Common, one character prefix.
-    else
-      // Arbitrary length prefix.
-      OutName.append(Prefix, Prefix+strlen(Prefix));
+    char Prefix = MAI->getGlobalPrefix();
+    if (Prefix != '\0')
+      OutName.push_back(Prefix);
   }
 
   // If this is a simple string that doesn't need escaping, just append it.
index 3861e1ce290a778f5dacc3a406fe874084fa6e5d..45f22a1366e36999b4fbc60b158b5318fef057aa 100644 (file)
@@ -128,7 +128,7 @@ void X86MCAsmInfoMicrosoft::anchor() { }
 
 X86MCAsmInfoMicrosoft::X86MCAsmInfoMicrosoft(const Triple &Triple) {
   if (Triple.getArch() == Triple::x86_64) {
-    GlobalPrefix = "";
+    GlobalPrefix = '\0';
     PrivateGlobalPrefix = ".L";
   }
 
@@ -143,7 +143,7 @@ void X86MCAsmInfoGNUCOFF::anchor() { }
 
 X86MCAsmInfoGNUCOFF::X86MCAsmInfoGNUCOFF(const Triple &Triple) {
   if (Triple.getArch() == Triple::x86_64) {
-    GlobalPrefix = "";
+    GlobalPrefix = '\0';
     PrivateGlobalPrefix = ".L";
   }