CBMC
cpp_typecheck_linkage_spec.cpp
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: C++ Language Type Checking
4
5
Author: Daniel Kroening, kroening@cs.cmu.edu
6
7
\*******************************************************************/
8
11
12
#include "
cpp_typecheck.h
"
13
14
void
cpp_typecheckt::convert
(
cpp_linkage_spect
&linkage_spec)
15
{
16
irep_idt
old_linkage_spec=
current_linkage_spec
;
17
18
current_linkage_spec
=linkage_spec.
linkage
().
get
(ID_value);
19
20
// there is a linkage spec "C++", which we know as "cpp"
21
if
(
current_linkage_spec
==
"C++"
)
22
current_linkage_spec
=ID_cpp;
23
24
// do the declarations
25
for
(cpp_linkage_spect::itemst::iterator
26
it=linkage_spec.
items
().begin();
27
it!=linkage_spec.
items
().end();
28
it++)
29
convert
(*it);
30
31
// back to previous linkage spec
32
current_linkage_spec
=old_linkage_spec;
33
}
cpp_typecheckt::convert
void convert(cpp_linkage_spect &)
Definition:
cpp_typecheck_linkage_spec.cpp:14
dstringt
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition:
dstring.h:36
cpp_typecheckt::current_linkage_spec
irep_idt current_linkage_spec
Definition:
cpp_typecheck.h:107
irept::get
const irep_idt & get(const irep_idt &name) const
Definition:
irep.cpp:45
cpp_typecheck.h
cpp_linkage_spect
Definition:
cpp_linkage_spec.h:15
cpp_linkage_spect::items
const itemst & items() const
Definition:
cpp_linkage_spec.h:24
cpp_linkage_spect::linkage
irept & linkage()
Definition:
cpp_linkage_spec.h:34
src
cpp
cpp_typecheck_linkage_spec.cpp
Generated by
1.8.17