[LLVMdev] funny llvm bug
Joerg Sonnenberger
joerg at britannica.bec.de
Fri Apr 19 02:48:16 PDT 2013
On Fri, Apr 19, 2013 at 04:38:20PM +0700, Serge Pavlov wrote:
> This is a feature (or bug) of MCSectionELF::PrintSwitchToSection. For
> ELF target this function tries to escape string if it founds
> 'suspicious' character, see implementation in MCSectionELF.cpp:
>
> StringRef name = getSectionName();
> if (name.find_first_not_of("0123456789_."
> "abcdefghijklmnopqrstuvwxyz"
> "ABCDEFGHIJKLMNOPQRSTUVWXYZ") == name.npos) {
> OS << "\t.section\t" << name;
> } else {
> OS << "\t.section\t\"";
>
> As section "name" is something like .mySection,\"aw\", at progbits# ,
> this method puts all the string in quotes.
> Other targets (COFF and MachO) doesn't have such treatment.
>
> If looks like the code that transforms section names should be
> removed. Does anybody know what this transformation is for?
It is exactly intended to handle section names as what they are --
section names. The only reason it works with GCC is because it writes an
assembler stream.
reed: correct use is to declare the section with inline asm first with
the desired attributes, followed by .previous to reset the old section.
Joerg
More information about the llvm-dev
mailing list