[mips] [IAS] Fix parsing of memory offset expressions with parenthesis depth >1.
authorToma Tabacu <toma.tabacu@imgtec.com>
Thu, 25 Jun 2015 09:52:02 +0000 (09:52 +0000)
committerToma Tabacu <toma.tabacu@imgtec.com>
Thu, 25 Jun 2015 09:52:02 +0000 (09:52 +0000)
commit7bc44dcb0cfd9f8eaac2893fedc5daabacee5692
treeb757178d2a51cf267898b8296c2fcaebb9bac248
parent23d3bcfe5ba07a11c70c73c59e634e83d480a526
[mips] [IAS] Fix parsing of memory offset expressions with parenthesis depth >1.

Summary:
In an expression such as "(((a+b)+c)+d)", parseParenExpression() would only parse the "a+b)+c", which would result in an error later on in the parser.
This means that we can only parse one level of inner parentheses.

In order to fix this, I added a new function called parseParenExprOfDepth(), which parses a specified number of trailing parenthesis expressions
(except for the outermost parenthesis), and changed MipsAsmParser to use it in parseMemOffset instead of parseParenExpression().

Reviewers: dsanders, rafael

Reviewed By: dsanders, rafael

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D9742

llvm-svn: 240625
llvm/include/llvm/MC/MCParser/MCAsmParser.h
llvm/lib/MC/MCParser/AsmParser.cpp
llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
llvm/test/MC/Mips/expr1.s