MCPcopy Create free account
hub / github.com/Samsung/UTopia / generateFuzzVarDeclarations

Method generateFuzzVarDeclarations

lib/generation/UTModify.cpp:195–225  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

193}
194
195void UTModify::generateFuzzVarDeclarations(
196 std::map<std::string, std::string> &FuzzVarDecls,
197 std::map<std::string, std::vector<std::string>> &FuzzVarFlagDecls,
198 const FuzzInput &Input) const {
199 const auto &Def = Input.getDef();
200 const auto &DataType = Def.DataType;
201 assert(DataType && "Unexpected Program State");
202
203 auto Path = Def.Path;
204 auto VarName = Input.getFuzzVarName();
205 auto TypeName = generateDeclTypeName(*DataType);
206 auto Declaration = "extern " + TypeName + " " + VarName + ";\n";
207 if (DataType->isFixedLengthArrayPtr())
208 Declaration +=
209 "extern unsigned " + util::getAvasFuzzSizeVarName(VarName) + ";\n";
210
211 auto Iter = FuzzVarDecls.find(Path);
212 if (Iter == FuzzVarDecls.end())
213 FuzzVarDecls.emplace(Path, Declaration);
214 else
215 Iter->second += Declaration;
216
217 if (Def.Declaration == Definition::DeclType_StaticLocal) {
218 auto Iter = FuzzVarFlagDecls.find(Path);
219 auto FlagVarName = util::getStaticLocalFlagVarName(VarName);
220 if (Iter == FuzzVarFlagDecls.end())
221 FuzzVarFlagDecls.emplace(Path, std::vector<std::string>({FlagVarName}));
222 else
223 Iter->second.emplace_back(FlagVarName);
224 }
225}
226
227void UTModify::generateFuzzVarGlobalSetters(
228 std::map<std::string, std::vector<GlobalVarSetter>> &Setters,

Callers

nothing calls this directly

Calls 7

getAvasFuzzSizeVarNameFunction · 0.85
getDefMethod · 0.80
getFuzzVarNameMethod · 0.80
isFixedLengthArrayPtrMethod · 0.80
endMethod · 0.80
findMethod · 0.45

Tested by

no test coverage detected