citrun

watch C/C++ source code execute
Log | Files | Refs | LICENSE

commit e1ab4fe0bc055483f50409987107226776b3438c
parent 89fea712fbfcccf5054cacc17371469206a8a92e
Author: Kyle Milz <kyle@0x30.net>
Date:   Sat, 13 Aug 2016 03:49:39 -0600

src: unfuck some logic

Diffstat:
Msrc/inst_main.cc | 18++++++++----------
Msrc/inst_main.h | 3+--
2 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/src/inst_main.cc b/src/inst_main.cc @@ -130,8 +130,13 @@ main(int argc, char *argv[]) CitrunInst main(argc, argv, llog, is_citruninst); main.process_cmdline(); - if (main.instrument()) - return 1; + + int ret = main.instrument(); + if (is_citruninst) + return ret; + if (ret) + return main.try_unmodified_compile(); + return main.compile_modified(); } @@ -303,14 +308,7 @@ CitrunInst::instrument() int ret = Tool.run(f.get()); m_log << "Instrumentation " << (ret ? "failed.\n" : "successful.\n"); - - if (m_is_citruninst) - // Nothing left to do if we're in this mode. - exit(ret); - - if (ret) - return try_unmodified_compile(); - return 0; + return ret; } int diff --git a/src/inst_main.h b/src/inst_main.h @@ -7,9 +7,9 @@ class CitrunInst { public: CitrunInst(int, char *argv[], InstrumentLogger &, bool); - void clean_PATH(); void process_cmdline(); int instrument(); + int try_unmodified_compile(); int compile_modified(); private: @@ -17,7 +17,6 @@ private: int fork_compiler(); void restore_original_src(); void save_if_srcfile(char *); - int try_unmodified_compile(); std::vector<char *> m_args; InstrumentLogger m_log;