From dc1b424b75f200a716c3bd9b91891cf7f818ad32 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Fri, 9 Sep 2016 18:29:37 +0300 Subject: Fix crashing on unhandled system_error thrown by file_exists() --- build2/cc/link.cxx | 1 + build2/cc/pkgconfig.cxx | 8 ++++---- build2/cc/windows-manifest.cxx | 2 +- build2/cc/windows-rpath.cxx | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) (limited to 'build2/cc') diff --git a/build2/cc/link.cxx b/build2/cc/link.cxx index 9a8e21c..d36e5e1 100644 --- a/build2/cc/link.cxx +++ b/build2/cc/link.cxx @@ -9,6 +9,7 @@ #include // cerr #include +#include // file_exists() #include #include diff --git a/build2/cc/pkgconfig.cxx b/build2/cc/pkgconfig.cxx index 23128e4..3a7bf82 100644 --- a/build2/cc/pkgconfig.cxx +++ b/build2/cc/pkgconfig.cxx @@ -63,7 +63,7 @@ namespace build2 // dir_path pkgd (dir_path (libd) /= dir); - if (!dir_exists (pkgd)) + if (!exists (pkgd)) return false; // See if there is a corresponding .pc file. About half of them called @@ -82,7 +82,7 @@ namespace build2 f /= stem; f += ".pc"; - if (file_exists (f)) + if (exists (f)) return true; f = pkgd; @@ -90,7 +90,7 @@ namespace build2 f += stem; f += ".pc"; - if (file_exists (f)) + if (exists (f)) return true; if (proj != nullptr) @@ -99,7 +99,7 @@ namespace build2 f /= *proj; f += ".pc"; - if (file_exists (f)) + if (exists (f)) return true; } diff --git a/build2/cc/windows-manifest.cxx b/build2/cc/windows-manifest.cxx index 0666ef5..a3e87fe 100644 --- a/build2/cc/windows-manifest.cxx +++ b/build2/cc/windows-manifest.cxx @@ -99,7 +99,7 @@ namespace build2 // path mf (t.path () + ".manifest"); - if (file_exists (mf)) + if (exists (mf)) { try { diff --git a/build2/cc/windows-rpath.cxx b/build2/cc/windows-rpath.cxx index e27dddb..1bef95c 100644 --- a/build2/cc/windows-rpath.cxx +++ b/build2/cc/windows-rpath.cxx @@ -157,14 +157,14 @@ namespace build2 pdb = f; pdb += ".pdb"; - if (!file_exists (pdb.c_str ())) + if (!exists (path (pdb))) { // Then try the usual naming: foo.pdb. // pdb.assign (f, 0, p); pdb += ".pdb"; - if (!file_exists (pdb.c_str ())) + if (!exists (path (pdb))) pdb.clear (); } -- cgit v1.1