ClangASTType.h revision e8e5557af333aba8183ce6e9fed9996221eb1547
11674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton//===-- ClangASTType.h ------------------------------------------*- C++ -*-===// 21674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// 31674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// The LLVM Compiler Infrastructure 41674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// 51674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// This file is distributed under the University of Illinois Open Source 61674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// License. See LICENSE.TXT for details. 71674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// 81674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton//===----------------------------------------------------------------------===// 91674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 101674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton#ifndef liblldb_ClangASTType_h_ 111674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton#define liblldb_ClangASTType_h_ 121674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 131674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton#include "lldb/lldb-include.h" 141674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton#include "lldb/Core/ClangForward.h" 151674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 161674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Claytonnamespace lldb_private { 171674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 181674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton//---------------------------------------------------------------------- 191674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// A class that can carry around a clang ASTContext and a opaque clang 201674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// QualType. A clang::QualType can be easily reconstructed from an 211674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// opaque clang type and often the ASTContext is needed when doing 221674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// various type related tasks, so this class allows both items to travel 231674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// in a single very lightweight class that can be used. There are many 241674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// static equivalents of the member functions that allow the ASTContext 251674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// and the opaque clang QualType to be specified for ease of use and 261674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton// to avoid code duplication. 271674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton//---------------------------------------------------------------------- 281674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Claytonclass ClangASTType 291674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton{ 301674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Claytonprotected: 31b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton ClangASTType (lldb::clang_type_t type, clang::ASTContext *ast_context) : 321674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton m_type (type), 331674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton m_ast (ast_context) 341674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton { 351674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton } 361674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 371674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton ClangASTType (const ClangASTType &tw) : 381674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton m_type (tw.m_type), 391674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton m_ast (tw.m_ast) 401674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton { 411674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton } 421674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 431674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton ClangASTType () : 441674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton m_type (0), 451674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton m_ast (0) 461674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton { 471674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton } 481674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 491674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton ~ClangASTType(); 501674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 511674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton const ClangASTType & 521674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton operator= (const ClangASTType &atb) 531674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton { 541674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton m_type = atb.m_type; 551674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton m_ast = atb.m_ast; 561674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton return *this; 571674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton } 581674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 591674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Claytonpublic: 60b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton lldb::clang_type_t 611674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton GetOpaqueQualType() const 621674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton { 631674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton return m_type; 641674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton } 651674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 661674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton clang::ASTContext * 671674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton GetASTContext() const 681674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton { 691674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton return m_ast; 701674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton } 711674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 721674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton ConstString 731674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton GetClangTypeName (); 741674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 751674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton static ConstString 76b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton GetClangTypeName (lldb::clang_type_t clang_type); 771674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 78960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton uint64_t 79960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton GetClangTypeBitWidth (); 80960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton 81960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton static uint64_t 82b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton GetClangTypeBitWidth (clang::ASTContext *ast_context, lldb::clang_type_t opaque_clang_qual_type); 83960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton 84960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton size_t 85960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton GetTypeBitAlign (); 86960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton 87960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton static size_t 88b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton GetTypeBitAlign (clang::ASTContext *ast_context, lldb::clang_type_t clang_type); 89960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton 901674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton void 911674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton DumpValue (ExecutionContext *exe_ctx, 921674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton Stream *s, 931674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::Format format, 941674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton const DataExtractor &data, 951674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t data_offset, 961674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton size_t data_byte_size, 971674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t bitfield_bit_size, 981674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t bitfield_bit_offset, 991674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton bool show_types, 1001674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton bool show_summary, 1011674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton bool verbose, 1021674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t depth); 1031674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 1041674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton static void 1051674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton DumpValue (clang::ASTContext *ast_context, 106b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton lldb::clang_type_t opaque_clang_qual_type, 1071674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton ExecutionContext *exe_ctx, 1081674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton Stream *s, 1091674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::Format format, 1101674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton const DataExtractor &data, 1111674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t data_offset, 1121674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton size_t data_byte_size, 1131674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t bitfield_bit_size, 1141674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t bitfield_bit_offset, 1151674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton bool show_types, 1161674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton bool show_summary, 1171674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton bool verbose, 1181674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t depth); 1191674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 1201674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton bool 1211674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton DumpTypeValue (Stream *s, 1221674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::Format format, 1231674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton const DataExtractor &data, 1241674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t data_offset, 1251674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton size_t data_byte_size, 1261674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t bitfield_bit_size, 1271674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t bitfield_bit_offset); 1281674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 1291674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 1301674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton static bool 1311674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton DumpTypeValue (clang::ASTContext *ast_context, 132b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton lldb::clang_type_t opaque_clang_qual_type, 1331674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton Stream *s, 1341674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::Format format, 1351674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton const DataExtractor &data, 1361674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t data_offset, 1371674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton size_t data_byte_size, 1381674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t bitfield_bit_size, 1391674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t bitfield_bit_offset); 1401674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 1411674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton void 1421674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton DumpSummary (ExecutionContext *exe_ctx, 1431674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton Stream *s, 1441674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton const DataExtractor &data, 1451674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t data_offset, 1461674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton size_t data_byte_size); 1471674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 1481674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 1491674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton static void 1501674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton DumpSummary (clang::ASTContext *ast_context, 151b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton lldb::clang_type_t opaque_clang_qual_type, 1521674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton ExecutionContext *exe_ctx, 1531674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton Stream *s, 1541674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton const DataExtractor &data, 1551674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t data_offset, 1561674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton size_t data_byte_size); 157960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton 158960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton void 159960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton DumpTypeDescription (Stream *s); 160960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton 161960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton static void 162960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton DumpTypeDescription (clang::ASTContext *ast_context, 163b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton lldb::clang_type_t opaque_clang_qual_type, 164960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton Stream *s); 165960d6a40711f05effe6fcc5b66f0952450f79ea2Greg Clayton 1661674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::Encoding 1671674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton GetEncoding (uint32_t &count); 1681674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 1691674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton static lldb::Encoding 170b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton GetEncoding (lldb::clang_type_t opaque_clang_qual_type, uint32_t &count); 1711674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 1721674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::Format 1731674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton GetFormat (); 1741674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 1751674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton static lldb::Format 176b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton GetFormat (lldb::clang_type_t opaque_clang_qual_type); 1771674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 1781674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton bool 1791674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton GetValueAsScalar (const DataExtractor &data, 1801674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t data_offset, 1811674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton size_t data_byte_size, 1821674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton Scalar &value); 1831674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 1841674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton static bool 1851674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton GetValueAsScalar (clang::ASTContext *ast_context, 186b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton lldb::clang_type_t opaque_clang_qual_type, 1871674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton const DataExtractor &data, 1881674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton uint32_t data_offset, 1891674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton size_t data_byte_size, 1901674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton Scalar &value); 1911674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 192462d4147f3bb9141bf62d904f58a623db00669dfGreg Clayton 193462d4147f3bb9141bf62d904f58a623db00669dfGreg Clayton bool 194462d4147f3bb9141bf62d904f58a623db00669dfGreg Clayton IsDefined(); 195462d4147f3bb9141bf62d904f58a623db00669dfGreg Clayton 196462d4147f3bb9141bf62d904f58a623db00669dfGreg Clayton static bool 197b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton IsDefined (lldb::clang_type_t opaque_clang_qual_type); 198462d4147f3bb9141bf62d904f58a623db00669dfGreg Clayton 1991674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton bool 200e8e5557af333aba8183ce6e9fed9996221eb1547Sean Callanan IsConst(); 201e8e5557af333aba8183ce6e9fed9996221eb1547Sean Callanan 202e8e5557af333aba8183ce6e9fed9996221eb1547Sean Callanan static bool 203e8e5557af333aba8183ce6e9fed9996221eb1547Sean Callanan IsConst (lldb::clang_type_t opaque_clang_qual_type); 204e8e5557af333aba8183ce6e9fed9996221eb1547Sean Callanan 205e8e5557af333aba8183ce6e9fed9996221eb1547Sean Callanan bool 2061674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton SetValueFromScalar (const Scalar &value, 2071674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton Stream &strm); 2081674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 2091674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton static bool 2101674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton SetValueFromScalar (clang::ASTContext *ast_context, 211b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton lldb::clang_type_t opaque_clang_qual_type, 2121674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton const Scalar &value, 2131674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton Stream &strm); 2141674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 2151674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton bool 2161674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton ReadFromMemory (ExecutionContext *exe_ctx, 2171674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::addr_t addr, 2181674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::AddressType address_type, 2191674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton DataExtractor &data); 2201674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 2211674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton static bool 2221674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton ReadFromMemory (clang::ASTContext *ast_context, 223b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton lldb::clang_type_t opaque_clang_qual_type, 2241674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton ExecutionContext *exe_ctx, 2251674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::addr_t addr, 2261674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::AddressType address_type, 2271674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton DataExtractor &data); 2281674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 2291674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton bool 2301674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton WriteToMemory (ExecutionContext *exe_ctx, 2311674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::addr_t addr, 2321674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::AddressType address_type, 2331674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton StreamString &new_value); 2341674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 2351674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton static bool 2361674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton WriteToMemory (clang::ASTContext *ast_context, 237b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton lldb::clang_type_t opaque_clang_qual_type, 2381674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton ExecutionContext *exe_ctx, 2391674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::addr_t addr, 2401674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton lldb::AddressType address_type, 2411674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton StreamString &new_value); 2421674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 243b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton lldb::clang_type_t 244585660cc442f7faf8d2cbd936e4c92ac689c30e5Greg Clayton GetPointeeType (); 245585660cc442f7faf8d2cbd936e4c92ac689c30e5Greg Clayton 246b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton static lldb::clang_type_t 247b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton GetPointeeType (lldb::clang_type_t opaque_clang_qual_type); 248b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton 249b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton static lldb::clang_type_t 250b433a3d8b910d571c0bcdcd5018778ac3763e703Greg Clayton RemoveFastQualifiers (lldb::clang_type_t); 251585660cc442f7faf8d2cbd936e4c92ac689c30e5Greg Clayton 2521674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Claytonprivate: 2531674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton void *m_type; 2541674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton clang::ASTContext *m_ast; 2551674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton}; 2561674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 2571674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 2581674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton} // namespace lldb_private 2591674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton 2601674b12bbc3dae7b9543b8c5f958e90ddc767fa4Greg Clayton#endif // #ifndef liblldb_ClangASTType_h_ 261