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