aboutsummaryrefslogtreecommitdiff
path: root/crates/nasm
diff options
context:
space:
mode:
Diffstat (limited to 'crates/nasm')
-rw-r--r--crates/nasm/src/main.rs22
1 files changed, 13 insertions, 9 deletions
diff --git a/crates/nasm/src/main.rs b/crates/nasm/src/main.rs
index 646e249..c5c72ae 100644
--- a/crates/nasm/src/main.rs
+++ b/crates/nasm/src/main.rs
@@ -94,9 +94,19 @@ fn main() -> Result<()> {
let mut assembler = Assembler::new(mapping);
match assembler.assemble(working_directory.to_path_buf(), input) {
Ok(bundles) => {
- for b in bundles {
- for i in 0..b.size {
- output.write_all(&[b.bytes[i as usize]])?;
+ for warning in assembler.warnings() {
+ if warn_as_errors {
+ println!("{}", warning);
+ error_count += 1;
+ } else {
+ println!("Warning: {}", warning);
+ }
+ }
+ if error_count == 0 {
+ for b in bundles {
+ for i in 0..b.size {
+ output.write_all(&[b.bytes[i as usize]])?;
+ }
}
}
}
@@ -107,12 +117,6 @@ fn main() -> Result<()> {
}
}
}
- for warning in assembler.warnings() {
- println!("Warning: {}", warning);
- if warn_as_errors {
- error_count += 1;
- }
- }
std::process::exit(error_count);
}