Readonly variable using in output list of inline asm

Hi all,

I need to know why clang allows constant variable using in output list.
e.g.:

const int b = 0;
asm(
            "mov $10, %0\n"
            : "=r"(b)
            :
       );

I found that clang checks whether variable is LValue. It does in
CheckAsmLValue() function (clang/lib/Sema/SemaStmt.cpp). but I there is not
checking for const variables.
So where it will be more effectively to change the implementation to deny
the using of read-only variables in operand list?

Thanks.

CheckAsmLValue is probably the right place to add a check for that.
You can use Expr::isModifiableLvalue to check whether an expression
refers something like a const variable.

-Eli

Hi Eli Friedman,
Thank you. It was helpful