aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libs/3rdparty/cplusplus/CPlusPlusForwardDeclarations.h25
-rw-r--r--src/libs/3rdparty/cplusplus/Lexer.h3
2 files changed, 22 insertions, 6 deletions
diff --git a/src/libs/3rdparty/cplusplus/CPlusPlusForwardDeclarations.h b/src/libs/3rdparty/cplusplus/CPlusPlusForwardDeclarations.h
index 5c24b2ee3cf..7a3b2e0f3bb 100644
--- a/src/libs/3rdparty/cplusplus/CPlusPlusForwardDeclarations.h
+++ b/src/libs/3rdparty/cplusplus/CPlusPlusForwardDeclarations.h
@@ -24,9 +24,28 @@
#include <cstdlib>
#include <cstddef>
-#ifndef CPLUSPLUS_WITHOUT_QT
+#ifdef CPLUSPLUS_WITHOUT_QT
+# ifndef CPLUSPLUS_UNLIKELY
+# ifdef __GNUC__
+# define CPLUSPLUS_UNLIKELY(expr) __builtin_expect(!!(expr), false)
+# else
+# define CPLUSPLUS_UNLIKELY(expr) (expr)
+# endif
+# endif
+# define CPLUSPLUS_EXPORT
+#else
# include <qglobal.h>
-
+# ifndef CPLUSPLUS_UNLIKELY
+# ifdef Q_UNLIKELY
+# define CPLUSPLUS_UNLIKELY(expr) Q_UNLIKELY(expr)
+# else // pre 4.8.something
+# ifdef __GCC__
+# define CPLUSPLUS_UNLIKELY(expr) __builtin_expect(!!(expr), false)
+# else
+# define CPLUSPLUS_UNLIKELY(expr) (expr)
+# endif
+# endif
+# endif
# if defined(CPLUSPLUS_BUILD_LIB)
# define CPLUSPLUS_EXPORT Q_DECL_EXPORT
# elif defined(CPLUSPLUS_BUILD_STATIC_LIB)
@@ -34,8 +53,6 @@
# else
# define CPLUSPLUS_EXPORT Q_DECL_IMPORT
# endif
-#else
-# define CPLUSPLUS_EXPORT
#endif
namespace CPlusPlus {
diff --git a/src/libs/3rdparty/cplusplus/Lexer.h b/src/libs/3rdparty/cplusplus/Lexer.h
index 2484b476a32..cbea3be06ad 100644
--- a/src/libs/3rdparty/cplusplus/Lexer.h
+++ b/src/libs/3rdparty/cplusplus/Lexer.h
@@ -24,7 +24,6 @@
#include "CPlusPlusForwardDeclarations.h"
#include "Token.h"
-
namespace CPlusPlus {
class CPLUSPLUS_EXPORT Lexer
@@ -100,7 +99,7 @@ private:
inline void yyinp()
{
_yychar = *++_currentChar;
- if (Q_UNLIKELY(_yychar == '\n'))
+ if (CPLUSPLUS_UNLIKELY(_yychar == '\n'))
pushLineStartOffset();
}