1f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//===--- Attributes.h - Attributes header -----------------------*- C++ -*-===//
2f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//
3f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//                     The LLVM Compiler Infrastructure
4f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//
5f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// This file is distributed under the University of Illinois Open Source
6f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// License. See LICENSE.TXT for details.
7f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//
8f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//===----------------------------------------------------------------------===//
9f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
10f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#ifndef LLVM_CLANG_BASIC_ATTRIBUTES_H
11f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#define LLVM_CLANG_BASIC_ATTRIBUTES_H
12f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
13f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include "clang/Basic/LangOptions.h"
14f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include "clang/Basic/TargetInfo.h"
15f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
16f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotnamespace clang {
17f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
18f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotclass IdentifierInfo;
19f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
20f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotenum class AttrSyntax {
21f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  /// Is the identifier known as a GNU-style attribute?
22f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  GNU,
23f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  /// Is the identifier known as a __declspec-style attribute?
24f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  Declspec,
25f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  /// Is the identifier known as a [] Microsoft-style attribute?
26f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  Microsoft,
27f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  // Is the identifier known as a C++-style attribute?
28f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  CXX,
29f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  // Is the identifier known as a C-style attribute?
30f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  C,
31f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  // Is the identifier known as a pragma attribute?
32f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  Pragma
33f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot};
34f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
35f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot/// \brief Return the version number associated with the attribute if we
36f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot/// recognize and implement the attribute specified by the given information.
37f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotint hasAttribute(AttrSyntax Syntax, const IdentifierInfo *Scope,
38f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot                 const IdentifierInfo *Attr, const TargetInfo &Target,
39f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot                 const LangOptions &LangOpts);
40f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
41f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot} // end namespace clang
42f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
43f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#endif // LLVM_CLANG_BASIC_ATTRIBUTES_H
44