//===-- Mangled.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 // //===----------------------------------------------------------------------===// #ifndef LLDB_CORE_MANGLED_H #define LLDB_CORE_MANGLED_H #include "lldb/lldb-enumerations.h" #include "lldb/lldb-forward.h" #include "lldb/lldb-types.h" #include "lldb/Utility/ConstString.h" #include "llvm/ADT/StringRef.h" #include <cstddef> #include <memory> namespace lldb_private { /// \class Mangled Mangled.h "lldb/Core/Mangled.h" /// A class that handles mangled names. /// /// Designed to handle mangled names. The demangled version of any names will /// be computed when the demangled name is accessed through the Demangled() /// accessor. This class can also tokenize the demangled version of the name /// for powerful searches. Functions and symbols could make instances of this /// class for their mangled names. Uniqued string pools are used for the /// mangled, demangled, and token string values to allow for faster /// comparisons and for efficient memory use. class Mangled { … }; Stream &operator<<(Stream &s, const Mangled &obj); } // namespace lldb_private #endif // LLDB_CORE_MANGLED_H