now that we have a centralized place to do so, add some using declarations for

some common llvm types: stringref and smallvector.  This cleans up the codebase
quite a bit.

llvm-svn: 135576
This commit is contained in:
Chris Lattner 2011-07-20 06:58:45 +00:00
parent 345b6b45c1
commit 01cf8db38b
120 changed files with 687 additions and 663 deletions

View File

@ -37,17 +37,17 @@ namespace arcmt {
/// ///
/// \returns false if no error is produced, true otherwise. /// \returns false if no error is produced, true otherwise.
bool checkForManualIssues(CompilerInvocation &CI, bool checkForManualIssues(CompilerInvocation &CI,
llvm::StringRef Filename, InputKind Kind, StringRef Filename, InputKind Kind,
DiagnosticClient *DiagClient, DiagnosticClient *DiagClient,
bool emitPremigrationARCErrors = false, bool emitPremigrationARCErrors = false,
llvm::StringRef plistOut = llvm::StringRef()); StringRef plistOut = StringRef());
/// \brief Works similar to checkForManualIssues but instead of checking, it /// \brief Works similar to checkForManualIssues but instead of checking, it
/// applies automatic modifications to source files to conform to ARC. /// applies automatic modifications to source files to conform to ARC.
/// ///
/// \returns false if no error is produced, true otherwise. /// \returns false if no error is produced, true otherwise.
bool applyTransformations(CompilerInvocation &origCI, bool applyTransformations(CompilerInvocation &origCI,
llvm::StringRef Filename, InputKind Kind, StringRef Filename, InputKind Kind,
DiagnosticClient *DiagClient); DiagnosticClient *DiagClient);
/// \brief Applies automatic modifications and produces temporary files /// \brief Applies automatic modifications and produces temporary files
@ -62,18 +62,18 @@ bool applyTransformations(CompilerInvocation &origCI,
/// ///
/// \returns false if no error is produced, true otherwise. /// \returns false if no error is produced, true otherwise.
bool migrateWithTemporaryFiles(CompilerInvocation &origCI, bool migrateWithTemporaryFiles(CompilerInvocation &origCI,
llvm::StringRef Filename, InputKind Kind, StringRef Filename, InputKind Kind,
DiagnosticClient *DiagClient, DiagnosticClient *DiagClient,
llvm::StringRef outputDir, StringRef outputDir,
bool emitPremigrationARCErrors, bool emitPremigrationARCErrors,
llvm::StringRef plistOut); StringRef plistOut);
/// \brief Get the set of file remappings from the \arg outputDir path that /// \brief Get the set of file remappings from the \arg outputDir path that
/// migrateWithTemporaryFiles produced. /// migrateWithTemporaryFiles produced.
/// ///
/// \returns false if no error is produced, true otherwise. /// \returns false if no error is produced, true otherwise.
bool getFileRemappings(std::vector<std::pair<std::string,std::string> > &remap, bool getFileRemappings(std::vector<std::pair<std::string,std::string> > &remap,
llvm::StringRef outputDir, StringRef outputDir,
DiagnosticClient *DiagClient); DiagnosticClient *DiagClient);
typedef void (*TransformFn)(MigrationPass &pass); typedef void (*TransformFn)(MigrationPass &pass);
@ -87,7 +87,7 @@ class MigrationProcess {
public: public:
MigrationProcess(const CompilerInvocation &CI, DiagnosticClient *diagClient, MigrationProcess(const CompilerInvocation &CI, DiagnosticClient *diagClient,
llvm::StringRef outputDir = llvm::StringRef()); StringRef outputDir = StringRef());
class RewriteListener { class RewriteListener {
public: public:
@ -96,7 +96,7 @@ public:
virtual void start(ASTContext &Ctx) { } virtual void start(ASTContext &Ctx) { }
virtual void finish() { } virtual void finish() { }
virtual void insert(SourceLocation loc, llvm::StringRef text) { } virtual void insert(SourceLocation loc, StringRef text) { }
virtual void remove(CharSourceRange range) { } virtual void remove(CharSourceRange range) { }
}; };

View File

@ -40,8 +40,8 @@ protected:
virtual bool BeginInvocation(CompilerInstance &CI); virtual bool BeginInvocation(CompilerInstance &CI);
public: public:
MigrateAction(FrontendAction *WrappedAction, llvm::StringRef migrateDir, MigrateAction(FrontendAction *WrappedAction, StringRef migrateDir,
llvm::StringRef plistOut, StringRef plistOut,
bool emitPremigrationARCErrors); bool emitPremigrationARCErrors);
}; };

View File

@ -10,6 +10,7 @@
#ifndef LLVM_CLANG_ARCMIGRATE_FILEREMAPPER_H #ifndef LLVM_CLANG_ARCMIGRATE_FILEREMAPPER_H
#define LLVM_CLANG_ARCMIGRATE_FILEREMAPPER_H #define LLVM_CLANG_ARCMIGRATE_FILEREMAPPER_H
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/OwningPtr.h" #include "llvm/ADT/OwningPtr.h"
#include "llvm/ADT/PointerUnion.h" #include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/DenseMap.h" #include "llvm/ADT/DenseMap.h"
@ -41,32 +42,32 @@ public:
FileRemapper(); FileRemapper();
~FileRemapper(); ~FileRemapper();
bool initFromDisk(llvm::StringRef outputDir, Diagnostic &Diag, bool initFromDisk(StringRef outputDir, Diagnostic &Diag,
bool ignoreIfFilesChanged); bool ignoreIfFilesChanged);
bool flushToDisk(llvm::StringRef outputDir, Diagnostic &Diag); bool flushToDisk(StringRef outputDir, Diagnostic &Diag);
bool overwriteOriginal(Diagnostic &Diag, bool overwriteOriginal(Diagnostic &Diag,
llvm::StringRef outputDir = llvm::StringRef()); StringRef outputDir = StringRef());
void remap(llvm::StringRef filePath, llvm::MemoryBuffer *memBuf); void remap(StringRef filePath, llvm::MemoryBuffer *memBuf);
void remap(llvm::StringRef filePath, llvm::StringRef newPath); void remap(StringRef filePath, StringRef newPath);
void applyMappings(CompilerInvocation &CI) const; void applyMappings(CompilerInvocation &CI) const;
void transferMappingsAndClear(CompilerInvocation &CI); void transferMappingsAndClear(CompilerInvocation &CI);
void clear(llvm::StringRef outputDir = llvm::StringRef()); void clear(StringRef outputDir = StringRef());
private: private:
void remap(const FileEntry *file, llvm::MemoryBuffer *memBuf); void remap(const FileEntry *file, llvm::MemoryBuffer *memBuf);
void remap(const FileEntry *file, const FileEntry *newfile); void remap(const FileEntry *file, const FileEntry *newfile);
const FileEntry *getOriginalFile(llvm::StringRef filePath); const FileEntry *getOriginalFile(StringRef filePath);
void resetTarget(Target &targ); void resetTarget(Target &targ);
bool report(const std::string &err, Diagnostic &Diag); bool report(const std::string &err, Diagnostic &Diag);
std::string getRemapInfoFile(llvm::StringRef outputDir); std::string getRemapInfoFile(StringRef outputDir);
}; };
} // end namespace arcmt } // end namespace arcmt

View File

@ -599,7 +599,7 @@ public:
} }
/// This builds the struct used for __block variables. /// This builds the struct used for __block variables.
QualType BuildByRefType(llvm::StringRef DeclName, QualType Ty) const; QualType BuildByRefType(StringRef DeclName, QualType Ty) const;
/// Returns true iff we need copy/dispose helpers for the given type. /// Returns true iff we need copy/dispose helpers for the given type.
bool BlockRequiresCopying(QualType Ty) const; bool BlockRequiresCopying(QualType Ty) const;
@ -1166,11 +1166,11 @@ public:
MangleContext *createMangleContext(); MangleContext *createMangleContext();
void ShallowCollectObjCIvars(const ObjCInterfaceDecl *OI, void ShallowCollectObjCIvars(const ObjCInterfaceDecl *OI,
llvm::SmallVectorImpl<ObjCIvarDecl*> &Ivars) SmallVectorImpl<ObjCIvarDecl*> &Ivars)
const; const;
void DeepCollectObjCIvars(const ObjCInterfaceDecl *OI, bool leafClass, void DeepCollectObjCIvars(const ObjCInterfaceDecl *OI, bool leafClass,
llvm::SmallVectorImpl<ObjCIvarDecl*> &Ivars) const; SmallVectorImpl<ObjCIvarDecl*> &Ivars) const;
unsigned CountNonClassIvars(const ObjCInterfaceDecl *OI) const; unsigned CountNonClassIvars(const ObjCInterfaceDecl *OI) const;
void CollectInheritedProtocols(const Decl *CDecl, void CollectInheritedProtocols(const Decl *CDecl,
@ -1644,7 +1644,7 @@ private:
private: private:
/// \brief A set of deallocations that should be performed when the /// \brief A set of deallocations that should be performed when the
/// ASTContext is destroyed. /// ASTContext is destroyed.
llvm::SmallVector<std::pair<void (*)(void*), void *>, 16> Deallocations; SmallVector<std::pair<void (*)(void*), void *>, 16> Deallocations;
// FIXME: This currently contains the set of StoredDeclMaps used // FIXME: This currently contains the set of StoredDeclMaps used
// by DeclContext objects. This probably should not be in ASTContext, // by DeclContext objects. This probably should not be in ASTContext,
@ -1660,13 +1660,13 @@ private:
}; };
/// @brief Utility function for constructing a nullary selector. /// @brief Utility function for constructing a nullary selector.
static inline Selector GetNullarySelector(llvm::StringRef name, ASTContext& Ctx) { static inline Selector GetNullarySelector(StringRef name, ASTContext& Ctx) {
IdentifierInfo* II = &Ctx.Idents.get(name); IdentifierInfo* II = &Ctx.Idents.get(name);
return Ctx.Selectors.getSelector(0, &II); return Ctx.Selectors.getSelector(0, &II);
} }
/// @brief Utility function for constructing an unary selector. /// @brief Utility function for constructing an unary selector.
static inline Selector GetUnarySelector(llvm::StringRef name, ASTContext& Ctx) { static inline Selector GetUnarySelector(StringRef name, ASTContext& Ctx) {
IdentifierInfo* II = &Ctx.Idents.get(name); IdentifierInfo* II = &Ctx.Idents.get(name);
return Ctx.Selectors.getSelector(1, &II); return Ctx.Selectors.getSelector(1, &II);
} }

View File

@ -42,9 +42,9 @@ namespace clang {
unsigned ArgLen, unsigned ArgLen,
const Diagnostic::ArgumentValue *PrevArgs, const Diagnostic::ArgumentValue *PrevArgs,
unsigned NumPrevArgs, unsigned NumPrevArgs,
llvm::SmallVectorImpl<char> &Output, SmallVectorImpl<char> &Output,
void *Cookie, void *Cookie,
llvm::SmallVectorImpl<intptr_t> &QualTypeVals); SmallVectorImpl<intptr_t> &QualTypeVals);
} // end namespace clang } // end namespace clang
#endif #endif

View File

