Terminate & cleanup early if an error occurs during the optimization phase.

svn path=/trunk/yasm/; revision=469
0.3
Peter Johnson 23 years ago
parent 8a515e968a
commit f781881f80
  1. 10
      frontends/yasm/yasm.c
  2. 10
      src/main.c

@ -223,6 +223,16 @@ main(int argc, char *argv[])
symrec_parser_finalize(); symrec_parser_finalize();
basic_optimizer.optimize(sections); basic_optimizer.optimize(sections);
if (OutputAllErrorWarning() > 0) {
sections_delete(sections);
symrec_delete_all();
line_shutdown();
floatnum_shutdown();
intnum_shutdown();
BitVector_Shutdown();
return EXIT_FAILURE;
}
fprintf(obj, "\nSections after optimization:\n"); fprintf(obj, "\nSections after optimization:\n");
indent_level++; indent_level++;
sections_print(obj, sections); sections_print(obj, sections);

@ -223,6 +223,16 @@ main(int argc, char *argv[])
symrec_parser_finalize(); symrec_parser_finalize();
basic_optimizer.optimize(sections); basic_optimizer.optimize(sections);
if (OutputAllErrorWarning() > 0) {
sections_delete(sections);
symrec_delete_all();
line_shutdown();
floatnum_shutdown();
intnum_shutdown();
BitVector_Shutdown();
return EXIT_FAILURE;
}
fprintf(obj, "\nSections after optimization:\n"); fprintf(obj, "\nSections after optimization:\n");
indent_level++; indent_level++;
sections_print(obj, sections); sections_print(obj, sections);

Loading…
Cancel
Save