summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/cplusplus')
-rw-r--r--src/libs/cplusplus/FastPreprocessor.cpp2
-rw-r--r--src/libs/cplusplus/pp-engine.cpp16
-rw-r--r--src/libs/cplusplus/pp-engine.h6
3 files changed, 12 insertions, 12 deletions
diff --git a/src/libs/cplusplus/FastPreprocessor.cpp b/src/libs/cplusplus/FastPreprocessor.cpp
index a0923a2feb..5382374249 100644
--- a/src/libs/cplusplus/FastPreprocessor.cpp
+++ b/src/libs/cplusplus/FastPreprocessor.cpp
@@ -42,7 +42,7 @@ FastPreprocessor::FastPreprocessor(const Snapshot &snapshot)
QByteArray FastPreprocessor::run(QString fileName, const QString &source)
{
- _preproc.setExpandMacros(false);
+ _preproc.setExpandFunctionlikeMacros(false);
_preproc.setKeepComments(true);
if (Document::Ptr doc = _snapshot.document(fileName)) {
diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp
index e6ba93de81..a7e0600027 100644
--- a/src/libs/cplusplus/pp-engine.cpp
+++ b/src/libs/cplusplus/pp-engine.cpp
@@ -593,7 +593,7 @@ void Preprocessor::State::popTokenBuffer()
Preprocessor::Preprocessor(Client *client, Environment *env)
: m_client(client)
, m_env(env)
- , m_expandMacros(true)
+ , m_expandFunctionlikeMacros(true)
, m_keepComments(false)
{
}
@@ -615,14 +615,14 @@ QByteArray Preprocessor::run(const QString &fileName,
return preprocessed;
}
-bool Preprocessor::expandMacros() const
+bool Preprocessor::expandFunctionlikeMacros() const
{
- return m_expandMacros;
+ return m_expandFunctionlikeMacros;
}
-void Preprocessor::setExpandMacros(bool expandMacros)
+void Preprocessor::setExpandFunctionlikeMacros(bool expandMacros)
{
- m_expandMacros = expandMacros;
+ m_expandFunctionlikeMacros = expandMacros;
}
bool Preprocessor::keepComments() const
@@ -741,9 +741,6 @@ void Preprocessor::skipPreprocesorDirective(PPToken *tk)
bool Preprocessor::handleIdentifier(PPToken *tk)
{
- if (!expandMacros())
- return false;
-
ScopedBoolSwap s(m_state.m_inPreprocessorDirective, true);
static const QByteArray ppLine("__LINE__");
@@ -813,6 +810,9 @@ bool Preprocessor::handleIdentifier(PPToken *tk)
PPToken oldMarkerTk;
if (macro->isFunctionLike()) {
+ if (!expandFunctionlikeMacros())
+ return false;
+
// Collect individual tokens that form the macro arguments.
QVector<QVector<PPToken> > allArgTks;
bool hasArgs = collectActualArguments(tk, &allArgTks);
diff --git a/src/libs/cplusplus/pp-engine.h b/src/libs/cplusplus/pp-engine.h
index 310f1cef10..fef49ac6f1 100644
--- a/src/libs/cplusplus/pp-engine.h
+++ b/src/libs/cplusplus/pp-engine.h
@@ -81,8 +81,8 @@ public:
QByteArray run(const QString &filename, const QString &source);
QByteArray run(const QString &filename, const QByteArray &source, bool noLines = false, bool markGeneratedTokens = true);
- bool expandMacros() const;
- void setExpandMacros(bool expandMacros);
+ bool expandFunctionlikeMacros() const;
+ void setExpandFunctionlikeMacros(bool expandFunctionlikeMacros);
bool keepComments() const;
void setKeepComments(bool keepComments);
@@ -197,7 +197,7 @@ private:
Environment *m_env;
QByteArray m_scratchBuffer;
- bool m_expandMacros;
+ bool m_expandFunctionlikeMacros;
bool m_keepComments;
State m_state;