From 6a7efef4af55b995fdfe9a0819adcb823cbb6191 Mon Sep 17 00:00:00 2001 From: Alexandre Ganea Date: Fri, 31 Aug 2018 17:41:58 +0000 Subject: [DebugInfo] Common behavior for error types Following D50807, and heading towards D50664, this intermediary change does the following: 1. Upgrade all custom Error types in llvm/trunk/lib/DebugInfo/ to use the new StringError behavior (D50807). 2. Implement std::is_error_code_enum and make_error_code() for DebugInfo error enumerations. 3. Rename GenericError -> PDBError (the file will be renamed in a subsequent commit) 4. Update custom error messages to follow the same formatting: (\w\s*)+\. 5. Keep generic "file not found" (ENOENT) errors as they are in PDB code. Previously, there used to be a custom enumeration for that purpose. 6. Remove a few extraneous LF in log() implementations. Printing LF is a responsability at a higher level, not at the error level. Differential Revision: https://reviews.llvm.org/D51499 llvm-svn: 341228 --- llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp') diff --git a/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp b/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp index d81f59400eb..f133b7ff77f 100644 --- a/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp +++ b/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp @@ -42,7 +42,7 @@ static Error ErrorFromHResult(HRESULT Result, const char *Str, Ts &&... Args) { switch (Result) { case E_PDB_NOT_FOUND: - return make_error(generic_error_code::invalid_path, Context); + return errorCodeToError(std::error_code(ENOENT, std::generic_category())); case E_PDB_FORMAT: return make_error(dia_error_code::invalid_file_format, Context); case E_INVALIDARG: @@ -71,8 +71,7 @@ static Error LoadDIA(CComPtr &DiaDataSource) { // If the CoCreateInstance call above failed, msdia*.dll is not registered. // Try loading the DLL corresponding to the #included DIA SDK. #if !defined(_MSC_VER) - return llvm::make_error( - "DIA is only supported when using MSVC."); + return llvm::make_error(pdb_error_code::dia_failed_loading); #else const wchar_t *msdia_dll = nullptr; #if _MSC_VER >= 1900 && _MSC_VER < 2000 @@ -104,7 +103,7 @@ Error DIASession::createFromPdb(StringRef Path, llvm::SmallVector Path16; if (!llvm::convertUTF8ToUTF16String(Path, Path16)) - return make_error(generic_error_code::invalid_path); + return make_error(pdb_error_code::invalid_utf8_path, Path); const wchar_t *Path16Str = reinterpret_cast(Path16.data()); HRESULT HR; @@ -130,7 +129,7 @@ Error DIASession::createFromExe(StringRef Path, llvm::SmallVector Path16; if (!llvm::convertUTF8ToUTF16String(Path, Path16)) - return make_error(generic_error_code::invalid_path, Path); + return make_error(pdb_error_code::invalid_utf8_path, Path); const wchar_t *Path16Str = reinterpret_cast(Path16.data()); HRESULT HR; -- cgit v1.2.3