//===- ClangTestUtils.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_UNITTESTS_TESTINGSUPPORT_SYMBOL_CLANGTESTUTILS_H #define LLDB_UNITTESTS_TESTINGSUPPORT_SYMBOL_CLANGTESTUTILS_H #include "Plugins/ExpressionParser/Clang/ClangUtil.h" #include "Plugins/TypeSystem/Clang/TypeSystemClang.h" #include "lldb/Host/HostInfo.h" namespace lldb_private { namespace clang_utils { inline clang::DeclarationName getDeclarationName(TypeSystemClang &ast, llvm::StringRef name) { … } inline CompilerType createRecord(TypeSystemClang &ast, llvm::StringRef name) { … } /// Create a record with the given name and a field with the given type /// and name. inline CompilerType createRecordWithField(TypeSystemClang &ast, llvm::StringRef record_name, CompilerType field_type, llvm::StringRef field_name) { … } /// Simulates a Clang type system owned by a TypeSystemMap. class TypeSystemClangHolder { … }; /// Constructs a TypeSystemClang that contains a single RecordDecl that contains /// a single FieldDecl. Utility class as this setup is a common starting point /// for unit test that exercise the ASTImporter. struct SourceASTWithRecord { … }; } // namespace clang_utils } // namespace lldb_private #endif