* */
| 203 | * |
| 204 | */ |
| 205 | void |
| 206 | ExpressionVariable::Output(std::ostream &out) const |
| 207 | { |
| 208 | output_cast(out); |
| 209 | Reducer* reducer = CGOptions::get_reducer(); |
| 210 | if (reducer && reducer->output_expr(this, out)) { |
| 211 | return; |
| 212 | } |
| 213 | int i; |
| 214 | int indirect_level = get_indirect_level(); |
| 215 | if (indirect_level > 0) { |
| 216 | out << "("; |
| 217 | for (i=0; i<indirect_level; i++) { |
| 218 | out << "*"; |
| 219 | } |
| 220 | } |
| 221 | else if (indirect_level < 0) { |
| 222 | assert(indirect_level == -1); |
| 223 | out << "&"; |
| 224 | } |
| 225 | var.Output(out); |
| 226 | if (indirect_level > 0) { |
| 227 | out << ")"; |
| 228 | } |
| 229 | } |
| 230 | |
| 231 | std::vector<const ExpressionVariable*> |
| 232 | ExpressionVariable::get_dereferenced_ptrs(void) const |
nothing calls this directly
no test coverage detected