File tree Expand file tree Collapse file tree 8 files changed +51
-9
lines changed Expand file tree Collapse file tree 8 files changed +51
-9
lines changed Original file line number Diff line number Diff line change 1+ CORE
2+
3+ /c main1.c main2.c /Fo dir
4+ ^EXIT=0$
5+ ^SIGNAL=0$
6+ --
7+ ^warning: ignoring
8+ ^CONVERSION ERROR$
Original file line number Diff line number Diff line change 1+ // blank
Original file line number Diff line number Diff line change 1+ // blank
Original file line number Diff line number Diff line change 1+ // blank
Original file line number Diff line number Diff line change 1+ default : tests.log
2+
3+ test :
4+ @../test.pl -p -c ../../../src/goto-cc/goto-cl
5+
6+ tests.log : ../test.pl
7+ @../test.pl -p -c ../../../src/goto-cc/goto-cl
8+
9+ show :
10+ @for dir in * ; do \
11+ if [ -d " $$ dir" ]; then \
12+ vim -o " $$ dir/*.c" " $$ dir/*.out" ; \
13+ fi ; \
14+ done ;
15+
16+ clean :
17+ find -name ' *.out' -execdir $(RM ) ' {}' \;
18+ find -name ' *.gb' -execdir $(RM ) ' {}' \;
19+ find -name ' *.goto-cc-saved' -execdir $(RM ) ' {}' \;
20+ $(RM ) tests.log
Original file line number Diff line number Diff line change @@ -421,9 +421,17 @@ bool compilet::compile()
421421 std::string cfn;
422422
423423 if (output_file_object==" " )
424- cfn=get_base_name (file_name, true )+" ." +object_file_extension;
424+ {
425+ std::string file_name =
426+ get_base_name (file_name, true ) + " ." + object_file_extension;
427+
428+ if (!output_directory_object.empty ())
429+ cfn = concat_dir_file (output_directory_object, file_name);
430+ else
431+ cfn = file_name;
432+ }
425433 else
426- cfn= output_file_object;
434+ cfn = output_file_object;
427435
428436 if (write_object_file (cfn, symbol_table, compiled_functions))
429437 return true ;
Original file line number Diff line number Diff line change @@ -45,7 +45,10 @@ class compilet:public language_uit
4545 std::list<irep_idt> seen_modes;
4646
4747 std::string object_file_extension;
48- std::string output_file_object, output_file_executable;
48+ std::string output_file_executable;
49+
50+ // the two options below are mutually exclusive -- use either or
51+ std::string output_file_object, output_directory_object;
4952
5053 compilet (cmdlinet &_cmdline, ui_message_handlert &mh, bool Werror);
5154
Original file line number Diff line number Diff line change @@ -103,13 +103,13 @@ int ms_cl_modet::doit()
103103
104104 if (cmdline.isset (" Fo" ))
105105 {
106- compiler. output_file_object = cmdline.get_value (" Fo" );
106+ std::string Fo_value = cmdline.get_value (" Fo" );
107107
108- // this could be a directory
109- if (is_directory (compiler. output_file_object ) &&
110- cmdline. args . size ()>= 1 )
111- compiler. output_file_object +=
112- get_base_name (cmdline. args [ 0 ], true )+ " .obj " ;
108+ // this could be a directory or a file name
109+ if (is_directory (Fo_value))
110+ compiler. output_directory_object = Fo_value;
111+ else
112+ compiler. output_file_object = Fo_value ;
113113 }
114114
115115 if (cmdline.isset (" Fe" ))
You can’t perform that action at this time.
0 commit comments