--------------------------------------------------------------
| 506 | |
| 507 | // -------------------------------------------------------------- |
| 508 | void |
| 509 | ArrayVariable::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 | |
| 547 | void ArrayVariable::OutputDecl(std::ostream &out) const |
| 548 | { |
nothing calls this directly
no test coverage detected