<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>