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

Method OutputDef

src/ArrayVariable.cpp:508–545  ·  view source on GitHub ↗

--------------------------------------------------------------

Source from the content-addressed store, hash-verified

506
507// --------------------------------------------------------------
508void
509ArrayVariable::OutputDef(std::ostream &out, int indent) const
510{
511 if (collective == 0) {
512 output_tab(out, indent);
513 if (!no_loop_initializer() ) {
514 // don't print definition for array, rather use a loop initializer
515 OutputDecl(out);
516 out << ";";
517 outputln(out);
518 }
519 else {
520 // use string initializer for arrays
521 // create the strings for initial values
522 size_t i;
523 vector<string> init_strings;
524 assert(init);
525 init_strings.push_back(init->to_string());
526 for (i=0; i<init_values.size(); i++) {
527 init_strings.push_back(init_values[i]->to_string());
528 }
529
530 // force global variables to be static if necessary
531 if (CGOptions::force_globals_static() && is_global()) {
532 out << "static ";
533 }
534
535 // print type, name, and dimensions
536 output_qualified_type(out);
537 out << get_actual_name();
538 for (i=0; i<sizes.size(); i++) {
539 out << "[" << sizes[i] << "]";
540 }
541 out << " = " << build_initializer_str(init_strings) << ";";
542 outputln(out);
543 }
544 }
545}
546
547void ArrayVariable::OutputDecl(std::ostream &out) const
548{

Callers

nothing calls this directly

Calls 4

output_tabFunction · 0.85
outputlnFunction · 0.85
sizeMethod · 0.80
to_stringMethod · 0.45

Tested by

no test coverage detected