<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Nov 13, 2013 at 6:01 AM, Rafael Espindola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Author: rafael<br>
Date: Wed Nov 13 08:01:59 2013<br>
New Revision: 194575<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=194575&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=194575&view=rev</a><br>
Log:<br>
Remove AllowQuotesInName and friends from MCAsmInfo.<br>
<br>
Accepting quotes is a property of an assembler, not of an object file. For<br>
example, ELF can support any names for sections and symbols, but the gnu<br>
assembler only accepts quotes in some contexts and llvm-mc in a few more.<br>
<br>
LLVM should not produce different symbols based on a guess about which assembler<br>
will be reading the code it is printing.<br>
<br>
Modified:<br>
    llvm/trunk/include/llvm/MC/MCAsmInfo.h<br>
    llvm/trunk/lib/MC/MCAsmInfo.cpp<br>
    llvm/trunk/lib/MC/MCAsmInfoCOFF.cpp<br>
    llvm/trunk/lib/MC/MCAsmInfoDarwin.cpp<br>
    llvm/trunk/lib/MC/MCSectionELF.cpp<br>
    llvm/trunk/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp<br>
    llvm/trunk/lib/Target/Mangler.cpp<br>
    llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp<br>
    llvm/trunk/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp<br>
    llvm/trunk/test/CodeGen/X86/GC/ocaml-gc.ll<br>
    llvm/trunk/test/CodeGen/X86/global-sections.ll<br></blockquote><div><br></div><div><br></div><div>Hi Rafael,</div><div><br></div><div>Sorry to get back to this months after the commit, but I just ran into problems with this. It appears to be a regression for NVPTX, which emits assembly for the consumption of a non-standard assembler (ptxas, not gas or llvm gas-like assemblers). Without this provision in place, LLVM emits symbol names with periods, which ptxas chokes on.</div>

<div><br></div><div>Can you elaborate on the technical reason for this change a bit more? Should LLVM only care about gas and llvm-mc as assemblers? What about backends that have custom assemblers? How would you suggest to work around this issue if reviving the AllowPeriodsInName flag is a no-go?</div>

<div><br></div><div>Thanks in advance,</div><div>Eli</div><div><br></div><div><br></div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<br>
Modified: llvm/trunk/include/llvm/MC/MCAsmInfo.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCAsmInfo.h?rev=194575&r1=194574&r2=194575&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCAsmInfo.h?rev=194575&r1=194574&r2=194575&view=diff</a><br>



