LLVM
15.0.0git
lib
DebugInfo
PDB
GenericError.cpp
Go to the documentation of this file.
1
//===- Error.cpp - system_error extensions for PDB --------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#include "
llvm/DebugInfo/PDB/GenericError.h
"
10
#include "
llvm/Support/ErrorHandling.h
"
11
#include "
llvm/Support/ManagedStatic.h
"
12
13
using namespace
llvm
;
14
using namespace
llvm::pdb
;
15
16
namespace
{
17
// FIXME: This class is only here to support the transition to llvm::Error. It
18
// will be removed once this transition is complete. Clients should prefer to
19
// deal with the Error value directly, rather than converting to error_code.
20
class
PDBErrorCategory :
public
std::error_category
{
21
public
:
22
const
char
*
name
()
const
noexcept
override
{
return
"llvm.pdb"
; }
23
std::string
message
(
int
Condition)
const override
{
24
switch
(
static_cast<
pdb_error_code
>
(Condition)) {
25
case
pdb_error_code::unspecified
:
26
return
"An unknown error has occurred."
;
27
case
pdb_error_code::dia_sdk_not_present
:
28
return
"LLVM was not compiled with support for DIA. This usually means "
29
"that you are not using MSVC, or your Visual Studio "
30
"installation is corrupt."
;
31
case
pdb_error_code::dia_failed_loading
:
32
return
"DIA is only supported when using MSVC."
;
33
case
pdb_error_code::invalid_utf8_path
:
34
return
"The PDB file path is an invalid UTF8 sequence."
;
35
case
pdb_error_code::signature_out_of_date
:
36
return
"The signature does not match; the file(s) might be out of date."
;
37
case
pdb_error_code::no_matching_pch
:
38
return
"No matching precompiled header could be located."
;
39
}
40
llvm_unreachable
(
"Unrecognized generic_error_code"
);
41
}
42
};
43
}
// namespace
44
45
static
llvm::ManagedStatic<PDBErrorCategory>
PDBCategory
;
46
const
std::error_category
&
llvm::pdb::PDBErrCategory
() {
return
*
PDBCategory
; }
47
48
char
PDBError::ID
;
llvm::pdb::pdb_error_code
pdb_error_code
Definition:
GenericError.h:17
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:17
ErrorHandling.h
ManagedStatic.h
llvm::pdb::pdb_error_code::invalid_utf8_path
@ invalid_utf8_path
llvm::ManagedStatic
ManagedStatic - This transparently changes the behavior of global statics to be lazily constructed on...
Definition:
ManagedStatic.h:83
llvm::pdb::pdb_error_code::signature_out_of_date
@ signature_out_of_date
llvm::pdb
Definition:
ConcreteSymbolEnumerator.h:20
GenericError.h
llvm::pdb::pdb_error_code::unspecified
@ unspecified
const
aarch64 promote const
Definition:
AArch64PromoteConstant.cpp:232
message
message(STATUS "Targeting ${t}") add_subdirectory($
Definition:
CMakeLists.txt:33
llvm::pdb::pdb_error_code::dia_sdk_not_present
@ dia_sdk_not_present
llvm_unreachable
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
Definition:
ErrorHandling.h:143
name
static const char * name
Definition:
SVEIntrinsicOpts.cpp:74
llvm::pdb::pdb_error_code::dia_failed_loading
@ dia_failed_loading
llvm::pdb::pdb_error_code::no_matching_pch
@ no_matching_pch
llvm::pdb::PDBErrCategory
const std::error_category & PDBErrCategory()
Definition:
GenericError.cpp:46
llvm::pdb::PDBError::ID
static char ID
Definition:
GenericError.h:46
error_category
static ManagedStatic< _object_error_category > error_category
Definition:
Error.cpp:78
PDBCategory
static llvm::ManagedStatic< PDBErrorCategory > PDBCategory
Definition:
GenericError.cpp:45
Generated on Sun Jun 26 2022 14:21:59 for LLVM by
1.8.17