forked from OSchip/llvm-project
[clang-tidy] Fix an assertion failure of "SLocEntry::getExpansion()" when IncludeInserter handles macro header file.
Summary: Also Fixes PR24749. Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D17805 llvm-svn: 262484
This commit is contained in:
parent
8f3381ed31
commit
7d08ba2749
|
@ -8,6 +8,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "IncludeInserter.h"
|
||||
#include "clang/Lex/Token.h"
|
||||
|
||||
namespace clang {
|
||||
namespace tidy {
|
||||
|
@ -19,14 +20,14 @@ public:
|
|||
// Implements PPCallbacks::InclusionDerective(). Records the names and source
|
||||
// locations of the inclusions in the main source file being processed.
|
||||
void InclusionDirective(SourceLocation HashLocation,
|
||||
const Token & /*include_token*/,
|
||||
const Token & IncludeToken,
|
||||
StringRef FileNameRef, bool IsAngled,
|
||||
CharSourceRange FileNameRange,
|
||||
const FileEntry * /*IncludedFile*/,
|
||||
StringRef /*SearchPath*/, StringRef /*RelativePath*/,
|
||||
const Module * /*ImportedModule*/) override {
|
||||
Inserter->AddInclude(FileNameRef, IsAngled, HashLocation,
|
||||
FileNameRange.getEnd());
|
||||
IncludeToken.getEndLoc());
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
// RUN: %check_clang_tidy %s modernize-pass-by-value %t -- -- -std=c++11 -isystem %S/Inputs/Headers
|
||||
|
||||
// CHECK-FIXES: #include <utility>
|
||||
|
||||
#define HEADER <./a.h>
|
||||
#include HEADER
|
||||
|
||||
struct A {
|
||||
};
|
||||
|
||||
struct B {
|
||||
B(const A &a) : a(a) {}
|
||||
// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: pass by value and use std::move [modernize-pass-by-value]
|
||||
// CHECK-FIXES: B(A a) : a(std::move(a)) {}
|
||||
A a;
|
||||
};
|
Loading…
Reference in New Issue