ClangUtil.h revision 344779
1303241Sdim//===-- ClangUtil.h ---------------------------------------------*- C++ -*-===//
2303241Sdim//
3303241Sdim//                     The LLVM Compiler Infrastructure
4303241Sdim//
5303241Sdim// This file is distributed under the University of Illinois Open Source
6303241Sdim// License. See LICENSE.TXT for details.
7303241Sdim//
8303241Sdim// A collection of helper methods and data structures for manipulating clang
9303241Sdim// types and decls.
10303241Sdim//===----------------------------------------------------------------------===//
11303241Sdim
12303241Sdim#ifndef LLDB_SYMBOL_CLANGUTIL_H
13303241Sdim#define LLDB_SYMBOL_CLANGUTIL_H
14303241Sdim
15303241Sdim#include "clang/AST/Type.h"
16303241Sdim
17303241Sdim#include "lldb/Symbol/CompilerType.h"
18303241Sdim
19344779Sdimnamespace clang {
20344779Sdimclass TagDecl;
21344779Sdim}
22344779Sdim
23314564Sdimnamespace lldb_private {
24314564Sdimstruct ClangUtil {
25314564Sdim  static bool IsClangType(const CompilerType &ct);
26303241Sdim
27314564Sdim  static clang::QualType GetQualType(const CompilerType &ct);
28303241Sdim
29314564Sdim  static clang::QualType GetCanonicalQualType(const CompilerType &ct);
30303241Sdim
31314564Sdim  static CompilerType RemoveFastQualifiers(const CompilerType &ct);
32344779Sdim
33344779Sdim  static clang::TagDecl *GetAsTagDecl(const CompilerType &type);
34303241Sdim};
35303241Sdim}
36303241Sdim
37303241Sdim#endif
38