From: Michael J. Spencer Date: Wed, 21 Mar 2012 23:09:14 +0000 (+0000) Subject: [PathV2]: Fix bug in create_directories which caused infinite recursion on X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=55f43d6b7e3ad1f08f5392205ab0feabf4c9933d;p=oota-llvm.git [PathV2]: Fix bug in create_directories which caused infinite recursion on som inputs. Bug found and fix proposed by Kal Conley! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153225 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Support/PathV2.cpp b/lib/Support/PathV2.cpp index 786e1a12c30..e2a69a650db 100644 --- a/lib/Support/PathV2.cpp +++ b/lib/Support/PathV2.cpp @@ -654,12 +654,13 @@ error_code create_directories(const Twine &path, bool &existed) { StringRef p = path.toStringRef(path_storage); StringRef parent = path::parent_path(p); - bool parent_exists; + if (!parent.empty()) { + bool parent_exists; + if (error_code ec = fs::exists(parent, parent_exists)) return ec; - if (error_code ec = fs::exists(parent, parent_exists)) return ec; - - if (!parent_exists) - if (error_code ec = create_directories(parent, existed)) return ec; + if (!parent_exists) + if (error_code ec = create_directories(parent, existed)) return ec; + } return create_directory(p, existed); }