本文整理汇总了C++中symbol_tablet::has_symbol方法的典型用法代码示例。如果您正苦于以下问题:C++ symbol_tablet::has_symbol方法的具体用法?C++ symbol_tablet::has_symbol怎么用?C++ symbol_tablet::has_symbol使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类symbol_tablet
的用法示例。
在下文中一共展示了symbol_tablet::has_symbol方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: java_record_outputs
void java_record_outputs(
const symbolt &function,
const exprt::operandst &main_arguments,
code_blockt &init_code,
symbol_tablet &symbol_table)
{
const code_typet::parameterst ¶meters=
to_code_type(function.type).parameters();
exprt::operandst result;
result.reserve(parameters.size()+1);
bool has_return_value=
to_code_type(function.type).return_type()!=empty_typet();
if(has_return_value)
{
// record return value
codet output(ID_output);
output.operands().resize(2);
const symbolt &return_symbol=symbol_table.lookup("return'");
output.op0()=
address_of_exprt(
index_exprt(
string_constantt(return_symbol.base_name),
from_integer(0, index_type())));
output.op1()=return_symbol.symbol_expr();
output.add_source_location()=function.location;
init_code.move_to_operands(output);
}
for(std::size_t param_number=0;
param_number<parameters.size();
param_number++)
{
const symbolt &p_symbol=
symbol_table.lookup(parameters[param_number].get_identifier());
if(p_symbol.type.id()==ID_pointer)
{
// record as an output
codet output(ID_output);
output.operands().resize(2);
output.op0()=
address_of_exprt(
index_exprt(
string_constantt(p_symbol.base_name),
from_integer(0, index_type())));
output.op1()=main_arguments[param_number];
output.add_source_location()=function.location;
init_code.move_to_operands(output);
}
}
// record exceptional return variable as output
codet output(ID_output);
output.operands().resize(2);
assert(symbol_table.has_symbol(id2string(function.name)+EXC_SUFFIX));
// retrieve the exception variable
const symbolt exc_symbol=symbol_table.lookup(
id2string(function.name)+EXC_SUFFIX);
output.op0()=address_of_exprt(
index_exprt(string_constantt(exc_symbol.base_name),
from_integer(0, index_type())));
output.op1()=exc_symbol.symbol_expr();
output.add_source_location()=function.location;
init_code.move_to_operands(output);
}