I think all of my breakage is resolved, however, the attribuets changes introduced a number of jit regressions. The problem is that "exit" is now getting declared as:
declare void @exit(i32) noreturn nounwind This is a problem for lli.cpp, because it does this: Constant *Exit = Mod->getOrInsertFunction("exit", Type::VoidTy, Type::Int32Ty, NULL); ... if (Function *ExitF = dyn_cast<Function>(Exit)) { ... } else { std::cerr << "ERROR: exit defined with wrong prototype!\n"; abort(); The problem here is that getOrInsertFunction is returning a bitcast of the exit function (with the type above) to a void(int)* type. I think that getOrInsertFunction should just return the function (not a bitcast) if the function type other than the attributes are the same. -Chris _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits