summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/pp-engine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/cplusplus/pp-engine.cpp')
-rw-r--r--src/libs/cplusplus/pp-engine.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp
index a7e0600027..303205408a 100644
--- a/src/libs/cplusplus/pp-engine.cpp
+++ b/src/libs/cplusplus/pp-engine.cpp
@@ -1137,10 +1137,17 @@ void Preprocessor::trackExpansionCycles(PPToken *tk)
}
}
+static void adjustForCommentNewlines(unsigned *currentLine, const PPToken &tk)
+{
+ if (tk.is(T_COMMENT) || tk.is(T_DOXY_COMMENT))
+ (*currentLine) += tk.asByteArrayRef().count('\n');
+}
+
void Preprocessor::synchronizeOutputLines(const PPToken &tk, bool forceLine)
{
if (m_state.m_expansionStatus != NotExpanding
|| (!forceLine && m_env->currentLine == tk.lineno)) {
+ adjustForCommentNewlines(&m_env->currentLine, tk);
return;
}
@@ -1157,8 +1164,7 @@ void Preprocessor::synchronizeOutputLines(const PPToken &tk, bool forceLine)
}
m_env->currentLine = tk.lineno;
- if (tk.is(T_COMMENT) || tk.is(T_DOXY_COMMENT))
- m_env->currentLine += tk.asByteArrayRef().count('\n');
+ adjustForCommentNewlines(&m_env->currentLine, tk);
}
void Preprocessor::removeTrailingOutputLines()