@ -67,7 +67,7 @@ namespace clang {
/// \brief Imported, anonymous tag declarations that are missing their /// \brief Imported, anonymous tag declarations that are missing their
/// corresponding typedefs. /// corresponding typedefs.
llvm::SmallVector<TagDecl *, 4> AnonTagsWithPendingTypedefs; SmallVector<TagDecl *, 4> AnonTagsWithPendingTypedefs;
/// \brief Declaration (from, to) pairs that are known not to be equivalent /// \brief Declaration (from, to) pairs that are known not to be equivalent
/// (which we have already complained about). /// (which we have already complained about).

View File

@ -137,8 +137,8 @@ public:
#include "clang/AST/Attrs.inc" #include "clang/AST/Attrs.inc"
/// AttrVec - A vector of Attr, which is how they are stored on the AST. /// AttrVec - A vector of Attr, which is how they are stored on the AST.
typedef llvm::SmallVector<Attr*, 2> AttrVec; typedef SmallVector<Attr*, 2> AttrVec;
typedef llvm::SmallVector<const Attr*, 2> ConstAttrVec; typedef SmallVector<const Attr*, 2> ConstAttrVec;
/// DestroyAttrs - Destroy the contents of an AttrVec. /// DestroyAttrs - Destroy the contents of an AttrVec.
inline void DestroyAttrs (AttrVec& V, ASTContext &C) { inline void DestroyAttrs (AttrVec& V, ASTContext &C) {

View File

@ -66,7 +66,7 @@ struct CXXBasePathElement {
/// structure, which captures both the link from a derived class to one of its /// structure, which captures both the link from a derived class to one of its
/// direct bases and identification describing which base class /// direct bases and identification describing which base class
/// subobject is being used. /// subobject is being used.
class CXXBasePath : public llvm::SmallVector<CXXBasePathElement, 4> { class CXXBasePath : public SmallVector<CXXBasePathElement, 4> {
public: public:
CXXBasePath() : Access(AS_public) {} CXXBasePath() : Access(AS_public) {}
@ -80,7 +80,7 @@ public:
DeclContext::lookup_result Decls; DeclContext::lookup_result Decls;
void clear() { void clear() {
llvm::SmallVectorImpl<CXXBasePathElement>::clear(); SmallVectorImpl<CXXBasePathElement>::clear();
Access = AS_public; Access = AS_public;
} }
}; };
@ -272,14 +272,14 @@ struct UniqueVirtualMethod {
/// pair is the virtual method that overrides it (including the /// pair is the virtual method that overrides it (including the
/// subobject in which that virtual function occurs). /// subobject in which that virtual function occurs).
class OverridingMethods { class OverridingMethods {
llvm::DenseMap<unsigned, llvm::SmallVector<UniqueVirtualMethod, 4> > llvm::DenseMap<unsigned, SmallVector<UniqueVirtualMethod, 4> >
Overrides; Overrides;
public: public:
// Iterate over the set of subobjects that have overriding methods. // Iterate over the set of subobjects that have overriding methods.
typedef llvm::DenseMap<unsigned, llvm::SmallVector<UniqueVirtualMethod, 4> > typedef llvm::DenseMap<unsigned, SmallVector<UniqueVirtualMethod, 4> >
::iterator iterator; ::iterator iterator;
typedef llvm::DenseMap<unsigned, llvm::SmallVector<UniqueVirtualMethod, 4> > typedef llvm::DenseMap<unsigned, SmallVector<UniqueVirtualMethod, 4> >
::const_iterator const_iterator; ::const_iterator const_iterator;
iterator begin() { return Overrides.begin(); } iterator begin() { return Overrides.begin(); }
const_iterator begin() const { return Overrides.begin(); } const_iterator begin() const { return Overrides.begin(); }
@ -289,9 +289,9 @@ public:
// Iterate over the set of overriding virtual methods in a given // Iterate over the set of overriding virtual methods in a given
// subobject. // subobject.
typedef llvm::SmallVector<UniqueVirtualMethod, 4>::iterator typedef SmallVector<UniqueVirtualMethod, 4>::iterator
overriding_iterator; overriding_iterator;
typedef llvm::SmallVector<UniqueVirtualMethod, 4>::const_iterator typedef SmallVector<UniqueVirtualMethod, 4>::const_iterator
overriding_const_iterator; overriding_const_iterator;
// Add a new overriding method for a particular subobject. // Add a new overriding method for a particular subobject.

View File

@ -115,7 +115,7 @@ public:
/// getName - Get the name of identifier for this declaration as a StringRef. /// getName - Get the name of identifier for this declaration as a StringRef.
/// This requires that the declaration have a name and that it be a simple /// This requires that the declaration have a name and that it be a simple
/// identifier. /// identifier.
llvm::StringRef getName() const { StringRef getName() const {
assert(Name.isIdentifier() && "Name is not a simple identifier"); assert(Name.isIdentifier() && "Name is not a simple identifier");
return getIdentifier() ? getIdentifier()->getName() : ""; return getIdentifier() ? getIdentifier()->getName() : "";
} }

View File

@ -839,7 +839,7 @@ protected:
/// ///
/// \returns the first/last pair of declarations. /// \returns the first/last pair of declarations.
static std::pair<Decl *, Decl *> static std::pair<Decl *, Decl *>
BuildDeclChain(const llvm::SmallVectorImpl<Decl*> &Decls); BuildDeclChain(const SmallVectorImpl<Decl*> &Decls);
DeclContext(Decl::Kind K) DeclContext(Decl::Kind K)
: DeclKind(K), ExternalLexicalStorage(false), : DeclKind(K), ExternalLexicalStorage(false),

View File

@ -31,7 +31,7 @@ class DependentDiagnostic;
struct StoredDeclsList { struct StoredDeclsList {
/// DeclsTy - When in vector form, this is what the Data pointer points to. /// DeclsTy - When in vector form, this is what the Data pointer points to.
typedef llvm::SmallVector<NamedDecl *, 4> DeclsTy; typedef SmallVector<NamedDecl *, 4> DeclsTy;
/// \brief The stored data, which will be either a pointer to a NamedDecl, /// \brief The stored data, which will be either a pointer to a NamedDecl,
/// or a pointer to a vector. /// or a pointer to a vector.

View File

@ -1203,7 +1203,7 @@ public:
// //
// FIXME: This is a bad API, we are overriding the NamedDecl::getName, to mean // FIXME: This is a bad API, we are overriding the NamedDecl::getName, to mean
// something different. // something different.
llvm::StringRef getName() const { StringRef getName() const {
return Id ? Id->getNameStart() : ""; return Id ? Id->getNameStart() : "";
} }
@ -1320,7 +1320,7 @@ public:
// //
// FIXME: This is a bad API, we are overriding the NamedDecl::getName, to mean // FIXME: This is a bad API, we are overriding the NamedDecl::getName, to mean
// something different. // something different.
llvm::StringRef getName() const { StringRef getName() const {
assert(getIdentifier() && "Name is not a simple identifier"); assert(getIdentifier() && "Name is not a simple identifier");
return getIdentifier()->getName(); return getIdentifier()->getName();
} }

View File

@ -1864,7 +1864,7 @@ public:
/// \brief Retrieve the partial specializations as an ordered list. /// \brief Retrieve the partial specializations as an ordered list.
void getPartialSpecializations( void getPartialSpecializations(
llvm::SmallVectorImpl<ClassTemplatePartialSpecializationDecl *> &PS); SmallVectorImpl<ClassTemplatePartialSpecializationDecl *> &PS);
/// \brief Find a class template partial specialization with the given /// \brief Find a class template partial specialization with the given
/// type T. /// type T.

View File

@ -46,7 +46,7 @@ namespace clang {
class OpaqueValueExpr; class OpaqueValueExpr;
/// \brief A simple array of base specifiers. /// \brief A simple array of base specifiers.
typedef llvm::SmallVector<CXXBaseSpecifier*, 4> CXXCastPath; typedef SmallVector<CXXBaseSpecifier*, 4> CXXCastPath;
/// Expr - This represents one expression. Note that Expr's are subclasses of /// Expr - This represents one expression. Note that Expr's are subclasses of
/// Stmt. This allows an expression to be transparently used any place a Stmt /// Stmt. This allows an expression to be transparently used any place a Stmt
@ -1259,12 +1259,12 @@ class StringLiteral : public Expr {
public: public:
/// This is the "fully general" constructor that allows representation of /// This is the "fully general" constructor that allows representation of
/// strings formed from multiple concatenated tokens. /// strings formed from multiple concatenated tokens.
static StringLiteral *Create(ASTContext &C, llvm::StringRef Str, bool Wide, static StringLiteral *Create(ASTContext &C, StringRef Str, bool Wide,
bool Pascal, QualType Ty, bool Pascal, QualType Ty,
const SourceLocation *Loc, unsigned NumStrs); const SourceLocation *Loc, unsigned NumStrs);
/// Simple constructor for string literals made from one token. /// Simple constructor for string literals made from one token.
static StringLiteral *Create(ASTContext &C, llvm::StringRef Str, bool Wide, static StringLiteral *Create(ASTContext &C, StringRef Str, bool Wide,
bool Pascal, QualType Ty, SourceLocation Loc) { bool Pascal, QualType Ty, SourceLocation Loc) {
return Create(C, Str, Wide, Pascal, Ty, &Loc, 1); return Create(C, Str, Wide, Pascal, Ty, &Loc, 1);
} }
@ -1272,20 +1272,20 @@ public:
/// \brief Construct an empty string literal. /// \brief Construct an empty string literal.
static StringLiteral *CreateEmpty(ASTContext &C, unsigned NumStrs); static StringLiteral *CreateEmpty(ASTContext &C, unsigned NumStrs);
llvm::StringRef getString() const { StringRef getString() const {
return llvm::StringRef(StrData, ByteLength); return StringRef(StrData, ByteLength);
} }
unsigned getByteLength() const { return ByteLength; } unsigned getByteLength() const { return ByteLength; }
/// \brief Sets the string data to the given string data. /// \brief Sets the string data to the given string data.
void setString(ASTContext &C, llvm::StringRef Str); void setString(ASTContext &C, StringRef Str);
bool isWide() const { return IsWide; } bool isWide() const { return IsWide; }
bool isPascal() const { return IsPascal; } bool isPascal() const { return IsPascal; }
bool containsNonAsciiOrNull() const { bool containsNonAsciiOrNull() const {
llvm::StringRef Str = getString(); StringRef Str = getString();
for (unsigned i = 0, e = Str.size(); i != e; ++i) for (unsigned i = 0, e = Str.size(); i != e; ++i)
if (!isascii(Str[i]) || !Str[i]) if (!isascii(Str[i]) || !Str[i])
return true; return true;
@ -4045,7 +4045,7 @@ public:
/// getEncodedElementAccess - Encode the elements accessed into an llvm /// getEncodedElementAccess - Encode the elements accessed into an llvm
/// aggregate Constant of ConstantInt(s). /// aggregate Constant of ConstantInt(s).
void getEncodedElementAccess(llvm::SmallVectorImpl<unsigned> &Elts) const; void getEncodedElementAccess(SmallVectorImpl<unsigned> &Elts) const;
SourceRange getSourceRange() const { SourceRange getSourceRange() const {
return SourceRange(getBase()->getLocStart(), AccessorLoc); return SourceRange(getBase()->getLocStart(), AccessorLoc);

View File

@ -1007,7 +1007,7 @@ public:
} }
/// \brief Retrieve the kind of bridge being performed as a string. /// \brief Retrieve the kind of bridge being performed as a string.
llvm::StringRef getBridgeKindName() const; StringRef getBridgeKindName() const;
/// \brief The location of the bridge keyword. /// \brief The location of the bridge keyword.
SourceLocation getBridgeKeywordLoc() const { return BridgeKeywordLoc; } SourceLocation getBridgeKeywordLoc() const { return BridgeKeywordLoc; }

View File

@ -151,20 +151,20 @@ public:
/// The default implementation of this method is a no-op. /// The default implementation of this method is a no-op.
virtual ExternalLoadResult FindExternalLexicalDecls(const DeclContext *DC, virtual ExternalLoadResult FindExternalLexicalDecls(const DeclContext *DC,
bool (*isKindWeWant)(Decl::Kind), bool (*isKindWeWant)(Decl::Kind),
llvm::SmallVectorImpl<Decl*> &Result); SmallVectorImpl<Decl*> &Result);
/// \brief Finds all declarations lexically contained within the given /// \brief Finds all declarations lexically contained within the given
/// DeclContext. /// DeclContext.
/// ///
/// \return true if an error occurred /// \return true if an error occurred
ExternalLoadResult FindExternalLexicalDecls(const DeclContext *DC, ExternalLoadResult FindExternalLexicalDecls(const DeclContext *DC,
llvm::SmallVectorImpl<Decl*> &Result) { SmallVectorImpl<Decl*> &Result) {
return FindExternalLexicalDecls(DC, 0, Result); return FindExternalLexicalDecls(DC, 0, Result);
} }
template <typename DeclTy> template <typename DeclTy>
ExternalLoadResult FindExternalLexicalDeclsBy(const DeclContext *DC, ExternalLoadResult FindExternalLexicalDeclsBy(const DeclContext *DC,
llvm::SmallVectorImpl<Decl*> &Result) { SmallVectorImpl<Decl*> &Result) {
return FindExternalLexicalDecls(DC, DeclTy::classofKind, Result); return FindExternalLexicalDecls(DC, DeclTy::classofKind, Result);
} }
@ -231,7 +231,7 @@ protected:
static DeclContextLookupResult static DeclContextLookupResult
SetExternalVisibleDeclsForName(const DeclContext *DC, SetExternalVisibleDeclsForName(const DeclContext *DC,
DeclarationName Name, DeclarationName Name,
llvm::SmallVectorImpl<NamedDecl*> &Decls); SmallVectorImpl<NamedDecl*> &Decls);
static DeclContextLookupResult static DeclContextLookupResult
SetNoExternalVisibleDeclsForName(const DeclContext *DC, SetNoExternalVisibleDeclsForName(const DeclContext *DC,
@ -239,7 +239,7 @@ protected:
void MaterializeVisibleDeclsForName(const DeclContext *DC, void MaterializeVisibleDeclsForName(const DeclContext *DC,
DeclarationName Name, DeclarationName Name,
llvm::SmallVectorImpl<NamedDecl*> &Decls); SmallVectorImpl<NamedDecl*> &Decls);
}; };
/// \brief A lazy pointer to an AST node (of base type T) that resides /// \brief A lazy pointer to an AST node (of base type T) that resides

View File

@ -39,25 +39,25 @@ namespace clang {
/// external memory ownership. /// external memory ownership.
class MangleBuffer { class MangleBuffer {
public: public:
void setString(llvm::StringRef Ref) { void setString(StringRef Ref) {
String = Ref; String = Ref;
} }
llvm::SmallVectorImpl<char> &getBuffer() { SmallVectorImpl<char> &getBuffer() {
return Buffer; return Buffer;
} }
llvm::StringRef getString() const { StringRef getString() const {
if (!String.empty()) return String; if (!String.empty()) return String;
return Buffer.str(); return Buffer.str();
} }
operator llvm::StringRef() const { operator StringRef() const {
return getString(); return getString();
} }
private: private:
llvm::StringRef String; StringRef String;
llvm::SmallString<256> Buffer; llvm::SmallString<256> Buffer;
}; };

View File

@ -1307,7 +1307,7 @@ public:
/// true, otherwise return false. This handles canonicalization and /// true, otherwise return false. This handles canonicalization and
/// translation of strings from GCC syntax to LLVM IR syntax, and handles /// translation of strings from GCC syntax to LLVM IR syntax, and handles
//// flattening of named references like %[foo] to Operand AsmStringPiece's. //// flattening of named references like %[foo] to Operand AsmStringPiece's.
unsigned AnalyzeAsmString(llvm::SmallVectorImpl<AsmStringPiece> &Pieces, unsigned AnalyzeAsmString(SmallVectorImpl<AsmStringPiece> &Pieces,
ASTContext &C, unsigned &DiagOffs) const; ASTContext &C, unsigned &DiagOffs) const;
@ -1319,17 +1319,17 @@ public:
return Names[i]; return Names[i];
} }
llvm::StringRef getOutputName(unsigned i) const { StringRef getOutputName(unsigned i) const {
if (IdentifierInfo *II = getOutputIdentifier(i)) if (IdentifierInfo *II = getOutputIdentifier(i))
return II->getName(); return II->getName();
return llvm::StringRef(); return StringRef();
} }
/// getOutputConstraint - Return the constraint string for the specified /// getOutputConstraint - Return the constraint string for the specified
/// output operand. All output constraints are known to be non-empty (either /// output operand. All output constraints are known to be non-empty (either
/// '=' or '+'). /// '=' or '+').
llvm::StringRef getOutputConstraint(unsigned i) const; StringRef getOutputConstraint(unsigned i) const;
const StringLiteral *getOutputConstraintLiteral(unsigned i) const { const StringLiteral *getOutputConstraintLiteral(unsigned i) const {
return Constraints[i]; return Constraints[i];
@ -1363,16 +1363,16 @@ public:
return Names[i + NumOutputs]; return Names[i + NumOutputs];
} }
llvm::StringRef getInputName(unsigned i) const { StringRef getInputName(unsigned i) const {
if (IdentifierInfo *II = getInputIdentifier(i)) if (IdentifierInfo *II = getInputIdentifier(i))
return II->getName(); return II->getName();
return llvm::StringRef(); return StringRef();
} }
/// getInputConstraint - Return the specified input constraint. Unlike output /// getInputConstraint - Return the specified input constraint. Unlike output
/// constraints, these can be empty. /// constraints, these can be empty.
llvm::StringRef getInputConstraint(unsigned i) const; StringRef getInputConstraint(unsigned i) const;
const StringLiteral *getInputConstraintLiteral(unsigned i) const { const StringLiteral *getInputConstraintLiteral(unsigned i) const {
return Constraints[i + NumOutputs]; return Constraints[i + NumOutputs];
@ -1402,7 +1402,7 @@ public:
/// getNamedOperand - Given a symbolic operand reference like %[foo], /// getNamedOperand - Given a symbolic operand reference like %[foo],
/// translate this into a numeric value needed to reference the same operand. /// translate this into a numeric value needed to reference the same operand.
/// This returns -1 if the operand name is invalid. /// This returns -1 if the operand name is invalid.
int getNamedOperand(llvm::StringRef SymbolicName) const; int getNamedOperand(StringRef SymbolicName) const;
unsigned getNumClobbers() const { return NumClobbers; } unsigned getNumClobbers() const { return NumClobbers; }
StringLiteral *getClobber(unsigned i) { return Clobbers[i]; } StringLiteral *getClobber(unsigned i) { return Clobbers[i]; }

View File

@ -515,7 +515,7 @@ public:
/// A convenient class for passing around template argument /// A convenient class for passing around template argument
/// information. Designed to be passed by reference. /// information. Designed to be passed by reference.
class TemplateArgumentListInfo { class TemplateArgumentListInfo {
llvm::SmallVector<TemplateArgumentLoc, 8> Arguments; SmallVector<TemplateArgumentLoc, 8> Arguments;
SourceLocation LAngleLoc; SourceLocation LAngleLoc;
SourceLocation RAngleLoc; SourceLocation RAngleLoc;

View File

@ -2630,7 +2630,7 @@ public:
return getResultType().getNonLValueExprType(Context); return getResultType().getNonLValueExprType(Context);
} }
static llvm::StringRef getNameForCallConv(CallingConv CC); static StringRef getNameForCallConv(CallingConv CC);
static bool classof(const Type *T) { static bool classof(const Type *T) {
return T->getTypeClass() == FunctionNoProto || return T->getTypeClass() == FunctionNoProto ||

View File

@ -25,7 +25,7 @@ namespace clang {
/// non-const iterator. /// non-const iterator.
class UnresolvedSetIterator { class UnresolvedSetIterator {
private: private:
typedef llvm::SmallVectorImpl<DeclAccessPair> DeclsTy; typedef SmallVectorImpl<DeclAccessPair> DeclsTy;
typedef DeclsTy::iterator IteratorTy; typedef DeclsTy::iterator IteratorTy;
IteratorTy ir; IteratorTy ir;
@ -177,7 +177,7 @@ private:
/// A set of unresolved declarations /// A set of unresolved declarations
template <unsigned InlineCapacity> class UnresolvedSet : template <unsigned InlineCapacity> class UnresolvedSet :
public UnresolvedSetImpl { public UnresolvedSetImpl {
llvm::SmallVector<DeclAccessPair, InlineCapacity> Decls; SmallVector<DeclAccessPair, InlineCapacity> Decls;
}; };

View File

@ -164,8 +164,8 @@ public:
return Position; return Position;
} }
llvm::StringRef getCharacters() const { StringRef getCharacters() const {
return llvm::StringRef(getStart(), getLength()); return StringRef(getStart(), getLength());
} }
bool consumesDataArgument() const { bool consumesDataArgument() const {

View File

@ -33,8 +33,8 @@ namespace cocoa {
return deriveNamingConvention(S, MD) == CreateRule; return deriveNamingConvention(S, MD) == CreateRule;
} }
bool isRefType(QualType RetTy, llvm::StringRef Prefix, bool isRefType(QualType RetTy, StringRef Prefix,
llvm::StringRef Name = llvm::StringRef()); StringRef Name = StringRef());
bool isCocoaObjectRef(QualType T); bool isCocoaObjectRef(QualType T);
@ -43,7 +43,7 @@ namespace cocoa {
namespace coreFoundation { namespace coreFoundation {
bool isCFObjectRef(QualType T); bool isCFObjectRef(QualType T);
bool followsCreateRule(llvm::StringRef functionName); bool followsCreateRule(StringRef functionName);
} }
}} // end: "clang:ento" }} // end: "clang:ento"

View File

@ -30,7 +30,7 @@ namespace clang {
class DataflowWorkListTy { class DataflowWorkListTy {
llvm::DenseMap<const CFGBlock*, unsigned char> BlockSet; llvm::DenseMap<const CFGBlock*, unsigned char> BlockSet;
llvm::SmallVector<const CFGBlock *, 10> BlockQueue; SmallVector<const CFGBlock *, 10> BlockQueue;
public: public:
/// enqueue - Add a block to the worklist. Blocks already on the /// enqueue - Add a block to the worklist. Blocks already on the
/// worklist are not added a second time. /// worklist are not added a second time.

View File

@ -15,16 +15,13 @@
#ifndef LLVM_CLANG_BASIC_BUILTINS_H #ifndef LLVM_CLANG_BASIC_BUILTINS_H
#define LLVM_CLANG_BASIC_BUILTINS_H #define LLVM_CLANG_BASIC_BUILTINS_H
#include "clang/Basic/LLVM.h"
#include <cstring> #include <cstring>
// VC++ defines 'alloca' as an object-like macro, which interferes with our // VC++ defines 'alloca' as an object-like macro, which interferes with our
// builtins. // builtins.
#undef alloca #undef alloca
namespace llvm {
template <typename T> class SmallVectorImpl;
}
namespace clang { namespace clang {
class TargetInfo; class TargetInfo;
class IdentifierTable; class IdentifierTable;
@ -73,7 +70,7 @@ public:
void InitializeBuiltins(IdentifierTable &Table, const LangOptions& LangOpts); void InitializeBuiltins(IdentifierTable &Table, const LangOptions& LangOpts);
/// \brief Popular the vector with the names of all of the builtins. /// \brief Popular the vector with the names of all of the builtins.
void GetBuiltinNames(llvm::SmallVectorImpl<const char *> &Names, void GetBuiltinNames(SmallVectorImpl<const char *> &Names,
bool NoBuiltins); bool NoBuiltins);
/// Builtin::GetName - Return the identifier name for the specified builtin, /// Builtin::GetName - Return the identifier name for the specified builtin,

View File

@ -15,6 +15,7 @@
#ifndef LLVM_CLANG_BASIC_DELAYEDCLEANUPPOOL_H #ifndef LLVM_CLANG_BASIC_DELAYEDCLEANUPPOOL_H
#define LLVM_CLANG_BASIC_DELAYEDCLEANUPPOOL_H #define LLVM_CLANG_BASIC_DELAYEDCLEANUPPOOL_H
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/DenseMap.h" #include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h" #include "llvm/ADT/SmallVector.h"
@ -66,7 +67,7 @@ public:
} }
void doCleanup() { void doCleanup() {
for (llvm::SmallVector<std::pair<void *, CleanupFn>, 8>::reverse_iterator for (SmallVector<std::pair<void *, CleanupFn>, 8>::reverse_iterator
I = Cleanups.rbegin(), E = Cleanups.rend(); I != E; ++I) I = Cleanups.rbegin(), E = Cleanups.rend(); I != E; ++I)
I->second(I->first); I->second(I->first);
Cleanups.clear(); Cleanups.clear();
@ -79,7 +80,7 @@ public:
private: private:
llvm::DenseMap<void *, CleanupFn> Ptrs; llvm::DenseMap<void *, CleanupFn> Ptrs;
llvm::SmallVector<std::pair<void *, CleanupFn>, 8> Cleanups; SmallVector<std::pair<void *, CleanupFn>, 8> Cleanups;
template <typename T> template <typename T>
static void cleanupWithDelete(void *ptr) { static void cleanupWithDelete(void *ptr) {

View File

@ -65,7 +65,7 @@ public:
/// \brief Create a code modification hint that inserts the given /// \brief Create a code modification hint that inserts the given
/// code string at a specific location. /// code string at a specific location.
static FixItHint CreateInsertion(SourceLocation InsertionLoc, static FixItHint CreateInsertion(SourceLocation InsertionLoc,
llvm::StringRef Code) { StringRef Code) {
FixItHint Hint; FixItHint Hint;
Hint.RemoveRange = Hint.RemoveRange =
CharSourceRange(SourceRange(InsertionLoc, InsertionLoc), false); CharSourceRange(SourceRange(InsertionLoc, InsertionLoc), false);
@ -87,7 +87,7 @@ public:
/// \brief Create a code modification hint that replaces the given /// \brief Create a code modification hint that replaces the given
/// source range with the given code string. /// source range with the given code string.
static FixItHint CreateReplacement(CharSourceRange RemoveRange, static FixItHint CreateReplacement(CharSourceRange RemoveRange,
llvm::StringRef Code) { StringRef Code) {
FixItHint Hint; FixItHint Hint;
Hint.RemoveRange = RemoveRange; Hint.RemoveRange = RemoveRange;
Hint.CodeToInsert = Code; Hint.CodeToInsert = Code;
@ -95,7 +95,7 @@ public:
} }
static FixItHint CreateReplacement(SourceRange RemoveRange, static FixItHint CreateReplacement(SourceRange RemoveRange,
llvm::StringRef Code) { StringRef Code) {
return CreateReplacement(CharSourceRange::getTokenRange(RemoveRange), Code); return CreateReplacement(CharSourceRange::getTokenRange(RemoveRange), Code);
} }
}; };
@ -284,9 +284,9 @@ private:
const char *Argument, unsigned ArgumentLen, const char *Argument, unsigned ArgumentLen,
const ArgumentValue *PrevArgs, const ArgumentValue *PrevArgs,
unsigned NumPrevArgs, unsigned NumPrevArgs,
llvm::SmallVectorImpl<char> &Output, SmallVectorImpl<char> &Output,
void *Cookie, void *Cookie,
llvm::SmallVectorImpl<intptr_t> &QualTypeVals); SmallVectorImpl<intptr_t> &QualTypeVals);
void *ArgToStringCookie; void *ArgToStringCookie;
ArgToStringFnTy ArgToStringFn; ArgToStringFnTy ArgToStringFn;
@ -436,7 +436,7 @@ public:
/// ///
/// 'Loc' is the source location that this change of diagnostic state should /// 'Loc' is the source location that this change of diagnostic state should
/// take affect. It can be null if we are setting the state from command-line. /// take affect. It can be null if we are setting the state from command-line.
bool setDiagnosticGroupMapping(llvm::StringRef Group, diag::Mapping Map, bool setDiagnosticGroupMapping(StringRef Group, diag::Mapping Map,
SourceLocation Loc = SourceLocation()) { SourceLocation Loc = SourceLocation()) {
return Diags->setDiagnosticGroupMapping(Group, Map, Loc, *this); return Diags->setDiagnosticGroupMapping(Group, Map, Loc, *this);
} }
@ -458,7 +458,7 @@ public:
/// getCustomDiagID - Return an ID for a diagnostic with the specified message /// getCustomDiagID - Return an ID for a diagnostic with the specified message
/// and level. If this is the first request for this diagnosic, it is /// and level. If this is the first request for this diagnosic, it is
/// registered and created, otherwise the existing ID is returned. /// registered and created, otherwise the existing ID is returned.
unsigned getCustomDiagID(Level L, llvm::StringRef Message) { unsigned getCustomDiagID(Level L, StringRef Message) {
return Diags->getCustomDiagID((DiagnosticIDs::Level)L, Message); return Diags->getCustomDiagID((DiagnosticIDs::Level)L, Message);
} }
@ -468,8 +468,8 @@ public:
const char *Modifier, unsigned ModLen, const char *Modifier, unsigned ModLen,
const char *Argument, unsigned ArgLen, const char *Argument, unsigned ArgLen,
const ArgumentValue *PrevArgs, unsigned NumPrevArgs, const ArgumentValue *PrevArgs, unsigned NumPrevArgs,
llvm::SmallVectorImpl<char> &Output, SmallVectorImpl<char> &Output,
llvm::SmallVectorImpl<intptr_t> &QualTypeVals) const { SmallVectorImpl<intptr_t> &QualTypeVals) const {
ArgToStringFn(Kind, Val, Modifier, ModLen, Argument, ArgLen, ArgToStringFn(Kind, Val, Modifier, ModLen, Argument, ArgLen,
PrevArgs, NumPrevArgs, Output, ArgToStringCookie, PrevArgs, NumPrevArgs, Output, ArgToStringCookie,
QualTypeVals); QualTypeVals);
@ -533,8 +533,8 @@ public:
/// \param Arg2 A string argument that will be provided to the /// \param Arg2 A string argument that will be provided to the
/// diagnostic. A copy of this string will be stored in the /// diagnostic. A copy of this string will be stored in the
/// Diagnostic object itself. /// Diagnostic object itself.
void SetDelayedDiagnostic(unsigned DiagID, llvm::StringRef Arg1 = "", void SetDelayedDiagnostic(unsigned DiagID, StringRef Arg1 = "",
llvm::StringRef Arg2 = ""); StringRef Arg2 = "");
/// \brief Clear out the current diagnostic. /// \brief Clear out the current diagnostic.
void Clear() { CurDiagID = ~0U; } void Clear() { CurDiagID = ~0U; }
@ -744,7 +744,7 @@ public:
/// return Diag(...); /// return Diag(...);
operator bool() const { return true; } operator bool() const { return true; }
void AddString(llvm::StringRef S) const { void AddString(StringRef S) const {
assert(NumArgs < Diagnostic::MaxArguments && assert(NumArgs < Diagnostic::MaxArguments &&
"Too many arguments to diagnostic!"); "Too many arguments to diagnostic!");
if (DiagObj) { if (DiagObj) {
@ -779,7 +779,7 @@ public:
}; };
inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB,
llvm::StringRef S) { StringRef S) {
DB.AddString(S); DB.AddString(S);
return DB; return DB;
} }
@ -869,10 +869,10 @@ inline DiagnosticBuilder Diagnostic::Report(unsigned DiagID) {
/// about the currently in-flight diagnostic. /// about the currently in-flight diagnostic.
class DiagnosticInfo { class DiagnosticInfo {
const Diagnostic *DiagObj; const Diagnostic *DiagObj;
llvm::StringRef StoredDiagMessage; StringRef StoredDiagMessage;
public: public:
explicit DiagnosticInfo(const Diagnostic *DO) : DiagObj(DO) {} explicit DiagnosticInfo(const Diagnostic *DO) : DiagObj(DO) {}
DiagnosticInfo(const Diagnostic *DO, llvm::StringRef storedDiagMessage) DiagnosticInfo(const Diagnostic *DO, StringRef storedDiagMessage)
: DiagObj(DO), StoredDiagMessage(storedDiagMessage) {} : DiagObj(DO), StoredDiagMessage(storedDiagMessage) {}
const Diagnostic *getDiags() const { return DiagObj; } const Diagnostic *getDiags() const { return DiagObj; }
@ -960,12 +960,12 @@ public:
/// FormatDiagnostic - Format this diagnostic into a string, substituting the /// FormatDiagnostic - Format this diagnostic into a string, substituting the
/// formal arguments into the %0 slots. The result is appended onto the Str /// formal arguments into the %0 slots. The result is appended onto the Str
/// array. /// array.
void FormatDiagnostic(llvm::SmallVectorImpl<char> &OutStr) const; void FormatDiagnostic(SmallVectorImpl<char> &OutStr) const;
/// FormatDiagnostic - Format the given format-string into the /// FormatDiagnostic - Format the given format-string into the
/// output buffer using the arguments stored in this diagnostic. /// output buffer using the arguments stored in this diagnostic.
void FormatDiagnostic(const char *DiagStr, const char *DiagEnd, void FormatDiagnostic(const char *DiagStr, const char *DiagEnd,
llvm::SmallVectorImpl<char> &OutStr) const; SmallVectorImpl<char> &OutStr) const;
}; };
/** /**
@ -984,9 +984,9 @@ public:
StoredDiagnostic(); StoredDiagnostic();
StoredDiagnostic(Diagnostic::Level Level, const DiagnosticInfo &Info); StoredDiagnostic(Diagnostic::Level Level, const DiagnosticInfo &Info);
StoredDiagnostic(Diagnostic::Level Level, unsigned ID, StoredDiagnostic(Diagnostic::Level Level, unsigned ID,
llvm::StringRef Message); StringRef Message);
StoredDiagnostic(Diagnostic::Level Level, unsigned ID, StoredDiagnostic(Diagnostic::Level Level, unsigned ID,
llvm::StringRef Message, FullSourceLoc Loc, StringRef Message, FullSourceLoc Loc,
llvm::ArrayRef<CharSourceRange> Ranges, llvm::ArrayRef<CharSourceRange> Ranges,
llvm::ArrayRef<FixItHint> Fixits); llvm::ArrayRef<FixItHint> Fixits);
~StoredDiagnostic(); ~StoredDiagnostic();
@ -997,7 +997,7 @@ public:
unsigned getID() const { return ID; } unsigned getID() const { return ID; }
Diagnostic::Level getLevel() const { return Level; } Diagnostic::Level getLevel() const { return Level; }
const FullSourceLoc &getLocation() const { return Loc; } const FullSourceLoc &getLocation() const { return Loc; }
llvm::StringRef getMessage() const { return Message; } StringRef getMessage() const { return Message; }
void setLocation(FullSourceLoc Loc) { this->Loc = Loc; } void setLocation(FullSourceLoc Loc) { this->Loc = Loc; }

View File

@ -16,6 +16,7 @@
#include "llvm/ADT/IntrusiveRefCntPtr.h" #include "llvm/ADT/IntrusiveRefCntPtr.h"
#include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringRef.h"
#include "clang/Basic/LLVM.h"
namespace clang { namespace clang {
class Diagnostic; class Diagnostic;
@ -93,7 +94,7 @@ public:
/// getCustomDiagID - Return an ID for a diagnostic with the specified message /// getCustomDiagID - Return an ID for a diagnostic with the specified message
/// and level. If this is the first request for this diagnosic, it is /// and level. If this is the first request for this diagnosic, it is
/// registered and created, otherwise the existing ID is returned. /// registered and created, otherwise the existing ID is returned.
unsigned getCustomDiagID(Level L, llvm::StringRef Message); unsigned getCustomDiagID(Level L, StringRef Message);
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
// Diagnostic classification and reporting interfaces. // Diagnostic classification and reporting interfaces.
@ -101,7 +102,7 @@ public:
/// getDescription - Given a diagnostic ID, return a description of the /// getDescription - Given a diagnostic ID, return a description of the
/// issue. /// issue.
llvm::StringRef getDescription(unsigned DiagID) const; StringRef getDescription(unsigned DiagID) const;
/// isBuiltinWarningOrExtension - Return true if the unmapped diagnostic /// isBuiltinWarningOrExtension - Return true if the unmapped diagnostic
/// level of the specified diagnostic ID is a Warning or Extension. /// level of the specified diagnostic ID is a Warning or Extension.
@ -132,7 +133,7 @@ public:
/// getWarningOptionForDiag - Return the lowest-level warning option that /// getWarningOptionForDiag - Return the lowest-level warning option that
/// enables the specified diagnostic. If there is no -Wfoo flag that controls /// enables the specified diagnostic. If there is no -Wfoo flag that controls
/// the diagnostic, this returns null. /// the diagnostic, this returns null.
static llvm::StringRef getWarningOptionForDiag(unsigned DiagID); static StringRef getWarningOptionForDiag(unsigned DiagID);
/// getCategoryNumberForDiag - Return the category number that a specified /// getCategoryNumberForDiag - Return the category number that a specified
/// DiagID belongs to, or 0 if no category. /// DiagID belongs to, or 0 if no category.
@ -143,7 +144,7 @@ public:
/// getCategoryNameFromID - Given a category ID, return the name of the /// getCategoryNameFromID - Given a category ID, return the name of the
/// category. /// category.
static llvm::StringRef getCategoryNameFromID(unsigned CategoryID); static StringRef getCategoryNameFromID(unsigned CategoryID);
/// \brief Enumeration describing how the the emission of a diagnostic should /// \brief Enumeration describing how the the emission of a diagnostic should
/// be treated when it occurs during C++ template argument deduction. /// be treated when it occurs during C++ template argument deduction.
@ -182,24 +183,24 @@ public:
static SFINAEResponse getDiagnosticSFINAEResponse(unsigned DiagID); static SFINAEResponse getDiagnosticSFINAEResponse(unsigned DiagID);
/// getName - Given a diagnostic ID, return its name /// getName - Given a diagnostic ID, return its name
static llvm::StringRef getName(unsigned DiagID); static StringRef getName(unsigned DiagID);
/// getIdFromName - Given a diagnostic name, return its ID, or 0 /// getIdFromName - Given a diagnostic name, return its ID, or 0
static unsigned getIdFromName(llvm::StringRef Name); static unsigned getIdFromName(StringRef Name);
/// getBriefExplanation - Given a diagnostic ID, return a brief explanation /// getBriefExplanation - Given a diagnostic ID, return a brief explanation
/// of the issue /// of the issue
static llvm::StringRef getBriefExplanation(unsigned DiagID); static StringRef getBriefExplanation(unsigned DiagID);
/// getFullExplanation - Given a diagnostic ID, return a full explanation /// getFullExplanation - Given a diagnostic ID, return a full explanation
/// of the issue /// of the issue
static llvm::StringRef getFullExplanation(unsigned DiagID); static StringRef getFullExplanation(unsigned DiagID);
private: private:
/// setDiagnosticGroupMapping - Change an entire diagnostic group (e.g. /// setDiagnosticGroupMapping - Change an entire diagnostic group (e.g.
/// "unknown-pragmas" to have the specified mapping. This returns true and /// "unknown-pragmas" to have the specified mapping. This returns true and
/// ignores the request if "Group" was unknown, false otherwise. /// ignores the request if "Group" was unknown, false otherwise.
bool setDiagnosticGroupMapping(llvm::StringRef Group, diag::Mapping Map, bool setDiagnosticGroupMapping(StringRef Group, diag::Mapping Map,
SourceLocation Loc, Diagnostic &Diag) const; SourceLocation Loc, Diagnostic &Diag) const;
/// \brief Based on the way the client configured the Diagnostic /// \brief Based on the way the client configured the Diagnostic

View File

@ -15,6 +15,7 @@
#define LLVM_CLANG_FILEMANAGER_H #define LLVM_CLANG_FILEMANAGER_H
#include "clang/Basic/FileSystemOptions.h" #include "clang/Basic/FileSystemOptions.h"
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/IntrusiveRefCntPtr.h" #include "llvm/ADT/IntrusiveRefCntPtr.h"
#include "llvm/ADT/SmallVector.h" #include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringMap.h"
@ -123,9 +124,9 @@ class FileManager : public llvm::RefCountedBase<FileManager> {
/// \brief The virtual directories that we have allocated. For each /// \brief The virtual directories that we have allocated. For each
/// virtual file (e.g. foo/bar/baz.cpp), we add all of its parent /// virtual file (e.g. foo/bar/baz.cpp), we add all of its parent
/// directories (foo/ and foo/bar/) here. /// directories (foo/ and foo/bar/) here.
llvm::SmallVector<DirectoryEntry*, 4> VirtualDirectoryEntries; SmallVector<DirectoryEntry*, 4> VirtualDirectoryEntries;
/// \brief The virtual files that we have allocated. /// \brief The virtual files that we have allocated.
llvm::SmallVector<FileEntry*, 4> VirtualFileEntries; SmallVector<FileEntry*, 4> VirtualFileEntries;
/// SeenDirEntries/SeenFileEntries - This is a cache that maps paths /// SeenDirEntries/SeenFileEntries - This is a cache that maps paths
/// to directory/file entries (either real or virtual) we have /// to directory/file entries (either real or virtual) we have
@ -153,7 +154,7 @@ class FileManager : public llvm::RefCountedBase<FileManager> {
/// Add all ancestors of the given path (pointing to either a file /// Add all ancestors of the given path (pointing to either a file
/// or a directory) as virtual directories. /// or a directory) as virtual directories.
void addAncestorsAsVirtualDirs(llvm::StringRef Path); void addAncestorsAsVirtualDirs(StringRef Path);
public: public:
FileManager(const FileSystemOptions &FileSystemOpts); FileManager(const FileSystemOptions &FileSystemOpts);
@ -178,41 +179,41 @@ public:
/// getDirectory - Lookup, cache, and verify the specified directory /// getDirectory - Lookup, cache, and verify the specified directory
/// (real or virtual). This returns NULL if the directory doesn't exist. /// (real or virtual). This returns NULL if the directory doesn't exist.
/// ///
const DirectoryEntry *getDirectory(llvm::StringRef DirName); const DirectoryEntry *getDirectory(StringRef DirName);
/// \brief Lookup, cache, and verify the specified file (real or /// \brief Lookup, cache, and verify the specified file (real or
/// virtual). This returns NULL if the file doesn't exist. /// virtual). This returns NULL if the file doesn't exist.
/// ///
/// \param openFile if true and the file exists, it will be opened. /// \param openFile if true and the file exists, it will be opened.
const FileEntry *getFile(llvm::StringRef Filename, bool openFile = false); const FileEntry *getFile(StringRef Filename, bool openFile = false);
/// \brief Retrieve a file entry for a "virtual" file that acts as /// \brief Retrieve a file entry for a "virtual" file that acts as
/// if there were a file with the given name on disk. The file /// if there were a file with the given name on disk. The file
/// itself is not accessed. /// itself is not accessed.
const FileEntry *getVirtualFile(llvm::StringRef Filename, off_t Size, const FileEntry *getVirtualFile(StringRef Filename, off_t Size,
time_t ModificationTime); time_t ModificationTime);
/// \brief Open the specified file as a MemoryBuffer, returning a new /// \brief Open the specified file as a MemoryBuffer, returning a new
/// MemoryBuffer if successful, otherwise returning null. /// MemoryBuffer if successful, otherwise returning null.
llvm::MemoryBuffer *getBufferForFile(const FileEntry *Entry, llvm::MemoryBuffer *getBufferForFile(const FileEntry *Entry,
std::string *ErrorStr = 0); std::string *ErrorStr = 0);
llvm::MemoryBuffer *getBufferForFile(llvm::StringRef Filename, llvm::MemoryBuffer *getBufferForFile(StringRef Filename,
std::string *ErrorStr = 0); std::string *ErrorStr = 0);
// getNoncachedStatValue - Will get the 'stat' information for the given path. // getNoncachedStatValue - Will get the 'stat' information for the given path.
// If the path is relative, it will be resolved against the WorkingDir of the // If the path is relative, it will be resolved against the WorkingDir of the
// FileManager's FileSystemOptions. // FileManager's FileSystemOptions.
bool getNoncachedStatValue(llvm::StringRef Path, struct stat &StatBuf); bool getNoncachedStatValue(StringRef Path, struct stat &StatBuf);
/// \brief If path is not absolute and FileSystemOptions set the working /// \brief If path is not absolute and FileSystemOptions set the working
/// directory, the path is modified to be relative to the given /// directory, the path is modified to be relative to the given
/// working directory. /// working directory.
void FixupRelativePath(llvm::SmallVectorImpl<char> &path) const; void FixupRelativePath(SmallVectorImpl<char> &path) const;
/// \brief Produce an array mapping from the unique IDs assigned to each /// \brief Produce an array mapping from the unique IDs assigned to each
/// file to the corresponding FileEntry pointer. /// file to the corresponding FileEntry pointer.
void GetUniqueIDMapping( void GetUniqueIDMapping(
llvm::SmallVectorImpl<const FileEntry *> &UIDToFiles) const; SmallVectorImpl<const FileEntry *> &UIDToFiles) const;
void PrintStats() const; void PrintStats() const;
}; };

View File

@ -17,6 +17,7 @@
#include "clang/Basic/OperatorKinds.h" #include "clang/Basic/OperatorKinds.h"
#include "clang/Basic/TokenKinds.h" #include "clang/Basic/TokenKinds.h"
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringRef.h"
#include "llvm/ADT/SmallString.h" #include "llvm/ADT/SmallString.h"
@ -113,8 +114,8 @@ public:
} }
/// getName - Return the actual identifier string. /// getName - Return the actual identifier string.
llvm::StringRef getName() const { StringRef getName() const {
return llvm::StringRef(getNameStart(), getLength()); return StringRef(getNameStart(), getLength());
} }
/// hasMacroDefinition - Return true if this identifier is #defined to some /// hasMacroDefinition - Return true if this identifier is #defined to some
@ -299,8 +300,8 @@ public:
/// advances the iterator for the following string. /// advances the iterator for the following string.
/// ///
/// \returns The next string in the identifier table. If there is /// \returns The next string in the identifier table. If there is
/// no such string, returns an empty \c llvm::StringRef. /// no such string, returns an empty \c StringRef.
virtual llvm::StringRef Next() = 0; virtual StringRef Next() = 0;
}; };
/// IdentifierInfoLookup - An abstract class used by IdentifierTable that /// IdentifierInfoLookup - An abstract class used by IdentifierTable that
@ -314,7 +315,7 @@ public:
/// Unlike the version in IdentifierTable, this returns a pointer instead /// Unlike the version in IdentifierTable, this returns a pointer instead
/// of a reference. If the pointer is NULL then the IdentifierInfo cannot /// of a reference. If the pointer is NULL then the IdentifierInfo cannot
/// be found. /// be found.
virtual IdentifierInfo* get(llvm::StringRef Name) = 0; virtual IdentifierInfo* get(StringRef Name) = 0;
/// \brief Retrieve an iterator into the set of all identifiers /// \brief Retrieve an iterator into the set of all identifiers
/// known to this identifier lookup source. /// known to this identifier lookup source.
@ -376,7 +377,7 @@ public:
/// get - Return the identifier token info for the specified named identifier. /// get - Return the identifier token info for the specified named identifier.
/// ///
IdentifierInfo &get(llvm::StringRef Name) { IdentifierInfo &get(StringRef Name) {
llvm::StringMapEntry<IdentifierInfo*> &Entry = llvm::StringMapEntry<IdentifierInfo*> &Entry =
HashTable.GetOrCreateValue(Name); HashTable.GetOrCreateValue(Name);
@ -405,7 +406,7 @@ public:
return *II; return *II;
} }
IdentifierInfo &get(llvm::StringRef Name, tok::TokenKind TokenCode) { IdentifierInfo &get(StringRef Name, tok::TokenKind TokenCode) {
IdentifierInfo &II = get(Name); IdentifierInfo &II = get(Name);
II.TokenID = TokenCode; II.TokenID = TokenCode;
return II; return II;
@ -417,7 +418,7 @@ public:
/// This is a version of get() meant for external sources that want to /// This is a version of get() meant for external sources that want to
/// introduce or modify an identifier. If they called get(), they would /// introduce or modify an identifier. If they called get(), they would
/// likely end up in a recursion. /// likely end up in a recursion.
IdentifierInfo &getOwn(llvm::StringRef Name) { IdentifierInfo &getOwn(StringRef Name) {
llvm::StringMapEntry<IdentifierInfo*> &Entry = llvm::StringMapEntry<IdentifierInfo*> &Entry =
HashTable.GetOrCreateValue(Name); HashTable.GetOrCreateValue(Name);
@ -595,7 +596,7 @@ public:
/// ///
/// \returns the name for this slot, which may be the empty string if no /// \returns the name for this slot, which may be the empty string if no
/// name was supplied. /// name was supplied.
llvm::StringRef getNameForSlot(unsigned argIndex) const; StringRef getNameForSlot(unsigned argIndex) const;
/// getAsString - Derive the full selector name (e.g. "foo:bar:") and return /// getAsString - Derive the full selector name (e.g. "foo:bar:") and return
/// it as an std::string. /// it as an std::string.

View File

@ -15,9 +15,20 @@
#ifndef CLANG_BASIC_LLVM_H #ifndef CLANG_BASIC_LLVM_H
#define CLANG_BASIC_LLVM_H #define CLANG_BASIC_LLVM_H
// This should be the only #include. // This should be the only #include, force #includes of all the others on
// clients.
#include "llvm/Support/Casting.h" #include "llvm/Support/Casting.h"
namespace llvm {
// ADT's.
class StringRef;
template<typename T, unsigned N> class SmallVector;
template<typename T> class SmallVectorImpl;
// TODO: Twine, raw_ostream, DenseMap, ...
}
namespace clang { namespace clang {
// Casting operators. // Casting operators.
using llvm::isa; using llvm::isa;
@ -25,6 +36,11 @@ namespace clang {
using llvm::dyn_cast; using llvm::dyn_cast;
using llvm::dyn_cast_or_null; using llvm::dyn_cast_or_null;
using llvm::cast_or_null; using llvm::cast_or_null;
using llvm::StringRef;
using llvm::SmallVector;
using llvm::SmallVectorImpl;
} // end namespace clang. } // end namespace clang.
#endif #endif

View File

@ -240,7 +240,7 @@ public:
DiagStorage->DiagArgumentsVal[DiagStorage->NumDiagArgs++] = V; DiagStorage->DiagArgumentsVal[DiagStorage->NumDiagArgs++] = V;
} }
void AddString(llvm::StringRef V) const { void AddString(StringRef V) const {
if (!DiagStorage) if (!DiagStorage)
DiagStorage = getStorage(); DiagStorage = getStorage();
@ -302,7 +302,7 @@ public:
} }
friend inline const PartialDiagnostic &operator<<(const PartialDiagnostic &PD, friend inline const PartialDiagnostic &operator<<(const PartialDiagnostic &PD,
llvm::StringRef S) { StringRef S) {
PD.AddString(S); PD.AddString(S);
return PD; return PD;

View File

@ -14,6 +14,7 @@
#ifndef LLVM_CLANG_SOURCELOCATION_H #ifndef LLVM_CLANG_SOURCELOCATION_H
#define LLVM_CLANG_SOURCELOCATION_H #define LLVM_CLANG_SOURCELOCATION_H
#include "clang/Basic/LLVM.h"
#include "llvm/Support/PointerLikeTypeTraits.h" #include "llvm/Support/PointerLikeTypeTraits.h"
#include <utility> #include <utility>
#include <functional> #include <functional>
@ -22,7 +23,6 @@
namespace llvm { namespace llvm {
class MemoryBuffer; class MemoryBuffer;
class raw_ostream; class raw_ostream;
class StringRef;
template <typename T> struct DenseMapInfo; template <typename T> struct DenseMapInfo;
template <typename T> struct isPodLike; template <typename T> struct isPodLike;
} }
@ -290,7 +290,7 @@ public:
/// getBufferData - Return a StringRef to the source buffer data for the /// getBufferData - Return a StringRef to the source buffer data for the
/// specified FileID. /// specified FileID.
llvm::StringRef getBufferData(bool *Invalid = 0) const; StringRef getBufferData(bool *Invalid = 0) const;
/// getDecomposedLoc - Decompose the specified location into a raw FileID + /// getDecomposedLoc - Decompose the specified location into a raw FileID +
/// Offset pair. The first element is the FileID, the second is the /// Offset pair. The first element is the FileID, the second is the

View File

@ -692,7 +692,7 @@ public:
/// ///
/// \param FID The file ID whose contents will be returned. /// \param FID The file ID whose contents will be returned.
/// \param Invalid If non-NULL, will be set true if an error occurred. /// \param Invalid If non-NULL, will be set true if an error occurred.
llvm::StringRef getBufferData(FileID FID, bool *Invalid = 0) const; StringRef getBufferData(FileID FID, bool *Invalid = 0) const;
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
@ -939,7 +939,7 @@ public:
/// getLineTableFilenameID - Return the uniqued ID for the specified filename. /// getLineTableFilenameID - Return the uniqued ID for the specified filename.
/// ///
unsigned getLineTableFilenameID(llvm::StringRef Str); unsigned getLineTableFilenameID(StringRef Str);
/// AddLineNote - Add a line note to the line table for the FileID and offset /// AddLineNote - Add a line note to the line table for the FileID and offset
/// specified by Loc. If FilenameID is -1, it is considered to be /// specified by Loc. If FilenameID is -1, it is considered to be

View File

@ -97,7 +97,7 @@ public:
~LineTableInfo() {} ~LineTableInfo() {}
unsigned getLineTableFilenameID(llvm::StringRef Str); unsigned getLineTableFilenameID(StringRef Str);
const char *getFilename(unsigned ID) const { const char *getFilename(unsigned ID) const {
assert(ID < FilenamesByID.size() && "Invalid FilenameID"); assert(ID < FilenamesByID.size() && "Invalid FilenameID");
return FilenamesByID[ID]->getKeyData(); return FilenamesByID[ID]->getKeyData();

View File

@ -14,6 +14,7 @@
#ifndef LLVM_CLANG_BASIC_TARGETINFO_H #ifndef LLVM_CLANG_BASIC_TARGETINFO_H
#define LLVM_CLANG_BASIC_TARGETINFO_H #define LLVM_CLANG_BASIC_TARGETINFO_H
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/IntrusiveRefCntPtr.h" #include "llvm/ADT/IntrusiveRefCntPtr.h"
#include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringRef.h"
@ -82,7 +83,7 @@ protected:
TargetCXXABI CXXABI; TargetCXXABI CXXABI;
const LangAS::Map *AddrSpaceMap; const LangAS::Map *AddrSpaceMap;
mutable llvm::StringRef PlatformName; mutable StringRef PlatformName;
mutable VersionTuple PlatformMinVersion; mutable VersionTuple PlatformMinVersion;
unsigned HasAlignMac68kSupport : 1; unsigned HasAlignMac68kSupport : 1;
@ -306,16 +307,16 @@ public:
/// isValidClobber - Returns whether the passed in string is /// isValidClobber - Returns whether the passed in string is
/// a valid clobber in an inline asm statement. This is used by /// a valid clobber in an inline asm statement. This is used by
/// Sema. /// Sema.
bool isValidClobber(llvm::StringRef Name) const; bool isValidClobber(StringRef Name) const;
/// isValidGCCRegisterName - Returns whether the passed in string /// isValidGCCRegisterName - Returns whether the passed in string
/// is a valid register name according to GCC. This is used by Sema for /// is a valid register name according to GCC. This is used by Sema for
/// inline asm statements. /// inline asm statements.
bool isValidGCCRegisterName(llvm::StringRef Name) const; bool isValidGCCRegisterName(StringRef Name) const;
// getNormalizedGCCRegisterName - Returns the "normalized" GCC register name. // getNormalizedGCCRegisterName - Returns the "normalized" GCC register name.
// For example, on x86 it will return "ax" when "eax" is passed in. // For example, on x86 it will return "ax" when "eax" is passed in.
llvm::StringRef getNormalizedGCCRegisterName(llvm::StringRef Name) const; StringRef getNormalizedGCCRegisterName(StringRef Name) const;
struct ConstraintInfo { struct ConstraintInfo {
enum { enum {
@ -331,7 +332,7 @@ public:
std::string ConstraintStr; // constraint: "=rm" std::string ConstraintStr; // constraint: "=rm"
std::string Name; // Operand name: [foo] with no []'s. std::string Name; // Operand name: [foo] with no []'s.
public: public:
ConstraintInfo(llvm::StringRef ConstraintStr, llvm::StringRef Name) ConstraintInfo(StringRef ConstraintStr, StringRef Name)
: Flags(0), TiedOperand(-1), ConstraintStr(ConstraintStr.str()), : Flags(0), TiedOperand(-1), ConstraintStr(ConstraintStr.str()),
Name(Name.str()) {} Name(Name.str()) {}
@ -444,7 +445,7 @@ public:
/// and give good diagnostics in cases when the assembler or code generator /// and give good diagnostics in cases when the assembler or code generator
/// would otherwise reject the section specifier. /// would otherwise reject the section specifier.
/// ///
virtual std::string isValidSectionSpecifier(llvm::StringRef SR) const { virtual std::string isValidSectionSpecifier(StringRef SR) const {
return ""; return "";
} }
@ -565,7 +566,7 @@ public:
/// \brief Retrieve the name of the platform as it is used in the /// \brief Retrieve the name of the platform as it is used in the
/// availability attribute. /// availability attribute.
llvm::StringRef getPlatformName() const { return PlatformName; } StringRef getPlatformName() const { return PlatformName; }
/// \brief Retrieve the minimum desired version of the platform, to /// \brief Retrieve the minimum desired version of the platform, to
/// which the program should be compiled. /// which the program should be compiled.

View File

@ -37,7 +37,7 @@ protected:
virtual bool hasIRSupport() const; virtual bool hasIRSupport() const;
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
virtual void ExecuteAction(); virtual void ExecuteAction();

View File

@ -10,11 +10,9 @@
#ifndef CLANG_DRIVER_ACTION_H_ #ifndef CLANG_DRIVER_ACTION_H_
#define CLANG_DRIVER_ACTION_H_ #define CLANG_DRIVER_ACTION_H_
#include "llvm/ADT/SmallVector.h"
#include "clang/Driver/Types.h" #include "clang/Driver/Types.h"
#include "clang/Driver/Util.h" #include "clang/Driver/Util.h"
#include "clang/Basic/LLVM.h" #include "llvm/ADT/SmallVector.h"
namespace clang { namespace clang {
namespace driver { namespace driver {

View File

@ -51,7 +51,7 @@ namespace driver {
mutable unsigned OwnsValues : 1; mutable unsigned OwnsValues : 1;
/// The argument values, as C strings. /// The argument values, as C strings.
llvm::SmallVector<const char *, 2> Values; SmallVector<const char *, 2> Values;
public: public:
Arg(const Option *Opt, unsigned Index, const Arg *BaseArg = 0); Arg(const Option *Opt, unsigned Index, const Arg *BaseArg = 0);
@ -87,11 +87,11 @@ namespace driver {
return Values[N]; return Values[N];
} }
llvm::SmallVectorImpl<const char*> &getValues() { SmallVectorImpl<const char*> &getValues() {
return Values; return Values;
} }
bool containsValue(llvm::StringRef Value) const { bool containsValue(StringRef Value) const {
for (unsigned i = 0, e = getNumValues(); i != e; ++i) for (unsigned i = 0, e = getNumValues(); i != e; ++i)
if (Values[i] == Value) if (Values[i] == Value)
return true; return true;

View File

@ -10,6 +10,7 @@
#ifndef CLANG_DRIVER_ARGLIST_H_ #ifndef CLANG_DRIVER_ARGLIST_H_
#define CLANG_DRIVER_ARGLIST_H_ #define CLANG_DRIVER_ARGLIST_H_
#include "clang/Basic/LLVM.h"
#include "clang/Driver/OptSpecifier.h" #include "clang/Driver/OptSpecifier.h"
#include "clang/Driver/Util.h" #include "clang/Driver/Util.h"
#include "llvm/ADT/SmallVector.h" #include "llvm/ADT/SmallVector.h"
@ -34,7 +35,7 @@ namespace driver {
/// arg_iterator - Iterates through arguments stored inside an ArgList. /// arg_iterator - Iterates through arguments stored inside an ArgList.
class arg_iterator { class arg_iterator {
/// The current argument. /// The current argument.
llvm::SmallVectorImpl<Arg*>::const_iterator Current; SmallVectorImpl<Arg*>::const_iterator Current;
/// The argument list we are iterating over. /// The argument list we are iterating over.
const ArgList &Args; const ArgList &Args;
@ -58,7 +59,7 @@ namespace driver {
typedef std::forward_iterator_tag iterator_category; typedef std::forward_iterator_tag iterator_category;
typedef std::ptrdiff_t difference_type; typedef std::ptrdiff_t difference_type;
arg_iterator(llvm::SmallVectorImpl<Arg*>::const_iterator it, arg_iterator(SmallVectorImpl<Arg*>::const_iterator it,
const ArgList &_Args, OptSpecifier _Id0 = 0U, const ArgList &_Args, OptSpecifier _Id0 = 0U,
OptSpecifier _Id1 = 0U, OptSpecifier _Id2 = 0U) OptSpecifier _Id1 = 0U, OptSpecifier _Id2 = 0U)
: Current(it), Args(_Args), Id0(_Id0), Id1(_Id1), Id2(_Id2) { : Current(it), Args(_Args), Id0(_Id0), Id1(_Id1), Id2(_Id2) {
@ -101,7 +102,7 @@ namespace driver {
void operator=(const ArgList &); // DO NOT IMPLEMENT void operator=(const ArgList &); // DO NOT IMPLEMENT
public: public:
typedef llvm::SmallVector<Arg*, 16> arglist_type; typedef SmallVector<Arg*, 16> arglist_type;
typedef arglist_type::iterator iterator; typedef arglist_type::iterator iterator;
typedef arglist_type::const_iterator const_iterator; typedef arglist_type::const_iterator const_iterator;
typedef arglist_type::reverse_iterator reverse_iterator; typedef arglist_type::reverse_iterator reverse_iterator;
@ -195,8 +196,8 @@ namespace driver {
/// @{ /// @{
/// getLastArgValue - Return the value of the last argument, or a default. /// getLastArgValue - Return the value of the last argument, or a default.
llvm::StringRef getLastArgValue(OptSpecifier Id, StringRef getLastArgValue(OptSpecifier Id,
llvm::StringRef Default = "") const; StringRef Default = "") const;
/// getLastArgValue - Return the value of the last argument as an integer, /// getLastArgValue - Return the value of the last argument as an integer,
/// or a default. Emits an error if the argument is given, but non-integral. /// or a default. Emits an error if the argument is given, but non-integral.
@ -251,19 +252,19 @@ namespace driver {
/// MakeArgString - Construct a constant string pointer whose /// MakeArgString - Construct a constant string pointer whose
/// lifetime will match that of the ArgList. /// lifetime will match that of the ArgList.
virtual const char *MakeArgString(llvm::StringRef Str) const = 0; virtual const char *MakeArgString(StringRef Str) const = 0;
const char *MakeArgString(const char *Str) const { const char *MakeArgString(const char *Str) const {
return MakeArgString(llvm::StringRef(Str)); return MakeArgString(StringRef(Str));
} }
const char *MakeArgString(std::string Str) const { const char *MakeArgString(std::string Str) const {
return MakeArgString(llvm::StringRef(Str)); return MakeArgString(StringRef(Str));
} }
const char *MakeArgString(const llvm::Twine &Str) const; const char *MakeArgString(const llvm::Twine &Str) const;
/// \brief Create an arg string for (\arg LHS + \arg RHS), reusing the /// \brief Create an arg string for (\arg LHS + \arg RHS), reusing the
/// string at \arg Index if possible. /// string at \arg Index if possible.
const char *GetOrMakeJoinedArgString(unsigned Index, llvm::StringRef LHS, const char *GetOrMakeJoinedArgString(unsigned Index, StringRef LHS,
llvm::StringRef RHS) const; StringRef RHS) const;
/// @} /// @}
}; };
@ -304,10 +305,10 @@ namespace driver {
public: public:
/// MakeIndex - Get an index for the given string(s). /// MakeIndex - Get an index for the given string(s).
unsigned MakeIndex(llvm::StringRef String0) const; unsigned MakeIndex(StringRef String0) const;
unsigned MakeIndex(llvm::StringRef String0, llvm::StringRef String1) const; unsigned MakeIndex(StringRef String0, StringRef String1) const;
virtual const char *MakeArgString(llvm::StringRef Str) const; virtual const char *MakeArgString(StringRef Str) const;
/// @} /// @}
}; };
@ -346,7 +347,7 @@ namespace driver {
SynthesizedArgs.push_back(A); SynthesizedArgs.push_back(A);
} }
virtual const char *MakeArgString(llvm::StringRef Str) const; virtual const char *MakeArgString(StringRef Str) const;
/// AddFlagArg - Construct a new FlagArg for the given option \arg Id and /// AddFlagArg - Construct a new FlagArg for the given option \arg Id and
/// append it to the argument list. /// append it to the argument list.
@ -358,7 +359,7 @@ namespace driver {
/// \arg Id, with the provided \arg Value and append it to the argument /// \arg Id, with the provided \arg Value and append it to the argument
/// list. /// list.
void AddPositionalArg(const Arg *BaseArg, const Option *Opt, void AddPositionalArg(const Arg *BaseArg, const Option *Opt,
llvm::StringRef Value) { StringRef Value) {
append(MakePositionalArg(BaseArg, Opt, Value)); append(MakePositionalArg(BaseArg, Opt, Value));
} }
@ -367,7 +368,7 @@ namespace driver {
/// \arg Id, with the provided \arg Value and append it to the argument /// \arg Id, with the provided \arg Value and append it to the argument
/// list. /// list.
void AddSeparateArg(const Arg *BaseArg, const Option *Opt, void AddSeparateArg(const Arg *BaseArg, const Option *Opt,
llvm::StringRef Value) { StringRef Value) {
append(MakeSeparateArg(BaseArg, Opt, Value)); append(MakeSeparateArg(BaseArg, Opt, Value));
} }
@ -375,7 +376,7 @@ namespace driver {
/// AddJoinedArg - Construct a new Positional arg for the given option \arg /// AddJoinedArg - Construct a new Positional arg for the given option \arg
/// Id, with the provided \arg Value and append it to the argument list. /// Id, with the provided \arg Value and append it to the argument list.
void AddJoinedArg(const Arg *BaseArg, const Option *Opt, void AddJoinedArg(const Arg *BaseArg, const Option *Opt,
llvm::StringRef Value) { StringRef Value) {
append(MakeJoinedArg(BaseArg, Opt, Value)); append(MakeJoinedArg(BaseArg, Opt, Value));
} }
@ -387,17 +388,17 @@ namespace driver {
/// MakePositionalArg - Construct a new Positional arg for the /// MakePositionalArg - Construct a new Positional arg for the
/// given option \arg Id, with the provided \arg Value. /// given option \arg Id, with the provided \arg Value.
Arg *MakePositionalArg(const Arg *BaseArg, const Option *Opt, Arg *MakePositionalArg(const Arg *BaseArg, const Option *Opt,
llvm::StringRef Value) const; StringRef Value) const;
/// MakeSeparateArg - Construct a new Positional arg for the /// MakeSeparateArg - Construct a new Positional arg for the
/// given option \arg Id, with the provided \arg Value. /// given option \arg Id, with the provided \arg Value.
Arg *MakeSeparateArg(const Arg *BaseArg, const Option *Opt, Arg *MakeSeparateArg(const Arg *BaseArg, const Option *Opt,
llvm::StringRef Value) const; StringRef Value) const;
/// MakeJoinedArg - Construct a new Positional arg for the /// MakeJoinedArg - Construct a new Positional arg for the
/// given option \arg Id, with the provided \arg Value. /// given option \arg Id, with the provided \arg Value.
Arg *MakeJoinedArg(const Arg *BaseArg, const Option *Opt, Arg *MakeJoinedArg(const Arg *BaseArg, const Option *Opt,
llvm::StringRef Value) const; StringRef Value) const;
/// @} /// @}
}; };

View File

@ -75,7 +75,7 @@ public:
/// functionality. /// functionality.
/// FIXME: This type of customization should be removed in favor of the /// FIXME: This type of customization should be removed in favor of the
/// universal driver when it is ready. /// universal driver when it is ready.
typedef llvm::SmallVector<std::string, 4> prefix_list; typedef SmallVector<std::string, 4> prefix_list;
prefix_list PrefixDirs; prefix_list PrefixDirs;
/// sysroot, if present /// sysroot, if present
@ -173,9 +173,9 @@ private:
DerivedArgList *TranslateInputArgs(const InputArgList &Args) const; DerivedArgList *TranslateInputArgs(const InputArgList &Args) const;
public: public:
Driver(llvm::StringRef _ClangExecutable, Driver(StringRef _ClangExecutable,
llvm::StringRef _DefaultHostTriple, StringRef _DefaultHostTriple,
llvm::StringRef _DefaultImageName, StringRef _DefaultImageName,
bool IsProduction, bool CXXIsProduction, bool IsProduction, bool CXXIsProduction,
Diagnostic &_Diags); Diagnostic &_Diags);
~Driver(); ~Driver();
@ -209,7 +209,7 @@ public:
return InstalledDir.c_str(); return InstalledDir.c_str();
return Dir.c_str(); return Dir.c_str();
} }
void setInstalledDir(llvm::StringRef Value) { void setInstalledDir(StringRef Value) {
InstalledDir = Value; InstalledDir = Value;
} }

View File

@ -82,7 +82,7 @@ public:
/// JobList - A sequence of jobs to perform. /// JobList - A sequence of jobs to perform.
class JobList : public Job { class JobList : public Job {
public: public:
typedef llvm::SmallVector<Job*, 4> list_type; typedef SmallVector<Job*, 4> list_type;
typedef list_type::size_type size_type; typedef list_type::size_type size_type;
typedef list_type::iterator iterator; typedef list_type::iterator iterator;
typedef list_type::const_iterator const_iterator; typedef list_type::const_iterator const_iterator;

View File

@ -60,7 +60,7 @@ namespace driver {
OptSpecifier ID; OptSpecifier ID;
/// The option name. /// The option name.
llvm::StringRef Name; StringRef Name;
/// Group this option is a member of, if any. /// Group this option is a member of, if any.
const OptionGroup *Group; const OptionGroup *Group;
@ -99,7 +99,7 @@ namespace driver {
unsigned getID() const { return ID.getID(); } unsigned getID() const { return ID.getID(); }
OptionClass getKind() const { return Kind; } OptionClass getKind() const { return Kind; }
llvm::StringRef getName() const { return Name; } StringRef getName() const { return Name; }
const OptionGroup *getGroup() const { return Group; } const OptionGroup *getGroup() const { return Group; }
const Option *getAlias() const { return Alias; } const Option *getAlias() const { return Alias; }
@ -139,7 +139,7 @@ namespace driver {
/// getRenderName - Return the name to use when rendering this /// getRenderName - Return the name to use when rendering this
/// option. /// option.
llvm::StringRef getRenderName() const { StringRef getRenderName() const {
return getUnaliasedOption()->getName(); return getUnaliasedOption()->getName();
} }

View File

@ -10,9 +10,7 @@
#ifndef CLANG_DRIVER_TOOL_H_ #ifndef CLANG_DRIVER_TOOL_H_
#define CLANG_DRIVER_TOOL_H_ #define CLANG_DRIVER_TOOL_H_
namespace llvm { #include "clang/Basic/LLVM.h"
template<typename T, unsigned N> class SmallVector;
}
namespace clang { namespace clang {
namespace driver { namespace driver {
@ -23,7 +21,7 @@ namespace driver {
class JobAction; class JobAction;
class ToolChain; class ToolChain;
typedef llvm::SmallVector<InputInfo, 4> InputInfoList; typedef SmallVector<InputInfo, 4> InputInfoList;
/// Tool - Information on a specific compilation tool. /// Tool - Information on a specific compilation tool.
class Tool { class Tool {

View File

@ -32,7 +32,7 @@ namespace driver {
/// ToolChain - Access to tools for a single platform. /// ToolChain - Access to tools for a single platform.
class ToolChain { class ToolChain {
public: public:
typedef llvm::SmallVector<std::string, 4> path_list; typedef SmallVector<std::string, 4> path_list;
enum CXXStdlibType { enum CXXStdlibType {
CST_Libcxx, CST_Libcxx,
@ -63,9 +63,9 @@ public:
const llvm::Triple &getTriple() const { return Triple; } const llvm::Triple &getTriple() const { return Triple; }
llvm::Triple::ArchType getArch() const { return Triple.getArch(); } llvm::Triple::ArchType getArch() const { return Triple.getArch(); }
llvm::StringRef getArchName() const { return Triple.getArchName(); } StringRef getArchName() const { return Triple.getArchName(); }
llvm::StringRef getPlatform() const { return Triple.getVendorName(); } StringRef getPlatform() const { return Triple.getVendorName(); }
llvm::StringRef getOS() const { return Triple.getOSName(); } StringRef getOS() const { return Triple.getOSName(); }
std::string getTripleString() const { std::string getTripleString() const {
return Triple.getTriple(); return Triple.getTriple();

View File

@ -10,19 +10,17 @@
#ifndef CLANG_DRIVER_UTIL_H_ #ifndef CLANG_DRIVER_UTIL_H_
#define CLANG_DRIVER_UTIL_H_ #define CLANG_DRIVER_UTIL_H_
namespace llvm { #include "clang/Basic/LLVM.h"
template<typename T, unsigned N> class SmallVector;
}
namespace clang { namespace clang {
namespace driver { namespace driver {
class Action; class Action;
/// ArgStringList - Type used for constructing argv lists for subprocesses. /// ArgStringList - Type used for constructing argv lists for subprocesses.
typedef llvm::SmallVector<const char*, 16> ArgStringList; typedef SmallVector<const char*, 16> ArgStringList;
/// ActionList - Type used for lists of actions. /// ActionList - Type used for lists of actions.
typedef llvm::SmallVector<Action*, 3> ActionList; typedef SmallVector<Action*, 3> ActionList;
} // end namespace driver } // end namespace driver
} // end namespace clang } // end namespace clang

View File

@ -145,11 +145,11 @@ private:
ASTLocation LastLoc; ASTLocation LastLoc;
/// \brief The set of diagnostics produced when creating the preamble. /// \brief The set of diagnostics produced when creating the preamble.
llvm::SmallVector<StoredDiagnostic, 4> PreambleDiagnostics; SmallVector<StoredDiagnostic, 4> PreambleDiagnostics;
/// \brief The set of diagnostics produced when creating this /// \brief The set of diagnostics produced when creating this
/// translation unit. /// translation unit.
llvm::SmallVector<StoredDiagnostic, 4> StoredDiagnostics; SmallVector<StoredDiagnostic, 4> StoredDiagnostics;
/// \brief The number of stored diagnostics that come from the driver /// \brief The number of stored diagnostics that come from the driver
/// itself. /// itself.
@ -160,7 +160,7 @@ private:
/// \brief Temporary files that should be removed when the ASTUnit is /// \brief Temporary files that should be removed when the ASTUnit is
/// destroyed. /// destroyed.
llvm::SmallVector<llvm::sys::Path, 4> TemporaryFiles; SmallVector<llvm::sys::Path, 4> TemporaryFiles;
/// \brief A mapping from file IDs to the set of preprocessed entities /// \brief A mapping from file IDs to the set of preprocessed entities
/// stored in that file. /// stored in that file.
@ -253,10 +253,10 @@ private:
const char **ArgBegin, const char **ArgEnd, const char **ArgBegin, const char **ArgEnd,
ASTUnit &AST, bool CaptureDiagnostics); ASTUnit &AST, bool CaptureDiagnostics);
void TranslateStoredDiagnostics(ASTReader *MMan, llvm::StringRef ModName, void TranslateStoredDiagnostics(ASTReader *MMan, StringRef ModName,
SourceManager &SrcMan, SourceManager &SrcMan,
const llvm::SmallVectorImpl<StoredDiagnostic> &Diags, const SmallVectorImpl<StoredDiagnostic> &Diags,
llvm::SmallVectorImpl<StoredDiagnostic> &Out); SmallVectorImpl<StoredDiagnostic> &Out);
public: public:
/// \brief A cached code-completion result, which may be introduced in one of /// \brief A cached code-completion result, which may be introduced in one of
@ -442,7 +442,7 @@ public:
ASTLocation getLastASTLocation() const { return LastLoc; } ASTLocation getLastASTLocation() const { return LastLoc; }
llvm::StringRef getMainFileName() const; StringRef getMainFileName() const;
typedef std::vector<Decl *>::iterator top_level_iterator; typedef std::vector<Decl *>::iterator top_level_iterator;
@ -513,7 +513,7 @@ public:
} }
unsigned stored_diag_size() const { return StoredDiagnostics.size(); } unsigned stored_diag_size() const { return StoredDiagnostics.size(); }
llvm::SmallVector<StoredDiagnostic, 4> &getStoredDiagnostics() { SmallVector<StoredDiagnostic, 4> &getStoredDiagnostics() {
return StoredDiagnostics; return StoredDiagnostics;
} }
@ -532,7 +532,7 @@ public:
return CachedCompletionResults.size(); return CachedCompletionResults.size();
} }
llvm::MemoryBuffer *getBufferForFile(llvm::StringRef Filename, llvm::MemoryBuffer *getBufferForFile(StringRef Filename,
std::string *ErrorStr = 0); std::string *ErrorStr = 0);
/// \brief Whether this AST represents a complete translation unit. /// \brief Whether this AST represents a complete translation unit.
@ -632,7 +632,7 @@ public:
static ASTUnit *LoadFromCommandLine(const char **ArgBegin, static ASTUnit *LoadFromCommandLine(const char **ArgBegin,
const char **ArgEnd, const char **ArgEnd,
llvm::IntrusiveRefCntPtr<Diagnostic> Diags, llvm::IntrusiveRefCntPtr<Diagnostic> Diags,
llvm::StringRef ResourceFilesPath, StringRef ResourceFilesPath,
bool OnlyLocalDecls = false, bool OnlyLocalDecls = false,
bool CaptureDiagnostics = false, bool CaptureDiagnostics = false,
RemappedFile *RemappedFiles = 0, RemappedFile *RemappedFiles = 0,
@ -670,19 +670,19 @@ public:
/// ///
/// FIXME: The Diag, LangOpts, SourceMgr, FileMgr, StoredDiagnostics, and /// FIXME: The Diag, LangOpts, SourceMgr, FileMgr, StoredDiagnostics, and
/// OwnedBuffers parameters are all disgusting hacks. They will go away. /// OwnedBuffers parameters are all disgusting hacks. They will go away.
void CodeComplete(llvm::StringRef File, unsigned Line, unsigned Column, void CodeComplete(StringRef File, unsigned Line, unsigned Column,
RemappedFile *RemappedFiles, unsigned NumRemappedFiles, RemappedFile *RemappedFiles, unsigned NumRemappedFiles,
bool IncludeMacros, bool IncludeCodePatterns, bool IncludeMacros, bool IncludeCodePatterns,
CodeCompleteConsumer &Consumer, CodeCompleteConsumer &Consumer,
Diagnostic &Diag, LangOptions &LangOpts, Diagnostic &Diag, LangOptions &LangOpts,
SourceManager &SourceMgr, FileManager &FileMgr, SourceManager &SourceMgr, FileManager &FileMgr,
llvm::SmallVectorImpl<StoredDiagnostic> &StoredDiagnostics, SmallVectorImpl<StoredDiagnostic> &StoredDiagnostics,
llvm::SmallVectorImpl<const llvm::MemoryBuffer *> &OwnedBuffers); SmallVectorImpl<const llvm::MemoryBuffer *> &OwnedBuffers);
/// \brief Save this translation unit to a file with the given name. /// \brief Save this translation unit to a file with the given name.
/// ///
/// \returns An indication of whether the save was successful or not. /// \returns An indication of whether the save was successful or not.
CXSaveError Save(llvm::StringRef File); CXSaveError Save(StringRef File);
/// \brief Serialize this translation unit with the given output stream. /// \brief Serialize this translation unit with the given output stream.
/// ///

View File

@ -15,6 +15,7 @@
#ifndef LLVM_CLANG_FRONTEND_COMMANDLINESOURCELOC_H #ifndef LLVM_CLANG_FRONTEND_COMMANDLINESOURCELOC_H
#define LLVM_CLANG_FRONTEND_COMMANDLINESOURCELOC_H #define LLVM_CLANG_FRONTEND_COMMANDLINESOURCELOC_H
#include "clang/Basic/LLVM.h"
#include "llvm/Support/CommandLine.h" #include "llvm/Support/CommandLine.h"
#include "llvm/Support/raw_ostream.h" #include "llvm/Support/raw_ostream.h"
@ -29,10 +30,10 @@ struct ParsedSourceLocation {
public: public:
/// Construct a parsed source location from a string; the Filename is empty on /// Construct a parsed source location from a string; the Filename is empty on
/// error. /// error.
static ParsedSourceLocation FromString(llvm::StringRef Str) { static ParsedSourceLocation FromString(StringRef Str) {
ParsedSourceLocation PSL; ParsedSourceLocation PSL;
std::pair<llvm::StringRef, llvm::StringRef> ColSplit = Str.rsplit(':'); std::pair<StringRef, StringRef> ColSplit = Str.rsplit(':');
std::pair<llvm::StringRef, llvm::StringRef> LineSplit = std::pair<StringRef, StringRef> LineSplit =
ColSplit.first.rsplit(':'); ColSplit.first.rsplit(':');
// If both tail splits were valid integers, return success. // If both tail splits were valid integers, return success.

View File

@ -518,7 +518,7 @@ public:
/// Create an external AST source to read a PCH file and attach it to the AST /// Create an external AST source to read a PCH file and attach it to the AST
/// context. /// context.
void createPCHExternalASTSource(llvm::StringRef Path, void createPCHExternalASTSource(StringRef Path,
bool DisablePCHValidation, bool DisablePCHValidation,
bool DisableStatCache, bool DisableStatCache,
void *DeserializationListener); void *DeserializationListener);
@ -527,7 +527,7 @@ public:
/// ///
/// \return - The new object on success, or null on failure. /// \return - The new object on success, or null on failure.
static ExternalASTSource * static ExternalASTSource *
createPCHExternalASTSource(llvm::StringRef Path, const std::string &Sysroot, createPCHExternalASTSource(StringRef Path, const std::string &Sysroot,
bool DisablePCHValidation, bool DisablePCHValidation,
bool DisableStatCache, bool DisableStatCache,
Preprocessor &PP, ASTContext &Context, Preprocessor &PP, ASTContext &Context,
@ -560,18 +560,18 @@ public:
/// ///
/// \return - Null on error. /// \return - Null on error.
llvm::raw_fd_ostream * llvm::raw_fd_ostream *
createDefaultOutputFile(bool Binary = true, llvm::StringRef BaseInput = "", createDefaultOutputFile(bool Binary = true, StringRef BaseInput = "",
llvm::StringRef Extension = ""); StringRef Extension = "");
/// Create a new output file and add it to the list of tracked output files, /// Create a new output file and add it to the list of tracked output files,
/// optionally deriving the output path name. /// optionally deriving the output path name.
/// ///
/// \return - Null on error. /// \return - Null on error.
llvm::raw_fd_ostream * llvm::raw_fd_ostream *
createOutputFile(llvm::StringRef OutputPath, createOutputFile(StringRef OutputPath,
bool Binary = true, bool RemoveFileOnSignal = true, bool Binary = true, bool RemoveFileOnSignal = true,
llvm::StringRef BaseInput = "", StringRef BaseInput = "",
llvm::StringRef Extension = ""); StringRef Extension = "");
/// Create a new output file, optionally deriving the output path name. /// Create a new output file, optionally deriving the output path name.
/// ///
@ -594,10 +594,10 @@ public:
/// \param TempPathName [out] - If given, the temporary file path name /// \param TempPathName [out] - If given, the temporary file path name
/// will be stored here on success. /// will be stored here on success.
static llvm::raw_fd_ostream * static llvm::raw_fd_ostream *
createOutputFile(llvm::StringRef OutputPath, std::string &Error, createOutputFile(StringRef OutputPath, std::string &Error,
bool Binary = true, bool RemoveFileOnSignal = true, bool Binary = true, bool RemoveFileOnSignal = true,
llvm::StringRef BaseInput = "", StringRef BaseInput = "",
llvm::StringRef Extension = "", StringRef Extension = "",
std::string *ResultPathName = 0, std::string *ResultPathName = 0,
std::string *TempPathName = 0); std::string *TempPathName = 0);
@ -609,13 +609,13 @@ public:
/// as the main file. /// as the main file.
/// ///
/// \return True on success. /// \return True on success.
bool InitializeSourceManager(llvm::StringRef InputFile); bool InitializeSourceManager(StringRef InputFile);
/// InitializeSourceManager - Initialize the source manager to set InputFile /// InitializeSourceManager - Initialize the source manager to set InputFile
/// as the main file. /// as the main file.
/// ///
/// \return True on success. /// \return True on success.
static bool InitializeSourceManager(llvm::StringRef InputFile, static bool InitializeSourceManager(StringRef InputFile,
Diagnostic &Diags, Diagnostic &Diags,
FileManager &FileMgr, FileManager &FileMgr,
SourceManager &SourceMgr, SourceManager &SourceMgr,

View File

@ -10,6 +10,7 @@
#ifndef LLVM_CLANG_FRONTEND_FRONTENDACTION_H #ifndef LLVM_CLANG_FRONTEND_FRONTENDACTION_H
#define LLVM_CLANG_FRONTEND_FRONTENDACTION_H #define LLVM_CLANG_FRONTEND_FRONTENDACTION_H
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringRef.h"
#include "llvm/ADT/OwningPtr.h" #include "llvm/ADT/OwningPtr.h"
#include <string> #include <string>
@ -55,7 +56,7 @@ class FrontendAction {
private: private:
ASTConsumer* CreateWrappedASTConsumer(CompilerInstance &CI, ASTConsumer* CreateWrappedASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
protected: protected:
/// @name Implementation Action Interface /// @name Implementation Action Interface
@ -76,7 +77,7 @@ protected:
/// ///
/// \return The new AST consumer, or 0 on failure. /// \return The new AST consumer, or 0 on failure.
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile) = 0; StringRef InFile) = 0;
/// \brief Callback before starting processing a single input, giving the /// \brief Callback before starting processing a single input, giving the
/// opportunity to modify the CompilerInvocation or do some other action /// opportunity to modify the CompilerInvocation or do some other action
@ -92,7 +93,7 @@ protected:
/// \return True on success; on failure \see ExecutionAction() and /// \return True on success; on failure \see ExecutionAction() and
/// EndSourceFileAction() will not be called. /// EndSourceFileAction() will not be called.
virtual bool BeginSourceFileAction(CompilerInstance &CI, virtual bool BeginSourceFileAction(CompilerInstance &CI,
llvm::StringRef Filename) { StringRef Filename) {
return true; return true;
} }
@ -152,7 +153,7 @@ public:
return CurrentASTUnit.take(); return CurrentASTUnit.take();
} }
void setCurrentFile(llvm::StringRef Value, InputKind Kind, ASTUnit *AST = 0); void setCurrentFile(StringRef Value, InputKind Kind, ASTUnit *AST = 0);
/// @} /// @}
/// @name Supported Modes /// @name Supported Modes
@ -205,7 +206,7 @@ public:
/// ///
/// \return True on success; the compilation of this file should be aborted /// \return True on success; the compilation of this file should be aborted
/// and neither Execute nor EndSourceFile should be called. /// and neither Execute nor EndSourceFile should be called.
bool BeginSourceFile(CompilerInstance &CI, llvm::StringRef Filename, bool BeginSourceFile(CompilerInstance &CI, StringRef Filename,
InputKind Kind); InputKind Kind);
/// Execute - Set the source managers main input file, and run the action. /// Execute - Set the source managers main input file, and run the action.
@ -236,7 +237,7 @@ public:
class PluginASTAction : public ASTFrontendAction { class PluginASTAction : public ASTFrontendAction {
protected: protected:
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile) = 0; StringRef InFile) = 0;
public: public:
/// ParseArgs - Parse the given plugin command line arguments. /// ParseArgs - Parse the given plugin command line arguments.
@ -256,7 +257,7 @@ protected:
/// CreateASTConsumer - Provide a default implementation which returns aborts, /// CreateASTConsumer - Provide a default implementation which returns aborts,
/// this method should never be called by FrontendAction clients. /// this method should never be called by FrontendAction clients.
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
public: public:
virtual bool usesPreprocessorOnly() const { return true; } virtual bool usesPreprocessorOnly() const { return true; }
@ -272,10 +273,10 @@ class WrapperFrontendAction : public FrontendAction {
protected: protected:
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
virtual bool BeginInvocation(CompilerInstance &CI); virtual bool BeginInvocation(CompilerInstance &CI);
virtual bool BeginSourceFileAction(CompilerInstance &CI, virtual bool BeginSourceFileAction(CompilerInstance &CI,
llvm::StringRef Filename); StringRef Filename);
virtual void ExecuteAction(); virtual void ExecuteAction();
virtual void EndSourceFileAction(); virtual void EndSourceFileAction();

View File

@ -24,7 +24,7 @@ class InitOnlyAction : public FrontendAction {
virtual void ExecuteAction(); virtual void ExecuteAction();
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
public: public:
// Don't claim to only use the preprocessor, we want to follow the AST path, // Don't claim to only use the preprocessor, we want to follow the AST path,
@ -39,37 +39,37 @@ public:
class ASTPrintAction : public ASTFrontendAction { class ASTPrintAction : public ASTFrontendAction {
protected: protected:
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
}; };
class ASTDumpAction : public ASTFrontendAction { class ASTDumpAction : public ASTFrontendAction {
protected: protected:
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
}; };
class ASTDumpXMLAction : public ASTFrontendAction { class ASTDumpXMLAction : public ASTFrontendAction {
protected: protected:
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
}; };
class ASTViewAction : public ASTFrontendAction { class ASTViewAction : public ASTFrontendAction {
protected: protected:
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
}; };
class DeclContextPrintAction : public ASTFrontendAction { class DeclContextPrintAction : public ASTFrontendAction {
protected: protected:
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
}; };
class GeneratePCHAction : public ASTFrontendAction { class GeneratePCHAction : public ASTFrontendAction {
protected: protected:
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
virtual bool usesCompleteTranslationUnit() { return false; } virtual bool usesCompleteTranslationUnit() { return false; }
@ -81,7 +81,7 @@ public:
/// ///
/// \returns true if an error occurred, false otherwise. /// \returns true if an error occurred, false otherwise.
static bool ComputeASTConsumerArguments(CompilerInstance &CI, static bool ComputeASTConsumerArguments(CompilerInstance &CI,
llvm::StringRef InFile, StringRef InFile,
std::string &Sysroot, std::string &Sysroot,
std::string &OutputFile, std::string &OutputFile,
llvm::raw_ostream *&OS, llvm::raw_ostream *&OS,
@ -91,7 +91,7 @@ public:
class SyntaxOnlyAction : public ASTFrontendAction { class SyntaxOnlyAction : public ASTFrontendAction {
protected: protected:
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
public: public:
virtual bool hasCodeCompletionSupport() const { return true; } virtual bool hasCodeCompletionSupport() const { return true; }
@ -114,10 +114,10 @@ class ASTMergeAction : public FrontendAction {
protected: protected:
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
virtual bool BeginSourceFileAction(CompilerInstance &CI, virtual bool BeginSourceFileAction(CompilerInstance &CI,
llvm::StringRef Filename); StringRef Filename);
virtual void ExecuteAction(); virtual void ExecuteAction();
virtual void EndSourceFileAction(); virtual void EndSourceFileAction();
@ -137,7 +137,7 @@ public:
class PrintPreambleAction : public FrontendAction { class PrintPreambleAction : public FrontendAction {
protected: protected:
void ExecuteAction(); void ExecuteAction();
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &, llvm::StringRef) { virtual ASTConsumer *CreateASTConsumer(CompilerInstance &, StringRef) {
return 0; return 0;
} }

View File

@ -151,7 +151,7 @@ public:
/// ///
/// \return The input kind for the extension, or IK_None if the extension is /// \return The input kind for the extension, or IK_None if the extension is
/// not recognized. /// not recognized.
static InputKind getInputKindForExtension(llvm::StringRef Extension); static InputKind getInputKindForExtension(StringRef Extension);
}; };
} // end namespace clang } // end namespace clang

View File

@ -44,7 +44,7 @@ public:
/// path. /// path.
unsigned IgnoreSysRoot : 1; unsigned IgnoreSysRoot : 1;
Entry(llvm::StringRef path, frontend::IncludeDirGroup group, Entry(StringRef path, frontend::IncludeDirGroup group,
bool isUserSupplied, bool isFramework, bool ignoreSysRoot) bool isUserSupplied, bool isFramework, bool ignoreSysRoot)
: Path(path), Group(group), IsUserSupplied(isUserSupplied), : Path(path), Group(group), IsUserSupplied(isUserSupplied),
IsFramework(isFramework), IgnoreSysRoot(ignoreSysRoot) {} IsFramework(isFramework), IgnoreSysRoot(ignoreSysRoot) {}
@ -89,13 +89,13 @@ public:
unsigned Verbose : 1; unsigned Verbose : 1;
public: public:
HeaderSearchOptions(llvm::StringRef _Sysroot = "/") HeaderSearchOptions(StringRef _Sysroot = "/")
: Sysroot(_Sysroot), UseBuiltinIncludes(true), : Sysroot(_Sysroot), UseBuiltinIncludes(true),
UseStandardIncludes(true), UseStandardCXXIncludes(true), UseLibcxx(false), UseStandardIncludes(true), UseStandardCXXIncludes(true), UseLibcxx(false),
Verbose(false) {} Verbose(false) {}
/// AddPath - Add the \arg Path path to the specified \arg Group list. /// AddPath - Add the \arg Path path to the specified \arg Group list.
void AddPath(llvm::StringRef Path, frontend::IncludeDirGroup Group, void AddPath(StringRef Path, frontend::IncludeDirGroup Group,
bool IsUserSupplied, bool IsFramework, bool IgnoreSysRoot) { bool IsUserSupplied, bool IsFramework, bool IgnoreSysRoot) {
UserEntries.push_back(Entry(Path, Group, IsUserSupplied, IsFramework, UserEntries.push_back(Entry(Path, Group, IsUserSupplied, IsFramework,
IgnoreSysRoot)); IgnoreSysRoot));

View File

@ -10,6 +10,7 @@
#ifndef LLVM_CLANG_FRONTEND_LANGSTANDARD_H #ifndef LLVM_CLANG_FRONTEND_LANGSTANDARD_H
#define LLVM_CLANG_FRONTEND_LANGSTANDARD_H #define LLVM_CLANG_FRONTEND_LANGSTANDARD_H
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringRef.h"
namespace clang { namespace clang {
@ -83,7 +84,7 @@ public:
bool hasImplicitInt() const { return Flags & frontend::ImplicitInt; } bool hasImplicitInt() const { return Flags & frontend::ImplicitInt; }
static const LangStandard &getLangStandardForKind(Kind K); static const LangStandard &getLangStandardForKind(Kind K);
static const LangStandard *getLangStandardForName(llvm::StringRef Name); static const LangStandard *getLangStandardForName(StringRef Name);
}; };
} // end namespace clang } // end namespace clang

View File

@ -48,7 +48,7 @@ class LogDiagnosticPrinter : public DiagnosticClient {
FullSourceLoc LastLoc; FullSourceLoc LastLoc;
unsigned OwnsOutputStream : 1; unsigned OwnsOutputStream : 1;
llvm::SmallVector<DiagEntry, 8> Entries; SmallVector<DiagEntry, 8> Entries;
std::string MainFilename; std::string MainFilename;
std::string DwarfDebugFlags; std::string DwarfDebugFlags;
@ -58,7 +58,7 @@ public:
bool OwnsOutputStream = false); bool OwnsOutputStream = false);
virtual ~LogDiagnosticPrinter(); virtual ~LogDiagnosticPrinter();
void setDwarfDebugFlags(llvm::StringRef Value) { void setDwarfDebugFlags(StringRef Value) {
DwarfDebugFlags = Value; DwarfDebugFlags = Value;
} }

View File

@ -162,13 +162,13 @@ public:
RetainRemappedFileBuffers(false), RetainRemappedFileBuffers(false),
ObjCXXARCStandardLibrary(ARCXX_nolib) { } ObjCXXARCStandardLibrary(ARCXX_nolib) { }
void addMacroDef(llvm::StringRef Name) { void addMacroDef(StringRef Name) {
Macros.push_back(std::make_pair(Name, false)); Macros.push_back(std::make_pair(Name, false));
} }
void addMacroUndef(llvm::StringRef Name) { void addMacroUndef(StringRef Name) {
Macros.push_back(std::make_pair(Name, true)); Macros.push_back(std::make_pair(Name, true));
} }
void addRemappedFile(llvm::StringRef From, llvm::StringRef To) { void addRemappedFile(StringRef From, StringRef To) {
RemappedFiles.push_back(std::make_pair(From, To)); RemappedFiles.push_back(std::make_pair(From, To));
} }
@ -176,7 +176,7 @@ public:
return RemappedFiles.erase(Remapped); return RemappedFiles.erase(Remapped);
} }
void addRemappedFile(llvm::StringRef From, const llvm::MemoryBuffer * To) { void addRemappedFile(StringRef From, const llvm::MemoryBuffer * To) {
RemappedFileBuffers.push_back(std::make_pair(From, To)); RemappedFileBuffers.push_back(std::make_pair(From, To));
} }

View File

@ -48,7 +48,7 @@ class FrontendOptions;
/// Normalize \arg File for use in a user defined #include directive (in the /// Normalize \arg File for use in a user defined #include directive (in the
/// predefines buffer). /// predefines buffer).
std::string NormalizeDashIncludePath(llvm::StringRef File, std::string NormalizeDashIncludePath(StringRef File,
FileManager &FileMgr); FileManager &FileMgr);
/// Apply the header search options to get given HeaderSearch object. /// Apply the header search options to get given HeaderSearch object.
@ -87,7 +87,7 @@ void AttachDependencyFileGen(Preprocessor &PP,
/// \param OutputPath - If non-empty, a path to write the header include /// \param OutputPath - If non-empty, a path to write the header include
/// information to, instead of writing to stderr. /// information to, instead of writing to stderr.
void AttachHeaderIncludeGen(Preprocessor &PP, bool ShowAllHeaders = false, void AttachHeaderIncludeGen(Preprocessor &PP, bool ShowAllHeaders = false,
llvm::StringRef OutputPath = "", StringRef OutputPath = "",
bool ShowDepth = true); bool ShowDepth = true);
/// CacheTokens - Cache tokens for use with PCH. Note that this requires /// CacheTokens - Cache tokens for use with PCH. Note that this requires

View File

@ -15,6 +15,7 @@
#ifndef LLVM_CLANG_INDEX_ENTITY_H #ifndef LLVM_CLANG_INDEX_ENTITY_H
#define LLVM_CLANG_INDEX_ENTITY_H #define LLVM_CLANG_INDEX_ENTITY_H
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/PointerUnion.h" #include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/DenseMap.h" #include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringRef.h"
@ -73,7 +74,7 @@ public:
static Entity get(Decl *D, Program &Prog); static Entity get(Decl *D, Program &Prog);
/// \brief Get an Entity associated with a name in the global namespace. /// \brief Get an Entity associated with a name in the global namespace.
static Entity get(llvm::StringRef Name, Program &Prog); static Entity get(StringRef Name, Program &Prog);
/// \brief true if the Entity is not visible outside the trasnlation unit. /// \brief true if the Entity is not visible outside the trasnlation unit.
bool isInternalToTU() const { bool isInternalToTU() const {

View File

@ -14,6 +14,7 @@
#ifndef LLVM_CLANG_INDEX_HANDLERS_H #ifndef LLVM_CLANG_INDEX_HANDLERS_H
#define LLVM_CLANG_INDEX_HANDLERS_H #define LLVM_CLANG_INDEX_HANDLERS_H
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/SmallVector.h" #include "llvm/ADT/SmallVector.h"
namespace clang { namespace clang {
@ -61,7 +62,7 @@ public:
template <typename handler_type> template <typename handler_type>
class Storing : public handler_type { class Storing : public handler_type {
typedef typename handler_type::receiving_type receiving_type; typedef typename handler_type::receiving_type receiving_type;
typedef llvm::SmallVector<receiving_type, 8> StoreTy; typedef SmallVector<receiving_type, 8> StoreTy;
StoreTy Store; StoreTy Store;
public: public:

View File

@ -133,15 +133,15 @@ public:
/// \param RelativePath If not NULL, will be set to the path relative to /// \param RelativePath If not NULL, will be set to the path relative to
/// SearchPath at which the file was found. This only differs from the /// SearchPath at which the file was found. This only differs from the
/// Filename for framework includes. /// Filename for framework includes.
const FileEntry *LookupFile(llvm::StringRef Filename, HeaderSearch &HS, const FileEntry *LookupFile(StringRef Filename, HeaderSearch &HS,
llvm::SmallVectorImpl<char> *SearchPath, SmallVectorImpl<char> *SearchPath,
llvm::SmallVectorImpl<char> *RelativePath) const; SmallVectorImpl<char> *RelativePath) const;
private: private:
const FileEntry *DoFrameworkLookup( const FileEntry *DoFrameworkLookup(
llvm::StringRef Filename, HeaderSearch &HS, StringRef Filename, HeaderSearch &HS,
llvm::SmallVectorImpl<char> *SearchPath, SmallVectorImpl<char> *SearchPath,
llvm::SmallVectorImpl<char> *RelativePath) const; SmallVectorImpl<char> *RelativePath) const;
}; };

View File

@ -14,10 +14,10 @@
#ifndef LLVM_CLANG_LEX_HEADERMAP_H #ifndef LLVM_CLANG_LEX_HEADERMAP_H
#define LLVM_CLANG_LEX_HEADERMAP_H #define LLVM_CLANG_LEX_HEADERMAP_H
#include "clang/Basic/LLVM.h"
namespace llvm { namespace llvm {
class MemoryBuffer; class MemoryBuffer;
class StringRef;
template <typename T> class SmallVectorImpl;
} }
namespace clang { namespace clang {
class FileEntry; class FileEntry;
@ -52,7 +52,7 @@ public:
/// raw path at which the file was found in the file system. For example, /// raw path at which the file was found in the file system. For example,
/// for a search path ".." and a filename "../file.h" this would be /// for a search path ".." and a filename "../file.h" this would be
/// "../../file.h". /// "../../file.h".
const FileEntry *LookupFile(llvm::StringRef Filename, FileManager &FM) const; const FileEntry *LookupFile(StringRef Filename, FileManager &FM) const;
/// getFileName - Return the filename of the headermap. /// getFileName - Return the filename of the headermap.
const char *getFileName() const; const char *getFileName() const;

View File

@ -211,12 +211,12 @@ public:
/// \param RelativePath If non-null, will be set to the path relative to /// \param RelativePath If non-null, will be set to the path relative to
/// SearchPath at which the file was found. This only differs from the /// SearchPath at which the file was found. This only differs from the
/// Filename for framework includes. /// Filename for framework includes.
const FileEntry *LookupFile(llvm::StringRef Filename, bool isAngled, const FileEntry *LookupFile(StringRef Filename, bool isAngled,
const DirectoryLookup *FromDir, const DirectoryLookup *FromDir,
const DirectoryLookup *&CurDir, const DirectoryLookup *&CurDir,
const FileEntry *CurFileEnt, const FileEntry *CurFileEnt,
llvm::SmallVectorImpl<char> *SearchPath, SmallVectorImpl<char> *SearchPath,
llvm::SmallVectorImpl<char> *RelativePath); SmallVectorImpl<char> *RelativePath);
/// LookupSubframeworkHeader - Look up a subframework for the specified /// LookupSubframeworkHeader - Look up a subframework for the specified
/// #include file. For example, if #include'ing <HIToolbox/HIToolbox.h> from /// #include file. For example, if #include'ing <HIToolbox/HIToolbox.h> from
@ -224,15 +224,15 @@ public:
/// is a subframework within Carbon.framework. If so, return the FileEntry /// is a subframework within Carbon.framework. If so, return the FileEntry
/// for the designated file, otherwise return null. /// for the designated file, otherwise return null.
const FileEntry *LookupSubframeworkHeader( const FileEntry *LookupSubframeworkHeader(
llvm::StringRef Filename, StringRef Filename,
const FileEntry *RelativeFileEnt, const FileEntry *RelativeFileEnt,
llvm::SmallVectorImpl<char> *SearchPath, SmallVectorImpl<char> *SearchPath,
llvm::SmallVectorImpl<char> *RelativePath); SmallVectorImpl<char> *RelativePath);
/// LookupFrameworkCache - Look up the specified framework name in our /// LookupFrameworkCache - Look up the specified framework name in our
/// framework cache, returning the DirectoryEntry it is in if we know, /// framework cache, returning the DirectoryEntry it is in if we know,
/// otherwise, return null. /// otherwise, return null.
const DirectoryEntry *&LookupFrameworkCache(llvm::StringRef FWName) { const DirectoryEntry *&LookupFrameworkCache(StringRef FWName) {
return FrameworkMap.GetOrCreateValue(FWName).getValue(); return FrameworkMap.GetOrCreateValue(FWName).getValue();
} }

View File

@ -208,7 +208,7 @@ public:
/// Stringify - Convert the specified string into a C string by escaping '\' /// Stringify - Convert the specified string into a C string by escaping '\'
/// and " characters. This does not add surrounding ""'s to the string. /// and " characters. This does not add surrounding ""'s to the string.
static void Stringify(llvm::SmallVectorImpl<char> &Str); static void Stringify(SmallVectorImpl<char> &Str);
/// getSpelling - This method is used to get the spelling of a token into a /// getSpelling - This method is used to get the spelling of a token into a
@ -244,8 +244,8 @@ public:
/// This method lexes at the expansion depth of the given /// This method lexes at the expansion depth of the given
/// location and does not jump to the expansion or spelling /// location and does not jump to the expansion or spelling
/// location. /// location.
static llvm::StringRef getSpelling(SourceLocation loc, static StringRef getSpelling(SourceLocation loc,
llvm::SmallVectorImpl<char> &buffer, SmallVectorImpl<char> &buffer,
const SourceManager &SourceMgr, const SourceManager &SourceMgr,
const LangOptions &Features, const LangOptions &Features,
bool *invalid = 0); bool *invalid = 0);

View File

@ -15,6 +15,7 @@
#ifndef CLANG_LITERALSUPPORT_H #ifndef CLANG_LITERALSUPPORT_H
#define CLANG_LITERALSUPPORT_H #define CLANG_LITERALSUPPORT_H
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/APFloat.h" #include "llvm/ADT/APFloat.h"
#include "llvm/ADT/SmallString.h" #include "llvm/ADT/SmallString.h"
#include "llvm/Support/DataTypes.h" #include "llvm/Support/DataTypes.h"
@ -167,8 +168,8 @@ public:
bool AnyWide; bool AnyWide;
bool Pascal; bool Pascal;
llvm::StringRef GetString() const { StringRef GetString() const {
return llvm::StringRef(ResultBuf.data(), GetStringLength()); return StringRef(ResultBuf.data(), GetStringLength());
} }
unsigned GetStringLength() const { return ResultPtr-ResultBuf.data(); } unsigned GetStringLength() const { return ResultPtr-ResultBuf.data(); }

View File

@ -41,7 +41,7 @@ class MacroInfo {
/// ReplacementTokens - This is the list of tokens that the macro is defined /// ReplacementTokens - This is the list of tokens that the macro is defined
/// to. /// to.
llvm::SmallVector<Token, 8> ReplacementTokens; SmallVector<Token, 8> ReplacementTokens;
/// \brief Length in characters of the macro definition. /// \brief Length in characters of the macro definition.
mutable unsigned DefinitionLength; mutable unsigned DefinitionLength;
@ -235,7 +235,7 @@ public:
return ReplacementTokens[Tok]; return ReplacementTokens[Tok];
} }
typedef llvm::SmallVector<Token, 8>::const_iterator tokens_iterator; typedef SmallVector<Token, 8>::const_iterator tokens_iterator;
tokens_iterator tokens_begin() const { return ReplacementTokens.begin(); } tokens_iterator tokens_begin() const { return ReplacementTokens.begin(); }
tokens_iterator tokens_end() const { return ReplacementTokens.end(); } tokens_iterator tokens_end() const { return ReplacementTokens.end(); }
bool tokens_empty() const { return ReplacementTokens.empty(); } bool tokens_empty() const { return ReplacementTokens.empty(); }

View File

@ -90,12 +90,12 @@ public:
/// file was found. This is equal to FileName except for framework includes. /// file was found. This is equal to FileName except for framework includes.
virtual void InclusionDirective(SourceLocation HashLoc, virtual void InclusionDirective(SourceLocation HashLoc,
const Token &IncludeTok, const Token &IncludeTok,
llvm::StringRef FileName, StringRef FileName,
bool IsAngled, bool IsAngled,
const FileEntry *File, const FileEntry *File,
SourceLocation EndLoc, SourceLocation EndLoc,
llvm::StringRef SearchPath, StringRef SearchPath,
llvm::StringRef RelativePath) { StringRef RelativePath) {
} }
/// EndOfMainFile - This callback is invoked when the end of the main file is /// EndOfMainFile - This callback is invoked when the end of the main file is
@ -122,25 +122,25 @@ public:
/// \param Loc The location of the message directive. /// \param Loc The location of the message directive.
/// \param str The text of the message directive. /// \param str The text of the message directive.
/// ///
virtual void PragmaMessage(SourceLocation Loc, llvm::StringRef Str) { virtual void PragmaMessage(SourceLocation Loc, StringRef Str) {
} }
/// PragmaDiagnosticPush - This callback is invoked when a /// PragmaDiagnosticPush - This callback is invoked when a
/// #pragma gcc dianostic push directive is read. /// #pragma gcc dianostic push directive is read.
virtual void PragmaDiagnosticPush(SourceLocation Loc, virtual void PragmaDiagnosticPush(SourceLocation Loc,
llvm::StringRef Namespace) { StringRef Namespace) {
} }
/// PragmaDiagnosticPop - This callback is invoked when a /// PragmaDiagnosticPop - This callback is invoked when a
/// #pragma gcc dianostic pop directive is read. /// #pragma gcc dianostic pop directive is read.
virtual void PragmaDiagnosticPop(SourceLocation Loc, virtual void PragmaDiagnosticPop(SourceLocation Loc,
llvm::StringRef Namespace) { StringRef Namespace) {
} }
/// PragmaDiagnostic - This callback is invoked when a /// PragmaDiagnostic - This callback is invoked when a
/// #pragma gcc dianostic directive is read. /// #pragma gcc dianostic directive is read.
virtual void PragmaDiagnostic(SourceLocation Loc, llvm::StringRef Namespace, virtual void PragmaDiagnostic(SourceLocation Loc, StringRef Namespace,
diag::Mapping mapping, llvm::StringRef Str) { diag::Mapping mapping, StringRef Str) {
} }
/// MacroExpands - This is called by /// MacroExpands - This is called by
@ -218,12 +218,12 @@ public:
virtual void InclusionDirective(SourceLocation HashLoc, virtual void InclusionDirective(SourceLocation HashLoc,
const Token &IncludeTok, const Token &IncludeTok,
llvm::StringRef FileName, StringRef FileName,
bool IsAngled, bool IsAngled,
const FileEntry *File, const FileEntry *File,
SourceLocation EndLoc, SourceLocation EndLoc,
llvm::StringRef SearchPath, StringRef SearchPath,
llvm::StringRef RelativePath) { StringRef RelativePath) {
First->InclusionDirective(HashLoc, IncludeTok, FileName, IsAngled, File, First->InclusionDirective(HashLoc, IncludeTok, FileName, IsAngled, File,
EndLoc, SearchPath, RelativePath); EndLoc, SearchPath, RelativePath);
Second->InclusionDirective(HashLoc, IncludeTok, FileName, IsAngled, File, Second->InclusionDirective(HashLoc, IncludeTok, FileName, IsAngled, File,
@ -246,25 +246,25 @@ public:
Second->PragmaComment(Loc, Kind, Str); Second->PragmaComment(Loc, Kind, Str);
} }
virtual void PragmaMessage(SourceLocation Loc, llvm::StringRef Str) { virtual void PragmaMessage(SourceLocation Loc, StringRef Str) {
First->PragmaMessage(Loc, Str); First->PragmaMessage(Loc, Str);
Second->PragmaMessage(Loc, Str); Second->PragmaMessage(Loc, Str);
} }
virtual void PragmaDiagnosticPush(SourceLocation Loc, virtual void PragmaDiagnosticPush(SourceLocation Loc,
llvm::StringRef Namespace) { StringRef Namespace) {
First->PragmaDiagnosticPush(Loc, Namespace); First->PragmaDiagnosticPush(Loc, Namespace);
Second->PragmaDiagnosticPush(Loc, Namespace); Second->PragmaDiagnosticPush(Loc, Namespace);
} }
virtual void PragmaDiagnosticPop(SourceLocation Loc, virtual void PragmaDiagnosticPop(SourceLocation Loc,
llvm::StringRef Namespace) { StringRef Namespace) {
First->PragmaDiagnosticPop(Loc, Namespace); First->PragmaDiagnosticPop(Loc, Namespace);
Second->PragmaDiagnosticPop(Loc, Namespace); Second->PragmaDiagnosticPop(Loc, Namespace);
} }
virtual void PragmaDiagnostic(SourceLocation Loc, llvm::StringRef Namespace, virtual void PragmaDiagnostic(SourceLocation Loc, StringRef Namespace,
diag::Mapping mapping, llvm::StringRef Str) { diag::Mapping mapping, StringRef Str) {
First->PragmaDiagnostic(Loc, Namespace, mapping, Str); First->PragmaDiagnostic(Loc, Namespace, mapping, Str);
Second->PragmaDiagnostic(Loc, Namespace, mapping, Str); Second->PragmaDiagnostic(Loc, Namespace, mapping, Str);
} }

View File

@ -115,7 +115,7 @@ public:
/// Unlike the version in IdentifierTable, this returns a pointer instead /// Unlike the version in IdentifierTable, this returns a pointer instead
/// of a reference. If the pointer is NULL then the IdentifierInfo cannot /// of a reference. If the pointer is NULL then the IdentifierInfo cannot
/// be found. /// be found.
IdentifierInfo *get(llvm::StringRef Name); IdentifierInfo *get(StringRef Name);
/// Create - This method creates PTHManager objects. The 'file' argument /// Create - This method creates PTHManager objects. The 'file' argument
/// is the name of the PTH file. This method returns NULL upon failure. /// is the name of the PTH file. This method returns NULL upon failure.

View File

@ -14,6 +14,7 @@
#ifndef LLVM_CLANG_PRAGMA_H #ifndef LLVM_CLANG_PRAGMA_H
#define LLVM_CLANG_PRAGMA_H #define LLVM_CLANG_PRAGMA_H
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringRef.h"
#include <cassert> #include <cassert>
@ -58,11 +59,11 @@ namespace clang {
class PragmaHandler { class PragmaHandler {
std::string Name; std::string Name;
public: public:
explicit PragmaHandler(llvm::StringRef name) : Name(name) {} explicit PragmaHandler(StringRef name) : Name(name) {}
PragmaHandler() {} PragmaHandler() {}
virtual ~PragmaHandler(); virtual ~PragmaHandler();
llvm::StringRef getName() const { return Name; } StringRef getName() const { return Name; }
virtual void HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer, virtual void HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer,
Token &FirstToken) = 0; Token &FirstToken) = 0;
@ -91,14 +92,14 @@ class PragmaNamespace : public PragmaHandler {
/// ///
llvm::StringMap<PragmaHandler*> Handlers; llvm::StringMap<PragmaHandler*> Handlers;
public: public:
explicit PragmaNamespace(llvm::StringRef Name) : PragmaHandler(Name) {} explicit PragmaNamespace(StringRef Name) : PragmaHandler(Name) {}
virtual ~PragmaNamespace(); virtual ~PragmaNamespace();
/// FindHandler - Check to see if there is already a handler for the /// FindHandler - Check to see if there is already a handler for the
/// specified name. If not, return the handler for the null name if it /// specified name. If not, return the handler for the null name if it
/// exists, otherwise return null. If IgnoreNull is true (the default) then /// exists, otherwise return null. If IgnoreNull is true (the default) then
/// the null handler isn't returned on failure to match. /// the null handler isn't returned on failure to match.
PragmaHandler *FindHandler(llvm::StringRef Name, PragmaHandler *FindHandler(StringRef Name,
bool IgnoreNull = true) const; bool IgnoreNull = true) const;
/// AddPragma - Add a pragma to this namespace. /// AddPragma - Add a pragma to this namespace.

View File

@ -199,7 +199,7 @@ namespace clang {
private: private:
/// \brief The name of the file that was included, as written in /// \brief The name of the file that was included, as written in
/// the source. /// the source.
llvm::StringRef FileName; StringRef FileName;
/// \brief Whether the file name was in quotation marks; otherwise, it was /// \brief Whether the file name was in quotation marks; otherwise, it was
/// in angle brackets. /// in angle brackets.
@ -215,14 +215,14 @@ namespace clang {
public: public:
InclusionDirective(PreprocessingRecord &PPRec, InclusionDirective(PreprocessingRecord &PPRec,
InclusionKind Kind, llvm::StringRef FileName, InclusionKind Kind, StringRef FileName,
bool InQuotes, const FileEntry *File, SourceRange Range); bool InQuotes, const FileEntry *File, SourceRange Range);
/// \brief Determine what kind of inclusion directive this is. /// \brief Determine what kind of inclusion directive this is.
InclusionKind getKind() const { return static_cast<InclusionKind>(Kind); } InclusionKind getKind() const { return static_cast<InclusionKind>(Kind); }
/// \brief Retrieve the included file name as it was written in the source. /// \brief Retrieve the included file name as it was written in the source.
llvm::StringRef getFileName() const { return FileName; } StringRef getFileName() const { return FileName; }
/// \brief Determine whether the included file name was written in quotes; /// \brief Determine whether the included file name was written in quotes;
/// otherwise, it was written in angle brackets. /// otherwise, it was written in angle brackets.
@ -347,12 +347,12 @@ namespace clang {
virtual void MacroUndefined(const Token &Id, const MacroInfo *MI); virtual void MacroUndefined(const Token &Id, const MacroInfo *MI);
virtual void InclusionDirective(SourceLocation HashLoc, virtual void InclusionDirective(SourceLocation HashLoc,
const Token &IncludeTok, const Token &IncludeTok,
llvm::StringRef FileName, StringRef FileName,
bool IsAngled, bool IsAngled,
const FileEntry *File, const FileEntry *File,
SourceLocation EndLoc, SourceLocation EndLoc,
llvm::StringRef SearchPath, StringRef SearchPath,
llvm::StringRef RelativePath); StringRef RelativePath);
}; };
} // end namespace clang } // end namespace clang

View File

@ -246,7 +246,7 @@ class Preprocessor : public llvm::RefCountedBase<Preprocessor> {
/// Works like a stack; a TokenLexer adds the macro expanded tokens that is /// Works like a stack; a TokenLexer adds the macro expanded tokens that is
/// going to lex in the cache and when it finishes the tokens are removed /// going to lex in the cache and when it finishes the tokens are removed
/// from the end of the cache. /// from the end of the cache.
llvm::SmallVector<Token, 16> MacroExpandedTokens; SmallVector<Token, 16> MacroExpandedTokens;
std::vector<std::pair<TokenLexer *, size_t> > MacroExpandingLexersStack; std::vector<std::pair<TokenLexer *, size_t> > MacroExpandingLexersStack;
/// \brief A record of the macro definitions and expansions that /// \brief A record of the macro definitions and expansions that
@ -257,7 +257,7 @@ class Preprocessor : public llvm::RefCountedBase<Preprocessor> {
PreprocessingRecord *Record; PreprocessingRecord *Record;
private: // Cached tokens state. private: // Cached tokens state.
typedef llvm::SmallVector<Token, 1> CachedTokensTy; typedef SmallVector<Token, 1> CachedTokensTy;
/// CachedTokens - Cached tokens are stored here when we do backtracking or /// CachedTokens - Cached tokens are stored here when we do backtracking or
/// lookahead. They are "lexed" by the CachingLex() method. /// lookahead. They are "lexed" by the CachingLex() method.
@ -397,25 +397,25 @@ public:
/// pointers is preferred unless the identifier is already available as a /// pointers is preferred unless the identifier is already available as a
/// string (this avoids allocation and copying of memory to construct an /// string (this avoids allocation and copying of memory to construct an
/// std::string). /// std::string).
IdentifierInfo *getIdentifierInfo(llvm::StringRef Name) const { IdentifierInfo *getIdentifierInfo(StringRef Name) const {
return &Identifiers.get(Name); return &Identifiers.get(Name);
} }
/// AddPragmaHandler - Add the specified pragma handler to the preprocessor. /// AddPragmaHandler - Add the specified pragma handler to the preprocessor.
/// If 'Namespace' is non-null, then it is a token required to exist on the /// If 'Namespace' is non-null, then it is a token required to exist on the
/// pragma line before the pragma string starts, e.g. "STDC" or "GCC". /// pragma line before the pragma string starts, e.g. "STDC" or "GCC".
void AddPragmaHandler(llvm::StringRef Namespace, PragmaHandler *Handler); void AddPragmaHandler(StringRef Namespace, PragmaHandler *Handler);
void AddPragmaHandler(PragmaHandler *Handler) { void AddPragmaHandler(PragmaHandler *Handler) {
AddPragmaHandler(llvm::StringRef(), Handler); AddPragmaHandler(StringRef(), Handler);
} }
/// RemovePragmaHandler - Remove the specific pragma handler from /// RemovePragmaHandler - Remove the specific pragma handler from
/// the preprocessor. If \arg Namespace is non-null, then it should /// the preprocessor. If \arg Namespace is non-null, then it should
/// be the namespace that \arg Handler was added to. It is an error /// be the namespace that \arg Handler was added to. It is an error
/// to remove a handler that has not been registered. /// to remove a handler that has not been registered.
void RemovePragmaHandler(llvm::StringRef Namespace, PragmaHandler *Handler); void RemovePragmaHandler(StringRef Namespace, PragmaHandler *Handler);
void RemovePragmaHandler(PragmaHandler *Handler) { void RemovePragmaHandler(PragmaHandler *Handler) {
RemovePragmaHandler(llvm::StringRef(), Handler); RemovePragmaHandler(StringRef(), Handler);
} }
/// \brief Add the specified comment handler to the preprocessor. /// \brief Add the specified comment handler to the preprocessor.
@ -672,8 +672,8 @@ public:
/// \param buffer A buffer which will be used only if the token requires /// \param buffer A buffer which will be used only if the token requires
/// "cleaning", e.g. if it contains trigraphs or escaped newlines /// "cleaning", e.g. if it contains trigraphs or escaped newlines
/// \param invalid If non-null, will be set \c true if an error occurs. /// \param invalid If non-null, will be set \c true if an error occurs.
llvm::StringRef getSpelling(SourceLocation loc, StringRef getSpelling(SourceLocation loc,
llvm::SmallVectorImpl<char> &buffer, SmallVectorImpl<char> &buffer,
bool *invalid = 0) const { bool *invalid = 0) const {
return Lexer::getSpelling(loc, buffer, SourceMgr, Features, invalid); return Lexer::getSpelling(loc, buffer, SourceMgr, Features, invalid);
} }
@ -707,8 +707,8 @@ public:
/// getSpelling - This method is used to get the spelling of a token into a /// getSpelling - This method is used to get the spelling of a token into a
/// SmallVector. Note that the returned StringRef may not point to the /// SmallVector. Note that the returned StringRef may not point to the
/// supplied buffer if a copy can be avoided. /// supplied buffer if a copy can be avoided.
llvm::StringRef getSpelling(const Token &Tok, StringRef getSpelling(const Token &Tok,
llvm::SmallVectorImpl<char> &Buffer, SmallVectorImpl<char> &Buffer,
bool *Invalid = 0) const; bool *Invalid = 0) const;
/// getSpellingOfSingleCharacterNumericConstant - Tok is a numeric constant /// getSpellingOfSingleCharacterNumericConstant - Tok is a numeric constant
@ -892,16 +892,16 @@ public:
/// caller is expected to provide a buffer that is large enough to hold the /// caller is expected to provide a buffer that is large enough to hold the
/// spelling of the filename, but is also expected to handle the case when /// spelling of the filename, but is also expected to handle the case when
/// this method decides to use a different buffer. /// this method decides to use a different buffer.
bool GetIncludeFilenameSpelling(SourceLocation Loc,llvm::StringRef &Filename); bool GetIncludeFilenameSpelling(SourceLocation Loc,StringRef &Filename);
/// LookupFile - Given a "foo" or <foo> reference, look up the indicated file, /// LookupFile - Given a "foo" or <foo> reference, look up the indicated file,
/// return null on failure. isAngled indicates whether the file reference is /// return null on failure. isAngled indicates whether the file reference is
/// for system #include's or not (i.e. using <> instead of ""). /// for system #include's or not (i.e. using <> instead of "").
const FileEntry *LookupFile(llvm::StringRef Filename, const FileEntry *LookupFile(StringRef Filename,
bool isAngled, const DirectoryLookup *FromDir, bool isAngled, const DirectoryLookup *FromDir,
const DirectoryLookup *&CurDir, const DirectoryLookup *&CurDir,
llvm::SmallVectorImpl<char> *SearchPath, SmallVectorImpl<char> *SearchPath,
llvm::SmallVectorImpl<char> *RelativePath); SmallVectorImpl<char> *RelativePath);
/// GetCurLookup - The DirectoryLookup structure used to find the current /// GetCurLookup - The DirectoryLookup structure used to find the current
/// FileEntry, if CurLexer is non-null and if applicable. This allows us to /// FileEntry, if CurLexer is non-null and if applicable. This allows us to

View File

@ -61,7 +61,7 @@ protected:
/// ConditionalStack - Information about the set of #if/#ifdef/#ifndef blocks /// ConditionalStack - Information about the set of #if/#ifdef/#ifndef blocks
/// we are currently in. /// we are currently in.
llvm::SmallVector<PPConditionalInfo, 4> ConditionalStack; SmallVector<PPConditionalInfo, 4> ConditionalStack;
PreprocessorLexer(const PreprocessorLexer&); // DO NOT IMPLEMENT PreprocessorLexer(const PreprocessorLexer&); // DO NOT IMPLEMENT
void operator=(const PreprocessorLexer&); // DO NOT IMPLEMENT void operator=(const PreprocessorLexer&); // DO NOT IMPLEMENT
@ -157,7 +157,7 @@ public:
/// \brief Iterator that traverses the current stack of preprocessor /// \brief Iterator that traverses the current stack of preprocessor
/// conditional directives (#if/#ifdef/#ifndef). /// conditional directives (#if/#ifdef/#ifndef).
typedef llvm::SmallVectorImpl<PPConditionalInfo>::const_iterator typedef SmallVectorImpl<PPConditionalInfo>::const_iterator
conditional_iterator; conditional_iterator;
conditional_iterator conditional_begin() const { conditional_iterator conditional_begin() const {

View File

@ -198,7 +198,7 @@ public:
typedef TemplateParameterList TemplateParamsTy; typedef TemplateParameterList TemplateParamsTy;
typedef OpaquePtr<TemplateName> TemplateTy; typedef OpaquePtr<TemplateName> TemplateTy;
typedef llvm::SmallVector<TemplateParameterList *, 4> TemplateParameterLists; typedef SmallVector<TemplateParameterList *, 4> TemplateParameterLists;
typedef clang::ExprResult ExprResult; typedef clang::ExprResult ExprResult;
typedef clang::StmtResult StmtResult; typedef clang::StmtResult StmtResult;
@ -711,7 +711,7 @@ private:
/// have a default argument, but all of the parameters of the /// have a default argument, but all of the parameters of the
/// method will be stored so that they can be reintroduced into /// method will be stored so that they can be reintroduced into
/// scope at the appropriate times. /// scope at the appropriate times.
llvm::SmallVector<LateParsedDefaultArgument, 8> DefaultArgs; SmallVector<LateParsedDefaultArgument, 8> DefaultArgs;
}; };
/// LateParsedMemberInitializer - An initializer for a non-static class data /// LateParsedMemberInitializer - An initializer for a non-static class data
@ -738,7 +738,7 @@ private:
/// parsed until after the definition is completed (C++ [class.mem]p2), /// parsed until after the definition is completed (C++ [class.mem]p2),
/// the method declarations and possibly attached inline definitions /// the method declarations and possibly attached inline definitions
/// will be stored here with the tokens that will be parsed to create those entities. /// will be stored here with the tokens that will be parsed to create those entities.
typedef llvm::SmallVector<LateParsedDeclaration*, 2> LateParsedDeclarationsContainer; typedef SmallVector<LateParsedDeclaration*, 2> LateParsedDeclarationsContainer;
/// \brief Representation of a class that has been parsed, including /// \brief Representation of a class that has been parsed, including
/// any member function declarations or definitions that need to be /// any member function declarations or definitions that need to be
@ -1045,8 +1045,8 @@ private:
void ParseObjCClassInstanceVariables(Decl *interfaceDecl, void ParseObjCClassInstanceVariables(Decl *interfaceDecl,
tok::ObjCKeywordKind visibility, tok::ObjCKeywordKind visibility,
SourceLocation atLoc); SourceLocation atLoc);
bool ParseObjCProtocolReferences(llvm::SmallVectorImpl<Decl *> &P, bool ParseObjCProtocolReferences(SmallVectorImpl<Decl *> &P,
llvm::SmallVectorImpl<SourceLocation> &PLocs, SmallVectorImpl<SourceLocation> &PLocs,
bool WarnOnDeclarations, bool WarnOnDeclarations,
SourceLocation &LAngleLoc, SourceLocation &LAngleLoc,
SourceLocation &EndProtoLoc); SourceLocation &EndProtoLoc);
@ -1057,7 +1057,7 @@ private:
ParsedAttributes &prefixAttrs); ParsedAttributes &prefixAttrs);
Decl *ObjCImpDecl; Decl *ObjCImpDecl;
llvm::SmallVector<Decl *, 4> PendingObjCImpDecl; SmallVector<Decl *, 4> PendingObjCImpDecl;
Decl *ParseObjCAtImplementationDeclaration(SourceLocation atLoc); Decl *ParseObjCAtImplementationDeclaration(SourceLocation atLoc);
Decl *ParseObjCAtEndDeclaration(SourceRange atEnd); Decl *ParseObjCAtEndDeclaration(SourceRange atEnd);
@ -1134,12 +1134,12 @@ private:
ParsedType &CastTy, ParsedType &CastTy,
SourceRange &CastRange); SourceRange &CastRange);
typedef llvm::SmallVector<Expr*, 20> ExprListTy; typedef SmallVector<Expr*, 20> ExprListTy;
typedef llvm::SmallVector<SourceLocation, 20> CommaLocsTy; typedef SmallVector<SourceLocation, 20> CommaLocsTy;
/// ParseExpressionList - Used for C/C++ (argument-)expression-list. /// ParseExpressionList - Used for C/C++ (argument-)expression-list.
bool ParseExpressionList(llvm::SmallVectorImpl<Expr*> &Exprs, bool ParseExpressionList(SmallVectorImpl<Expr*> &Exprs,
llvm::SmallVectorImpl<SourceLocation> &CommaLocs, SmallVectorImpl<SourceLocation> &CommaLocs,
void (Sema::*Completer)(Scope *S, void (Sema::*Completer)(Scope *S,
Expr *Data, Expr *Data,
Expr **Args, Expr **Args,
@ -1211,15 +1211,15 @@ private:
ExceptionSpecificationType MaybeParseExceptionSpecification( ExceptionSpecificationType MaybeParseExceptionSpecification(
SourceRange &SpecificationRange, SourceRange &SpecificationRange,
llvm::SmallVectorImpl<ParsedType> &DynamicExceptions, SmallVectorImpl<ParsedType> &DynamicExceptions,
llvm::SmallVectorImpl<SourceRange> &DynamicExceptionRanges, SmallVectorImpl<SourceRange> &DynamicExceptionRanges,
ExprResult &NoexceptExpr); ExprResult &NoexceptExpr);
// EndLoc is filled with the location of the last token of the specification. // EndLoc is filled with the location of the last token of the specification.
ExceptionSpecificationType ParseDynamicExceptionSpecification( ExceptionSpecificationType ParseDynamicExceptionSpecification(
SourceRange &SpecificationRange, SourceRange &SpecificationRange,
llvm::SmallVectorImpl<ParsedType> &Exceptions, SmallVectorImpl<ParsedType> &Exceptions,
llvm::SmallVectorImpl<SourceRange> &Ranges); SmallVectorImpl<SourceRange> &Ranges);
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
// C++0x 8: Function declaration trailing-return-type // C++0x 8: Function declaration trailing-return-type
@ -1244,7 +1244,7 @@ private:
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
// C++ 5.3.4 and 5.3.5: C++ new and delete // C++ 5.3.4 and 5.3.5: C++ new and delete
bool ParseExpressionListOrTypeId(llvm::SmallVectorImpl<Expr*> &Exprs, bool ParseExpressionListOrTypeId(SmallVectorImpl<Expr*> &Exprs,
Declarator &D); Declarator &D);
void ParseDirectNewDeclarator(Declarator &D); void ParseDirectNewDeclarator(Declarator &D);
ExprResult ParseCXXNewExpression(bool UseGlobal, SourceLocation Start); ExprResult ParseCXXNewExpression(bool UseGlobal, SourceLocation Start);
@ -1338,9 +1338,9 @@ private:
void ParseMicrosoftIfExistsExternalDeclaration(); void ParseMicrosoftIfExistsExternalDeclaration();
void ParseMicrosoftIfExistsClassDeclaration(DeclSpec::TST TagType, void ParseMicrosoftIfExistsClassDeclaration(DeclSpec::TST TagType,
AccessSpecifier& CurAS); AccessSpecifier& CurAS);
bool ParseAsmOperandsOpt(llvm::SmallVectorImpl<IdentifierInfo *> &Names, bool ParseAsmOperandsOpt(SmallVectorImpl<IdentifierInfo *> &Names,
llvm::SmallVectorImpl<ExprTy *> &Constraints, SmallVectorImpl<ExprTy *> &Constraints,
llvm::SmallVectorImpl<ExprTy *> &Exprs); SmallVectorImpl<ExprTy *> &Exprs);
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
// C++ 6: Statements and Blocks // C++ 6: Statements and Blocks
@ -1738,11 +1738,11 @@ bool ParseAsmOperandsOpt(llvm::SmallVectorImpl<IdentifierInfo *> &Names,
bool isFunctionDeclaratorIdentifierList(); bool isFunctionDeclaratorIdentifierList();
void ParseFunctionDeclaratorIdentifierList( void ParseFunctionDeclaratorIdentifierList(
Declarator &D, Declarator &D,
llvm::SmallVector<DeclaratorChunk::ParamInfo, 16> &ParamInfo); SmallVector<DeclaratorChunk::ParamInfo, 16> &ParamInfo);
void ParseParameterDeclarationClause( void ParseParameterDeclarationClause(
Declarator &D, Declarator &D,
ParsedAttributes &attrs, ParsedAttributes &attrs,
llvm::SmallVector<DeclaratorChunk::ParamInfo, 16> &ParamInfo, SmallVector<DeclaratorChunk::ParamInfo, 16> &ParamInfo,
SourceLocation &EllipsisLoc); SourceLocation &EllipsisLoc);
void ParseBracketDeclarator(Declarator &D); void ParseBracketDeclarator(Declarator &D);
@ -1841,18 +1841,18 @@ bool ParseAsmOperandsOpt(llvm::SmallVectorImpl<IdentifierInfo *> &Names,
SourceLocation &DeclEnd, SourceLocation &DeclEnd,
AccessSpecifier AS=AS_none); AccessSpecifier AS=AS_none);
bool ParseTemplateParameters(unsigned Depth, bool ParseTemplateParameters(unsigned Depth,
llvm::SmallVectorImpl<Decl*> &TemplateParams, SmallVectorImpl<Decl*> &TemplateParams,
SourceLocation &LAngleLoc, SourceLocation &LAngleLoc,
SourceLocation &RAngleLoc); SourceLocation &RAngleLoc);
bool ParseTemplateParameterList(unsigned Depth, bool ParseTemplateParameterList(unsigned Depth,
llvm::SmallVectorImpl<Decl*> &TemplateParams); SmallVectorImpl<Decl*> &TemplateParams);
bool isStartOfTemplateTypeParameter(); bool isStartOfTemplateTypeParameter();
Decl *ParseTemplateParameter(unsigned Depth, unsigned Position); Decl *ParseTemplateParameter(unsigned Depth, unsigned Position);
Decl *ParseTypeParameter(unsigned Depth, unsigned Position); Decl *ParseTypeParameter(unsigned Depth, unsigned Position);
Decl *ParseTemplateTemplateParameter(unsigned Depth, unsigned Position); Decl *ParseTemplateTemplateParameter(unsigned Depth, unsigned Position);
Decl *ParseNonTypeTemplateParameter(unsigned Depth, unsigned Position); Decl *ParseNonTypeTemplateParameter(unsigned Depth, unsigned Position);
// C++ 14.3: Template arguments [temp.arg] // C++ 14.3: Template arguments [temp.arg]
typedef llvm::SmallVector<ParsedTemplateArgument, 16> TemplateArgList; typedef SmallVector<ParsedTemplateArgument, 16> TemplateArgList;
bool ParseTemplateIdAfterTemplateName(TemplateTy Template, bool ParseTemplateIdAfterTemplateName(TemplateTy Template,
SourceLocation TemplateNameLoc, SourceLocation TemplateNameLoc,

View File

@ -23,7 +23,7 @@ class FixItOptions;
class HTMLPrintAction : public ASTFrontendAction { class HTMLPrintAction : public ASTFrontendAction {
protected: protected:
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
}; };
class FixItAction : public ASTFrontendAction { class FixItAction : public ASTFrontendAction {
@ -32,10 +32,10 @@ protected:
llvm::OwningPtr<FixItOptions> FixItOpts; llvm::OwningPtr<FixItOptions> FixItOpts;
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
virtual bool BeginSourceFileAction(CompilerInstance &CI, virtual bool BeginSourceFileAction(CompilerInstance &CI,
llvm::StringRef Filename); StringRef Filename);
virtual void EndSourceFileAction(); virtual void EndSourceFileAction();
@ -49,7 +49,7 @@ public:
class RewriteObjCAction : public ASTFrontendAction { class RewriteObjCAction : public ASTFrontendAction {
protected: protected:
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
llvm::StringRef InFile); StringRef InFile);
}; };
class RewriteMacrosAction : public PreprocessorFrontendAction { class RewriteMacrosAction : public PreprocessorFrontendAction {

View File

@ -64,7 +64,7 @@ public:
/// the buffer is specified relative to the original SourceBuffer. The /// the buffer is specified relative to the original SourceBuffer. The
/// text is inserted after the specified location. /// text is inserted after the specified location.
/// ///
void InsertText(unsigned OrigOffset, llvm::StringRef Str, void InsertText(unsigned OrigOffset, StringRef Str,
bool InsertAfter = true); bool InsertAfter = true);
@ -72,14 +72,14 @@ public:
/// offset in the buffer is specified relative to the original /// offset in the buffer is specified relative to the original
/// SourceBuffer. The text is inserted before the specified location. This is /// SourceBuffer. The text is inserted before the specified location. This is
/// method is the same as InsertText with "InsertAfter == false". /// method is the same as InsertText with "InsertAfter == false".
void InsertTextBefore(unsigned OrigOffset, llvm::StringRef Str) { void InsertTextBefore(unsigned OrigOffset, StringRef Str) {
InsertText(OrigOffset, Str, false); InsertText(OrigOffset, Str, false);
} }
/// InsertTextAfter - Insert some text at the specified point, where the /// InsertTextAfter - Insert some text at the specified point, where the
/// offset in the buffer is specified relative to the original SourceBuffer. /// offset in the buffer is specified relative to the original SourceBuffer.
/// The text is inserted after the specified location. /// The text is inserted after the specified location.
void InsertTextAfter(unsigned OrigOffset, llvm::StringRef Str) { void InsertTextAfter(unsigned OrigOffset, StringRef Str) {
InsertText(OrigOffset, Str); InsertText(OrigOffset, Str);
} }
@ -87,7 +87,7 @@ public:
/// buffer with a new string. This is effectively a combined "remove/insert" /// buffer with a new string. This is effectively a combined "remove/insert"
/// operation. /// operation.
void ReplaceText(unsigned OrigOffset, unsigned OrigLength, void ReplaceText(unsigned OrigOffset, unsigned OrigLength,
llvm::StringRef NewStr); StringRef NewStr);
private: // Methods only usable by Rewriter. private: // Methods only usable by Rewriter.
@ -186,7 +186,7 @@ public:
/// ///
/// \param indentNewLines if true new lines in the string are indented /// \param indentNewLines if true new lines in the string are indented
/// using the indentation of the source line in position \arg Loc. /// using the indentation of the source line in position \arg Loc.
bool InsertText(SourceLocation Loc, llvm::StringRef Str, bool InsertText(SourceLocation Loc, StringRef Str,
bool InsertAfter = true, bool indentNewLines = false); bool InsertAfter = true, bool indentNewLines = false);
/// InsertTextAfter - Insert the specified string at the specified location in /// InsertTextAfter - Insert the specified string at the specified location in
@ -194,20 +194,20 @@ public:
/// the input location was not rewritable, false otherwise. Text is /// the input location was not rewritable, false otherwise. Text is
/// inserted after any other text that has been previously inserted /// inserted after any other text that has been previously inserted
/// at the some point (the default behavior for InsertText). /// at the some point (the default behavior for InsertText).
bool InsertTextAfter(SourceLocation Loc, llvm::StringRef Str) { bool InsertTextAfter(SourceLocation Loc, StringRef Str) {
return InsertText(Loc, Str); return InsertText(Loc, Str);
} }
/// \brief Insert the specified string after the token in the /// \brief Insert the specified string after the token in the
/// specified location. /// specified location.
bool InsertTextAfterToken(SourceLocation Loc, llvm::StringRef Str); bool InsertTextAfterToken(SourceLocation Loc, StringRef Str);
/// InsertText - Insert the specified string at the specified location in the /// InsertText - Insert the specified string at the specified location in the
/// original buffer. This method returns true (and does nothing) if the input /// original buffer. This method returns true (and does nothing) if the input
/// location was not rewritable, false otherwise. Text is /// location was not rewritable, false otherwise. Text is
/// inserted before any other text that has been previously inserted /// inserted before any other text that has been previously inserted
/// at the some point. /// at the some point.
bool InsertTextBefore(SourceLocation Loc, llvm::StringRef Str) { bool InsertTextBefore(SourceLocation Loc, StringRef Str) {
return InsertText(Loc, Str, false); return InsertText(Loc, Str, false);
} }
@ -230,12 +230,12 @@ public:
/// buffer with a new string. This is effectively a combined "remove/insert" /// buffer with a new string. This is effectively a combined "remove/insert"
/// operation. /// operation.
bool ReplaceText(SourceLocation Start, unsigned OrigLength, bool ReplaceText(SourceLocation Start, unsigned OrigLength,
llvm::StringRef NewStr); StringRef NewStr);
/// ReplaceText - This method replaces a range of characters in the input /// ReplaceText - This method replaces a range of characters in the input
/// buffer with a new string. This is effectively a combined "remove/insert" /// buffer with a new string. This is effectively a combined "remove/insert"
/// operation. /// operation.
bool ReplaceText(SourceRange range, llvm::StringRef NewStr) { bool ReplaceText(SourceRange range, StringRef NewStr) {
return ReplaceText(range.getBegin(), getRangeSize(range), NewStr); return ReplaceText(range.getBegin(), getRangeSize(range), NewStr);
} }

View File

@ -373,7 +373,7 @@ private:
/// Free lists. The index is determined by the following formula: /// Free lists. The index is determined by the following formula:
/// (size - sizeof(AttributeList)) / sizeof(void*) /// (size - sizeof(AttributeList)) / sizeof(void*)
llvm::SmallVector<AttributeList*, InlineFreeListsCapacity> FreeLists; SmallVector<AttributeList*, InlineFreeListsCapacity> FreeLists;
// The following are the private interface used by AttributePool. // The following are the private interface used by AttributePool.
friend class AttributePool; friend class AttributePool;

View File

@ -26,12 +26,12 @@ class CXXFieldCollector {
/// Fields - Contains all FieldDecls collected during parsing of a C++ /// Fields - Contains all FieldDecls collected during parsing of a C++
/// class. When a nested class is entered, its fields are appended to the /// class. When a nested class is entered, its fields are appended to the
/// fields of its parent class, when it is exited its fields are removed. /// fields of its parent class, when it is exited its fields are removed.
llvm::SmallVector<FieldDecl*, 32> Fields; SmallVector<FieldDecl*, 32> Fields;
/// FieldCount - Each entry represents the number of fields collected during /// FieldCount - Each entry represents the number of fields collected during
/// the parsing of a C++ class. When a nested class is entered, a new field /// the parsing of a C++ class. When a nested class is entered, a new field
/// count is pushed, when it is exited, the field count is popped. /// count is pushed, when it is exited, the field count is popped.
llvm::SmallVector<size_t, 4> FieldCount; SmallVector<size_t, 4> FieldCount;
// Example: // Example:
// //

View File

@ -136,7 +136,7 @@ QualType getDeclUsageType(ASTContext &C, NamedDecl *ND);
/// ///
/// \param PreferredTypeIsPointer Whether the preferred type for the context /// \param PreferredTypeIsPointer Whether the preferred type for the context
/// of this macro is a pointer type. /// of this macro is a pointer type.
unsigned getMacroUsagePriority(llvm::StringRef MacroName, unsigned getMacroUsagePriority(StringRef MacroName,
const LangOptions &LangOpts, const LangOptions &LangOpts,
bool PreferredTypeIsPointer = false); bool PreferredTypeIsPointer = false);
@ -463,19 +463,19 @@ public:
class CodeCompletionAllocator : public llvm::BumpPtrAllocator { class CodeCompletionAllocator : public llvm::BumpPtrAllocator {
public: public:
/// \brief Copy the given string into this allocator. /// \brief Copy the given string into this allocator.
const char *CopyString(llvm::StringRef String); const char *CopyString(StringRef String);
/// \brief Copy the given string into this allocator. /// \brief Copy the given string into this allocator.
const char *CopyString(llvm::Twine String); const char *CopyString(llvm::Twine String);
// \brief Copy the given string into this allocator. // \brief Copy the given string into this allocator.
const char *CopyString(const char *String) { const char *CopyString(const char *String) {
return CopyString(llvm::StringRef(String)); return CopyString(StringRef(String));
} }
/// \brief Copy the given string into this allocator. /// \brief Copy the given string into this allocator.
const char *CopyString(const std::string &String) { const char *CopyString(const std::string &String) {
return CopyString(llvm::StringRef(String)); return CopyString(StringRef(String));
} }
}; };
@ -490,7 +490,7 @@ private:
CXAvailabilityKind Availability; CXAvailabilityKind Availability;
/// \brief The chunks stored in this string. /// \brief The chunks stored in this string.
llvm::SmallVector<Chunk, 4> Chunks; SmallVector<Chunk, 4> Chunks;
public: public:
CodeCompletionBuilder(CodeCompletionAllocator &Allocator) CodeCompletionBuilder(CodeCompletionAllocator &Allocator)

View File

@ -961,7 +961,7 @@ public:
/// CachedTokens - A set of tokens that has been cached for later /// CachedTokens - A set of tokens that has been cached for later
/// parsing. /// parsing.
typedef llvm::SmallVector<Token, 4> CachedTokens; typedef SmallVector<Token, 4> CachedTokens;
/// DeclaratorChunk - One instance of this struct is used for each type in a /// DeclaratorChunk - One instance of this struct is used for each type in a
/// declarator that is parsed. /// declarator that is parsed.
@ -1395,7 +1395,7 @@ private:
/// parsed. This is pushed from the identifier out, which means that element /// parsed. This is pushed from the identifier out, which means that element
/// #0 will be the most closely bound to the identifier, and /// #0 will be the most closely bound to the identifier, and
/// DeclTypeInfo.back() will be the least closely bound. /// DeclTypeInfo.back() will be the least closely bound.
llvm::SmallVector<DeclaratorChunk, 8> DeclTypeInfo; SmallVector<DeclaratorChunk, 8> DeclTypeInfo;
/// InvalidType - Set by Sema::GetTypeForDeclarator(). /// InvalidType - Set by Sema::GetTypeForDeclarator().
bool InvalidType : 1; bool InvalidType : 1;

View File

@ -123,7 +123,7 @@ public:
static DelayedDiagnostic makeDeprecation(SourceLocation Loc, static DelayedDiagnostic makeDeprecation(SourceLocation Loc,
const NamedDecl *D, const NamedDecl *D,
llvm::StringRef Msg); StringRef Msg);
static DelayedDiagnostic makeAccess(SourceLocation Loc, static DelayedDiagnostic makeAccess(SourceLocation Loc,
const AccessedEntity &Entity) { const AccessedEntity &Entity) {
@ -163,9 +163,9 @@ public:
return DeprecationData.Decl; return DeprecationData.Decl;
} }
llvm::StringRef getDeprecationMessage() const { StringRef getDeprecationMessage() const {
assert(Kind == Deprecation && "Not a deprecation diagnostic."); assert(Kind == Deprecation && "Not a deprecation diagnostic.");
return llvm::StringRef(DeprecationData.Message, return StringRef(DeprecationData.Message,
DeprecationData.MessageLen); DeprecationData.MessageLen);
} }

View File

@ -185,7 +185,7 @@ class Designation {
unsigned InitIndex; unsigned InitIndex;
/// Designators - The actual designators for this initializer. /// Designators - The actual designators for this initializer.
llvm::SmallVector<Designator, 2> Designators; SmallVector<Designator, 2> Designators;
Designation(unsigned Idx) : InitIndex(Idx) {} Designation(unsigned Idx) : InitIndex(Idx) {}
public: public:

View File

@ -52,7 +52,7 @@ public:
/// \brief Load the set of namespaces that are known to the external source, /// \brief Load the set of namespaces that are known to the external source,
/// which will be used during typo correction. /// which will be used during typo correction.
virtual void ReadKnownNamespaces( virtual void ReadKnownNamespaces(
llvm::SmallVectorImpl<NamespaceDecl *> &Namespaces); SmallVectorImpl<NamespaceDecl *> &Namespaces);
/// \brief Do last resort, unqualified lookup on a LookupResult that /// \brief Do last resort, unqualified lookup on a LookupResult that
/// Sema cannot find. /// Sema cannot find.

View File

@ -37,7 +37,7 @@ class IdentifierResolver {
/// decl with that declaration name is shadowed in some scope. /// decl with that declaration name is shadowed in some scope.
class IdDeclInfo { class IdDeclInfo {
public: public:
typedef llvm::SmallVector<NamedDecl*, 2> DeclsTy; typedef SmallVector<NamedDecl*, 2> DeclsTy;
inline DeclsTy::iterator decls_begin() { return Decls.begin(); } inline DeclsTy::iterator decls_begin() { return Decls.begin(); }
inline DeclsTy::iterator decls_end() { return Decls.end(); } inline DeclsTy::iterator decls_end() { return Decls.end(); }

View File

@ -584,7 +584,7 @@ private:
enum SequenceKind SequenceKind; enum SequenceKind SequenceKind;
/// \brief Steps taken by this initialization. /// \brief Steps taken by this initialization.
llvm::SmallVector<Step, 4> Steps; SmallVector<Step, 4> Steps;
public: public:
/// \brief Describes why initialization failed. /// \brief Describes why initialization failed.
@ -722,7 +722,7 @@ public:
/// \brief Determine whether the initialization sequence is invalid. /// \brief Determine whether the initialization sequence is invalid.
bool Failed() const { return SequenceKind == FailedSequence; } bool Failed() const { return SequenceKind == FailedSequence; }
typedef llvm::SmallVector<Step, 4>::const_iterator step_iterator; typedef SmallVector<Step, 4>::const_iterator step_iterator;
step_iterator step_begin() const { return Steps.begin(); } step_iterator step_begin() const { return Steps.begin(); }
step_iterator step_end() const { return Steps.end(); } step_iterator step_end() const { return Steps.end(); }

View File

@ -262,7 +262,7 @@ namespace clang {
/// Represents an ambiguous user-defined conversion sequence. /// Represents an ambiguous user-defined conversion sequence.
struct AmbiguousConversionSequence { struct AmbiguousConversionSequence {
typedef llvm::SmallVector<FunctionDecl*, 4> ConversionSet; typedef SmallVector<FunctionDecl*, 4> ConversionSet;
void *FromTypePtr; void *FromTypePtr;
void *ToTypePtr; void *ToTypePtr;
@ -560,12 +560,12 @@ namespace clang {
/// Conversions - The conversion sequences used to convert the /// Conversions - The conversion sequences used to convert the
/// function arguments to the function parameters. /// function arguments to the function parameters.
llvm::SmallVector<ImplicitConversionSequence, 4> Conversions; SmallVector<ImplicitConversionSequence, 4> Conversions;
/// The FixIt hints which can be used to fix the Bad candidate. /// The FixIt hints which can be used to fix the Bad candidate.
struct FixInfo { struct FixInfo {
/// The list of Hints (all have to be applied). /// The list of Hints (all have to be applied).
llvm::SmallVector<FixItHint, 4> Hints; SmallVector<FixItHint, 4> Hints;
/// The number of Conversions fixed. This can be different from the size /// The number of Conversions fixed. This can be different from the size
/// of the Hints vector since we allow multiple FixIts per conversion. /// of the Hints vector since we allow multiple FixIts per conversion.
@ -645,7 +645,7 @@ namespace clang {
/// hasAmbiguousConversion - Returns whether this overload /// hasAmbiguousConversion - Returns whether this overload
/// candidate requires an ambiguous conversion or not. /// candidate requires an ambiguous conversion or not.
bool hasAmbiguousConversion() const { bool hasAmbiguousConversion() const {
for (llvm::SmallVectorImpl<ImplicitConversionSequence>::const_iterator for (SmallVectorImpl<ImplicitConversionSequence>::const_iterator
I = Conversions.begin(), E = Conversions.end(); I != E; ++I) { I = Conversions.begin(), E = Conversions.end(); I != E; ++I) {
if (!I->isInitialized()) return false; if (!I->isInitialized()) return false;
if (I->isAmbiguous()) return true; if (I->isAmbiguous()) return true;
@ -656,8 +656,8 @@ namespace clang {
/// OverloadCandidateSet - A set of overload candidates, used in C++ /// OverloadCandidateSet - A set of overload candidates, used in C++
/// overload resolution (C++ 13.3). /// overload resolution (C++ 13.3).
class OverloadCandidateSet : public llvm::SmallVector<OverloadCandidate, 16> { class OverloadCandidateSet : public SmallVector<OverloadCandidate, 16> {
typedef llvm::SmallVector<OverloadCandidate, 16> inherited; typedef SmallVector<OverloadCandidate, 16> inherited;
llvm::SmallPtrSet<Decl *, 16> Functions; llvm::SmallPtrSet<Decl *, 16> Functions;
SourceLocation Loc; SourceLocation Loc;

View File

@ -14,6 +14,7 @@
#ifndef LLVM_CLANG_SEMA_OWNERSHIP_H #ifndef LLVM_CLANG_SEMA_OWNERSHIP_H
#define LLVM_CLANG_SEMA_OWNERSHIP_H #define LLVM_CLANG_SEMA_OWNERSHIP_H
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/SmallVector.h" #include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/PointerIntPair.h" #include "llvm/ADT/PointerIntPair.h"
@ -368,7 +369,7 @@ namespace clang {
/// \brief A small vector that owns a set of AST nodes. /// \brief A small vector that owns a set of AST nodes.
template <class PtrTy, unsigned N = 8> template <class PtrTy, unsigned N = 8>
class ASTOwningVector : public llvm::SmallVector<PtrTy, N> { class ASTOwningVector : public SmallVector<PtrTy, N> {
ASTOwningVector(ASTOwningVector &); // do not implement ASTOwningVector(ASTOwningVector &); // do not implement
ASTOwningVector &operator=(ASTOwningVector &); // do not implement ASTOwningVector &operator=(ASTOwningVector &); // do not implement

View File

@ -149,7 +149,7 @@ private:
/// maintained by the Action implementation. /// maintained by the Action implementation.
void *Entity; void *Entity;
typedef llvm::SmallVector<UsingDirectiveDecl *, 2> UsingDirectivesTy; typedef SmallVector<UsingDirectiveDecl *, 2> UsingDirectivesTy;
UsingDirectivesTy UsingDirectives; UsingDirectivesTy UsingDirectives;
/// \brief Used to determine if errors occurred in this scope. /// \brief Used to determine if errors occurred in this scope.

View File

@ -66,17 +66,17 @@ public:
/// SwitchStack - This is the current set of active switch statements in the /// SwitchStack - This is the current set of active switch statements in the
/// block. /// block.
llvm::SmallVector<SwitchStmt*, 8> SwitchStack; SmallVector<SwitchStmt*, 8> SwitchStack;
/// \brief The list of return statements that occur within the function or /// \brief The list of return statements that occur within the function or
/// block, if there is any chance of applying the named return value /// block, if there is any chance of applying the named return value
/// optimization. /// optimization.
llvm::SmallVector<ReturnStmt*, 4> Returns; SmallVector<ReturnStmt*, 4> Returns;
/// \brief A list of PartialDiagnostics created but delayed within the /// \brief A list of PartialDiagnostics created but delayed within the
/// current function scope. These diagnostics are vetted for reachability /// current function scope. These diagnostics are vetted for reachability
/// prior to being emitted. /// prior to being emitted.
llvm::SmallVector<PossiblyUnreachableDiag, 4> PossiblyUnreachableDiags; SmallVector<PossiblyUnreachableDiag, 4> PossiblyUnreachableDiags;
void setHasBranchIntoScope() { void setHasBranchIntoScope() {
HasBranchIntoScope = true; HasBranchIntoScope = true;
@ -132,7 +132,7 @@ public:
llvm::DenseMap<VarDecl*, unsigned> CaptureMap; llvm::DenseMap<VarDecl*, unsigned> CaptureMap;
/// Captures - The captured variables. /// Captures - The captured variables.
llvm::SmallVector<BlockDecl::Capture, 4> Captures; SmallVector<BlockDecl::Capture, 4> Captures;
/// CapturesCXXThis - Whether this block captures 'this'. /// CapturesCXXThis - Whether this block captures 'this'.
bool CapturesCXXThis; bool CapturesCXXThis;

View File

@ -54,7 +54,7 @@ namespace clang {
class BlockDecl; class BlockDecl;
class CXXBasePath; class CXXBasePath;
class CXXBasePaths; class CXXBasePaths;
typedef llvm::SmallVector<CXXBaseSpecifier*, 4> CXXCastPath; typedef SmallVector<CXXBaseSpecifier*, 4> CXXCastPath;
class CXXConstructorDecl; class CXXConstructorDecl;
class CXXConversionDecl; class CXXConversionDecl;
class CXXDestructorDecl; class CXXDestructorDecl;
@ -228,16 +228,16 @@ public:
/// This array is never empty. Clients should ignore the first /// This array is never empty. Clients should ignore the first
/// element, which is used to cache a single FunctionScopeInfo /// element, which is used to cache a single FunctionScopeInfo
/// that's used to parse every top-level function. /// that's used to parse every top-level function.
llvm::SmallVector<sema::FunctionScopeInfo *, 4> FunctionScopes; SmallVector<sema::FunctionScopeInfo *, 4> FunctionScopes;
/// ExprTemporaries - This is the stack of temporaries that are created by /// ExprTemporaries - This is the stack of temporaries that are created by
/// the current full expression. /// the current full expression.
llvm::SmallVector<CXXTemporary*, 8> ExprTemporaries; SmallVector<CXXTemporary*, 8> ExprTemporaries;
/// ExtVectorDecls - This is a list all the extended vector types. This allows /// ExtVectorDecls - This is a list all the extended vector types. This allows
/// us to associate a raw vector type with one of the ext_vector type names. /// us to associate a raw vector type with one of the ext_vector type names.
/// This is only necessary for issuing pretty diagnostics. /// This is only necessary for issuing pretty diagnostics.
llvm::SmallVector<TypedefNameDecl*, 24> ExtVectorDecls; SmallVector<TypedefNameDecl*, 24> ExtVectorDecls;
/// FieldCollector - Collects CXXFieldDecls during parsing of C++ classes. /// FieldCollector - Collects CXXFieldDecls during parsing of C++ classes.
llvm::OwningPtr<CXXFieldCollector> FieldCollector; llvm::OwningPtr<CXXFieldCollector> FieldCollector;
@ -281,20 +281,20 @@ public:
llvm::DenseMap<DeclarationName, NamedDecl *> LocallyScopedExternalDecls; llvm::DenseMap<DeclarationName, NamedDecl *> LocallyScopedExternalDecls;
/// \brief All the tentative definitions encountered in the TU. /// \brief All the tentative definitions encountered in the TU.
llvm::SmallVector<VarDecl *, 2> TentativeDefinitions; SmallVector<VarDecl *, 2> TentativeDefinitions;
/// \brief The set of file scoped decls seen so far that have not been used /// \brief The set of file scoped decls seen so far that have not been used
/// and must warn if not used. Only contains the first declaration. /// and must warn if not used. Only contains the first declaration.
llvm::SmallVector<const DeclaratorDecl*, 4> UnusedFileScopedDecls; SmallVector<const DeclaratorDecl*, 4> UnusedFileScopedDecls;
/// \brief All the delegating constructors seen so far in the file, used for /// \brief All the delegating constructors seen so far in the file, used for
/// cycle detection at the end of the TU. /// cycle detection at the end of the TU.
llvm::SmallVector<CXXConstructorDecl*, 4> DelegatingCtorDecls; SmallVector<CXXConstructorDecl*, 4> DelegatingCtorDecls;
/// \brief All the overriding destructors seen during a class definition /// \brief All the overriding destructors seen during a class definition
/// (there could be multiple due to nested classes) that had their exception /// (there could be multiple due to nested classes) that had their exception
/// spec checks delayed, plus the overridden destructor. /// spec checks delayed, plus the overridden destructor.
llvm::SmallVector<std::pair<const CXXDestructorDecl*, SmallVector<std::pair<const CXXDestructorDecl*,
const CXXDestructorDecl*>, 2> const CXXDestructorDecl*>, 2>
DelayedDestructorExceptionSpecChecks; DelayedDestructorExceptionSpecChecks;
@ -456,7 +456,7 @@ public:
/// I couldn't figure out a clean way to generate these in-line, so /// I couldn't figure out a clean way to generate these in-line, so
/// we store them here and handle separately -- which is a hack. /// we store them here and handle separately -- which is a hack.
/// It would be best to refactor this. /// It would be best to refactor this.
llvm::SmallVector<Decl*,2> WeakTopLevelDecl; SmallVector<Decl*,2> WeakTopLevelDecl;
IdentifierResolver IdResolver; IdentifierResolver IdResolver;
@ -484,11 +484,11 @@ public:
/// \brief The set of declarations that have been referenced within /// \brief The set of declarations that have been referenced within
/// a potentially evaluated expression. /// a potentially evaluated expression.
typedef llvm::SmallVector<std::pair<SourceLocation, Decl *>, 10> typedef SmallVector<std::pair<SourceLocation, Decl *>, 10>
PotentiallyReferencedDecls; PotentiallyReferencedDecls;
/// \brief A set of diagnostics that may be emitted. /// \brief A set of diagnostics that may be emitted.
typedef llvm::SmallVector<std::pair<SourceLocation, PartialDiagnostic>, 10> typedef SmallVector<std::pair<SourceLocation, PartialDiagnostic>, 10>
PotentiallyEmittedDiagnostics; PotentiallyEmittedDiagnostics;
/// \brief Describes how the expressions currently being parsed are /// \brief Describes how the expressions currently being parsed are
@ -578,7 +578,7 @@ public:
}; };
/// A stack of expression evaluation contexts. /// A stack of expression evaluation contexts.
llvm::SmallVector<ExpressionEvaluationContextRecord, 8> ExprEvalContexts; SmallVector<ExpressionEvaluationContextRecord, 8> ExprEvalContexts;
/// SpecialMemberOverloadResult - The overloading result for a special member /// SpecialMemberOverloadResult - The overloading result for a special member
/// function. /// function.
@ -634,7 +634,7 @@ public:
/// \brief The number of SFINAE diagnostics that have been trapped. /// \brief The number of SFINAE diagnostics that have been trapped.
unsigned NumSFINAEErrors; unsigned NumSFINAEErrors;
typedef llvm::DenseMap<ParmVarDecl *, llvm::SmallVector<ParmVarDecl *, 1> > typedef llvm::DenseMap<ParmVarDecl *, SmallVector<ParmVarDecl *, 1> >
UnparsedDefaultArgInstantiationsMap; UnparsedDefaultArgInstantiationsMap;
/// \brief A mapping from parameters with unparsed default arguments to the /// \brief A mapping from parameters with unparsed default arguments to the
@ -727,7 +727,7 @@ public:
/// \brief Build a partial diagnostic. /// \brief Build a partial diagnostic.
PartialDiagnostic PDiag(unsigned DiagID = 0); // in SemaInternal.h PartialDiagnostic PDiag(unsigned DiagID = 0); // in SemaInternal.h
bool findMacroSpelling(SourceLocation &loc, llvm::StringRef name); bool findMacroSpelling(SourceLocation &loc, StringRef name);
ExprResult Owned(Expr* E) { return E; } ExprResult Owned(Expr* E) { return E; }
ExprResult Owned(ExprResult R) { return R; } ExprResult Owned(ExprResult R) { return R; }
@ -754,7 +754,7 @@ public:
sema::BlockScopeInfo *getCurBlock(); sema::BlockScopeInfo *getCurBlock();
/// WeakTopLevelDeclDecls - access to #pragma weak-generated Decls /// WeakTopLevelDeclDecls - access to #pragma weak-generated Decls
llvm::SmallVector<Decl*,2> &WeakTopLevelDecls() { return WeakTopLevelDecl; } SmallVector<Decl*,2> &WeakTopLevelDecls() { return WeakTopLevelDecl; }
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
// Type Analysis / Processing: SemaType.cpp. // Type Analysis / Processing: SemaType.cpp.
@ -1118,7 +1118,7 @@ public:
void ActOnDefs(Scope *S, Decl *TagD, SourceLocation DeclStart, void ActOnDefs(Scope *S, Decl *TagD, SourceLocation DeclStart,
IdentifierInfo *ClassName, IdentifierInfo *ClassName,
llvm::SmallVectorImpl<Decl *> &Decls); SmallVectorImpl<Decl *> &Decls);
Decl *ActOnField(Scope *S, Decl *TagD, SourceLocation DeclStart, Decl *ActOnField(Scope *S, Decl *TagD, SourceLocation DeclStart,
Declarator &D, Expr *BitfieldWidth); Declarator &D, Expr *BitfieldWidth);
@ -1147,7 +1147,7 @@ public:
void DiagnoseNontrivial(const RecordType* Record, CXXSpecialMember mem); void DiagnoseNontrivial(const RecordType* Record, CXXSpecialMember mem);
CXXSpecialMember getSpecialMember(const CXXMethodDecl *MD); CXXSpecialMember getSpecialMember(const CXXMethodDecl *MD);
void ActOnLastBitfield(SourceLocation DeclStart, Decl *IntfDecl, void ActOnLastBitfield(SourceLocation DeclStart, Decl *IntfDecl,
llvm::SmallVectorImpl<Decl *> &AllIvarDecls); SmallVectorImpl<Decl *> &AllIvarDecls);
Decl *ActOnIvar(Scope *S, SourceLocation DeclStart, Decl *IntfDecl, Decl *ActOnIvar(Scope *S, SourceLocation DeclStart, Decl *IntfDecl,
Declarator &D, Expr *BitfieldWidth, Declarator &D, Expr *BitfieldWidth,
tok::ObjCKeywordKind visibility); tok::ObjCKeywordKind visibility);
@ -1937,7 +1937,7 @@ public:
/// CollectIvarsToConstructOrDestruct - Collect those ivars which require /// CollectIvarsToConstructOrDestruct - Collect those ivars which require
/// initialization. /// initialization.
void CollectIvarsToConstructOrDestruct(ObjCInterfaceDecl *OI, void CollectIvarsToConstructOrDestruct(ObjCInterfaceDecl *OI,
llvm::SmallVectorImpl<ObjCIvarDecl*> &Ivars); SmallVectorImpl<ObjCIvarDecl*> &Ivars);
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
// Statement Parsing Callbacks: SemaStmt.cpp. // Statement Parsing Callbacks: SemaStmt.cpp.
@ -2141,14 +2141,14 @@ public:
DelayedDiagnostics.popContext(state); DelayedDiagnostics.popContext(state);
} }
void EmitDeprecationWarning(NamedDecl *D, llvm::StringRef Message, void EmitDeprecationWarning(NamedDecl *D, StringRef Message,
SourceLocation Loc, SourceLocation Loc,
const ObjCInterfaceDecl *UnknownObjCClass=0); const ObjCInterfaceDecl *UnknownObjCClass=0);
void HandleDelayedDeprecationCheck(sema::DelayedDiagnostic &DD, Decl *Ctx); void HandleDelayedDeprecationCheck(sema::DelayedDiagnostic &DD, Decl *Ctx);
bool makeUnavailableInSystemHeader(SourceLocation loc, bool makeUnavailableInSystemHeader(SourceLocation loc,
llvm::StringRef message); StringRef message);
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
// Expression Parsing Callbacks: SemaExpr.cpp. // Expression Parsing Callbacks: SemaExpr.cpp.
@ -2645,7 +2645,7 @@ public:
// any other specification (even 'none', to keep this rule simple). // any other specification (even 'none', to keep this rule simple).
ExceptionSpecificationType ComputedEST; ExceptionSpecificationType ComputedEST;
llvm::SmallPtrSet<CanQualType, 4> ExceptionsSeen; llvm::SmallPtrSet<CanQualType, 4> ExceptionsSeen;
llvm::SmallVector<QualType, 4> Exceptions; SmallVector<QualType, 4> Exceptions;
void ClearExceptions() { void ClearExceptions() {
ExceptionsSeen.clear(); ExceptionsSeen.clear();
@ -3259,7 +3259,7 @@ public:
Decl *ActOnStartLinkageSpecification(Scope *S, Decl *ActOnStartLinkageSpecification(Scope *S,
SourceLocation ExternLoc, SourceLocation ExternLoc,
SourceLocation LangLoc, SourceLocation LangLoc,
llvm::StringRef Lang, StringRef Lang,
SourceLocation LBraceLoc); SourceLocation LBraceLoc);
Decl *ActOnFinishLinkageSpecification(Scope *S, Decl *ActOnFinishLinkageSpecification(Scope *S,
Decl *LinkageSpec, Decl *LinkageSpec,
@ -3339,7 +3339,7 @@ public:
/// \brief The list of vtables that are required but have not yet been /// \brief The list of vtables that are required but have not yet been
/// materialized. /// materialized.
llvm::SmallVector<VTableUse, 16> VTableUses; SmallVector<VTableUse, 16> VTableUses;
/// \brief The set of classes whose vtables have been used within /// \brief The set of classes whose vtables have been used within
/// this translation unit, and a bit that will be true if the vtable is /// this translation unit, and a bit that will be true if the vtable is
@ -3349,7 +3349,7 @@ public:
/// \brief A list of all of the dynamic classes in this translation /// \brief A list of all of the dynamic classes in this translation
/// unit. /// unit.
llvm::SmallVector<CXXRecordDecl *, 16> DynamicClasses; SmallVector<CXXRecordDecl *, 16> DynamicClasses;
/// \brief Note that the vtable for the given class was used at the /// \brief Note that the vtable for the given class was used at the
/// given location. /// given location.
@ -3795,7 +3795,7 @@ public:
SourceLocation TemplateLoc, SourceLocation TemplateLoc,
SourceLocation RAngleLoc, SourceLocation RAngleLoc,
Decl *Param, Decl *Param,
llvm::SmallVectorImpl<TemplateArgument> &Converted); SmallVectorImpl<TemplateArgument> &Converted);
/// \brief Specifies the context in which a particular template /// \brief Specifies the context in which a particular template
/// argument is being checked. /// argument is being checked.
@ -3819,7 +3819,7 @@ public:
SourceLocation TemplateLoc, SourceLocation TemplateLoc,
SourceLocation RAngleLoc, SourceLocation RAngleLoc,
unsigned ArgumentPackIndex, unsigned ArgumentPackIndex,
llvm::SmallVectorImpl<TemplateArgument> &Converted, SmallVectorImpl<TemplateArgument> &Converted,
CheckTemplateArgumentKind CTAK = CTAK_Specified); CheckTemplateArgumentKind CTAK = CTAK_Specified);
/// \brief Check that the given template arguments can be be provided to /// \brief Check that the given template arguments can be be provided to
@ -3847,11 +3847,11 @@ public:
SourceLocation TemplateLoc, SourceLocation TemplateLoc,
TemplateArgumentListInfo &TemplateArgs, TemplateArgumentListInfo &TemplateArgs,
bool PartialTemplateArgs, bool PartialTemplateArgs,
llvm::SmallVectorImpl<TemplateArgument> &Converted); SmallVectorImpl<TemplateArgument> &Converted);
bool CheckTemplateTypeArgument(TemplateTypeParmDecl *Param, bool CheckTemplateTypeArgument(TemplateTypeParmDecl *Param,
const TemplateArgumentLoc &Arg, const TemplateArgumentLoc &Arg,
llvm::SmallVectorImpl<TemplateArgument> &Converted); SmallVectorImpl<TemplateArgument> &Converted);
bool CheckTemplateArgument(TemplateTypeParmDecl *Param, bool CheckTemplateArgument(TemplateTypeParmDecl *Param,
TypeSourceInfo *Arg); TypeSourceInfo *Arg);
@ -4103,7 +4103,7 @@ public:
/// \param Arg The template argument that will be traversed to find /// \param Arg The template argument that will be traversed to find
/// unexpanded parameter packs. /// unexpanded parameter packs.
void collectUnexpandedParameterPacks(TemplateArgument Arg, void collectUnexpandedParameterPacks(TemplateArgument Arg,
llvm::SmallVectorImpl<UnexpandedParameterPack> &Unexpanded); SmallVectorImpl<UnexpandedParameterPack> &Unexpanded);
/// \brief Collect the set of unexpanded parameter packs within the given /// \brief Collect the set of unexpanded parameter packs within the given
/// template argument. /// template argument.
@ -4111,7 +4111,7 @@ public:
/// \param Arg The template argument that will be traversed to find /// \param Arg The template argument that will be traversed to find
/// unexpanded parameter packs. /// unexpanded parameter packs.
void collectUnexpandedParameterPacks(TemplateArgumentLoc Arg, void collectUnexpandedParameterPacks(TemplateArgumentLoc Arg,
llvm::SmallVectorImpl<UnexpandedParameterPack> &Unexpanded); SmallVectorImpl<UnexpandedParameterPack> &Unexpanded);
/// \brief Collect the set of unexpanded parameter packs within the given /// \brief Collect the set of unexpanded parameter packs within the given
/// type. /// type.
@ -4119,7 +4119,7 @@ public:
/// \param T The type that will be traversed to find /// \param T The type that will be traversed to find
/// unexpanded parameter packs. /// unexpanded parameter packs.
void collectUnexpandedParameterPacks(QualType T, void collectUnexpandedParameterPacks(QualType T,
llvm::SmallVectorImpl<UnexpandedParameterPack> &Unexpanded); SmallVectorImpl<UnexpandedParameterPack> &Unexpanded);
/// \brief Collect the set of unexpanded parameter packs within the given /// \brief Collect the set of unexpanded parameter packs within the given
/// type. /// type.
@ -4127,7 +4127,7 @@ public:
/// \param TL The type that will be traversed to find /// \param TL The type that will be traversed to find
/// unexpanded parameter packs. /// unexpanded parameter packs.
void collectUnexpandedParameterPacks(TypeLoc TL, void collectUnexpandedParameterPacks(TypeLoc TL,
llvm::SmallVectorImpl<UnexpandedParameterPack> &Unexpanded); SmallVectorImpl<UnexpandedParameterPack> &Unexpanded);
/// \brief Invoked when parsing a template argument followed by an /// \brief Invoked when parsing a template argument followed by an
/// ellipsis, which creates a pack expansion. /// ellipsis, which creates a pack expansion.
@ -4312,8 +4312,8 @@ public:
TemplateDeductionResult TemplateDeductionResult
SubstituteExplicitTemplateArguments(FunctionTemplateDecl *FunctionTemplate, SubstituteExplicitTemplateArguments(FunctionTemplateDecl *FunctionTemplate,
TemplateArgumentListInfo &ExplicitTemplateArgs, TemplateArgumentListInfo &ExplicitTemplateArgs,
llvm::SmallVectorImpl<DeducedTemplateArgument> &Deduced, SmallVectorImpl<DeducedTemplateArgument> &Deduced,
llvm::SmallVectorImpl<QualType> &ParamTypes, SmallVectorImpl<QualType> &ParamTypes,
QualType *FunctionType, QualType *FunctionType,
sema::TemplateDeductionInfo &Info); sema::TemplateDeductionInfo &Info);
@ -4333,11 +4333,11 @@ public:
TemplateDeductionResult TemplateDeductionResult
FinishTemplateArgumentDeduction(FunctionTemplateDecl *FunctionTemplate, FinishTemplateArgumentDeduction(FunctionTemplateDecl *FunctionTemplate,
llvm::SmallVectorImpl<DeducedTemplateArgument> &Deduced, SmallVectorImpl<DeducedTemplateArgument> &Deduced,
unsigned NumExplicitlySpecified, unsigned NumExplicitlySpecified,
FunctionDecl *&Specialization, FunctionDecl *&Specialization,
sema::TemplateDeductionInfo &Info, sema::TemplateDeductionInfo &Info,
llvm::SmallVectorImpl<OriginalCallArg> const *OriginalCallArgs = 0); SmallVectorImpl<OriginalCallArg> const *OriginalCallArgs = 0);
TemplateDeductionResult TemplateDeductionResult
DeduceTemplateArguments(FunctionTemplateDecl *FunctionTemplate, DeduceTemplateArguments(FunctionTemplateDecl *FunctionTemplate,
@ -4392,9 +4392,9 @@ public:
void MarkUsedTemplateParameters(const TemplateArgumentList &TemplateArgs, void MarkUsedTemplateParameters(const TemplateArgumentList &TemplateArgs,
bool OnlyDeduced, bool OnlyDeduced,
unsigned Depth, unsigned Depth,
llvm::SmallVectorImpl<bool> &Used); SmallVectorImpl<bool> &Used);
void MarkDeducedTemplateParameters(FunctionTemplateDecl *FunctionTemplate, void MarkDeducedTemplateParameters(FunctionTemplateDecl *FunctionTemplate,
llvm::SmallVectorImpl<bool> &Deduced); SmallVectorImpl<bool> &Deduced);
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
// C++ Template Instantiation // C++ Template Instantiation
@ -4523,7 +4523,7 @@ public:
/// requires another template instantiation, additional /// requires another template instantiation, additional
/// instantiations are pushed onto the stack up to a /// instantiations are pushed onto the stack up to a
/// user-configurable limit LangOptions::InstantiationDepth. /// user-configurable limit LangOptions::InstantiationDepth.
llvm::SmallVector<ActiveTemplateInstantiation, 16> SmallVector<ActiveTemplateInstantiation, 16>
ActiveTemplateInstantiations; ActiveTemplateInstantiations;
/// \brief Whether we are in a SFINAE context that is not associated with /// \brief Whether we are in a SFINAE context that is not associated with
@ -4580,14 +4580,14 @@ public:
/// ///
/// The top of this stack is used by a fixit instantiating unresolved /// The top of this stack is used by a fixit instantiating unresolved
/// function calls to fix the AST to match the textual change it prints. /// function calls to fix the AST to match the textual change it prints.
llvm::SmallVector<CallExpr *, 8> CallsUndergoingInstantiation; SmallVector<CallExpr *, 8> CallsUndergoingInstantiation;
/// \brief For each declaration that involved template argument deduction, the /// \brief For each declaration that involved template argument deduction, the
/// set of diagnostics that were suppressed during that template argument /// set of diagnostics that were suppressed during that template argument
/// deduction. /// deduction.
/// ///
/// FIXME: Serialize this structure to the AST file. /// FIXME: Serialize this structure to the AST file.
llvm::DenseMap<Decl *, llvm::SmallVector<PartialDiagnosticAt, 1> > llvm::DenseMap<Decl *, SmallVector<PartialDiagnosticAt, 1> >
SuppressedDiagnostics; SuppressedDiagnostics;
/// \brief A stack object to be created when performing template /// \brief A stack object to be created when performing template
@ -4805,8 +4805,8 @@ public:
bool SubstParmTypes(SourceLocation Loc, bool SubstParmTypes(SourceLocation Loc,
ParmVarDecl **Params, unsigned NumParams, ParmVarDecl **Params, unsigned NumParams,
const MultiLevelTemplateArgumentList &TemplateArgs, const MultiLevelTemplateArgumentList &TemplateArgs,
llvm::SmallVectorImpl<QualType> &ParamTypes, SmallVectorImpl<QualType> &ParamTypes,
llvm::SmallVectorImpl<ParmVarDecl *> *OutParams = 0); SmallVectorImpl<ParmVarDecl *> *OutParams = 0);
ExprResult SubstExpr(Expr *E, ExprResult SubstExpr(Expr *E,
const MultiLevelTemplateArgumentList &TemplateArgs); const MultiLevelTemplateArgumentList &TemplateArgs);
@ -4827,7 +4827,7 @@ public:
/// \returns true if an error occurred, false otherwise. /// \returns true if an error occurred, false otherwise.
bool SubstExprs(Expr **Exprs, unsigned NumExprs, bool IsCall, bool SubstExprs(Expr **Exprs, unsigned NumExprs, bool IsCall,
const MultiLevelTemplateArgumentList &TemplateArgs, const MultiLevelTemplateArgumentList &TemplateArgs,
llvm::SmallVectorImpl<Expr *> &Outputs); SmallVectorImpl<Expr *> &Outputs);
StmtResult SubstStmt(Stmt *S, StmtResult SubstStmt(Stmt *S,
const MultiLevelTemplateArgumentList &TemplateArgs); const MultiLevelTemplateArgumentList &TemplateArgs);
@ -4970,7 +4970,7 @@ public:
void FindProtocolDeclaration(bool WarnOnDeclarations, void FindProtocolDeclaration(bool WarnOnDeclarations,
const IdentifierLocPair *ProtocolId, const IdentifierLocPair *ProtocolId,
unsigned NumProtocols, unsigned NumProtocols,
llvm::SmallVectorImpl<Decl *> &Protocols); SmallVectorImpl<Decl *> &Protocols);
/// Ensure attributes are consistent with type. /// Ensure attributes are consistent with type.
/// \param [in, out] Attributes The attributes to check; they will /// \param [in, out] Attributes The attributes to check; they will
@ -5353,7 +5353,7 @@ public:
const FunctionProtoType *Proto, const FunctionProtoType *Proto,
unsigned FirstProtoArg, unsigned FirstProtoArg,
Expr **Args, unsigned NumArgs, Expr **Args, unsigned NumArgs,
llvm::SmallVector<Expr *, 8> &AllArgs, SmallVector<Expr *, 8> &AllArgs,
VariadicCallType CallType = VariadicDoesNotApply); VariadicCallType CallType = VariadicDoesNotApply);
// DefaultVariadicArgumentPromotion - Like DefaultArgumentPromotion, but // DefaultVariadicArgumentPromotion - Like DefaultArgumentPromotion, but
@ -5868,7 +5868,7 @@ public:
unsigned Argument); unsigned Argument);
void CodeCompleteNaturalLanguage(); void CodeCompleteNaturalLanguage();
void GatherGlobalCodeCompletions(CodeCompletionAllocator &Allocator, void GatherGlobalCodeCompletions(CodeCompletionAllocator &Allocator,
llvm::SmallVectorImpl<CodeCompletionResult> &Results); SmallVectorImpl<CodeCompletionResult> &Results);
//@} //@}
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//

View File

@ -45,7 +45,7 @@ namespace clang {
private: private:
/// \brief The template argument lists, stored from the innermost template /// \brief The template argument lists, stored from the innermost template
/// argument list (first) to the outermost template argument list (last). /// argument list (first) to the outermost template argument list (last).
llvm::SmallVector<ArgList, 4> TemplateArgumentLists; SmallVector<ArgList, 4> TemplateArgumentLists;
public: public:
/// \brief Construct an empty set of template argument lists. /// \brief Construct an empty set of template argument lists.
@ -178,7 +178,7 @@ namespace clang {
class LocalInstantiationScope { class LocalInstantiationScope {
public: public:
/// \brief A set of declarations. /// \brief A set of declarations.
typedef llvm::SmallVector<Decl *, 4> DeclArgumentPack; typedef SmallVector<Decl *, 4> DeclArgumentPack;
private: private:
/// \brief Reference to the semantic analysis that is performing /// \brief Reference to the semantic analysis that is performing
@ -210,7 +210,7 @@ namespace clang {
LocalDeclsMap LocalDecls; LocalDeclsMap LocalDecls;
/// \brief The set of argument packs we've allocated. /// \brief The set of argument packs we've allocated.
llvm::SmallVector<DeclArgumentPack *, 1> ArgumentPacks; SmallVector<DeclArgumentPack *, 1> ArgumentPacks;
/// \brief The outer scope, which contains local variable /// \brief The outer scope, which contains local variable
/// definitions from some other instantiation (that may not be /// definitions from some other instantiation (that may not be
@ -318,7 +318,7 @@ namespace clang {
/// \brief A list of out-of-line class template partial /// \brief A list of out-of-line class template partial
/// specializations that will need to be instantiated after the /// specializations that will need to be instantiated after the
/// enclosing class's instantiation is complete. /// enclosing class's instantiation is complete.
llvm::SmallVector<std::pair<ClassTemplateDecl *, SmallVector<std::pair<ClassTemplateDecl *,
ClassTemplatePartialSpecializationDecl *>, 4> ClassTemplatePartialSpecializationDecl *>, 4>
OutOfLinePartialSpecs; OutOfLinePartialSpecs;
@ -380,7 +380,7 @@ namespace clang {
} }
typedef typedef
llvm::SmallVectorImpl<std::pair<ClassTemplateDecl *, SmallVectorImpl<std::pair<ClassTemplateDecl *,
ClassTemplatePartialSpecializationDecl *> > ClassTemplatePartialSpecializationDecl *> >
::iterator ::iterator
delayed_partial_spec_iterator; delayed_partial_spec_iterator;
@ -403,7 +403,7 @@ namespace clang {
// Helper functions for instantiating methods. // Helper functions for instantiating methods.
TypeSourceInfo *SubstFunctionType(FunctionDecl *D, TypeSourceInfo *SubstFunctionType(FunctionDecl *D,
llvm::SmallVectorImpl<ParmVarDecl *> &Params); SmallVectorImpl<ParmVarDecl *> &Params);
bool InitFunctionInstantiation(FunctionDecl *New, FunctionDecl *Tmpl); bool InitFunctionInstantiation(FunctionDecl *New, FunctionDecl *Tmpl);
bool InitMethodInstantiation(CXXMethodDecl *New, CXXMethodDecl *Tmpl); bool InitMethodInstantiation(CXXMethodDecl *New, CXXMethodDecl *Tmpl);

View File

@ -41,7 +41,7 @@ class TemplateDeductionInfo {
/// \brief Warnings (and follow-on notes) that were suppressed due to /// \brief Warnings (and follow-on notes) that were suppressed due to
/// SFINAE while performing template argument deduction. /// SFINAE while performing template argument deduction.
llvm::SmallVector<PartialDiagnosticAt, 4> SuppressedDiagnostics; SmallVector<PartialDiagnosticAt, 4> SuppressedDiagnostics;
// do not implement these // do not implement these
TemplateDeductionInfo(const TemplateDeductionInfo&); TemplateDeductionInfo(const TemplateDeductionInfo&);
@ -81,7 +81,7 @@ public:
} }
/// \brief Iterator over the set of suppressed diagnostics. /// \brief Iterator over the set of suppressed diagnostics.
typedef llvm::SmallVectorImpl<PartialDiagnosticAt>::const_iterator typedef SmallVectorImpl<PartialDiagnosticAt>::const_iterator
diag_iterator; diag_iterator;
/// \brief Returns an iterator at the beginning of the sequence of suppressed /// \brief Returns an iterator at the beginning of the sequence of suppressed

View File

@ -80,9 +80,9 @@ struct PCHPredefinesBlock {
FileID BufferID; FileID BufferID;
/// \brief This predefines buffer in a PCH file. /// \brief This predefines buffer in a PCH file.
llvm::StringRef Data; StringRef Data;
}; };
typedef llvm::SmallVector<PCHPredefinesBlock, 2> PCHPredefinesBlocks; typedef SmallVector<PCHPredefinesBlock, 2> PCHPredefinesBlocks;
/// \brief Abstract interface for callback invocations by the ASTReader. /// \brief Abstract interface for callback invocations by the ASTReader.
/// ///
@ -104,7 +104,7 @@ public:
/// \brief Receives the target triple. /// \brief Receives the target triple.
/// ///
/// \returns true to indicate the target triple is invalid or false otherwise. /// \returns true to indicate the target triple is invalid or false otherwise.
virtual bool ReadTargetTriple(llvm::StringRef Triple) { virtual bool ReadTargetTriple(StringRef Triple) {
return false; return false;
} }
@ -120,7 +120,7 @@ public:
/// ///
/// \returns true to indicate the predefines are invalid or false otherwise. /// \returns true to indicate the predefines are invalid or false otherwise.
virtual bool ReadPredefinesBuffer(const PCHPredefinesBlocks &Buffers, virtual bool ReadPredefinesBuffer(const PCHPredefinesBlocks &Buffers,
llvm::StringRef OriginalFileName, StringRef OriginalFileName,
std::string &SuggestedPredefines, std::string &SuggestedPredefines,
FileManager &FileMgr) { FileManager &FileMgr) {
return false; return false;
@ -146,9 +146,9 @@ public:
: PP(PP), Reader(Reader), NumHeaderInfos(0) {} : PP(PP), Reader(Reader), NumHeaderInfos(0) {}
virtual bool ReadLanguageOptions(const LangOptions &LangOpts); virtual bool ReadLanguageOptions(const LangOptions &LangOpts);
virtual bool ReadTargetTriple(llvm::StringRef Triple); virtual bool ReadTargetTriple(StringRef Triple);
virtual bool ReadPredefinesBuffer(const PCHPredefinesBlocks &Buffers, virtual bool ReadPredefinesBuffer(const PCHPredefinesBlocks &Buffers,
llvm::StringRef OriginalFileName, StringRef OriginalFileName,
std::string &SuggestedPredefines, std::string &SuggestedPredefines,
FileManager &FileMgr); FileManager &FileMgr);
virtual void ReadHeaderFileInfo(const HeaderFileInfo &HFI, unsigned ID); virtual void ReadHeaderFileInfo(const HeaderFileInfo &HFI, unsigned ID);
@ -372,7 +372,7 @@ private:
/// \brief Method selectors used in a @selector expression. Used for /// \brief Method selectors used in a @selector expression. Used for
/// implementation of -Wselector. /// implementation of -Wselector.
llvm::SmallVector<uint64_t, 64> ReferencedSelectorsData; SmallVector<uint64_t, 64> ReferencedSelectorsData;
// === Declarations === // === Declarations ===
@ -394,7 +394,7 @@ private:
/// end of the TU. It consists of a pair of values for every pending /// end of the TU. It consists of a pair of values for every pending
/// instantiation where the first value is the ID of the decl and the second /// instantiation where the first value is the ID of the decl and the second
/// is the instantiation location. /// is the instantiation location.
llvm::SmallVector<uint64_t, 64> PendingInstantiations; SmallVector<uint64_t, 64> PendingInstantiations;
/// \brief The number of C++ base specifier sets in this AST file. /// \brief The number of C++ base specifier sets in this AST file.
unsigned LocalNumCXXBaseSpecifiers; unsigned LocalNumCXXBaseSpecifiers;
@ -415,7 +415,7 @@ private:
// === Miscellaneous === // === Miscellaneous ===
/// \brief Diagnostic IDs and their mappings that the user changed. /// \brief Diagnostic IDs and their mappings that the user changed.
llvm::SmallVector<uint64_t, 8> PragmaDiagMappings; SmallVector<uint64_t, 8> PragmaDiagMappings;
/// \brief The AST stat cache installed for this file, if any. /// \brief The AST stat cache installed for this file, if any.
/// ///
@ -431,7 +431,7 @@ private:
/// \brief All the modules that loaded this one. Can contain NULL for /// \brief All the modules that loaded this one. Can contain NULL for
/// directly loaded modules. /// directly loaded modules.
llvm::SmallVector<PerFileData *, 1> Loaders; SmallVector<PerFileData *, 1> Loaders;
}; };
/// \brief All loaded modules, indexed by name. /// \brief All loaded modules, indexed by name.
@ -443,10 +443,10 @@ private:
/// \brief The chain of AST files. The first entry is the one named by the /// \brief The chain of AST files. The first entry is the one named by the
/// user, the last one is the one that doesn't depend on anything further. /// user, the last one is the one that doesn't depend on anything further.
/// That is, the entry I was created with -include-pch I+1. /// That is, the entry I was created with -include-pch I+1.
llvm::SmallVector<PerFileData*, 2> Chain; SmallVector<PerFileData*, 2> Chain;
/// \brief SLocEntries that we're going to preload. /// \brief SLocEntries that we're going to preload.
llvm::SmallVector<int, 64> PreloadSLocEntries; SmallVector<int, 64> PreloadSLocEntries;
/// \brief A map of negated SLocEntryIDs to the modules containing them. /// \brief A map of negated SLocEntryIDs to the modules containing them.
ContinuousRangeMap<unsigned, PerFileData*, 64> GlobalSLocEntryMap; ContinuousRangeMap<unsigned, PerFileData*, 64> GlobalSLocEntryMap;
@ -484,7 +484,7 @@ private:
GlobalDeclMapType GlobalDeclMap; GlobalDeclMapType GlobalDeclMap;
typedef std::pair<PerFileData *, uint64_t> FileOffset; typedef std::pair<PerFileData *, uint64_t> FileOffset;
typedef llvm::SmallVector<FileOffset, 2> FileOffsetsTy; typedef SmallVector<FileOffset, 2> FileOffsetsTy;
typedef llvm::DenseMap<serialization::DeclID, FileOffsetsTy> typedef llvm::DenseMap<serialization::DeclID, FileOffsetsTy>
DeclUpdateOffsetsMap; DeclUpdateOffsetsMap;
@ -508,14 +508,14 @@ private:
// so this is a vector. However, typically a chain is only two elements long, // so this is a vector. However, typically a chain is only two elements long,
// with only one file containing updates, so there will be only one update // with only one file containing updates, so there will be only one update
// per decl context. // per decl context.
typedef llvm::SmallVector<DeclContextInfo, 1> DeclContextInfos; typedef SmallVector<DeclContextInfo, 1> DeclContextInfos;
typedef llvm::DenseMap<const DeclContext *, DeclContextInfos> typedef llvm::DenseMap<const DeclContext *, DeclContextInfos>
DeclContextOffsetsMap; DeclContextOffsetsMap;
// Updates for visible decls can occur for other contexts than just the // Updates for visible decls can occur for other contexts than just the
// TU, and when we read those update records, the actual context will not // TU, and when we read those update records, the actual context will not
// be available yet (unless it's the TU), so have this pending map using the // be available yet (unless it's the TU), so have this pending map using the
// ID as a key. It will be realized when the context is actually loaded. // ID as a key. It will be realized when the context is actually loaded.
typedef llvm::SmallVector<void *, 1> DeclContextVisibleUpdates; typedef SmallVector<void *, 1> DeclContextVisibleUpdates;
typedef llvm::DenseMap<serialization::DeclID, DeclContextVisibleUpdates> typedef llvm::DenseMap<serialization::DeclID, DeclContextVisibleUpdates>
DeclContextVisibleUpdatesPending; DeclContextVisibleUpdatesPending;
@ -527,7 +527,7 @@ private:
/// haven't been loaded yet. /// haven't been loaded yet.
DeclContextVisibleUpdatesPending PendingVisibleUpdates; DeclContextVisibleUpdatesPending PendingVisibleUpdates;
typedef llvm::SmallVector<CXXRecordDecl *, 4> ForwardRefs; typedef SmallVector<CXXRecordDecl *, 4> ForwardRefs;
typedef llvm::DenseMap<const CXXRecordDecl *, ForwardRefs> typedef llvm::DenseMap<const CXXRecordDecl *, ForwardRefs>
PendingForwardRefsMap; PendingForwardRefsMap;
/// \brief Forward references that have a definition but the definition decl /// \brief Forward references that have a definition but the definition decl
@ -568,7 +568,7 @@ private:
/// This vector is indexed by the Selector ID (-1). NULL selector /// This vector is indexed by the Selector ID (-1). NULL selector
/// entries indicate that the particular selector ID has not yet /// entries indicate that the particular selector ID has not yet
/// been loaded. /// been loaded.
llvm::SmallVector<Selector, 16> SelectorsLoaded; SmallVector<Selector, 16> SelectorsLoaded;
typedef ContinuousRangeMap<serialization::SelectorID, typedef ContinuousRangeMap<serialization::SelectorID,
std::pair<PerFileData *, int32_t>, 4> std::pair<PerFileData *, int32_t>, 4>
@ -580,7 +580,7 @@ private:
GlobalSelectorMapType GlobalSelectorMap; GlobalSelectorMapType GlobalSelectorMap;
/// \brief The macro definitions we have already loaded. /// \brief The macro definitions we have already loaded.
llvm::SmallVector<MacroDefinition *, 16> MacroDefinitionsLoaded; SmallVector<MacroDefinition *, 16> MacroDefinitionsLoaded;
typedef ContinuousRangeMap<serialization::MacroID, typedef ContinuousRangeMap<serialization::MacroID,
std::pair<PerFileData *, int32_t>, 4> std::pair<PerFileData *, int32_t>, 4>
@ -606,21 +606,21 @@ private:
/// This contains the data loaded from all EXTERNAL_DEFINITIONS blocks in the /// This contains the data loaded from all EXTERNAL_DEFINITIONS blocks in the
/// chain. The referenced declarations are deserialized and passed to the /// chain. The referenced declarations are deserialized and passed to the
/// consumer eagerly. /// consumer eagerly.
llvm::SmallVector<uint64_t, 16> ExternalDefinitions; SmallVector<uint64_t, 16> ExternalDefinitions;
/// \brief The IDs of all tentative definitions stored in the the chain. /// \brief The IDs of all tentative definitions stored in the the chain.
/// ///
/// Sema keeps track of all tentative definitions in a TU because it has to /// Sema keeps track of all tentative definitions in a TU because it has to
/// complete them and pass them on to CodeGen. Thus, tentative definitions in /// complete them and pass them on to CodeGen. Thus, tentative definitions in
/// the PCH chain must be eagerly deserialized. /// the PCH chain must be eagerly deserialized.
llvm::SmallVector<uint64_t, 16> TentativeDefinitions; SmallVector<uint64_t, 16> TentativeDefinitions;
/// \brief The IDs of all CXXRecordDecls stored in the chain whose VTables are /// \brief The IDs of all CXXRecordDecls stored in the chain whose VTables are
/// used. /// used.
/// ///
/// CodeGen has to emit VTables for these records, so they have to be eagerly /// CodeGen has to emit VTables for these records, so they have to be eagerly
/// deserialized. /// deserialized.
llvm::SmallVector<uint64_t, 64> VTableUses; SmallVector<uint64_t, 64> VTableUses;
//@} //@}
@ -630,20 +630,20 @@ private:
/// \brief A snapshot of Sema's unused file-scoped variable tracking, for /// \brief A snapshot of Sema's unused file-scoped variable tracking, for
/// generating warnings. /// generating warnings.
llvm::SmallVector<uint64_t, 16> UnusedFileScopedDecls; SmallVector<uint64_t, 16> UnusedFileScopedDecls;
/// \brief A list of all the delegating constructors we've seen, to diagnose /// \brief A list of all the delegating constructors we've seen, to diagnose
/// cycles. /// cycles.
llvm::SmallVector<uint64_t, 4> DelegatingCtorDecls; SmallVector<uint64_t, 4> DelegatingCtorDecls;
/// \brief A snapshot of Sema's weak undeclared identifier tracking, for /// \brief A snapshot of Sema's weak undeclared identifier tracking, for
/// generating warnings. /// generating warnings.
llvm::SmallVector<uint64_t, 64> WeakUndeclaredIdentifiers; SmallVector<uint64_t, 64> WeakUndeclaredIdentifiers;
/// \brief The IDs of type aliases for ext_vectors that exist in the chain. /// \brief The IDs of type aliases for ext_vectors that exist in the chain.
/// ///
/// Used by Sema for finding sugared names for ext_vectors in diagnostics. /// Used by Sema for finding sugared names for ext_vectors in diagnostics.
llvm::SmallVector<uint64_t, 4> ExtVectorDecls; SmallVector<uint64_t, 4> ExtVectorDecls;
//@} //@}
@ -655,38 +655,38 @@ private:
/// ///
/// Sema tracks these to validate that the types are consistent across all /// Sema tracks these to validate that the types are consistent across all
/// local external declarations. /// local external declarations.
llvm::SmallVector<uint64_t, 16> LocallyScopedExternalDecls; SmallVector<uint64_t, 16> LocallyScopedExternalDecls;
/// \brief The IDs of all dynamic class declarations in the chain. /// \brief The IDs of all dynamic class declarations in the chain.
/// ///
/// Sema tracks these because it checks for the key functions being defined /// Sema tracks these because it checks for the key functions being defined
/// at the end of the TU, in which case it directs CodeGen to emit the VTable. /// at the end of the TU, in which case it directs CodeGen to emit the VTable.
llvm::SmallVector<uint64_t, 16> DynamicClasses; SmallVector<uint64_t, 16> DynamicClasses;
/// \brief The IDs of the declarations Sema stores directly. /// \brief The IDs of the declarations Sema stores directly.
/// ///
/// Sema tracks a few important decls, such as namespace std, directly. /// Sema tracks a few important decls, such as namespace std, directly.
llvm::SmallVector<uint64_t, 4> SemaDeclRefs; SmallVector<uint64_t, 4> SemaDeclRefs;
/// \brief The IDs of the types ASTContext stores directly. /// \brief The IDs of the types ASTContext stores directly.
/// ///
/// The AST context tracks a few important types, such as va_list, directly. /// The AST context tracks a few important types, such as va_list, directly.
llvm::SmallVector<uint64_t, 16> SpecialTypes; SmallVector<uint64_t, 16> SpecialTypes;
/// \brief The IDs of CUDA-specific declarations ASTContext stores directly. /// \brief The IDs of CUDA-specific declarations ASTContext stores directly.
/// ///
/// The AST context tracks a few important decls, currently cudaConfigureCall, /// The AST context tracks a few important decls, currently cudaConfigureCall,
/// directly. /// directly.
llvm::SmallVector<uint64_t, 2> CUDASpecialDeclRefs; SmallVector<uint64_t, 2> CUDASpecialDeclRefs;
/// \brief The floating point pragma option settings. /// \brief The floating point pragma option settings.
llvm::SmallVector<uint64_t, 1> FPPragmaOptions; SmallVector<uint64_t, 1> FPPragmaOptions;
/// \brief The OpenCL extension settings. /// \brief The OpenCL extension settings.
llvm::SmallVector<uint64_t, 1> OpenCLExtensions; SmallVector<uint64_t, 1> OpenCLExtensions;
/// \brief A list of the namespaces we've seen. /// \brief A list of the namespaces we've seen.
llvm::SmallVector<uint64_t, 4> KnownNamespaces; SmallVector<uint64_t, 4> KnownNamespaces;
//@} //@}
@ -783,7 +783,7 @@ private:
/// declarations of the same name have not (yet) been loaded. /// declarations of the same name have not (yet) been loaded.
struct PendingIdentifierInfo { struct PendingIdentifierInfo {
IdentifierInfo *II; IdentifierInfo *II;
llvm::SmallVector<uint32_t, 4> DeclIDs; SmallVector<uint32_t, 4> DeclIDs;
}; };
/// \brief The set of identifiers that were read while the AST reader was /// \brief The set of identifiers that were read while the AST reader was
@ -809,7 +809,7 @@ private:
void loadAndAttachPreviousDecl(Decl *D, serialization::DeclID ID); void loadAndAttachPreviousDecl(Decl *D, serialization::DeclID ID);
/// \brief When reading a Stmt tree, Stmt operands are placed in this stack. /// \brief When reading a Stmt tree, Stmt operands are placed in this stack.
llvm::SmallVector<Stmt *, 16> StmtStack; SmallVector<Stmt *, 16> StmtStack;
/// \brief What kind of records we are reading. /// \brief What kind of records we are reading.
enum ReadingKind { enum ReadingKind {
@ -855,19 +855,19 @@ private:
/// \brief Get a FileEntry out of stored-in-PCH filename, making sure we take /// \brief Get a FileEntry out of stored-in-PCH filename, making sure we take
/// into account all the necessary relocations. /// into account all the necessary relocations.
const FileEntry *getFileEntry(llvm::StringRef filename); const FileEntry *getFileEntry(StringRef filename);
void MaybeAddSystemRootToFilename(std::string &Filename); void MaybeAddSystemRootToFilename(std::string &Filename);
ASTReadResult ReadASTCore(llvm::StringRef FileName, ASTFileType Type); ASTReadResult ReadASTCore(StringRef FileName, ASTFileType Type);
ASTReadResult ReadASTBlock(PerFileData &F); ASTReadResult ReadASTBlock(PerFileData &F);
bool CheckPredefinesBuffers(); bool CheckPredefinesBuffers();
bool ParseLineTable(PerFileData &F, llvm::SmallVectorImpl<uint64_t> &Record); bool ParseLineTable(PerFileData &F, SmallVectorImpl<uint64_t> &Record);
ASTReadResult ReadSourceManagerBlock(PerFileData &F); ASTReadResult ReadSourceManagerBlock(PerFileData &F);
ASTReadResult ReadSLocEntryRecord(int ID); ASTReadResult ReadSLocEntryRecord(int ID);
llvm::BitstreamCursor &SLocCursorForID(int ID); llvm::BitstreamCursor &SLocCursorForID(int ID);
SourceLocation getImportLocation(PerFileData *F); SourceLocation getImportLocation(PerFileData *F);
bool ParseLanguageOptions(const llvm::SmallVectorImpl<uint64_t> &Record); bool ParseLanguageOptions(const SmallVectorImpl<uint64_t> &Record);
struct RecordLocation { struct RecordLocation {
RecordLocation(PerFileData *M, uint64_t O) RecordLocation(PerFileData *M, uint64_t O)
@ -888,14 +888,14 @@ private:
/// ///
/// This routine should only be used for fatal errors that have to /// This routine should only be used for fatal errors that have to
/// do with non-routine failures (e.g., corrupted AST file). /// do with non-routine failures (e.g., corrupted AST file).
void Error(llvm::StringRef Msg); void Error(StringRef Msg);
void Error(unsigned DiagID, llvm::StringRef Arg1 = llvm::StringRef(), void Error(unsigned DiagID, StringRef Arg1 = StringRef(),
llvm::StringRef Arg2 = llvm::StringRef()); StringRef Arg2 = StringRef());
ASTReader(const ASTReader&); // do not implement ASTReader(const ASTReader&); // do not implement
ASTReader &operator=(const ASTReader &); // do not implement ASTReader &operator=(const ASTReader &); // do not implement
public: public:
typedef llvm::SmallVector<uint64_t, 64> RecordData; typedef SmallVector<uint64_t, 64> RecordData;
/// \brief Load the AST file and validate its contents against the given /// \brief Load the AST file and validate its contents against the given
/// Preprocessor. /// Preprocessor.
@ -1121,7 +1121,7 @@ public:
/// declarations for this declaration context. /// declarations for this declaration context.
virtual ExternalLoadResult FindExternalLexicalDecls(const DeclContext *DC, virtual ExternalLoadResult FindExternalLexicalDecls(const DeclContext *DC,
bool (*isKindWeWant)(Decl::Kind), bool (*isKindWeWant)(Decl::Kind),
llvm::SmallVectorImpl<Decl*> &Decls); SmallVectorImpl<Decl*> &Decls);
/// \brief Notify ASTReader that we started deserialization of /// \brief Notify ASTReader that we started deserialization of
/// a decl or type so until FinishedDeserializing is called there may be /// a decl or type so until FinishedDeserializing is called there may be
@ -1161,7 +1161,7 @@ public:
/// declarations will be deserialized and introduced into the declaration /// declarations will be deserialized and introduced into the declaration
/// chain of the identifier. /// chain of the identifier.
virtual IdentifierInfo *get(const char *NameStart, const char *NameEnd); virtual IdentifierInfo *get(const char *NameStart, const char *NameEnd);
IdentifierInfo *get(llvm::StringRef Name) { IdentifierInfo *get(StringRef Name) {
return get(Name.begin(), Name.end()); return get(Name.begin(), Name.end());
} }
@ -1180,14 +1180,14 @@ public:
/// \brief Load the set of namespaces that are known to the external source, /// \brief Load the set of namespaces that are known to the external source,
/// which will be used during typo correction. /// which will be used during typo correction.
virtual void ReadKnownNamespaces( virtual void ReadKnownNamespaces(
llvm::SmallVectorImpl<NamespaceDecl *> &Namespaces); SmallVectorImpl<NamespaceDecl *> &Namespaces);
/// \brief Load a selector from disk, registering its ID if it exists. /// \brief Load a selector from disk, registering its ID if it exists.
void LoadSelector(Selector Sel); void LoadSelector(Selector Sel);
void SetIdentifierInfo(unsigned ID, IdentifierInfo *II); void SetIdentifierInfo(unsigned ID, IdentifierInfo *II);
void SetGloballyVisibleDecls(IdentifierInfo *II, void SetGloballyVisibleDecls(IdentifierInfo *II,
const llvm::SmallVectorImpl<uint32_t> &DeclIDs, const SmallVectorImpl<uint32_t> &DeclIDs,
bool Nonrecursive = false); bool Nonrecursive = false);
/// \brief Report a diagnostic. /// \brief Report a diagnostic.
@ -1251,7 +1251,7 @@ public:
/// \brief Read a template argument array. /// \brief Read a template argument array.
void void
ReadTemplateArgumentList(llvm::SmallVector<TemplateArgument, 8> &TemplArgs, ReadTemplateArgumentList(SmallVector<TemplateArgument, 8> &TemplArgs,
PerFileData &F, const RecordData &Record, PerFileData &F, const RecordData &Record,
unsigned &Idx); unsigned &Idx);
@ -1362,7 +1362,7 @@ public:
// \brief Contains declarations that were loaded before we have // \brief Contains declarations that were loaded before we have
// access to a Sema object. // access to a Sema object.
llvm::SmallVector<NamedDecl *, 16> PreloadedDecls; SmallVector<NamedDecl *, 16> PreloadedDecls;
/// \brief Retrieve the semantic analysis object used to analyze the /// \brief Retrieve the semantic analysis object used to analyze the
/// translation unit in which the precompiled header is being /// translation unit in which the precompiled header is being

View File

@ -67,8 +67,8 @@ class VersionTuple;
class ASTWriter : public ASTDeserializationListener, class ASTWriter : public ASTDeserializationListener,
public ASTMutationListener { public ASTMutationListener {
public: public:
typedef llvm::SmallVector<uint64_t, 64> RecordData; typedef SmallVector<uint64_t, 64> RecordData;
typedef llvm::SmallVectorImpl<uint64_t> RecordDataImpl; typedef SmallVectorImpl<uint64_t> RecordDataImpl;
friend class ASTDeclWriter; friend class ASTDeclWriter;
private: private:
@ -205,7 +205,7 @@ private:
/// to the corresponding offsets within the preprocessor block. /// to the corresponding offsets within the preprocessor block.
std::vector<uint32_t> MacroDefinitionOffsets; std::vector<uint32_t> MacroDefinitionOffsets;
typedef llvm::SmallVector<uint64_t, 2> UpdateRecord; typedef SmallVector<uint64_t, 2> UpdateRecord;
typedef llvm::DenseMap<const Decl *, UpdateRecord> DeclUpdateMap; typedef llvm::DenseMap<const Decl *, UpdateRecord> DeclUpdateMap;
/// \brief Mapping from declarations that came from a chained PCH to the /// \brief Mapping from declarations that came from a chained PCH to the
/// record containing modifications to them. /// record containing modifications to them.
@ -228,7 +228,7 @@ private:
/// headers. The declarations themselves are stored as declaration /// headers. The declarations themselves are stored as declaration
/// IDs, since they will be written out to an EXTERNAL_DEFINITIONS /// IDs, since they will be written out to an EXTERNAL_DEFINITIONS
/// record. /// record.
llvm::SmallVector<uint64_t, 16> ExternalDefinitions; SmallVector<uint64_t, 16> ExternalDefinitions;
/// \brief DeclContexts that have received extensions since their serialized /// \brief DeclContexts that have received extensions since their serialized
/// form. /// form.
@ -248,16 +248,16 @@ private:
/// happen, but the ObjC AST nodes are designed this way), it will be /// happen, but the ObjC AST nodes are designed this way), it will be
/// serialized again. In this case, it is registered here, so that the reader /// serialized again. In this case, it is registered here, so that the reader
/// knows to read the updated version. /// knows to read the updated version.
llvm::SmallVector<std::pair<serialization::DeclID, uint64_t>, 16> SmallVector<std::pair<serialization::DeclID, uint64_t>, 16>
ReplacedDecls; ReplacedDecls;
/// \brief Statements that we've encountered while serializing a /// \brief Statements that we've encountered while serializing a
/// declaration or type. /// declaration or type.
llvm::SmallVector<Stmt *, 16> StmtsToEmit; SmallVector<Stmt *, 16> StmtsToEmit;
/// \brief Statements collection to use for ASTWriter::AddStmt(). /// \brief Statements collection to use for ASTWriter::AddStmt().
/// It will point to StmtsToEmit unless it is overriden. /// It will point to StmtsToEmit unless it is overriden.
llvm::SmallVector<Stmt *, 16> *CollectedStmts; SmallVector<Stmt *, 16> *CollectedStmts;
/// \brief Mapping from SwitchCase statements to IDs. /// \brief Mapping from SwitchCase statements to IDs.
std::map<SwitchCase *, unsigned> SwitchCaseIDs; std::map<SwitchCase *, unsigned> SwitchCaseIDs;
@ -280,7 +280,7 @@ private:
unsigned NumVisibleDeclContexts; unsigned NumVisibleDeclContexts;
/// \brief The offset of each CXXBaseSpecifier set within the AST. /// \brief The offset of each CXXBaseSpecifier set within the AST.
llvm::SmallVector<uint32_t, 4> CXXBaseSpecifiersOffsets; SmallVector<uint32_t, 4> CXXBaseSpecifiersOffsets;
/// \brief The first ID number we can use for our own base specifiers. /// \brief The first ID number we can use for our own base specifiers.
serialization::CXXBaseSpecifiersID FirstCXXBaseSpecifiersID; serialization::CXXBaseSpecifiersID FirstCXXBaseSpecifiersID;
@ -306,7 +306,7 @@ private:
/// \brief Queue of C++ base specifiers to be written to the AST file, /// \brief Queue of C++ base specifiers to be written to the AST file,
/// in the order they should be written. /// in the order they should be written.
llvm::SmallVector<QueuedCXXBaseSpecifiers, 2> CXXBaseSpecifiersToWrite; SmallVector<QueuedCXXBaseSpecifiers, 2> CXXBaseSpecifiersToWrite;
/// \brief Write the given subexpression to the bitstream. /// \brief Write the given subexpression to the bitstream.
void WriteSubStmt(Stmt *S); void WriteSubStmt(Stmt *S);
@ -523,7 +523,7 @@ public:
void AddCXXDefinitionData(const CXXRecordDecl *D, RecordDataImpl &Record); void AddCXXDefinitionData(const CXXRecordDecl *D, RecordDataImpl &Record);
/// \brief Add a string to the given record. /// \brief Add a string to the given record.
void AddString(llvm::StringRef Str, RecordDataImpl &Record); void AddString(StringRef Str, RecordDataImpl &Record);
/// \brief Add a version tuple to the given record /// \brief Add a version tuple to the given record
void AddVersionTuple(const VersionTuple &Version, RecordDataImpl &Record); void AddVersionTuple(const VersionTuple &Version, RecordDataImpl &Record);

View File

@ -49,7 +49,7 @@ protected:
virtual void MaterializeVisibleDecls(const DeclContext *DC); virtual void MaterializeVisibleDecls(const DeclContext *DC);
virtual ExternalLoadResult FindExternalLexicalDecls(const DeclContext *DC, virtual ExternalLoadResult FindExternalLexicalDecls(const DeclContext *DC,
bool (*isKindWeWant)(Decl::Kind), bool (*isKindWeWant)(Decl::Kind),
llvm::SmallVectorImpl<Decl*> &Result); SmallVectorImpl<Decl*> &Result);
virtual void CompleteType(TagDecl *Tag); virtual void CompleteType(TagDecl *Tag);
virtual void CompleteType(ObjCInterfaceDecl *Class); virtual void CompleteType(ObjCInterfaceDecl *Class);
virtual void StartedDeserializing(); virtual void StartedDeserializing();

View File

@ -41,7 +41,7 @@ public:
typedef const value_type *const_pointer; typedef const value_type *const_pointer;
private: private:
typedef llvm::SmallVector<value_type, InitialCapacity> Representation; typedef SmallVector<value_type, InitialCapacity> Representation;
Representation Rep; Representation Rep;
struct Compare { struct Compare {

View File

@ -85,10 +85,10 @@ public:
getOriginalNode(const ExplodedNode* N) = 0; getOriginalNode(const ExplodedNode* N) = 0;
}; };
BugReport(BugType& bt, llvm::StringRef desc, const ExplodedNode *errornode) BugReport(BugType& bt, StringRef desc, const ExplodedNode *errornode)
: BT(bt), Description(desc), ErrorNode(errornode) {} : BT(bt), Description(desc), ErrorNode(errornode) {}
BugReport(BugType& bt, llvm::StringRef shortDesc, llvm::StringRef desc, BugReport(BugType& bt, StringRef shortDesc, StringRef desc,
const ExplodedNode *errornode) const ExplodedNode *errornode)
: BT(bt), ShortDescription(shortDesc), Description(desc), : BT(bt), ShortDescription(shortDesc), Description(desc),
ErrorNode(errornode) {} ErrorNode(errornode) {}
@ -109,9 +109,9 @@ public:
// BugReporter. // BugReporter.
const Stmt* getStmt() const; const Stmt* getStmt() const;
const llvm::StringRef getDescription() const { return Description; } const StringRef getDescription() const { return Description; }
const llvm::StringRef getShortDescription() const { const StringRef getShortDescription() const {
return ShortDescription.empty() ? Description : ShortDescription; return ShortDescription.empty() ? Description : ShortDescription;
} }
@ -198,14 +198,14 @@ public:
// FIXME: Collapse this with the default BugReport class. // FIXME: Collapse this with the default BugReport class.
class RangedBugReport : public BugReport { class RangedBugReport : public BugReport {
llvm::SmallVector<SourceRange, 4> Ranges; SmallVector<SourceRange, 4> Ranges;
public: public:
RangedBugReport(BugType& D, llvm::StringRef description, RangedBugReport(BugType& D, StringRef description,
ExplodedNode *errornode) ExplodedNode *errornode)
: BugReport(D, description, errornode) {} : BugReport(D, description, errornode) {}
RangedBugReport(BugType& D, llvm::StringRef shortDescription, RangedBugReport(BugType& D, StringRef shortDescription,
llvm::StringRef description, ExplodedNode *errornode) StringRef description, ExplodedNode *errornode)
: BugReport(D, shortDescription, description, errornode) {} : BugReport(D, shortDescription, description, errornode) {}
~RangedBugReport(); ~RangedBugReport();
@ -222,7 +222,7 @@ public:
virtual void Profile(llvm::FoldingSetNodeID& hash) const { virtual void Profile(llvm::FoldingSetNodeID& hash) const {
BugReport::Profile(hash); BugReport::Profile(hash);
for (llvm::SmallVectorImpl<SourceRange>::const_iterator I = for (SmallVectorImpl<SourceRange>::const_iterator I =
Ranges.begin(), E = Ranges.end(); I != E; ++I) { Ranges.begin(), E = Ranges.end(); I != E; ++I) {
const SourceRange range = *I; const SourceRange range = *I;
if (!range.isValid()) if (!range.isValid())
@ -243,12 +243,12 @@ private:
Creators creators; Creators creators;
public: public:
EnhancedBugReport(BugType& D, llvm::StringRef description, EnhancedBugReport(BugType& D, StringRef description,
ExplodedNode *errornode) ExplodedNode *errornode)
: RangedBugReport(D, description, errornode) {} : RangedBugReport(D, description, errornode) {}
EnhancedBugReport(BugType& D, llvm::StringRef shortDescription, EnhancedBugReport(BugType& D, StringRef shortDescription,
llvm::StringRef description, ExplodedNode *errornode) StringRef description, ExplodedNode *errornode)
: RangedBugReport(D, shortDescription, description, errornode) {} : RangedBugReport(D, shortDescription, description, errornode) {}
~EnhancedBugReport() {} ~EnhancedBugReport() {}
@ -326,38 +326,38 @@ public:
SourceManager& getSourceManager() { return D.getSourceManager(); } SourceManager& getSourceManager() { return D.getSourceManager(); }
virtual void GeneratePathDiagnostic(PathDiagnostic& pathDiagnostic, virtual void GeneratePathDiagnostic(PathDiagnostic& pathDiagnostic,
llvm::SmallVectorImpl<BugReport *> &bugReports) {} SmallVectorImpl<BugReport *> &bugReports) {}
void Register(BugType *BT); void Register(BugType *BT);
void EmitReport(BugReport *R); void EmitReport(BugReport *R);
void EmitBasicReport(llvm::StringRef BugName, llvm::StringRef BugStr, void EmitBasicReport(StringRef BugName, StringRef BugStr,
SourceLocation Loc, SourceLocation Loc,
SourceRange* RangeBeg, unsigned NumRanges); SourceRange* RangeBeg, unsigned NumRanges);
void EmitBasicReport(llvm::StringRef BugName, llvm::StringRef BugCategory, void EmitBasicReport(StringRef BugName, StringRef BugCategory,
llvm::StringRef BugStr, SourceLocation Loc, StringRef BugStr, SourceLocation Loc,
SourceRange* RangeBeg, unsigned NumRanges); SourceRange* RangeBeg, unsigned NumRanges);
void EmitBasicReport(llvm::StringRef BugName, llvm::StringRef BugStr, void EmitBasicReport(StringRef BugName, StringRef BugStr,
SourceLocation Loc) { SourceLocation Loc) {
EmitBasicReport(BugName, BugStr, Loc, 0, 0); EmitBasicReport(BugName, BugStr, Loc, 0, 0);
} }
void EmitBasicReport(llvm::StringRef BugName, llvm::StringRef BugCategory, void EmitBasicReport(StringRef BugName, StringRef BugCategory,
llvm::StringRef BugStr, SourceLocation Loc) { StringRef BugStr, SourceLocation Loc) {
EmitBasicReport(BugName, BugCategory, BugStr, Loc, 0, 0); EmitBasicReport(BugName, BugCategory, BugStr, Loc, 0, 0);
} }
void EmitBasicReport(llvm::StringRef BugName, llvm::StringRef BugStr, void EmitBasicReport(StringRef BugName, StringRef BugStr,
SourceLocation Loc, SourceRange R) { SourceLocation Loc, SourceRange R) {
EmitBasicReport(BugName, BugStr, Loc, &R, 1); EmitBasicReport(BugName, BugStr, Loc, &R, 1);
} }
void EmitBasicReport(llvm::StringRef BugName, llvm::StringRef Category, void EmitBasicReport(StringRef BugName, StringRef Category,
llvm::StringRef BugStr, SourceLocation Loc, StringRef BugStr, SourceLocation Loc,
SourceRange R) { SourceRange R) {
EmitBasicReport(BugName, Category, BugStr, Loc, &R, 1); EmitBasicReport(BugName, Category, BugStr, Loc, &R, 1);
} }
@ -369,7 +369,7 @@ private:
/// \brief Returns a BugType that is associated with the given name and /// \brief Returns a BugType that is associated with the given name and
/// category. /// category.
BugType *getBugTypeForName(llvm::StringRef name, llvm::StringRef category); BugType *getBugTypeForName(StringRef name, StringRef category);
}; };
// FIXME: Get rid of GRBugReporter. It's the wrong abstraction. // FIXME: Get rid of GRBugReporter. It's the wrong abstraction.
@ -395,7 +395,7 @@ public:
GRStateManager &getStateManager(); GRStateManager &getStateManager();
virtual void GeneratePathDiagnostic(PathDiagnostic &pathDiagnostic, virtual void GeneratePathDiagnostic(PathDiagnostic &pathDiagnostic,
llvm::SmallVectorImpl<BugReport*> &bugReports); SmallVectorImpl<BugReport*> &bugReports);
void addNotableSymbol(SymbolRef Sym) { void addNotableSymbol(SymbolRef Sym) {
NotableSymbols.insert(Sym); NotableSymbols.insert(Sym);
@ -465,7 +465,7 @@ class DiagBugReport : public RangedBugReport {
std::list<std::string> Strs; std::list<std::string> Strs;
FullSourceLoc L; FullSourceLoc L;
public: public:
DiagBugReport(BugType& D, llvm::StringRef desc, FullSourceLoc l) : DiagBugReport(BugType& D, StringRef desc, FullSourceLoc l) :
RangedBugReport(D, desc, 0), L(l) {} RangedBugReport(D, desc, 0), L(l) {}
virtual ~DiagBugReport() {} virtual ~DiagBugReport() {}
@ -473,7 +473,7 @@ public:
// FIXME: Move out-of-line (virtual function). // FIXME: Move out-of-line (virtual function).
SourceLocation getLocation() const { return L; } SourceLocation getLocation() const { return L; }
void addString(llvm::StringRef s) { Strs.push_back(s); } void addString(StringRef s) { Strs.push_back(s); }
typedef std::list<std::string>::const_iterator str_iterator; typedef std::list<std::string>::const_iterator str_iterator;
str_iterator str_begin() const { return Strs.begin(); } str_iterator str_begin() const { return Strs.begin(); }

View File

@ -31,13 +31,13 @@ private:
const std::string Category; const std::string Category;
bool SuppressonSink; bool SuppressonSink;
public: public:
BugType(llvm::StringRef name, llvm::StringRef cat) BugType(StringRef name, StringRef cat)
: Name(name), Category(cat), SuppressonSink(false) {} : Name(name), Category(cat), SuppressonSink(false) {}
virtual ~BugType(); virtual ~BugType();
// FIXME: Should these be made strings as well? // FIXME: Should these be made strings as well?
llvm::StringRef getName() const { return Name; } StringRef getName() const { return Name; }
llvm::StringRef getCategory() const { return Category; } StringRef getCategory() const { return Category; }
/// isSuppressOnSink - Returns true if bug reports associated with this bug /// isSuppressOnSink - Returns true if bug reports associated with this bug
/// type should be suppressed if the end node of the report is post-dominated /// type should be suppressed if the end node of the report is post-dominated
@ -57,7 +57,7 @@ public:
BuiltinBug(const char *name) BuiltinBug(const char *name)
: BugType(name, "Logic error"), desc(name) {} : BugType(name, "Logic error"), desc(name) {}
llvm::StringRef getDescription() const { return desc; } StringRef getDescription() const { return desc; }
}; };
} // end GR namespace } // end GR namespace

View File

@ -42,13 +42,13 @@ public:
virtual ~PathDiagnosticClient() {} virtual ~PathDiagnosticClient() {}
virtual void virtual void
FlushDiagnostics(llvm::SmallVectorImpl<std::string> *FilesMade = 0) = 0; FlushDiagnostics(SmallVectorImpl<std::string> *FilesMade = 0) = 0;
void FlushDiagnostics(llvm::SmallVectorImpl<std::string> &FilesMade) { void FlushDiagnostics(SmallVectorImpl<std::string> &FilesMade) {
FlushDiagnostics(&FilesMade); FlushDiagnostics(&FilesMade);
} }
virtual llvm::StringRef getName() const = 0; virtual StringRef getName() const = 0;
virtual void HandleDiagnostic(Diagnostic::Level DiagLevel, virtual void HandleDiagnostic(Diagnostic::Level DiagLevel,
const DiagnosticInfo &Info); const DiagnosticInfo &Info);
@ -181,7 +181,7 @@ private:
PathDiagnosticPiece& operator=(const PathDiagnosticPiece &P); PathDiagnosticPiece& operator=(const PathDiagnosticPiece &P);
protected: protected:
PathDiagnosticPiece(llvm::StringRef s, Kind k, DisplayHint hint = Below); PathDiagnosticPiece(StringRef s, Kind k, DisplayHint hint = Below);
PathDiagnosticPiece(Kind k, DisplayHint hint = Below); PathDiagnosticPiece(Kind k, DisplayHint hint = Below);
@ -242,7 +242,7 @@ private:
PathDiagnosticLocation Pos; PathDiagnosticLocation Pos;
public: public:
PathDiagnosticSpotPiece(const PathDiagnosticLocation &pos, PathDiagnosticSpotPiece(const PathDiagnosticLocation &pos,
llvm::StringRef s, StringRef s,
PathDiagnosticPiece::Kind k, PathDiagnosticPiece::Kind k,
bool addPosRange = true) bool addPosRange = true)
: PathDiagnosticPiece(s, k), Pos(pos) { : PathDiagnosticPiece(s, k), Pos(pos) {
@ -261,7 +261,7 @@ class PathDiagnosticEventPiece : public PathDiagnosticSpotPiece {
public: public:
PathDiagnosticEventPiece(const PathDiagnosticLocation &pos, PathDiagnosticEventPiece(const PathDiagnosticLocation &pos,
llvm::StringRef s, bool addPosRange = true) StringRef s, bool addPosRange = true)
: PathDiagnosticSpotPiece(pos, s, Event, addPosRange) {} : PathDiagnosticSpotPiece(pos, s, Event, addPosRange) {}
~PathDiagnosticEventPiece(); ~PathDiagnosticEventPiece();
@ -276,7 +276,7 @@ class PathDiagnosticControlFlowPiece : public PathDiagnosticPiece {
public: public:
PathDiagnosticControlFlowPiece(const PathDiagnosticLocation &startPos, PathDiagnosticControlFlowPiece(const PathDiagnosticLocation &startPos,
const PathDiagnosticLocation &endPos, const PathDiagnosticLocation &endPos,
llvm::StringRef s) StringRef s)
: PathDiagnosticPiece(s, ControlFlow) { : PathDiagnosticPiece(s, ControlFlow) {
LPairs.push_back(PathDiagnosticLocationPair(startPos, endPos)); LPairs.push_back(PathDiagnosticLocationPair(startPos, endPos));
} }
@ -373,19 +373,19 @@ class PathDiagnostic : public llvm::FoldingSetNode {
public: public:
PathDiagnostic(); PathDiagnostic();
PathDiagnostic(llvm::StringRef bugtype, llvm::StringRef desc, PathDiagnostic(StringRef bugtype, StringRef desc,
llvm::StringRef category); StringRef category);
~PathDiagnostic(); ~PathDiagnostic();
llvm::StringRef getDescription() const { return Desc; } StringRef getDescription() const { return Desc; }
llvm::StringRef getBugType() const { return BugType; } StringRef getBugType() const { return BugType; }
llvm::StringRef getCategory() const { return Category; } StringRef getCategory() const { return Category; }
typedef std::deque<std::string>::const_iterator meta_iterator; typedef std::deque<std::string>::const_iterator meta_iterator;
meta_iterator meta_begin() const { return OtherDesc.begin(); } meta_iterator meta_begin() const { return OtherDesc.begin(); }
meta_iterator meta_end() const { return OtherDesc.end(); } meta_iterator meta_end() const { return OtherDesc.end(); }
void addMeta(llvm::StringRef s) { OtherDesc.push_back(s); } void addMeta(StringRef s) { OtherDesc.push_back(s); }
PathDiagnosticLocation getLocation() const { PathDiagnosticLocation getLocation() const {
assert(Size > 0 && "getLocation() requires a non-empty PathDiagnostic."); assert(Size > 0 && "getLocation() requires a non-empty PathDiagnostic.");

View File

@ -405,7 +405,7 @@ private:
std::vector<CheckDeclFunc> BodyCheckers; std::vector<CheckDeclFunc> BodyCheckers;
typedef llvm::SmallVector<CheckDeclFunc, 4> CachedDeclCheckers; typedef SmallVector<CheckDeclFunc, 4> CachedDeclCheckers;
typedef llvm::DenseMap<unsigned, CachedDeclCheckers> CachedDeclCheckersMapTy; typedef llvm::DenseMap<unsigned, CachedDeclCheckers> CachedDeclCheckersMapTy;
CachedDeclCheckersMapTy CachedDeclCheckersMap; CachedDeclCheckersMapTy CachedDeclCheckersMap;
@ -439,7 +439,7 @@ private:
}; };
friend struct llvm::DenseMapInfo<CachedStmtCheckersKey>; friend struct llvm::DenseMapInfo<CachedStmtCheckersKey>;
typedef llvm::SmallVector<CheckStmtFunc, 4> CachedStmtCheckers; typedef SmallVector<CheckStmtFunc, 4> CachedStmtCheckers;
typedef llvm::DenseMap<CachedStmtCheckersKey, CachedStmtCheckers> typedef llvm::DenseMap<CachedStmtCheckersKey, CachedStmtCheckers>
CachedStmtCheckersMapTy; CachedStmtCheckersMapTy;
CachedStmtCheckersMapTy CachedStmtCheckersMap; CachedStmtCheckersMapTy CachedStmtCheckersMap;
@ -476,7 +476,7 @@ private:
std::vector<CheckEndOfTranslationUnit> EndOfTranslationUnitCheckers; std::vector<CheckEndOfTranslationUnit> EndOfTranslationUnitCheckers;
struct EventInfo { struct EventInfo {
llvm::SmallVector<CheckEventFunc, 4> Checkers; SmallVector<CheckEventFunc, 4> Checkers;
bool HasDispatcher; bool HasDispatcher;
EventInfo() : HasDispatcher(false) { } EventInfo() : HasDispatcher(false) { }
}; };

View File

@ -284,7 +284,7 @@ class BranchNodeBuilder {
const CFGBlock* DstF; const CFGBlock* DstF;
ExplodedNode* Pred; ExplodedNode* Pred;
typedef llvm::SmallVector<ExplodedNode*,3> DeferredTy; typedef SmallVector<ExplodedNode*,3> DeferredTy;
DeferredTy Deferred; DeferredTy Deferred;
bool GeneratedTrue; bool GeneratedTrue;
@ -426,7 +426,7 @@ protected:
CoreEngine &engine; CoreEngine &engine;
ExplodedNode *pred; ExplodedNode *pred;
ProgramPoint pp; ProgramPoint pp;
llvm::SmallVector<ExplodedNode*, 2> sinksGenerated; SmallVector<ExplodedNode*, 2> sinksGenerated;
ExplodedNode *generateNodeImpl(const GRState *state, ExplodedNode *pred, ExplodedNode *generateNodeImpl(const GRState *state, ExplodedNode *pred,
ProgramPoint programPoint, bool asSink); ProgramPoint programPoint, bool asSink);
@ -445,7 +445,7 @@ public:
return engine.WList->getBlockCounter(); return engine.WList->getBlockCounter();
} }
const llvm::SmallVectorImpl<ExplodedNode*> &sinks() const { const SmallVectorImpl<ExplodedNode*> &sinks() const {
return sinksGenerated; return sinksGenerated;
} }
}; };

View File

@ -97,7 +97,7 @@ public:
Environment removeDeadBindings(Environment Env, Environment removeDeadBindings(Environment Env,
SymbolReaper &SymReaper, const GRState *ST, SymbolReaper &SymReaper, const GRState *ST,
llvm::SmallVectorImpl<const MemRegion*>& RegionRoots); SmallVectorImpl<const MemRegion*>& RegionRoots);
}; };
} // end GR namespace } // end GR namespace

Some files were not shown because too many files have changed in this diff Show More