data @cout = external global id data @.str.0 = str "hello" define void @init() static { entry: %0 = load str, ptr @.str.0 %str = alloca id store str %0, ptr %str %1 = load id, ptr %str %for.it = msg id, id %1, @_M8iteratorE br label %for.cond for.cond: %for.value = msg id, id %for.it, @_M5valueE %for.finished = cmp eq id %for.value, null br i1 %for.finished, label %for.end, label %for.body for.body: %c = alloca id store id %for.value, ptr %c %2 = load id, ptr @cout %3 = load id, ptr %c msg void, id %2, @_M03putE [ id %3 ] br label %for.inc for.inc: msg void, id %for.it, @_M8moveNextE br label %for.cond for.end: ret void }