summaryrefslogtreecommitdiff
path: root/lib/Target/Mips
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2014-01-13 01:15:39 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2014-01-13 01:15:39 +0000
commitb6e0946d407acf62a3f55ae22ce578d5af3bc5cc (patch)
treed1049c0286388cbba38953a7352d65378f9c128d /lib/Target/Mips
parent2d81106fa01e77996a29704a3d3c31856ddbab70 (diff)
downloadllvm-b6e0946d407acf62a3f55ae22ce578d5af3bc5cc.tar.gz
llvm-b6e0946d407acf62a3f55ae22ce578d5af3bc5cc.tar.bz2
llvm-b6e0946d407acf62a3f55ae22ce578d5af3bc5cc.tar.xz
correct target directive handling error handling
The target specific parser should return `false' if the target AsmParser handles the directive, and `true' if the generic parser should handle the directive. Many of the target specific directive handlers would `return Error' which does not follow these semantics. This change simply changes the target specific routines to conform to the semantis of the ParseDirective correctly. Conformance to the semantics improves diagnostics emitted for the invalid directives. X86 is taken as a sample to ensure that multiple diagnostics are not presented for a single error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199068 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips')
-rw-r--r--lib/Target/Mips/AsmParser/MipsAsmParser.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
index de39107441..9df2df2dac 100644
--- a/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
+++ b/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
@@ -2407,13 +2407,17 @@ bool MipsAsmParser::parseDirectiveMipsHackStocg() {
reportParseError("expected identifier");
MCSymbol *Sym = getContext().GetOrCreateSymbol(Name);
- if (getLexer().isNot(AsmToken::Comma))
- return TokError("unexpected token");
+ if (getLexer().isNot(AsmToken::Comma)) {
+ TokError("unexpected token");
+ return false;
+ }
Lex();
int64_t Flags = 0;
- if (Parser.parseAbsoluteExpression(Flags))
- return TokError("unexpected token");
+ if (Parser.parseAbsoluteExpression(Flags)) {
+ TokError("unexpected token");
+ return false;
+ }
getTargetStreamer().emitMipsHackSTOCG(Sym, Flags);
return false;
@@ -2421,8 +2425,10 @@ bool MipsAsmParser::parseDirectiveMipsHackStocg() {
bool MipsAsmParser::parseDirectiveMipsHackELFFlags() {
int64_t Flags = 0;
- if (Parser.parseAbsoluteExpression(Flags))
- return TokError("unexpected token");
+ if (Parser.parseAbsoluteExpression(Flags)) {
+ TokError("unexpected token");
+ return false;
+ }
getTargetStreamer().emitMipsHackELFFlags(Flags);
return false;
@@ -2499,7 +2505,6 @@ bool MipsAsmParser::parseDirectiveOption() {
}
bool MipsAsmParser::ParseDirective(AsmToken DirectiveID) {
-
StringRef IDVal = DirectiveID.getString();
if (IDVal == ".ent") {