retdec
get_symbolic_names_for_param.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_LLVMIR2HLL_SEMANTICS_SEMANTICS_IMPL_SUPPORT_GET_SYMBOLIC_NAMES_FOR_PARAM_H
8 #define RETDEC_LLVMIR2HLL_SEMANTICS_SEMANTICS_IMPL_SUPPORT_GET_SYMBOLIC_NAMES_FOR_PARAM_H
9 
10 #include <map>
11 #include <optional>
12 #include <unordered_map>
13 
15 
47 #define DEFINE_GET_SYMBOLIC_NAMES_FUNC_BEGIN(funcName) \
48  const IntStringMap &funcName() { \
49  static IntStringMap symbolicNamesMap; \
50  if (!symbolicNamesMap.empty()) { \
51  return symbolicNamesMap; \
52  }
53 
59 #define DEFINE_GET_SYMBOLIC_NAMES_FUNC_END() \
60  return symbolicNamesMap; \
61  }
62 
63 namespace retdec {
64 namespace llvmir2hll {
65 namespace semantics {
66 
68 using ParamSymbolsMap = std::map<unsigned, IntStringMap>;
69 
71 using FuncParamsMap = std::unordered_map<std::string, ParamSymbolsMap>;
72 
73 std::optional<IntStringMap> getSymbolicNamesForParamFromMap(
74  const std::string &funcName,
75  unsigned paramPos, const FuncParamsMap &map);
76 
77 } // namespace semantics
78 } // namespace llvmir2hll
79 } // namespace retdec
80 
81 #endif
A library providing API for working with back-end IR.
std::optional< IntStringMap > getSymbolicNamesForParamFromMap(const std::string &funcName, unsigned paramPos, const FuncParamsMap &map)
Returns symbolic names for the given parameter from the given map.
Definition: get_symbolic_names_for_param.cpp:16
std::unordered_map< std::string, ParamSymbolsMap > FuncParamsMap
Mapping of a function name into ParamSymbolsMap.
Definition: get_symbolic_names_for_param.h:71
std::map< unsigned, IntStringMap > ParamSymbolsMap
Mapping of a parameter position into symbolic names of its possible values.
Definition: get_symbolic_names_for_param.h:68
Definition: archive_wrapper.h:19
Aliases for several useful types.