Skip to content

Commit 7aaaa82

Browse files
committed
Mark parameters (and their symbols) as such
1 parent a6e83f6 commit 7aaaa82

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

src/cpp/cpp_declarator.h

+10
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,16 @@ class cpp_declaratort:public exprt
4545
return static_cast<const exprt &>(find(ID_value));
4646
}
4747

48+
bool get_is_parameter() const
49+
{
50+
return get_bool(ID_is_parameter);
51+
}
52+
53+
void set_is_parameter(bool is_parameter)
54+
{
55+
set(ID_is_parameter, is_parameter);
56+
}
57+
4858
// initializers for function arguments
4959
exprt &init_args() { return static_cast<exprt&>(add("init_args")); }
5060
const exprt &init_args() const

src/cpp/cpp_declarator_converter.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,7 @@ symbolt &cpp_declarator_convertert::convert_new_symbol(
436436
symbol.base_name=base_name;
437437
symbol.value=declarator.value();
438438
symbol.location=declarator.name().source_location();
439+
symbol.is_parameter = declarator.get_is_parameter();
439440
symbol.mode=linkage_spec==ID_auto?ID_cpp:linkage_spec;
440441
symbol.module=cpp_typecheck.module;
441442
symbol.type=final_type;

src/cpp/parse.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -4058,6 +4058,8 @@ bool Parser::rArgDeclaration(cpp_declarationt &declaration)
40584058
if(!rDeclarator(arg_declarator, kArgDeclarator, false, true))
40594059
return false;
40604060

4061+
arg_declarator.set_is_parameter(true);
4062+
40614063
declaration.declarators().push_back(arg_declarator);
40624064

40634065
int t=lex.LookAhead(0);

0 commit comments

Comments
 (0)