| Index: src/typing-asm.cc
|
| diff --git a/src/typing-asm.cc b/src/typing-asm.cc
|
| index 3eb986c3cf1e92bf637f3750e2c9d578c9ca4292..db9558f20837cff8272a356f6342da0a3dfd648f 100644
|
| --- a/src/typing-asm.cc
|
| +++ b/src/typing-asm.cc
|
| @@ -1121,6 +1121,18 @@ void AsmTyper::VisitBinaryOperation(BinaryOperation* expr) {
|
| !expr->right()->IsLiteral()) {
|
| FAIL(expr, "illegal computation inside module body");
|
| }
|
| + DCHECK(expr->right()->AsLiteral() != nullptr);
|
| + const AstValue* right_value = expr->right()->AsLiteral()->raw_value();
|
| + if (expr->op() == Token::BIT_OR) {
|
| + if (right_value->AsNumber() != 0.0 || right_value->ContainsDot()) {
|
| + FAIL(expr, "illegal integer annotation value");
|
| + }
|
| + }
|
| + if (expr->op() == Token::MUL) {
|
| + if (right_value->AsNumber() != 1.0 && right_value->ContainsDot()) {
|
| + FAIL(expr, "illegal double annotation value");
|
| + }
|
| + }
|
| }
|
| switch (expr->op()) {
|
| case Token::COMMA: {
|
|
|