bool parseDirectiveSet();
bool parseDirectiveOption();
bool parseInsnDirective();
- bool parseRSectionDirective(StringRef Section);
bool parseSSectionDirective(StringRef Section, unsigned Type);
bool parseSetAtDirective();
return false;
}
-/// parseRSectionDirective
-/// ::= .rdata
-bool MipsAsmParser::parseRSectionDirective(StringRef Section) {
- // If this is not the end of the statement, report an error.
- if (getLexer().isNot(AsmToken::EndOfStatement)) {
- reportParseError("unexpected token, expected end of statement");
- return false;
- }
-
- MCSection *ELFSection =
- getContext().getELFSection(Section, ELF::SHT_PROGBITS, ELF::SHF_ALLOC);
- getParser().getStreamer().SwitchSection(ELFSection);
-
- getParser().Lex(); // Eat EndOfStatement token.
- return false;
-}
-
/// parseSSectionDirective
/// ::= .sbss
/// ::= .sdata
parseInsnDirective();
return false;
}
- if (IDVal == ".rdata") {
- parseRSectionDirective(".rodata");
- return false;
- }
if (IDVal == ".sbss") {
parseSSectionDirective(IDVal, ELF::SHT_NOBITS);
return false;
+++ /dev/null
-# Check that .rdata sections have proper name, flags, and section types.
-
-# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o - \
-# RUN: | llvm-readobj -s | FileCheck %s
-
- .rdata
- .word 0
-
-# CHECK: Name: .rodata
-# CHECK-NEXT: Type: SHT_PROGBITS
-# CHECK-NEXT: Flags [ (0x2)
-# CHECK-NEXT: SHF_ALLOC
-# CHECK-NEXT: ]