diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2013-08-19 16:05:29 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@digia.com> | 2013-10-01 10:33:51 +0200 |
commit | ba2d7a4fa7c29ea2d62da3d6f6835a091f604656 (patch) | |
tree | 240f8484a13829478d3b7c586eec0598c45d0872 /src/plugins/cpptools/cpppreprocessor.h | |
parent | 447c4ed37f8904ca733d6e6253ad19bb0388f209 (diff) | |
download | qt-creator-ba2d7a4fa7c29ea2d62da3d6f6835a091f604656.tar.gz |
C++: Only parse with appropriate defines for open editors.
If two files from different (sub-)projects include the same header file,
and the defined macros differ for both files, the header file will be
parsed with only the appropriate macros for the including file.
Task-number: QTCREATORBUG-9802
Task-number: QTCREATORBUG-1249
Change-Id: I560490afa287b3bb1e863bce1bb4f57af36ad56e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src/plugins/cpptools/cpppreprocessor.h')
-rw-r--r-- | src/plugins/cpptools/cpppreprocessor.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cpppreprocessor.h b/src/plugins/cpptools/cpppreprocessor.h index e1e3f228d1..d0d84ac8e3 100644 --- a/src/plugins/cpptools/cpppreprocessor.h +++ b/src/plugins/cpptools/cpppreprocessor.h @@ -23,6 +23,8 @@ public: static QString cleanPath(const QString &path); CppPreprocessor(QPointer<CppModelManager> modelManager, bool dumpFileNameWhileParsing = false); + CppPreprocessor(QPointer<CppModelManager> modelManager, const CPlusPlus::Snapshot &snapshot, + bool dumpFileNameWhileParsing = false); virtual ~CppPreprocessor(); void setRevision(unsigned revision); @@ -35,12 +37,17 @@ public: void removeFromCache(const QString &fileName); void resetEnvironment(); + CPlusPlus::Snapshot snapshot() const + { return m_snapshot; } + const QSet<QString> &todo() const { return m_todo; } CppModelManager *modelManager() const { return m_modelManager.data(); } + void setGlobalSnapshot(const CPlusPlus::Snapshot &snapshot) { m_globalSnapshot = snapshot; } + protected: CPlusPlus::Document::Ptr switchDocument(CPlusPlus::Document::Ptr doc); @@ -71,6 +78,7 @@ private: void addFrameworkPath(const QString &frameworkPath); CPlusPlus::Snapshot m_snapshot; + CPlusPlus::Snapshot m_globalSnapshot; QPointer<CppModelManager> m_modelManager; bool m_dumpFileNameWhileParsing; CPlusPlus::Environment m_env; |