bug report on MC asm parser evaluating expressions

Hi, developers,

I notice following asm symbol definitions are eveluated improperly:

A = 9
B = 3*A - 2 * A + 1

the value of B should be 10 instead of 8.

It seems asm parser treat “B = 3A - 2 * A + 1" as "B = 3A - (2 * A + 1)”

because the second “*” has higher precedence than “-”, and evaluation just performs simple recursion within AsmParser::ParseBinOpRHS (which resides in file lib/MC/MCParser/AsmParser.cpp).

Can some one make a fixup?

Regard.

This is a horrible bug :frowning:

Can you please report it in llvm.org/bugs?

Thanks,
Rafael

I just fixed this with r181366.
URL: http://llvm.org/viewvc/llvm-project?rev=181366&view=rev

Kev