==============================================================================<br>
--- llvm/trunk/include/llvm/MC/MCAsmInfo.h (original)<br>
+++ llvm/trunk/include/llvm/MC/MCAsmInfo.h Wed Nov 13 08:01:59 2013<br>
@@ -144,18 +144,6 @@ namespace llvm {<br>
     /// AssemblerDialect - Which dialect of an assembler variant to use.<br>
     unsigned AssemblerDialect;               // Defaults to 0<br>
<br>
-    /// AllowQuotesInName - This is true if the assembler allows for complex<br>
-    /// symbol names to be surrounded in quotes.  This defaults to false.<br>
-    bool AllowQuotesInName;<br>
-<br>
-    /// AllowNameToStartWithDigit - This is true if the assembler allows symbol<br>
-    /// names to start with a digit (e.g., "0x0021").  This defaults to false.<br>
-    bool AllowNameToStartWithDigit;<br>
-<br>
-    /// AllowPeriodsInName - This is true if the assembler allows periods in<br>
-    /// symbol names.  This defaults to true.<br>
-    bool AllowPeriodsInName;<br>
-<br>
     /// \brief This is true if the assembler allows @ characters in symbol<br>
     /// names. Defaults to false.<br>
     bool AllowAtInName;<br>
@@ -467,15 +455,6 @@ namespace llvm {<br>
     unsigned getAssemblerDialect() const {<br>
       return AssemblerDialect;<br>
     }<br>
-    bool doesAllowQuotesInName() const {<br>
-      return AllowQuotesInName;<br>
-    }<br>
-    bool doesAllowNameToStartWithDigit() const {<br>
-      return AllowNameToStartWithDigit;<br>
-    }<br>
-    bool doesAllowPeriodsInName() const {<br>
-      return AllowPeriodsInName;<br>
-    }<br>
     bool doesAllowAtInName() const {<br>
       return AllowAtInName;<br>
     }<br>
<br>
Modified: llvm/trunk/lib/MC/MCAsmInfo.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAsmInfo.cpp?rev=194575&r1=194574&r2=194575&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAsmInfo.cpp?rev=194575&r1=194574&r2=194575&view=diff</a><br>



==============================================================================<br>
--- llvm/trunk/lib/MC/MCAsmInfo.cpp (original)<br>
+++ llvm/trunk/lib/MC/MCAsmInfo.cpp Wed Nov 13 08:01:59 2013<br>
@@ -50,9 +50,6 @@ MCAsmInfo::MCAsmInfo() {<br>
   Code32Directive = ".code32";<br>
   Code64Directive = ".code64";<br>
   AssemblerDialect = 0;<br>
-  AllowQuotesInName = false;<br>
-  AllowNameToStartWithDigit = false;<br>
-  AllowPeriodsInName = true;<br>
   AllowAtInName = false;<br>
   UseDataRegionDirectives = false;<br>
   ZeroDirective = "\t.zero\t";<br>
<br>
Modified: llvm/trunk/lib/MC/MCAsmInfoCOFF.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAsmInfoCOFF.cpp?rev=194575&r1=194574&r2=194575&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAsmInfoCOFF.cpp?rev=194575&r1=194574&r2=194575&view=diff</a><br>



==============================================================================<br>
--- llvm/trunk/lib/MC/MCAsmInfoCOFF.cpp (original)<br>
+++ llvm/trunk/lib/MC/MCAsmInfoCOFF.cpp Wed Nov 13 08:01:59 2013<br>
@@ -43,7 +43,6 @@ MCAsmInfoCOFF::MCAsmInfoCOFF() {<br>
 void MCAsmInfoMicrosoft::anchor() { }<br>
<br>
 MCAsmInfoMicrosoft::MCAsmInfoMicrosoft() {<br>
-  AllowQuotesInName = true;<br>
 }<br>
<br>
 void MCAsmInfoGNUCOFF::anchor() { }<br>
<br>
Modified: llvm/trunk/lib/MC/MCAsmInfoDarwin.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAsmInfoDarwin.cpp?rev=194575&r1=194574&r2=194575&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAsmInfoDarwin.cpp?rev=194575&r1=194574&r2=194575&view=diff</a><br>



==============================================================================<br>
--- llvm/trunk/lib/MC/MCAsmInfoDarwin.cpp (original)<br>
+++ llvm/trunk/lib/MC/MCAsmInfoDarwin.cpp Wed Nov 13 08:01:59 2013<br>
@@ -26,7 +26,6 @@ MCAsmInfoDarwin::MCAsmInfoDarwin() {<br>
   GlobalPrefix = "_";<br>
   PrivateGlobalPrefix = "L";<br>
   LinkerPrivateGlobalPrefix = "l";<br>
-  AllowQuotesInName = true;<br>
   HasSingleParameterDotFile = false;<br>
   HasSubsectionsViaSymbols = true;<br>
<br>
<br>
Modified: llvm/trunk/lib/MC/MCSectionELF.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCSectionELF.cpp?rev=194575&r1=194574&r2=194575&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCSectionELF.cpp?rev=194575&r1=194574&r2=194575&view=diff</a><br>



==============================================================================<br>
--- llvm/trunk/lib/MC/MCSectionELF.cpp (original)<br>
+++ llvm/trunk/lib/MC/MCSectionELF.cpp Wed Nov 13 08:01:59 2013<br>
@@ -32,6 +32,29 @@ bool MCSectionELF::ShouldOmitSectionDire<br>
   return false;<br>
 }<br>
<br>
+static void printName(raw_ostream &OS, StringRef Name) {<br>
+  if (Name.find_first_not_of("0123456789_."<br>
+                             "abcdefghijklmnopqrstuvwxyz"<br>
+                             "ABCDEFGHIJKLMNOPQRSTUVWXYZ") == Name.npos) {<br>
+    OS << Name;<br>
+    return;<br>
+  }<br>
+  OS << '"';<br>
+  for (const char *B = Name.begin(), *E = Name.end(); B < E; ++B) {<br>
+    if (*B == '"') // Unquoted "<br>
+      OS << "\\\"";<br>
+    else if (*B != '\\') // Neither " or backslash<br>
+      OS << *B;<br>
+    else if (B + 1 == E) // Trailing backslash<br>
+      OS << "\\\\";<br>
+    else {<br>
+      OS << B[0] << B[1]; // Quoted character<br>
+      ++B;<br>
+    }<br>
+  }<br>
+  OS << '"';<br>
+}<br>
+<br>
 void MCSectionELF::PrintSwitchToSection(const MCAsmInfo &MAI,<br>
                                         raw_ostream &OS,<br>
                                         const MCExpr *Subsection) const {<br>
@@ -44,27 +67,8 @@ void MCSectionELF::PrintSwitchToSection(<br>
     return;<br>
   }<br>
<br>
-  StringRef name = getSectionName();<br>
-  if (name.find_first_not_of("0123456789_."<br>
-                             "abcdefghijklmnopqrstuvwxyz"<br>
-                             "ABCDEFGHIJKLMNOPQRSTUVWXYZ") == name.npos) {<br>
-    OS << "\t.section\t" << name;<br>
-  } else {<br>
-    OS << "\t.section\t\"";<br>
-    for (const char *b = name.begin(), *e = name.end(); b < e; ++b) {<br>
-      if (*b == '"') // Unquoted "<br>
-        OS << "\\\"";<br>
-      else if (*b != '\\') // Neither " or backslash<br>
-        OS << *b;<br>
-      else if (b + 1 == e) // Trailing backslash<br>
-        OS << "\\\\";<br>
-      else {<br>
-        OS << b[0] << b[1]; // Quoted character<br>
-        ++b;<br>
-      }<br>
-    }<br>
-    OS << '"';<br>
-  }<br>
+  OS << "\t.section\t";<br>
+  printName(OS, getSectionName());<br>
<br>
   // Handle the weird solaris syntax if desired.<br>
   if (MAI.usesSunStyleELFSectionSwitchSyntax() &&<br>
@@ -135,8 +139,11 @@ void MCSectionELF::PrintSwitchToSection(<br>
     OS << "," << EntrySize;<br>
   }<br>
<br>
-  if (Flags & ELF::SHF_GROUP)<br>
-    OS << "," << Group->getName() << ",comdat";<br>
+  if (Flags & ELF::SHF_GROUP) {<br>
+    OS << ",";<br>
+    printName(OS, Group->getName());<br>
+    OS << ",comdat";<br>
+  }<br>
   OS << '\n';<br>
<br>
   if (Subsection)<br>
<br>
Modified: llvm/trunk/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp?rev=194575&r1=194574&r2=194575&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp?rev=194575&r1=194574&r2=194575&view=diff</a><br>



==============================================================================<br>
--- llvm/trunk/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp (original)<br>
+++ llvm/trunk/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp Wed Nov 13 08:01:59 2013<br>
@@ -24,6 +24,5 @@ MSP430MCAsmInfo::MSP430MCAsmInfo(StringR<br>
   CommentString = ";";<br>
<br>
   AlignmentIsInBytes = false;<br>
-  AllowNameToStartWithDigit = true;<br>
   UsesELFSectionDirectiveForBSS = true;<br>
 }<br>
<br>
Modified: llvm/trunk/lib/Target/Mangler.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mangler.cpp?rev=194575&r1=194574&r2=194575&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mangler.cpp?rev=194575&r1=194574&r2=194575&view=diff</a><br>



==============================================================================<br>
--- llvm/trunk/lib/Target/Mangler.cpp (original)<br>
+++ llvm/trunk/lib/Target/Mangler.cpp Wed Nov 13 08:01:59 2013<br>
@@ -23,17 +23,6 @@<br>
 #include "llvm/Support/raw_ostream.h"<br>
 using namespace llvm;<br>
<br>
-static bool isAcceptableChar(char C, bool AllowPeriod) {<br>
-  if ((C < 'a' || C > 'z') &&<br>
-      (C < 'A' || C > 'Z') &&<br>
-      (C < '0' || C > '9') &&<br>
-      C != '_' && C != '$' && C != '@' &&<br>
-      !(AllowPeriod && C == '.') &&<br>
-      !(C & 0x80))<br>
-    return false;<br>
-  return true;<br>
-}<br>
-<br>
 static char HexDigit(int V) {<br>
   return V < 10 ? V+'0' : V+'A'-10;<br>
 }<br>
@@ -45,46 +34,6 @@ static void MangleLetter(SmallVectorImpl<br>
   OutName.push_back('_');<br>
 }<br>
<br>
-/// NameNeedsEscaping - Return true if the identifier \p Str needs quotes<br>
-/// for this assembler.<br>
-static bool NameNeedsEscaping(StringRef Str, const MCAsmInfo *MAI) {<br>
-  assert(!Str.empty() && "Cannot create an empty MCSymbol");<br>
-<br>
-  // If the first character is a number and the target does not allow this, we<br>
-  // need quotes.<br>
-  if (!MAI->doesAllowNameToStartWithDigit() && Str[0] >= '0' && Str[0] <= '9')<br>
-    return true;<br>
-<br>
-  // If any of the characters in the string is an unacceptable character, force<br>
-  // quotes.<br>
-  bool AllowPeriod = MAI->doesAllowPeriodsInName();<br>
-  for (unsigned i = 0, e = Str.size(); i != e; ++i)<br>
-    if (!isAcceptableChar(Str[i], AllowPeriod))<br>
-      return true;<br>
-  return false;<br>
-}<br>
-<br>
-/// appendMangledName - Add the specified string in mangled form if it uses<br>
-/// any unusual characters.<br>
-static void appendMangledName(SmallVectorImpl<char> &OutName, StringRef Str,<br>
-                              const MCAsmInfo *MAI) {<br>
-  // The first character is not allowed to be a number unless the target<br>
-  // explicitly allows it.<br>
-  if (!MAI->doesAllowNameToStartWithDigit() && Str[0] >= '0' && Str[0] <= '9') {<br>
-    MangleLetter(OutName, Str[0]);<br>
-    Str = Str.substr(1);<br>
-  }<br>
-<br>
-  bool AllowPeriod = MAI->doesAllowPeriodsInName();<br>
-  for (unsigned i = 0, e = Str.size(); i != e; ++i) {<br>
-    if (!isAcceptableChar(Str[i], AllowPeriod))<br>
-      MangleLetter(OutName, Str[i]);<br>
-    else<br>
-      OutName.push_back(Str[i]);<br>
-  }<br>
-}<br>
-<br>
-<br>
 /// appendMangledQuotedName - On systems that support quoted symbols, we still<br>
 /// have to escape some (obscure) characters like " and \n which would break the<br>
 /// assembler's lexing.<br>
@@ -134,22 +83,14 @@ void Mangler::getNameWithPrefix(SmallVec<br>
         OutName.append(Prefix, Prefix+strlen(Prefix));<br>
     }<br>
   }<br>
-<br>
+<br>
   // If this is a simple string that doesn't need escaping, just append it.<br>
-  if (!NameNeedsEscaping(Name, MAI) ||<br>
-      // If quotes are supported, they can be used unless the string contains<br>
-      // a quote or newline.<br>
-      (MAI->doesAllowQuotesInName() &&<br>
-       Name.find_first_of("\n\"") == StringRef::npos)) {<br>
+  // Quotes can be used unless the string contains a quote or newline.<br>
+  if (Name.find_first_of("\n\"") == StringRef::npos) {<br>
     OutName.append(Name.begin(), Name.end());<br>
     return;<br>
   }<br>
-<br>
-  // On systems that do not allow quoted names, we need to mangle most<br>
-  // strange characters.<br>
-  if (!MAI->doesAllowQuotesInName())<br>
-    return appendMangledName(OutName, Name, MAI);<br>
-<br>
+<br>
   // Okay, the system allows quoted strings.  We can quote most anything, the<br>
   // only characters that need escaping are " and \n.<br>
   assert(Name.find_first_of("\n\"") != StringRef::npos);<br>
<br>
Modified: llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp?rev=194575&r1=194574&r2=194575&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp?rev=194575&r1=194574&r2=194575&view=diff</a><br>



==============================================================================<br>
--- llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp (original)<br>
+++ llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp Wed Nov 13 08:01:59 2013<br>
@@ -35,8 +35,6 @@ NVPTXMCAsmInfo::NVPTXMCAsmInfo(const Str<br>
<br>
   PrivateGlobalPrefix = "$L__";<br>
<br>
-  AllowPeriodsInName = false;<br>
-<br>
   HasSetDirective = false;<br>
<br>
   HasSingleParameterDotFile = false;<br>
<br>
Modified: llvm/trunk/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp?rev=194575&r1=194574&r2=194575&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp?rev=194575&r1=194574&r2=194575&view=diff</a><br>



==============================================================================<br>
--- llvm/trunk/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp (original)<br>
+++ llvm/trunk/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp Wed Nov 13 08:01:59 2013<br>
@@ -31,9 +31,6 @@ AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(StringR<br>
   InlineAsmStart = ";#ASMSTART";<br>
   InlineAsmEnd = ";#ASMEND";<br>
   AssemblerDialect = 0;<br>
-  AllowQuotesInName = false;<br>
-  AllowNameToStartWithDigit = false;<br>
-  AllowPeriodsInName = false;<br>
<br>
   //===--- Data Emission Directives -------------------------------------===//<br>
   ZeroDirective = ".zero";<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/GC/ocaml-gc.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GC/ocaml-gc.ll?rev=194575&r1=194574&r2=194575&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GC/ocaml-gc.ll?rev=194575&r1=194574&r2=194575&view=diff</a><br>



==============================================================================<br>
--- llvm/trunk/test/CodeGen/X86/GC/ocaml-gc.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/GC/ocaml-gc.ll Wed Nov 13 08:01:59 2013<br>
@@ -2,23 +2,23 @@<br>
<br>
 define i32 @main(i32 %x) nounwind gc "ocaml" {<br>
 ; CHECK:        .text<br>
-; CHECK-NEXT:   .globl  caml_3C_stdin_3E___code_begin<br>
-; CHECK-NEXT: caml_3C_stdin_3E___code_begin:<br>
+; CHECK-NEXT:   .globl "caml<stdin>__code_begin"<br>
+; CHECK-NEXT: "caml<stdin>__code_begin":<br>
 ; CHECK-NEXT:   .data<br>
-; CHECK-NEXT:   .globl  caml_3C_stdin_3E___data_begin<br>
-; CHECK-NEXT: caml_3C_stdin_3E___data_begin:<br>
+; CHECK-NEXT:   .globl  "caml<stdin>__data_begin"<br>
+; CHECK-NEXT: "caml<stdin>__data_begin":<br>
<br>
   %puts = tail call i32 @foo(i32 %x)<br>
   ret i32 0<br>
<br>
-; CHECK:        .globl  caml_3C_stdin_3E___code_end<br>
-; CHECK-NEXT: caml_3C_stdin_3E___code_end:<br>
+; CHECK:        .globl "caml<stdin>__code_end"<br>
+; CHECK-NEXT: "caml<stdin>__code_end":<br>
 ; CHECK-NEXT:   .data<br>
-; CHECK-NEXT:   .globl  caml_3C_stdin_3E___data_end<br>
-; CHECK-NEXT: caml_3C_stdin_3E___data_end:<br>
+; CHECK-NEXT:   .globl "caml<stdin>__data_end"<br>
+; CHECK-NEXT: "caml<stdin>__data_end":<br>
 ; CHECK-NEXT:   .quad   0<br>
-; CHECK-NEXT:   .globl  caml_3C_stdin_3E___frametable<br>
-; CHECK-NEXT: caml_3C_stdin_3E___frametable:<br>
+; CHECK-NEXT:   .globl "caml<stdin>__frametable"<br>
+; CHECK-NEXT: "caml<stdin>__frametable":<br>
 ; CHECK-NEXT:   .short  1<br>
 ; CHECK-NEXT:   .align  8<br>
 ; CHECK-NEXT:                # live roots for main<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/global-sections.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/global-sections.ll?rev=194575&r1=194574&r2=194575&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/global-sections.ll?rev=194575&r1=194574&r2=194575&view=diff</a><br>



==============================================================================<br>
--- llvm/trunk/test/CodeGen/X86/global-sections.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/global-sections.ll Wed Nov 13 08:01:59 2013<br>
@@ -65,10 +65,10 @@<br>
 ; PR4584<br>
 @"foo bar" = linkonce global i32 42<br>
<br>
-; LINUX: .type foo_20_bar,@object<br>
-; LINUX: .section .data.foo_20_bar,"aGw",@progbits,foo_20_bar,comdat<br>
-; LINUX: .weak foo_20_bar<br>
-; LINUX: foo_20_bar:<br>
+; LINUX: .type "foo bar",@object<br>
+; LINUX: .section ".data.foo bar","aGw",@progbits,"foo bar",comdat<br>
+; LINUX: .weak "foo bar"<br>
+; LINUX: "foo bar":<br>
<br>
 ; DARWIN: .section             __DATA,__datacoal_nt,coalesced<br>
 ; DARWIN: .globl       "_foo bar"<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>