diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 20:50:12 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 20:50:12 +0000 |
commit | e6d1592492a3a379186bfb02bd0f4eda0669c0d5 (patch) | |
tree | 599ab169a01f1c86eda9adc774edaedde2f2db5b /include/llvm/Demangle/MicrosoftDemangleNodes.h | |
parent | 1a56a5ead7a2e84bee8240f5f6b033b5f1707154 (diff) |
Diffstat (limited to 'include/llvm/Demangle/MicrosoftDemangleNodes.h')
-rw-r--r-- | include/llvm/Demangle/MicrosoftDemangleNodes.h | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/include/llvm/Demangle/MicrosoftDemangleNodes.h b/include/llvm/Demangle/MicrosoftDemangleNodes.h index 9e3478e9fd29..da9d9d5bfdc0 100644 --- a/include/llvm/Demangle/MicrosoftDemangleNodes.h +++ b/include/llvm/Demangle/MicrosoftDemangleNodes.h @@ -1,11 +1,30 @@ +//===- MicrosoftDemangleNodes.h ---------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file defines the AST nodes used in the MSVC demangler. +// +//===----------------------------------------------------------------------===// + #ifndef LLVM_SUPPORT_MICROSOFTDEMANGLENODES_H #define LLVM_SUPPORT_MICROSOFTDEMANGLENODES_H -#include "llvm/Demangle/Compiler.h" +#include "llvm/Demangle/DemangleConfig.h" #include "llvm/Demangle/StringView.h" #include <array> +namespace llvm { +namespace itanium_demangle { class OutputStream; +} +} + +using llvm::itanium_demangle::OutputStream; +using llvm::itanium_demangle::StringView; namespace llvm { namespace ms_demangle { @@ -63,6 +82,7 @@ enum class PrimitiveKind { Char, Schar, Uchar, + Char8, Char16, Char32, Short, @@ -151,8 +171,8 @@ enum class IntrinsicFunctionKind : uint8_t { VectorCopyCtorIter, // ?__G vector copy constructor iterator VectorVbaseCopyCtorIter, // ?__H vector vbase copy constructor iterator ManVectorVbaseCopyCtorIter, // ?__I managed vector vbase copy constructor - CoAwait, // ?__L co_await - Spaceship, // operator<=> + CoAwait, // ?__L operator co_await + Spaceship, // ?__M operator<=> MaxIntrinsic }; @@ -324,7 +344,7 @@ struct FunctionSignatureNode : public TypeNode { // Function parameters NodeArrayNode *Params = nullptr; - // True if the function type is noexcept + // True if the function type is noexcept. bool IsNoexcept = false; }; @@ -389,6 +409,7 @@ struct LocalStaticGuardIdentifierNode : public IdentifierNode { void output(OutputStream &OS, OutputFlags Flags) const override; + bool IsThread = false; uint32_t ScopeIndex = 0; }; @@ -494,7 +515,7 @@ struct NodeArrayNode : public Node { void output(OutputStream &OS, OutputFlags Flags, StringView Separator) const; - Node **Nodes = 0; + Node **Nodes = nullptr; size_t Count = 0; }; @@ -602,4 +623,4 @@ struct FunctionSymbolNode : public SymbolNode { } // namespace ms_demangle } // namespace llvm -#endif
\ No newline at end of file +#endif |