summaryrefslogtreecommitdiff
path: root/src/libs
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2018-06-06 09:57:01 +0200
committerEike Ziller <eike.ziller@qt.io>2018-06-06 09:57:01 +0200
commit3f356f31bc311e5eeacee7e1ac01ed7d2f9943de (patch)
treee52f5b67c8d60c68015c8d99252e01fc7e54dbda /src/libs
parent0fbb2839f92b001414d1eed2ae2627cf421fd34f (diff)
parent5921376573bf57b09fa89fa788b94f2a5a1fdda9 (diff)
downloadqt-creator-3f356f31bc311e5eeacee7e1ac01ed7d2f9943de.tar.gz
Merge remote-tracking branch 'origin/4.7'
Conflicts: qbs/modules/qtc/qtc.qbs qtcreator.pri Change-Id: I3d42bd52fb7b977cfdfad83092fb6f6eac974e24
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/3rdparty/botan/botan.cpp2
-rw-r--r--src/libs/3rdparty/cplusplus/Name.h2
-rw-r--r--src/libs/3rdparty/cplusplus/Names.h2
-rw-r--r--src/libs/clangsupport/clangcodemodelconnectionclient.cpp6
-rw-r--r--src/libs/clangsupport/processcreator.cpp9
-rw-r--r--src/libs/clangsupport/processcreator.h3
-rw-r--r--src/libs/glsl/glslengine.h2
-rw-r--r--src/libs/qtcreatorcdbext/containers.cpp2
-rw-r--r--src/libs/qtcreatorcdbext/stringutils.h2
-rw-r--r--src/libs/qtcreatorcdbext/symbolgroup.cpp2
-rw-r--r--src/libs/utils/fileutils.cpp2
-rw-r--r--src/libs/utils/fileutils.h8
-rw-r--r--src/libs/utils/smallstringview.h4
13 files changed, 31 insertions, 15 deletions
diff --git a/src/libs/3rdparty/botan/botan.cpp b/src/libs/3rdparty/botan/botan.cpp
index 87736d5fe3..0d912062b3 100644
--- a/src/libs/3rdparty/botan/botan.cpp
+++ b/src/libs/3rdparty/botan/botan.cpp
@@ -465,7 +465,7 @@ inline V search_map(const std::map<K, V>& mapping,
* Function adaptor for delete operation
*/
template<class T>
-class del_fun : public std::unary_function<T, void>
+class del_fun
{
public:
void operator()(T* ptr) { delete ptr; }
diff --git a/src/libs/3rdparty/cplusplus/Name.h b/src/libs/3rdparty/cplusplus/Name.h
index 200ccac75d..460f0bca11 100644
--- a/src/libs/3rdparty/cplusplus/Name.h
+++ b/src/libs/3rdparty/cplusplus/Name.h
@@ -59,7 +59,7 @@ public:
bool match(const Name *other, Matcher *matcher = 0) const;
public:
- struct Compare: std::binary_function<const Name *, const Name *, bool> {
+ struct Compare {
bool operator()(const Name *name, const Name *other) const;
};
diff --git a/src/libs/3rdparty/cplusplus/Names.h b/src/libs/3rdparty/cplusplus/Names.h
index 41f3e761b4..b8d090da2f 100644
--- a/src/libs/3rdparty/cplusplus/Names.h
+++ b/src/libs/3rdparty/cplusplus/Names.h
@@ -101,7 +101,7 @@ public:
bool isSpecialization() const { return _isSpecialization; }
// Comparator needed to distinguish between two different TemplateNameId(e.g.:used in std::map)
- struct Compare: std::binary_function<const TemplateNameId *, const TemplateNameId *, bool> {
+ struct Compare {
bool operator()(const TemplateNameId *name, const TemplateNameId *other) const;
};
diff --git a/src/libs/clangsupport/clangcodemodelconnectionclient.cpp b/src/libs/clangsupport/clangcodemodelconnectionclient.cpp
index 1938d06353..56186e24dc 100644
--- a/src/libs/clangsupport/clangcodemodelconnectionclient.cpp
+++ b/src/libs/clangsupport/clangcodemodelconnectionclient.cpp
@@ -25,6 +25,7 @@
#include "clangcodemodelconnectionclient.h"
+#include <utils/environment.h>
#include <utils/temporarydirectory.h>
#include <QCoreApplication>
@@ -50,6 +51,11 @@ ClangCodeModelConnectionClient::ClangCodeModelConnectionClient(
m_processCreator.setTemporaryDirectoryPattern("clangbackend-XXXXXX");
m_processCreator.setArguments({connectionName()});
+ Utils::Environment environment;
+ environment.set(QStringLiteral("LIBCLANG_NOTHREADS"), QString());
+ environment.set(QStringLiteral("LIBCLANG_DISABLE_CRASH_RECOVERY"), QString());
+ m_processCreator.setEnvironment(environment);
+
stdErrPrefixer().setPrefix("clangbackend.stderr: ");
stdOutPrefixer().setPrefix("clangbackend.stdout: ");
}
diff --git a/src/libs/clangsupport/processcreator.cpp b/src/libs/clangsupport/processcreator.cpp
index dfc7f56d9f..22b52793e3 100644
--- a/src/libs/clangsupport/processcreator.cpp
+++ b/src/libs/clangsupport/processcreator.cpp
@@ -56,6 +56,11 @@ void ProcessCreator::setArguments(const QStringList &arguments)
m_arguments = arguments;
}
+void ProcessCreator::setEnvironment(const Utils::Environment &environment)
+{
+ m_environment = environment;
+}
+
std::future<QProcessUniquePointer> ProcessCreator::createProcess() const
{
return std::async(std::launch::async, [&] {
@@ -167,6 +172,10 @@ QProcessEnvironment ProcessCreator::processEnvironment() const
processEnvironment.insert("TEMP", temporaryDirectoryPath);
}
+ const Utils::Environment &env = m_environment;
+ for (auto it = env.constBegin(); it != env.constEnd(); ++it)
+ processEnvironment.insert(it.key(), it.value());
+
return processEnvironment;
}
diff --git a/src/libs/clangsupport/processcreator.h b/src/libs/clangsupport/processcreator.h
index 9742992175..928857319b 100644
--- a/src/libs/clangsupport/processcreator.h
+++ b/src/libs/clangsupport/processcreator.h
@@ -29,6 +29,7 @@
#include "processhandle.h"
+#include <utils/environment.h>
#include <utils/temporarydirectory.h>
#include <QStringList>
@@ -51,6 +52,7 @@ public:
void setTemporaryDirectoryPattern(const QString &temporaryDirectoryPattern);
void setProcessPath(const QString &m_processPath);
void setArguments(const QStringList &m_arguments);
+ void setEnvironment(const Utils::Environment &environment);
void setObserver(QObject *m_observer);
std::future<QProcessUniquePointer> createProcess() const;
@@ -72,6 +74,7 @@ private:
QString m_processPath;
QString m_temporaryDirectoryPattern;
QStringList m_arguments;
+ Utils::Environment m_environment;
QObject *m_observer = nullptr;
};
diff --git a/src/libs/glsl/glslengine.h b/src/libs/glsl/glslengine.h
index 6b126111f6..7cf6e2d164 100644
--- a/src/libs/glsl/glslengine.h
+++ b/src/libs/glsl/glslengine.h
@@ -71,7 +71,7 @@ template <typename Type>
class TypeTable
{
public:
- struct Compare: std::binary_function<Type, Type, bool> {
+ struct Compare {
bool operator()(const Type &value, const Type &other) const {
return value.isLessThan(&other);
}
diff --git a/src/libs/qtcreatorcdbext/containers.cpp b/src/libs/qtcreatorcdbext/containers.cpp
index 1248fca175..128f450caf 100644
--- a/src/libs/qtcreatorcdbext/containers.cpp
+++ b/src/libs/qtcreatorcdbext/containers.cpp
@@ -245,7 +245,7 @@ AbstractSymbolGroupNodePtrVector linkedListChildList(SymbolGroupValue headNode,
}
// Helper function for linkedListChildList that returns a member by name
-class MemberByName : public std::unary_function<const SymbolGroupValue &, SymbolGroupValue>
+class MemberByName
{
public:
explicit MemberByName(const char *name) : m_name(name) {}
diff --git a/src/libs/qtcreatorcdbext/stringutils.h b/src/libs/qtcreatorcdbext/stringutils.h
index 89316d7e9a..e8297d44a4 100644
--- a/src/libs/qtcreatorcdbext/stringutils.h
+++ b/src/libs/qtcreatorcdbext/stringutils.h
@@ -52,7 +52,7 @@ void split(const std::string &s, char sep, Iterator it)
// A boolean predicate that can be used for grepping sequences
// of strings for a 'needle' substring.
-class SubStringPredicate : public std::unary_function<const std::string &, bool>
+class SubStringPredicate
{
public:
explicit SubStringPredicate(const char *needle) : m_needle(needle) {}
diff --git a/src/libs/qtcreatorcdbext/symbolgroup.cpp b/src/libs/qtcreatorcdbext/symbolgroup.cpp
index 5ea3e8930e..8404f0d77c 100644
--- a/src/libs/qtcreatorcdbext/symbolgroup.cpp
+++ b/src/libs/qtcreatorcdbext/symbolgroup.cpp
@@ -251,7 +251,7 @@ std::string SymbolGroup::debug(const std::string &iname,
typedef std::pair<unsigned, std::string> InamePathEntry;
-struct InamePathEntryLessThan : public std::binary_function<InamePathEntry, InamePathEntry, bool> {
+struct InamePathEntryLessThan {
bool operator()(const InamePathEntry &i1, const InamePathEntry& i2) const
{
if (i1.first < i2.first)
diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp
index 776d7aa66f..001dd70a05 100644
--- a/src/libs/utils/fileutils.cpp
+++ b/src/libs/utils/fileutils.cpp
@@ -801,7 +801,7 @@ QTextStream &operator<<(QTextStream &s, const FileName &fn)
#ifdef Q_OS_WIN
template <>
-void withNTFSPermissions(const std::function<void()> &task)
+void withNtfsPermissions(const std::function<void()> &task)
{
qt_ntfs_permission_lookup++;
task();
diff --git a/src/libs/utils/fileutils.h b/src/libs/utils/fileutils.h
index b0068f4341..011069e118 100644
--- a/src/libs/utils/fileutils.h
+++ b/src/libs/utils/fileutils.h
@@ -51,7 +51,7 @@ class QWidget;
QTCREATOR_UTILS_EXPORT QDebug operator<<(QDebug dbg, const Utils::FileName &c);
-// for withNTFSPermissions
+// for withNtfsPermissions
#ifdef Q_OS_WIN
extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;
#endif
@@ -135,7 +135,7 @@ public:
#ifdef Q_OS_WIN
template <typename T>
-T withNTFSPermissions(const std::function<T()> &task)
+T withNtfsPermissions(const std::function<T()> &task)
{
qt_ntfs_permission_lookup++;
T result = task();
@@ -144,12 +144,12 @@ T withNTFSPermissions(const std::function<T()> &task)
}
template <>
-QTCREATOR_UTILS_EXPORT void withNTFSPermissions(const std::function<void()> &task);
+QTCREATOR_UTILS_EXPORT void withNtfsPermissions(const std::function<void()> &task);
#else // Q_OS_WIN
template <typename T>
-T withNTFSPermissions(const std::function<T()> &task)
+T withNtfsPermissions(const std::function<T()> &task)
{
return task();
}
diff --git a/src/libs/utils/smallstringview.h b/src/libs/utils/smallstringview.h
index 0d8600e5de..7881500ce6 100644
--- a/src/libs/utils/smallstringview.h
+++ b/src/libs/utils/smallstringview.h
@@ -39,9 +39,7 @@ using enable_if_has_char_data_pointer = typename std::enable_if_t<
std::is_same<
std::remove_const_t<
std::remove_pointer_t<
- std::result_of_t<
- decltype(&String::data)(String)
- >
+ decltype(std::declval<const String>().data())
>
>, char>::value
, int>;