]> git.lizzy.rs Git - rust.git/commitdiff
Merge pull request #2910 from gwillen/bug-2360
authorTim Chevalier <catamorphism@gmail.com>
Fri, 20 Jul 2012 02:01:22 +0000 (19:01 -0700)
committerTim Chevalier <catamorphism@gmail.com>
Fri, 20 Jul 2012 02:01:22 +0000 (19:01 -0700)
Better error when rustc fails to write output.

1  2 
src/rustc/back/link.rs
src/rustc/lib/llvm.rs

index 22a9150df5657cefd85e795a53bb7f604d2ddd06,a9a49b60f327817cad3e7ea7bcc0f63ea52c5f43..36c30f40825bea9a9a4ba2f895aaac67346f161e
@@@ -29,9 -29,24 +29,24 @@@ fn llvm_err(sess: session, msg: ~str) -
      let cstr = llvm::LLVMRustGetLastError();
      if cstr == ptr::null() {
          sess.fatal(msg);
 -    } else { sess.fatal(msg + ": " + str::unsafe::from_c_str(cstr)); }
 +    } else { sess.fatal(msg + ~": " + str::unsafe::from_c_str(cstr)); }
  }
  
+ fn WriteOutputFile(sess:session,
+         PM: lib::llvm::PassManagerRef, M: ModuleRef,
+         Triple: *c_char,
+         // FIXME: When #2334 is fixed, change
+         // c_uint to FileType
+         Output: *c_char, FileType: c_uint,
+         OptLevel: c_int,
+         EnableSegmentedStacks: bool) {
+     let result = llvm::LLVMRustWriteOutputFile(
+             PM, M, Triple, Output, FileType, OptLevel, EnableSegmentedStacks);
+     if (!result) {
+         llvm_err(sess, "Could not write output");
+     }
+ }
  mod write {
      fn is_object_or_assembly_or_exe(ot: output_type) -> bool {
          if ot == output_type_assembly || ot == output_type_object ||
Simple merge