[LLVMdev] bug report on MC asm parser evaluating expressions

Rafael Espíndola rafael.espindola at gmail.com
Fri May 3 05:23:27 PDT 2013


On 3 May 2013 01:37, 杨勇勇 <triple.yang at gmail.com> wrote:
> 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 = 3*A - 2 * A + 1" as "B = 3*A - (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?

This is a horrible bug :-(

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

Thanks,
Rafael




More information about the llvm-dev mailing list