aboutsummaryrefslogtreecommitdiffstats
path: root/driver
diff options
context:
space:
mode:
authorMichael Schmidt <github@mschmidt.me>2016-02-23 16:00:34 +0100
committerMichael Schmidt <github@mschmidt.me>2016-02-23 16:00:34 +0100
commit677dff74726ce574c7335d9381b39711be1de3e7 (patch)
tree7084337b0b1118ddf249c6654a14dda8ca0bfd95 /driver
parent4afa3167a76c5cf69e04fa5faae45824158d08bc (diff)
downloadcompcert-677dff74726ce574c7335d9381b39711be1de3e7.tar.gz
compcert-677dff74726ce574c7335d9381b39711be1de3e7.zip
bug 18209, check that input files exist
Diffstat (limited to 'driver')
-rw-r--r--driver/Driver.ml14
1 files changed, 14 insertions, 0 deletions
diff --git a/driver/Driver.ml b/driver/Driver.ml
index 4b695d57..075bdfcd 100644
--- a/driver/Driver.ml
+++ b/driver/Driver.ml
@@ -277,9 +277,18 @@ let linker exe_name files =
exit 2
end
+(* All input files should exist *)
+
+let ensure_inputfile_exists name =
+ if not (Sys.file_exists name) then begin
+ eprintf "error: no such file or directory: %s\n" name;
+ exit 2
+ end
+
(* Processing of a .c file *)
let process_c_file sourcename =
+ ensure_inputfile_exists sourcename;
if !option_E then begin
preprocess sourcename (output_filename_default "-");
""
@@ -324,6 +333,7 @@ let process_c_file sourcename =
(* Processing of a .i / .p file (preprocessed C) *)
let process_i_file sourcename =
+ ensure_inputfile_exists sourcename;
if !option_interp then begin
let csyntax,_ = parse_c_file sourcename sourcename in
Interp.execute csyntax;
@@ -351,6 +361,7 @@ let process_i_file sourcename =
(* Processing of a .cm file *)
let process_cminor_file sourcename =
+ ensure_inputfile_exists sourcename;
if !option_S then begin
compile_cminor_file sourcename
(output_filename ~final:true sourcename ".cm" ".s");
@@ -372,11 +383,13 @@ let process_cminor_file sourcename =
(* Processing of .S and .s files *)
let process_s_file sourcename =
+ ensure_inputfile_exists sourcename;
let objname = output_filename ~final: !option_c sourcename ".s" ".o" in
assemble sourcename objname;
objname
let process_S_file sourcename =
+ ensure_inputfile_exists sourcename;
if !option_E then begin
preprocess sourcename (output_filename_default "-");
""
@@ -393,6 +406,7 @@ let process_S_file sourcename =
let process_h_file sourcename =
if !option_E then begin
+ ensure_inputfile_exists sourcename;
preprocess sourcename (output_filename_default "-");
""
end else begin