//===- ClangAttrEmitter.cpp - Generate Clang attribute handling =-*- C++ -*--=////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// These tablegen backends emit Clang attribute processing code////===----------------------------------------------------------------------===//#include"llvm/ADT/SmallString.h"#include"llvm/ADT/StringSwitch.h"#include"llvm/TableGen/Record.h"#include"llvm/TableGen/StringMatcher.h"#include"llvm/TableGen/TableGenBackend.h"#include<algorithm>#include<cctype>usingnamespacellvm;staticconststd::vector<StringRef>getValueAsListOfStrings(Record&R,StringRefFieldName){ListInit*List=R.getValueAsListInit(FieldName);assert(List&&"Got a null ListInit");std::vector<StringRef>Strings;Strings.reserve(List->getSize());for(ListInit::const_iterator