| 259 | } |
| 260 | |
| 261 | ArrayVariable* |
| 262 | ArrayVariable::itemize(void) const |
| 263 | { |
| 264 | size_t i; |
| 265 | assert(collective == 0); |
| 266 | ArrayVariable* av = new ArrayVariable(*this); |
| 267 | VariableSelector::AllVars.push_back(av); |
| 268 | for (i=0; i<sizes.size(); i++) { |
| 269 | int index = rnd_upto(sizes[i]); |
| 270 | av->add_index(new Constant(get_int_type(), StringUtils::int2str(index))); |
| 271 | } |
| 272 | av->collective = this; |
| 273 | // only expand struct/union for itemized array variable |
| 274 | if (type->is_aggregate()) { |
| 275 | av->create_field_vars(type); |
| 276 | } |
| 277 | return av; |
| 278 | } |
| 279 | |
| 280 | ArrayVariable* |
| 281 | ArrayVariable::itemize(const vector<int>& const_indices) const |
no test coverage detected