include-what-you-use: rebuild for llvm11
This commit is contained in:
parent
71e9bf173f
commit
e5ad85e524
3 changed files with 207 additions and 1 deletions
|
@ -0,0 +1,146 @@
|
||||||
|
From 53487d209729d5781007dc0fd6076dc585cb3727 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andrea Bocci <andrea.bocci@cern.ch>
|
||||||
|
Date: Fri, 28 Feb 2020 17:45:03 +0100
|
||||||
|
Subject: [PATCH] Add explicit conversion from llvm::StringRef to std::string
|
||||||
|
|
||||||
|
llvm/llvm-project@777180a makes the llvm::StringRef conversion operator
|
||||||
|
to std::string explicit.
|
||||||
|
These changes add a call to the str() method to perform the conversion.
|
||||||
|
|
||||||
|
Signed-off-by: Andrea Bocci <andrea.bocci@cern.ch>
|
||||||
|
---
|
||||||
|
iwyu_driver.cc | 2 +-
|
||||||
|
iwyu_globals.cc | 4 ++--
|
||||||
|
iwyu_lexer_utils.cc | 2 +-
|
||||||
|
iwyu_location_util.h | 2 +-
|
||||||
|
iwyu_output.cc | 2 +-
|
||||||
|
iwyu_path_util.cc | 6 +++---
|
||||||
|
iwyu_preprocessor.cc | 4 ++--
|
||||||
|
7 files changed, 11 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/iwyu_driver.cc b/iwyu_driver.cc
|
||||||
|
index bd163144..42fea35b 100644
|
||||||
|
--- a/iwyu_driver.cc
|
||||||
|
+++ b/iwyu_driver.cc
|
||||||
|
@@ -79,7 +79,7 @@ std::string GetExecutablePath(const char *Argv0) {
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *SaveStringInSet(std::set<std::string> &SavedStrings, StringRef S) {
|
||||||
|
- return SavedStrings.insert(S).first->c_str();
|
||||||
|
+ return SavedStrings.insert(S.str()).first->c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ExpandArgsFromBuf(const char *Arg,
|
||||||
|
diff --git a/iwyu_globals.cc b/iwyu_globals.cc
|
||||||
|
index 0f58b4dc..26998966 100644
|
||||||
|
--- a/iwyu_globals.cc
|
||||||
|
+++ b/iwyu_globals.cc
|
||||||
|
@@ -293,7 +293,7 @@ static vector<HeaderSearchPath> ComputeHeaderSearchPaths(
|
||||||
|
for (auto it = header_search->system_dir_begin();
|
||||||
|
it != header_search->system_dir_end(); ++it) {
|
||||||
|
if (const DirectoryEntry* entry = it->getDir()) {
|
||||||
|
- const string path = NormalizeDirPath(MakeAbsolutePath(entry->getName()));
|
||||||
|
+ const string path = NormalizeDirPath(MakeAbsolutePath(entry->getName().str()));
|
||||||
|
search_path_map[path] = HeaderSearchPath::kSystemPath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -303,7 +303,7 @@ static vector<HeaderSearchPath> ComputeHeaderSearchPaths(
|
||||||
|
// search_dir_begin()/end() includes both system and user paths.
|
||||||
|
// If it's a system path, it's already in the map, so everything
|
||||||
|
// new is a user path. The insert only 'takes' for new entries.
|
||||||
|
- const string path = NormalizeDirPath(MakeAbsolutePath(entry->getName()));
|
||||||
|
+ const string path = NormalizeDirPath(MakeAbsolutePath(entry->getName().str()));
|
||||||
|
search_path_map.insert(make_pair(path, HeaderSearchPath::kUserPath));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/iwyu_lexer_utils.cc b/iwyu_lexer_utils.cc
|
||||||
|
index fcea2d28..648c9da8 100644
|
||||||
|
--- a/iwyu_lexer_utils.cc
|
||||||
|
+++ b/iwyu_lexer_utils.cc
|
||||||
|
@@ -70,7 +70,7 @@ SourceLocation GetLocationAfter(
|
||||||
|
string GetIncludeNameAsWritten(
|
||||||
|
SourceLocation include_loc,
|
||||||
|
const CharacterDataGetterInterface& data_getter) {
|
||||||
|
- const string data = GetSourceTextUntilEndOfLine(include_loc, data_getter);
|
||||||
|
+ const string data = GetSourceTextUntilEndOfLine(include_loc, data_getter).str();
|
||||||
|
if (data.empty())
|
||||||
|
return data;
|
||||||
|
string::size_type endpos = string::npos;
|
||||||
|
diff --git a/iwyu_location_util.h b/iwyu_location_util.h
|
||||||
|
index 3892a424..6f8cf81c 100644
|
||||||
|
--- a/iwyu_location_util.h
|
||||||
|
+++ b/iwyu_location_util.h
|
||||||
|
@@ -89,7 +89,7 @@ bool IsInScratchSpace(clang::SourceLocation loc);
|
||||||
|
|
||||||
|
inline string GetFilePath(const clang::FileEntry* file) {
|
||||||
|
return (IsBuiltinFile(file) ? "<built-in>" :
|
||||||
|
- NormalizeFilePath(file->getName()));
|
||||||
|
+ NormalizeFilePath(file->getName().str()));
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
diff --git a/iwyu_output.cc b/iwyu_output.cc
|
||||||
|
index ca145710..8666c26c 100644
|
||||||
|
--- a/iwyu_output.cc
|
||||||
|
+++ b/iwyu_output.cc
|
||||||
|
@@ -168,7 +168,7 @@ string GetKindName(const clang::TagDecl* tag_decl) {
|
||||||
|
if (const FakeNamedDecl* fake = FakeNamedDeclIfItIsOne(named_decl)) {
|
||||||
|
return fake->kind_name();
|
||||||
|
}
|
||||||
|
- return tag_decl->getKindName();
|
||||||
|
+ return tag_decl->getKindName().str();
|
||||||
|
}
|
||||||
|
|
||||||
|
string GetQualifiedNameAsString(const clang::NamedDecl* named_decl) {
|
||||||
|
diff --git a/iwyu_path_util.cc b/iwyu_path_util.cc
|
||||||
|
index ab4fc800..9987ea47 100644
|
||||||
|
--- a/iwyu_path_util.cc
|
||||||
|
+++ b/iwyu_path_util.cc
|
||||||
|
@@ -134,7 +134,7 @@ string NormalizeFilePath(const string& path) {
|
||||||
|
std::replace(normalized.begin(), normalized.end(), '\\', '/');
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- return normalized.str();
|
||||||
|
+ return normalized.str().str();
|
||||||
|
}
|
||||||
|
|
||||||
|
string NormalizeDirPath(const string& path) {
|
||||||
|
@@ -154,14 +154,14 @@ string MakeAbsolutePath(const string& path) {
|
||||||
|
std::error_code error = llvm::sys::fs::make_absolute(absolute_path);
|
||||||
|
CHECK_(!error);
|
||||||
|
|
||||||
|
- return absolute_path.str();
|
||||||
|
+ return absolute_path.str().str();
|
||||||
|
}
|
||||||
|
|
||||||
|
string MakeAbsolutePath(const string& base_path, const string& relative_path) {
|
||||||
|
llvm::SmallString<128> absolute_path(base_path);
|
||||||
|
llvm::sys::path::append(absolute_path, relative_path);
|
||||||
|
|
||||||
|
- return absolute_path.str();
|
||||||
|
+ return absolute_path.str().str();
|
||||||
|
}
|
||||||
|
|
||||||
|
string GetParentPath(const string& path) {
|
||||||
|
diff --git a/iwyu_preprocessor.cc b/iwyu_preprocessor.cc
|
||||||
|
index 58e78595..88b93144 100644
|
||||||
|
--- a/iwyu_preprocessor.cc
|
||||||
|
+++ b/iwyu_preprocessor.cc
|
||||||
|
@@ -313,7 +313,7 @@ void IwyuPreprocessorInfo::ProcessHeadernameDirectivesInFile(
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
const string filename = GetSourceTextUntilEndOfLine(current_loc,
|
||||||
|
- DefaultDataGetter());
|
||||||
|
+ DefaultDataGetter()).str();
|
||||||
|
// Use "" or <> based on where the file lives.
|
||||||
|
string quoted_private_include;
|
||||||
|
if (IsSystemIncludeFile(GetFilePath(current_loc)))
|
||||||
|
@@ -332,7 +332,7 @@ void IwyuPreprocessorInfo::ProcessHeadernameDirectivesInFile(
|
||||||
|
}
|
||||||
|
|
||||||
|
string after_text = GetSourceTextUntilEndOfLine(current_loc,
|
||||||
|
- DefaultDataGetter());
|
||||||
|
+ DefaultDataGetter()).str();
|
||||||
|
const string::size_type close_brace_pos = after_text.find('}');
|
||||||
|
if (close_brace_pos == string::npos) {
|
||||||
|
Warn(current_loc, "@headername directive missing a closing brace");
|
|
@ -0,0 +1,54 @@
|
||||||
|
From 30549c6931972456d1e09ff5dbeecd258a8df72b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kim Grasman <kim.grasman@gmail.com>
|
||||||
|
Date: Thu, 9 Jul 2020 18:47:56 +0200
|
||||||
|
Subject: [PATCH] Implement Stmt printing with ASTDumper
|
||||||
|
|
||||||
|
The Clang API changed in commit 473fbc90d1fbf17e so that Stmt::dump
|
||||||
|
takes an ASTContext instead of a SourceManager.
|
||||||
|
|
||||||
|
Rather than wire a global ASTContext, reimplement PrintableStmt and
|
||||||
|
PrintStmt to duplicate the most trivial implementations not requiring
|
||||||
|
ASTContext.
|
||||||
|
|
||||||
|
No functional change.
|
||||||
|
---
|
||||||
|
iwyu_ast_util.cc | 8 ++++++--
|
||||||
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/iwyu_ast_util.cc b/iwyu_ast_util.cc
|
||||||
|
index d3d4dd1f..b19a11fb 100644
|
||||||
|
--- a/iwyu_ast_util.cc
|
||||||
|
+++ b/iwyu_ast_util.cc
|
||||||
|
@@ -25,6 +25,7 @@
|
||||||
|
#include "llvm/Support/Casting.h"
|
||||||
|
#include "llvm/Support/raw_ostream.h"
|
||||||
|
#include "clang/AST/ASTContext.h"
|
||||||
|
+#include "clang/AST/ASTDumper.h"
|
||||||
|
#include "clang/AST/CanonicalType.h"
|
||||||
|
#include "clang/AST/Decl.h"
|
||||||
|
#include "clang/AST/DeclBase.h"
|
||||||
|
@@ -46,6 +47,7 @@ namespace clang {
|
||||||
|
class FileEntry;
|
||||||
|
} // namespace clang
|
||||||
|
|
||||||
|
+using clang::ASTDumper;
|
||||||
|
using clang::BlockPointerType;
|
||||||
|
using clang::CXXConstructExpr;
|
||||||
|
using clang::CXXConstructorDecl;
|
||||||
|
@@ -450,12 +452,14 @@ string PrintableDecl(const Decl* decl, bool terse/*=true*/) {
|
||||||
|
string PrintableStmt(const Stmt* stmt) {
|
||||||
|
std::string buffer;
|
||||||
|
raw_string_ostream ostream(buffer);
|
||||||
|
- stmt->dump(ostream, *GlobalSourceManager());
|
||||||
|
+ ASTDumper dumper(ostream, /*ShowColors=*/false);
|
||||||
|
+ dumper.Visit(stmt);
|
||||||
|
return ostream.str();
|
||||||
|
}
|
||||||
|
|
||||||
|
void PrintStmt(const Stmt* stmt) {
|
||||||
|
- stmt->dump(*GlobalSourceManager()); // This prints to errs().
|
||||||
|
+ ASTDumper dumper(llvm::errs(), /*ShowColors=*/false);
|
||||||
|
+ dumper.Visit(stmt);
|
||||||
|
}
|
||||||
|
|
||||||
|
string PrintableType(const Type* type) {
|
|
@ -1,7 +1,7 @@
|
||||||
# Template file for 'include-what-you-use'
|
# Template file for 'include-what-you-use'
|
||||||
pkgname=include-what-you-use
|
pkgname=include-what-you-use
|
||||||
version=0.14
|
version=0.14
|
||||||
revision=1
|
revision=2
|
||||||
wrksrc="${pkgname}"
|
wrksrc="${pkgname}"
|
||||||
build_style=cmake
|
build_style=cmake
|
||||||
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
|
configure_args="-DIWYU_LLVM_ROOT_PATH=${XBPS_CROSS_BASE}/usr "
|
||||||
|
@ -15,6 +15,12 @@ distfiles="https://include-what-you-use.org/downloads/${pkgname}-${version}.src.
|
||||||
checksum=43184397db57660c32e3298a6b1fd5ab82e808a1f5ab0591d6745f8d256200ef
|
checksum=43184397db57660c32e3298a6b1fd5ab82e808a1f5ab0591d6745f8d256200ef
|
||||||
python_version=3
|
python_version=3
|
||||||
|
|
||||||
|
post_extract() {
|
||||||
|
for i in ${FILESDIR}/include-what-you-use-*.patch; do
|
||||||
|
patch -sNp1 -i ${i}
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
post_install() {
|
post_install() {
|
||||||
vlicense LICENSE.TXT
|
vlicense LICENSE.TXT
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue