chromium/third_party/libc++abi/src/src/private_typeinfo.h

//===----------------------------------------------------------------------===//
//
// 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 __PRIVATE_TYPEINFO_H_
#define __PRIVATE_TYPEINFO_H_

#include "__cxxabi_config.h"

#include <typeinfo>
#include <stddef.h>

namespace __cxxabiv1 {

class _LIBCXXABI_TYPE_VIS __shim_type_info : public std::type_info {};

class _LIBCXXABI_TYPE_VIS __fundamental_type_info : public __shim_type_info {};

class _LIBCXXABI_TYPE_VIS __array_type_info : public __shim_type_info {};

class _LIBCXXABI_TYPE_VIS __function_type_info : public __shim_type_info {};

class _LIBCXXABI_TYPE_VIS __enum_type_info : public __shim_type_info {};

enum
{};

class _LIBCXXABI_TYPE_VIS __class_type_info;

struct _LIBCXXABI_HIDDEN __dynamic_cast_info
{};

// Has no base class
class _LIBCXXABI_TYPE_VIS __class_type_info : public __shim_type_info {};

// Has one non-virtual public base class at offset zero
class _LIBCXXABI_TYPE_VIS __si_class_type_info : public __class_type_info {};

struct _LIBCXXABI_HIDDEN __base_class_type_info
{};

// Has one or more base classes
class _LIBCXXABI_TYPE_VIS __vmi_class_type_info : public __class_type_info {};

class _LIBCXXABI_TYPE_VIS __pbase_type_info : public __shim_type_info {};

class _LIBCXXABI_TYPE_VIS __pointer_type_info : public __pbase_type_info {};

class _LIBCXXABI_TYPE_VIS __pointer_to_member_type_info
    : public __pbase_type_info {};

}  // __cxxabiv1

#endif // __PRIVATE_TYPEINFO_H_