llvm.org GIT mirror llvm / fd04561
Fix really nasty bugs in the CWriter, handling invoke instructions. Tracking these down was NOT phun. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8181 91177308-0d34-0410-b5e6-96231b3b80d8 Chris Lattner 17 years ago
2 changed file(s) with 10 addition(s) and 4 deletion(s). Raw diff Collapse all Expand all
893893 UI != UE; ++UI)
894894 if (TerminatorInst *TI = dyn_cast(*UI))
895895 if (TI != Prev->getTerminator() ||
896 isa(Prev->getTerminator())) {
896 isa(Prev->getTerminator()) ||
897 isa(Prev->getTerminator())) {
897898 NeedsLabel = true;
898899 break;
899900 }
967968 Out << " }\n"
968969 << " __llvm_jmpbuf_list = &Entry;\n"
969970 << " ";
971
972 if (II.getType() != Type::VoidTy) outputLValue(&II);
970973 visitCallSite(&II);
971974 Out << ";\n"
972975 << " __llvm_jmpbuf_list = Entry.next;\n"
9971000 Out << "; /* for PHI node */\n";
9981001 }
9991002
1000 if (CurBB->getNext() != Succ) {
1003 if (CurBB->getNext() != Succ || isa(CurBB->getTerminator())) {
10011004 Out << std::string(Indent, ' ') << " goto ";
10021005 writeOperand(Succ);
10031006 Out << ";\n";
893893 UI != UE; ++UI)
894894 if (TerminatorInst *TI = dyn_cast(*UI))
895895 if (TI != Prev->getTerminator() ||
896 isa(Prev->getTerminator())) {
896 isa(Prev->getTerminator()) ||
897 isa(Prev->getTerminator())) {
897898 NeedsLabel = true;
898899 break;
899900 }
967968 Out << " }\n"
968969 << " __llvm_jmpbuf_list = &Entry;\n"
969970 << " ";
971
972 if (II.getType() != Type::VoidTy) outputLValue(&II);
970973 visitCallSite(&II);
971974 Out << ";\n"
972975 << " __llvm_jmpbuf_list = Entry.next;\n"
9971000 Out << "; /* for PHI node */\n";
9981001 }
9991002
1000 if (CurBB->getNext() != Succ) {
1003 if (CurBB->getNext() != Succ || isa(CurBB->getTerminator())) {
10011004 Out << std::string(Indent, ' ') << " goto ";
10021005 writeOperand(Succ);
10031006 Out << ";\n";