Readonly variable using in output list of inline asm

Hi all,

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

const int b = 0;
            "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?


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.


Hi Eli Friedman,
Thank you. It was helpful