MCPcopy Create free account
hub / github.com/csmith-project/csmith / CreateInstance

Method CreateInstance

src/AbsProgramGenerator.cpp:54–90  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

52}
53
54AbsProgramGenerator *
55AbsProgramGenerator::CreateInstance(int argc, char *argv[], unsigned long seed)
56{
57 if (CGOptions::dfs_exhaustive()) {
58 AbsProgramGenerator::current_generator_ = new DFSProgramGenerator(argc, argv, seed);
59 }
60 else
61 {
62 AbsProgramGenerator::current_generator_ = new DefaultProgramGenerator(argc, argv, seed);
63 }
64
65 AbsProgramGenerator::current_generator_->initialize();
66
67 if (!(CGOptions::dump_default_probabilities().empty())) {
68 CGOptions::random_random(false);
69 Probabilities *prob = Probabilities::GetInstance();
70 prob->dump_default_probabilities(CGOptions::dump_default_probabilities());
71 exit(0);
72 }
73 else if (!(CGOptions::dump_random_probabilities().empty())) {
74 CGOptions::random_random(true);
75 Probabilities *prob = Probabilities::GetInstance();
76 prob->dump_actual_probabilities(CGOptions::dump_random_probabilities(), seed);
77 exit(0);
78 }
79
80 Probabilities *prob = Probabilities::GetInstance();
81 string msg;
82 if (!(CGOptions::probability_configuration().empty())) {
83 if (!prob->parse_configuration(msg, CGOptions::probability_configuration())) {
84 cout << "parsing configuration file error:" << msg << endl;
85 return NULL;
86 }
87 }
88
89 return AbsProgramGenerator::current_generator_;
90}
91
92AbsProgramGenerator *
93AbsProgramGenerator::GetInstance()

Callers

nothing calls this directly

Calls 4

parse_configurationMethod · 0.80
initializeMethod · 0.45

Tested by

no test coverage detected