diff options
| author | Eugene Zelenko <eugene.zelenko@gmail.com> | 2017-11-03 22:35:27 +0000 | 
|---|---|---|
| committer | Eugene Zelenko <eugene.zelenko@gmail.com> | 2017-11-03 22:35:27 +0000 | 
| commit | 918e0ca77a6fa5ebe72652c21ddac7cd05206655 (patch) | |
| tree | 6e8d84f61f64839eb939f0f7fc2e09569be95f00 /clang/lib/Basic | |
| parent | a104d558d057389e68630f7a48a0814ba0b233c4 (diff) | |
| download | bcm5719-llvm-918e0ca77a6fa5ebe72652c21ddac7cd05206655.tar.gz bcm5719-llvm-918e0ca77a6fa5ebe72652c21ddac7cd05206655.zip  | |
[Basic] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
llvm-svn: 317381
Diffstat (limited to 'clang/lib/Basic')
| -rw-r--r-- | clang/lib/Basic/IdentifierTable.cpp | 68 | ||||
| -rw-r--r-- | clang/lib/Basic/Module.cpp | 25 | ||||
| -rw-r--r-- | clang/lib/Basic/SourceManager.cpp | 55 | 
3 files changed, 91 insertions, 57 deletions
diff --git a/clang/lib/Basic/IdentifierTable.cpp b/clang/lib/Basic/IdentifierTable.cpp index fe7829ec509..2bed531ae3d 100644 --- a/clang/lib/Basic/IdentifierTable.cpp +++ b/clang/lib/Basic/IdentifierTable.cpp @@ -1,4 +1,4 @@ -//===--- IdentifierTable.cpp - Hash table for identifier lookup -----------===// +//===- IdentifierTable.cpp - Hash table for identifier lookup -------------===//  //  //                     The LLVM Compiler Infrastructure  // @@ -12,17 +12,24 @@  //  //===----------------------------------------------------------------------===// -#include "clang/Basic/CharInfo.h"  #include "clang/Basic/IdentifierTable.h" +#include "clang/Basic/CharInfo.h"  #include "clang/Basic/LangOptions.h"  #include "clang/Basic/OperatorKinds.h"  #include "clang/Basic/Specifiers.h" -#include "llvm/ADT/DenseMap.h" +#include "clang/Basic/TokenKinds.h" +#include "llvm/ADT/DenseMapInfo.h"  #include "llvm/ADT/FoldingSet.h"  #include "llvm/ADT/SmallString.h" +#include "llvm/ADT/StringMap.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/Support/Allocator.h"  #include "llvm/Support/ErrorHandling.h"  #include "llvm/Support/raw_ostream.h" +#include <cassert>  #include <cstdio> +#include <cstring> +#include <string>  using namespace clang; @@ -46,27 +53,27 @@ IdentifierInfo::IdentifierInfo() {    RevertedTokenID = false;    OutOfDate = false;    IsModulesImport = false; -  FETokenInfo = nullptr; -  Entry = nullptr;  }  //===----------------------------------------------------------------------===//  // IdentifierTable Implementation  //===----------------------------------------------------------------------===// -IdentifierIterator::~IdentifierIterator() { } +IdentifierIterator::~IdentifierIterator() = default; -IdentifierInfoLookup::~IdentifierInfoLookup() {} +IdentifierInfoLookup::~IdentifierInfoLookup() = default;  namespace { -  /// \brief A simple identifier lookup iterator that represents an -  /// empty sequence of identifiers. -  class EmptyLookupIterator : public IdentifierIterator -  { -  public: -    StringRef Next() override { return StringRef(); } -  }; -} + +/// \brief A simple identifier lookup iterator that represents an +/// empty sequence of identifiers. +class EmptyLookupIterator : public IdentifierIterator +{ +public: +  StringRef Next() override { return StringRef(); } +}; + +} // namespace  IdentifierIterator *IdentifierInfoLookup::getIdentifiers() {    return new EmptyLookupIterator(); @@ -76,11 +83,9 @@ IdentifierTable::IdentifierTable(const LangOptions &LangOpts,                                   IdentifierInfoLookup* externalLookup)    : HashTable(8192), // Start with space for 8K identifiers.      ExternalLookup(externalLookup) { -    // Populate the identifier table with info about keywords for the current    // language.    AddKeywords(LangOpts); -          // Add the '_experimental_modules_import' contextual keyword.    get("import").setModulesImport(true); @@ -92,6 +97,7 @@ IdentifierTable::IdentifierTable(const LangOptions &LangOpts,  // Constants for TokenKinds.def  namespace { +    enum {      KEYC99 = 0x1,      KEYCXX = 0x2, @@ -127,7 +133,8 @@ namespace {      KS_Enabled,     // Enabled      KS_Future       // Is a keyword in future standard    }; -} + +} // namespace  /// \brief Translates flags as specified in TokenKinds.def into keyword status  /// in the given language standard. @@ -366,6 +373,7 @@ unsigned llvm::DenseMapInfo<clang::Selector>::getHashValue(clang::Selector S) {  }  namespace clang { +  /// MultiKeywordSelector - One of these variable length records is kept for each  /// selector containing more than one keyword. We use a folding set  /// to unique aggregate names (keyword selectors in ObjC parlance). Access to @@ -375,6 +383,7 @@ class MultiKeywordSelector    MultiKeywordSelector(unsigned nKeys) {      ExtraKindOrNumArgs = NUM_EXTRA_KINDS + nKeys;    } +  public:    // Constructor for keyword selectors.    MultiKeywordSelector(unsigned nKeys, IdentifierInfo **IIV) { @@ -392,28 +401,34 @@ public:    unsigned getNumArgs() const { return ExtraKindOrNumArgs - NUM_EXTRA_KINDS; } -  typedef IdentifierInfo *const *keyword_iterator; +  using keyword_iterator = IdentifierInfo *const *; +    keyword_iterator keyword_begin() const {      return reinterpret_cast<keyword_iterator>(this+1);    } +    keyword_iterator keyword_end() const {      return keyword_begin()+getNumArgs();    } +    IdentifierInfo *getIdentifierInfoForSlot(unsigned i) const {      assert(i < getNumArgs() && "getIdentifierInfoForSlot(): illegal index");      return keyword_begin()[i];    } +    static void Profile(llvm::FoldingSetNodeID &ID,                        keyword_iterator ArgTys, unsigned NumArgs) {      ID.AddInteger(NumArgs);      for (unsigned i = 0; i != NumArgs; ++i)        ID.AddPointer(ArgTys[i]);    } +    void Profile(llvm::FoldingSetNodeID &ID) {      Profile(ID, keyword_begin(), getNumArgs());    }  }; -} // end namespace clang. + +} // namespace clang.  unsigned Selector::getNumArgs() const {    unsigned IIF = getIdentifierInfoFlag(); @@ -431,6 +446,7 @@ IdentifierInfo *Selector::getIdentifierInfoForSlot(unsigned argIndex) const {      assert(argIndex == 0 && "illegal keyword index");      return getAsIdentifierInfo();    } +    // We point to a MultiKeywordSelector.    MultiKeywordSelector *SI = getMultiKeywordSelector();    return SI->getIdentifierInfoForSlot(argIndex); @@ -592,11 +608,13 @@ ObjCStringFormatFamily Selector::getStringFormatFamilyImpl(Selector sel) {  }  namespace { -  struct SelectorTableImpl { -    llvm::FoldingSet<MultiKeywordSelector> Table; -    llvm::BumpPtrAllocator Allocator; -  }; -} // end anonymous namespace. + +struct SelectorTableImpl { +  llvm::FoldingSet<MultiKeywordSelector> Table; +  llvm::BumpPtrAllocator Allocator; +}; + +} // namespace  static SelectorTableImpl &getSelectorTableImpl(void *P) {    return *static_cast<SelectorTableImpl*>(P); diff --git a/clang/lib/Basic/Module.cpp b/clang/lib/Basic/Module.cpp index 621b1b23d70..7124184865c 100644 --- a/clang/lib/Basic/Module.cpp +++ b/clang/lib/Basic/Module.cpp @@ -1,4 +1,4 @@ -//===--- Module.cpp - Describe a module -----------------------------------===// +//===- Module.cpp - Describe a module -------------------------------------===//  //  //                     The LLVM Compiler Infrastructure  // @@ -16,23 +16,33 @@  #include "clang/Basic/CharInfo.h"  #include "clang/Basic/FileManager.h"  #include "clang/Basic/LangOptions.h" +#include "clang/Basic/SourceLocation.h"  #include "clang/Basic/TargetInfo.h"  #include "llvm/ADT/ArrayRef.h"  #include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/StringMap.h" +#include "llvm/ADT/StringRef.h"  #include "llvm/ADT/StringSwitch.h" +#include "llvm/Support/Compiler.h"  #include "llvm/Support/ErrorHandling.h"  #include "llvm/Support/raw_ostream.h" +#include <algorithm> +#include <cassert> +#include <functional> +#include <string> +#include <utility> +#include <vector>  using namespace clang;  Module::Module(StringRef Name, SourceLocation DefinitionLoc, Module *Parent,                 bool IsFramework, bool IsExplicit, unsigned VisibilityID) -    : Name(Name), DefinitionLoc(DefinitionLoc), Parent(Parent), Directory(), -      Umbrella(), ASTFile(nullptr), VisibilityID(VisibilityID), -      IsMissingRequirement(false), HasIncompatibleModuleFile(false), -      IsAvailable(true), IsFromModuleFile(false), IsFramework(IsFramework), -      IsExplicit(IsExplicit), IsSystem(false), IsExternC(false), -      IsInferred(false), InferSubmodules(false), InferExplicitSubmodules(false), +    : Name(Name), DefinitionLoc(DefinitionLoc), Parent(Parent), +      VisibilityID(VisibilityID), IsMissingRequirement(false), +      HasIncompatibleModuleFile(false), IsAvailable(true), +      IsFromModuleFile(false), IsFramework(IsFramework), IsExplicit(IsExplicit), +      IsSystem(false), IsExternC(false), IsInferred(false), +      InferSubmodules(false), InferExplicitSubmodules(false),        InferExportWildcard(false), ConfigMacrosExhaustive(false),        NoUndeclaredIncludes(false), NameVisibility(Hidden) {    if (Parent) { @@ -130,6 +140,7 @@ static StringRef getModuleNameFromComponent(      const std::pair<std::string, SourceLocation> &IdComponent) {    return IdComponent.first;  } +  static StringRef getModuleNameFromComponent(StringRef R) { return R; }  template<typename InputIter> diff --git a/clang/lib/Basic/SourceManager.cpp b/clang/lib/Basic/SourceManager.cpp index 620f05c6377..e664879639f 100644 --- a/clang/lib/Basic/SourceManager.cpp +++ b/clang/lib/Basic/SourceManager.cpp @@ -1,4 +1,4 @@ -//===--- SourceManager.cpp - Track and cache source files -----------------===// +//===- SourceManager.cpp - Track and cache source files -------------------===//  //  //                     The LLVM Compiler Infrastructure  // @@ -14,17 +14,33 @@  #include "clang/Basic/SourceManager.h"  #include "clang/Basic/Diagnostic.h"  #include "clang/Basic/FileManager.h" +#include "clang/Basic/LLVM.h" +#include "clang/Basic/SourceLocation.h"  #include "clang/Basic/SourceManagerInternals.h" +#include "llvm/ADT/DenseMap.h"  #include "llvm/ADT/Optional.h" +#include "llvm/ADT/None.h"  #include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/SmallVector.h"  #include "llvm/ADT/StringSwitch.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/Support/Allocator.h"  #include "llvm/Support/Capacity.h"  #include "llvm/Support/Compiler.h" +#include "llvm/Support/ErrorHandling.h" +#include "llvm/Support/FileSystem.h" +#include "llvm/Support/MathExtras.h"  #include "llvm/Support/MemoryBuffer.h"  #include "llvm/Support/Path.h"  #include "llvm/Support/raw_ostream.h"  #include <algorithm> -#include <cstring> +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <memory> +#include <tuple> +#include <utility> +#include <vector>  using namespace clang;  using namespace SrcMgr; @@ -222,7 +238,6 @@ void LineTableInfo::AddLineNote(FileID FID, unsigned Offset, unsigned LineNo,                                     IncludeOffset));  } -  /// FindNearestLineEntry - Find the line entry nearest to FID that is before  /// it.  If there is no line entry before Offset in FID, return null.  const LineEntry *LineTableInfo::FindNearestLineEntry(FileID FID, @@ -250,7 +265,6 @@ void LineTableInfo::AddEntry(FileID FID,  }  /// getLineTableFilenameID - Return the uniqued ID for the specified filename. -///  unsigned SourceManager::getLineTableFilenameID(StringRef Name) {    return getLineTable().getLineTableFilenameID(Name);  } @@ -298,10 +312,7 @@ LineTableInfo &SourceManager::getLineTable() {  SourceManager::SourceManager(DiagnosticsEngine &Diag, FileManager &FileMgr,                               bool UserFilesAreVolatile) -  : Diag(Diag), FileMgr(FileMgr), OverridenFilesKeepOriginalName(true), -    UserFilesAreVolatile(UserFilesAreVolatile), FilesAreTransient(false), -    ExternalSLocEntries(nullptr), LineTable(nullptr), NumLinearScans(0), -    NumBinaryProbes(0) { +  : Diag(Diag), FileMgr(FileMgr), UserFilesAreVolatile(UserFilesAreVolatile) {    clearIDTables();    Diag.setSourceManager(this);  } @@ -342,7 +353,7 @@ void SourceManager::clearIDTables() {    // Use up FileID #0 as an invalid expansion.    NextLocalOffset = 0;    CurrentLoadedOffset = MaxLoadedOffset; -  createExpansionLoc(SourceLocation(),SourceLocation(),SourceLocation(), 1); +  createExpansionLoc(SourceLocation(), SourceLocation(), SourceLocation(), 1);  }  void SourceManager::initializeForReplay(const SourceManager &Old) { @@ -408,7 +419,6 @@ SourceManager::getOrCreateContentCache(const FileEntry *FileEnt,    return Entry;  } -  /// Create a new ContentCache for the specified memory buffer.  /// This does no caching.  const ContentCache * @@ -716,7 +726,7 @@ FileID SourceManager::getFileIDLocal(unsigned SLocOffset) const {    // Find the FileID that contains this.  "I" is an iterator that points to a    // FileID whose offset is known to be larger than SLocOffset.    unsigned NumProbes = 0; -  while (1) { +  while (true) {      --I;      if (I->getOffset() <= SLocOffset) {        FileID Res = FileID::get(int(I - LocalSLocEntryTable.begin())); @@ -740,7 +750,7 @@ FileID SourceManager::getFileIDLocal(unsigned SLocOffset) const {    // SLocOffset.    unsigned LessIndex = 0;    NumProbes = 0; -  while (1) { +  while (true) {      bool Invalid = false;      unsigned MiddleIndex = (GreaterIndex-LessIndex)/2+LessIndex;      unsigned MidOffset = getLocalSLocEntry(MiddleIndex, &Invalid).getOffset(); @@ -817,7 +827,7 @@ FileID SourceManager::getFileIDLoaded(unsigned SLocOffset) const {    unsigned GreaterIndex = I;    unsigned LessIndex = LoadedSLocEntryTable.size();    NumProbes = 0; -  while (1) { +  while (true) {      ++NumProbes;      unsigned MiddleIndex = (LessIndex - GreaterIndex) / 2 + GreaterIndex;      const SrcMgr::SLocEntry &E = getLoadedSLocEntry(MiddleIndex); @@ -935,7 +945,6 @@ SourceLocation SourceManager::getImmediateSpellingLoc(SourceLocation Loc) const{    return Loc.getLocWithOffset(LocInfo.second);  } -  /// getImmediateExpansionRange - Loc is required to be an expansion location.  /// Return the start/end of the expansion information.  std::pair<SourceLocation,SourceLocation> @@ -1055,7 +1064,6 @@ bool SourceManager::isAtEndOfImmediateMacroExpansion(SourceLocation Loc,    return true;  } -  //===----------------------------------------------------------------------===//  // Queries about the code at a SourceLocation.  //===----------------------------------------------------------------------===// @@ -1084,7 +1092,6 @@ const char *SourceManager::getCharacterData(SourceLocation SL,    return Buffer->getBufferStart() + (CharDataInvalid? 0 : LocInfo.second);  } -  /// getColumnNumber - Return the column # for the specified file position.  /// this is significantly cheaper to compute than the line number.  unsigned SourceManager::getColumnNumber(FileID FID, unsigned FilePos, @@ -1189,7 +1196,7 @@ static void ComputeLineNumbers(DiagnosticsEngine &Diag, ContentCache *FI,    const unsigned char *Buf = (const unsigned char *)Buffer->getBufferStart();    const unsigned char *End = (const unsigned char *)Buffer->getBufferEnd();    unsigned Offs = 0; -  while (1) { +  while (true) {      // Skip over the contents of the line.      const unsigned char *NextBuf = (const unsigned char *)Buf; @@ -1419,7 +1426,6 @@ StringRef SourceManager::getBufferName(SourceLocation Loc,    return getBuffer(getFileID(Loc), Invalid)->getBufferIdentifier();  } -  /// getPresumedLoc - This method returns the "presumed" location of a  /// SourceLocation specifies.  A "presumed location" can be modified by \#line  /// or GNU line marker directives.  This provides a view on the data that a @@ -1767,7 +1773,7 @@ void SourceManager::computeMacroArgsCache(MacroArgsMap &MacroArgsCache,    MacroArgsCache.insert(std::make_pair(0, SourceLocation()));    int ID = FID.ID; -  while (1) { +  while (true) {      ++ID;      // Stop if there are no more FileIDs to check.      if (ID > 0) { @@ -1830,7 +1836,7 @@ void SourceManager::associateFileChunkWithMacroArgExp(      FileID SpellFID; // Current FileID in the spelling range.      unsigned SpellRelativeOffs;      std::tie(SpellFID, SpellRelativeOffs) = getDecomposedLoc(SpellLoc); -    while (1) { +    while (true) {        const SLocEntry &Entry = getSLocEntry(SpellFID);        unsigned SpellFIDBeginOffs = Entry.getOffset();        unsigned SpellFIDSize = getFileIDSize(SpellFID); @@ -1857,7 +1863,6 @@ void SourceManager::associateFileChunkWithMacroArgExp(        ++SpellFID.ID;        SpellRelativeOffs = 0;      } -    }    assert(SpellLoc.isFileID()); @@ -1937,8 +1942,8 @@ SourceManager::getDecomposedIncludedLoc(FileID FID) const {    // Uses IncludedLocMap to retrieve/cache the decomposed loc. -  typedef std::pair<FileID, unsigned> DecompTy; -  typedef llvm::DenseMap<FileID, DecompTy> MapTy; +  using DecompTy = std::pair<FileID, unsigned>; +  using MapTy = llvm::DenseMap<FileID, DecompTy>;    std::pair<MapTy::iterator, bool>      InsertOp = IncludedLocMap.insert(std::make_pair(FID, DecompTy()));    DecompTy &DecompLoc = InsertOp.first->second; @@ -2085,7 +2090,7 @@ std::pair<bool, bool> SourceManager::isInTheSameTranslationUnit(    // of the other looking for a match.    // We use a map from FileID to Offset to store the chain. Easier than writing    // a custom set hash info that only depends on the first part of a pair. -  typedef llvm::SmallDenseMap<FileID, unsigned, 16> LocSet; +  using LocSet = llvm::SmallDenseMap<FileID, unsigned, 16>;    LocSet LChain;    do {      LChain.insert(LOffs); @@ -2197,7 +2202,7 @@ LLVM_DUMP_METHOD void SourceManager::dump() const {    }  } -ExternalSLocEntrySource::~ExternalSLocEntrySource() { } +ExternalSLocEntrySource::~ExternalSLocEntrySource() = default;  /// Return the amount of memory used by memory buffers, breaking down  /// by heap-backed versus mmap'ed memory.  | 

