about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTrevor Gross <tmgross@umich.edu>2025-05-18 17:12:13 +0000
committerTrevor Gross <tmgross@umich.edu>2025-05-28 15:15:43 +0000
commitd655ff0806623fb00ca518eae88655ccbfda76df (patch)
tree0efac59f197cb8aebb82622f19dd1fd8171b3cc9
parent6acbcee97ec4542c0b66c5cf460b8a4358647b4a (diff)
downloadrust-d655ff0806623fb00ca518eae88655ccbfda76df.tar.gz
rust-d655ff0806623fb00ca518eae88655ccbfda76df.zip
clif: Provide better output messages for failed copies
-rw-r--r--compiler/rustc_codegen_cranelift/build_system/utils.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/rustc_codegen_cranelift/build_system/utils.rs b/compiler/rustc_codegen_cranelift/build_system/utils.rs
index f2399768459..d9807155a3d 100644
--- a/compiler/rustc_codegen_cranelift/build_system/utils.rs
+++ b/compiler/rustc_codegen_cranelift/build_system/utils.rs
@@ -213,11 +213,13 @@ pub(crate) fn copy_dir_recursively(from: &Path, to: &Path) {
         if filename == "." || filename == ".." {
             continue;
         }
+        let src = from.join(&filename);
+        let dst = to.join(&filename);
         if entry.metadata().unwrap().is_dir() {
-            fs::create_dir(to.join(&filename)).unwrap();
-            copy_dir_recursively(&from.join(&filename), &to.join(&filename));
+            fs::create_dir(&dst).unwrap_or_else(|e| panic!("failed to create {dst:?}: {e}"));
+            copy_dir_recursively(&src, &dst);
         } else {
-            fs::copy(from.join(&filename), to.join(&filename)).unwrap();
+            fs::copy(&src, &dst).unwrap_or_else(|e| panic!("failed to copy {src:?}->{dst:?}: {e}"));
         }
     }
 }