diff options
Diffstat (limited to 'crates')
| -rw-r--r-- | crates/nasm/src/main.rs | 22 |
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); } |
