mirror of
https://forge.sourceware.org/marek/gcc.git
synced 2026-02-22 03:47:02 -05:00
103 lines
3.0 KiB
C
103 lines
3.0 KiB
C
/* dwarf2codeview.h - DWARF interface for CodeView generation.
|
|
Copyright (C) 2023-2025 Free Software Foundation, Inc.
|
|
|
|
This file is part of GCC.
|
|
|
|
GCC is free software; you can redistribute it and/or modify it under
|
|
the terms of the GNU General Public License as published by the Free
|
|
Software Foundation; either version 3, or (at your option) any later
|
|
version.
|
|
|
|
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with GCC; see the file COPYING3. If not see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef GCC_DWARF2CODEVIEW_H
|
|
#define GCC_DWARF2CODEVIEW_H 1
|
|
|
|
#include "dwarf2out.h"
|
|
#include "flags.h"
|
|
|
|
/* Constants for in-built types. */
|
|
|
|
#define T_VOID 0x0003
|
|
#define T_HRESULT 0x0008
|
|
#define T_CHAR 0x0010
|
|
#define T_SHORT 0x0011
|
|
#define T_LONG 0x0012
|
|
#define T_QUAD 0x0013
|
|
#define T_UCHAR 0x0020
|
|
#define T_USHORT 0x0021
|
|
#define T_ULONG 0x0022
|
|
#define T_UQUAD 0x0023
|
|
#define T_BOOL08 0x0030
|
|
#define T_REAL32 0x0040
|
|
#define T_REAL64 0x0041
|
|
#define T_REAL80 0x0042
|
|
#define T_REAL128 0x0043
|
|
#define T_RCHAR 0x0070
|
|
#define T_WCHAR 0x0071
|
|
#define T_INT4 0x0074
|
|
#define T_UINT4 0x0075
|
|
#define T_CHAR16 0x007a
|
|
#define T_CHAR32 0x007b
|
|
#define T_CHAR8 0x007c
|
|
|
|
#define CV_POINTER_32 0x0400
|
|
#define CV_POINTER_64 0x0600
|
|
#define T_32PVOID (T_VOID | CV_POINTER_32)
|
|
#define T_64PVOID (T_VOID | CV_POINTER_64)
|
|
|
|
/* LF_POINTER attributes. */
|
|
#define CV_PTR_NEAR32 0x0a
|
|
#define CV_PTR_64 0x0c
|
|
|
|
/* enum CV_ptrmode_e in cvinfo.h, shifted by 5 for the lfPointerAttr bitfield */
|
|
#define CV_PTR_MODE_MASK 0xe0
|
|
#define CV_PTR_MODE_LVREF 0x20
|
|
#define CV_PTR_MODE_PMEM 0x40
|
|
#define CV_PTR_MODE_PMFUNC 0x60
|
|
#define CV_PTR_MODE_RVREF 0x80
|
|
|
|
/* enum CV_pmtype_e in in cvinfo.h */
|
|
#define CV_PMTYPE_D_Single 0x01
|
|
#define CV_PMTYPE_F_Single 0x05
|
|
|
|
/* LF_MODIFIER values. */
|
|
#define MOD_const 0x1
|
|
#define MOD_volatile 0x2
|
|
|
|
#define CV_ACCESS_PRIVATE 1
|
|
#define CV_ACCESS_PROTECTED 2
|
|
#define CV_ACCESS_PUBLIC 3
|
|
|
|
/* CV_methodprop_e values in cvinfo.h, shifted by 2 for CV_fldattr_t. */
|
|
#define CV_METHOD_VANILLA 0x00
|
|
#define CV_METHOD_VIRTUAL 0x04
|
|
#define CV_METHOD_STATIC 0x08
|
|
#define CV_METHOD_FRIEND 0x0c
|
|
#define CV_METHOD_INTRO 0x10
|
|
#define CV_METHOD_PUREVIRT 0x14
|
|
#define CV_METHOD_PUREINTRO 0x18
|
|
|
|
#define CV_PROP_FWDREF 0x80
|
|
|
|
/* Debug Format Interface. Used in dwarf2out.cc. */
|
|
|
|
extern void codeview_debug_finish (void);
|
|
extern void codeview_source_line (unsigned int, const char *);
|
|
extern void codeview_start_source_file (const char *);
|
|
extern void codeview_switch_text_section ();
|
|
extern void codeview_end_epilogue (void);
|
|
extern void codeview_debug_early_finish (dw_die_ref die);
|
|
extern void codeview_begin_block (unsigned int, unsigned int, tree);
|
|
extern void codeview_end_block (unsigned int, unsigned int);
|
|
extern void codeview_abstract_function (tree);
|
|
|
|
#endif /* GCC_DWARF2CODEVIEW_H */
|