ClangUtil.h revision 353358
1303241Sdim//===-- ClangUtil.h ---------------------------------------------*- C++ -*-===//
2303241Sdim//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6303241Sdim//
7303241Sdim// A collection of helper methods and data structures for manipulating clang
8303241Sdim// types and decls.
9303241Sdim//===----------------------------------------------------------------------===//
10303241Sdim
11303241Sdim#ifndef LLDB_SYMBOL_CLANGUTIL_H
12303241Sdim#define LLDB_SYMBOL_CLANGUTIL_H
13303241Sdim
14303241Sdim#include "clang/AST/Type.h"
15303241Sdim
16303241Sdim#include "lldb/Symbol/CompilerType.h"
17303241Sdim
18344779Sdimnamespace clang {
19344779Sdimclass TagDecl;
20344779Sdim}
21344779Sdim
22314564Sdimnamespace lldb_private {
23314564Sdimstruct ClangUtil {
24314564Sdim  static bool IsClangType(const CompilerType &ct);
25303241Sdim
26314564Sdim  static clang::QualType GetQualType(const CompilerType &ct);
27303241Sdim
28314564Sdim  static clang::QualType GetCanonicalQualType(const CompilerType &ct);
29303241Sdim
30314564Sdim  static CompilerType RemoveFastQualifiers(const CompilerType &ct);
31344779Sdim
32344779Sdim  static clang::TagDecl *GetAsTagDecl(const CompilerType &type);
33303241Sdim};
34303241Sdim}
35303241Sdim
36303241Sdim#endif
37