Attributes.h revision 296417
1317019Sdim//===--- Attributes.h - Attributes header -----------------------*- C++ -*-===// 2317019Sdim// 3353358Sdim// The LLVM Compiler Infrastructure 4353358Sdim// 5353358Sdim// This file is distributed under the University of Illinois Open Source 6317019Sdim// License. See LICENSE.TXT for details. 7317019Sdim// 8317019Sdim//===----------------------------------------------------------------------===// 9317019Sdim 10317019Sdim#ifndef LLVM_CLANG_BASIC_ATTRIBUTES_H 11317019Sdim#define LLVM_CLANG_BASIC_ATTRIBUTES_H 12317019Sdim 13317019Sdim#include "clang/Basic/LangOptions.h" 14317019Sdim#include "clang/Basic/TargetInfo.h" 15317019Sdim 16317019Sdimnamespace clang { 17317019Sdim 18317019Sdimclass IdentifierInfo; 19317019Sdim 20317019Sdimenum class AttrSyntax { 21317019Sdim /// Is the identifier known as a GNU-style attribute? 22317019Sdim GNU, 23317019Sdim /// Is the identifier known as a __declspec-style attribute? 24317019Sdim Declspec, 25317019Sdim // Is the identifier known as a C++-style attribute? 26317019Sdim CXX, 27317019Sdim // Is the identifier known as a pragma attribute? 28317019Sdim Pragma 29317019Sdim}; 30317019Sdim 31317019Sdim/// \brief Return the version number associated with the attribute if we 32317019Sdim/// recognize and implement the attribute specified by the given information. 33317019Sdimint hasAttribute(AttrSyntax Syntax, const IdentifierInfo *Scope, 34317019Sdim const IdentifierInfo *Attr, const TargetInfo &Target, 35317019Sdim const LangOptions &LangOpts); 36317019Sdim 37317019Sdim} // end namespace clang 38341825Sdim 39317019Sdim#endif // LLVM_CLANG_BASIC_ATTRIBUTES_H 40317019Sdim