From: k4ss4n Date: Tue, 10 Feb 2026 09:57:48 +0000 (+0100) Subject: ggml : use noexcept overload for is_regular_file in backend registration (llama/19452) X-Git-Tag: v0.9.7~32 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=76ded7b66d50d17bab56cf5ae04a2fbd35572021;p=pkg%2Fggml%2Fsources%2Fggml ggml : use noexcept overload for is_regular_file in backend registration (llama/19452) using noexcept std::filesystem::directory_entry::is_regular_file overload prevents abnormal termination upon throwing an error (as caused by symlinks to non-existent folders on linux) Resolves: #18560 --- diff --git a/src/ggml-backend-reg.cpp b/src/ggml-backend-reg.cpp index 8a693f84..311fa5fe 100644 --- a/src/ggml-backend-reg.cpp +++ b/src/ggml-backend-reg.cpp @@ -471,9 +471,10 @@ static ggml_backend_reg_t ggml_backend_load_best(const char * name, bool silent, int best_score = 0; fs::path best_path; + std::error_code ec; for (const auto & search_path : search_paths) { - if (std::error_code ec; !fs::exists(search_path, ec)) { + if (!fs::exists(search_path, ec)) { if (ec) { GGML_LOG_DEBUG("%s: posix_stat(%s) failure, error-message: %s\n", __func__, path_str(search_path).c_str(), ec.message().c_str()); } else { @@ -483,7 +484,7 @@ static ggml_backend_reg_t ggml_backend_load_best(const char * name, bool silent, } fs::directory_iterator dir_it(search_path, fs::directory_options::skip_permission_denied); for (const auto & entry : dir_it) { - if (entry.is_regular_file()) { + if (entry.is_regular_file(ec)) { auto filename = entry.path().filename(); auto ext = entry.path().extension(); if (filename.native().find(file_prefix) == 0 && ext == file_extension) {