本文整理汇总了C++中LValue::type方法的典型用法代码示例。如果您正苦于以下问题:C++ LValue::type方法的具体用法?C++ LValue::type怎么用?C++ LValue::type使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LValue
的用法示例。
在下文中一共展示了LValue::type方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: rvalue
void
SemanticAnalysis::visitAssignment(Assignment *node)
{
LValue lval;
if (!lvalue(node->lvalue(), &lval))
return;
HIR *hir = rvalue(node->expression());
if ((hir = coerce(hir, lval.type(), Coerce_Assign)) == nullptr)
return;
hir_ = new (pool_) HStore(node, lval.type(), node->token(), lval, hir);
}
示例2: assert
void
SemanticAnalysis::visitIncDecExpression(IncDecExpression *node)
{
LValue lval;
if (!lvalue(node->expression(), &lval))
return;
Type *type = lval.type();
if (!type->isInt32() && !type->isFloat()) {
assert(false);
return;
}
if (node->postfix()) {
hir_ = new (pool_) HPostIncDec(node, type, node->token(), lval);
} else {
HIR *rval;
if (lval.type()->isInt32())
rval = new (pool_) HInteger(node, type, 1);
else
rval = new (pool_) HFloat(node, type, 1.0);
hir_ = new (pool_) HStore(node, type, node->token(), lval, rval);
}
}
示例3: origin
LValue Output::castToInt32(LValue value)
{
return value->type() == B3::Int32 ? value :
m_block->appendNew<B3::Value>(m_proc, B3::Trunc, origin(), value);
}
示例4: zeroExt
LValue Output::zeroExt(LValue value, LType type)
{
if (value->type() == type)
return value;
return m_block->appendNew<B3::Value>(m_proc, B3::ZExt32, origin(), value);
}
示例5: bitNot
LValue Output::bitNot(LValue value)
{
return m_block->appendNew<B3::Value>(m_proc, B3::BitXor, origin(),
value,
m_block->appendIntConstant(m_proc, origin(), value->type(), -1));
}