Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Qt macro clashes with google test variable name #2232

Closed
DavidHammond123 opened this issue Apr 16, 2019 · 0 comments
Closed

Qt macro clashes with google test variable name #2232

DavidHammond123 opened this issue Apr 16, 2019 · 0 comments

Comments

@DavidHammond123
Copy link

I have found an issue when trying to integrate google test with my project which uses Qt.

The 'forever' variable in gtest.cc:5230 is being processed as the 'forever' macro that is declared in qglobal.h:956 (from the QtCore libraries).

To fix it I just need to change the 'forever' variable name to something like 'repeats_forever', very low risk as it is just a local variable used in the for loop condition.

Code snippets and error report below:
gtest.cc:

2019-04-16 (1)
qglobal.h:
2019-04-16

Build Error:

....\googletest\googletest/src/gtest.cc: In member function 'bool testing::internal::UnitTestImpl::RunAllTests()':
C:\Qt\5.8\mingw53_32\include/QtCore/qglobal.h:948:19: error: expected unqualified-id before 'for'
#define Q_FOREVER for(;;)
^
C:\Qt\5.8\mingw53_32\include/QtCore/qglobal.h:956:21: note: in expansion of macro 'Q_FOREVER'

define forever Q_FOREVER

                 ^

....\googletest\googletest/src/gtest.cc:5230:14: note: in expansion of macro 'forever'
const bool forever = repeat < 0;
^
C:\Qt\5.8\mingw53_32\include/QtCore/qglobal.h:948:25: error: expected primary-expression before ')' token
#define Q_FOREVER for(;;)
^
C:\Qt\5.8\mingw53_32\include/QtCore/qglobal.h:956:21: note: in expansion of macro 'Q_FOREVER'

define forever Q_FOREVER

                 ^

....\googletest\googletest/src/gtest.cc:5230:14: note: in expansion of macro 'forever'
const bool forever = repeat < 0;
^
C:\Qt\5.8\mingw53_32\include/QtCore/qglobal.h:948:19: error: expected primary-expression before 'for'
#define Q_FOREVER for(;;)
^
C:\Qt\5.8\mingw53_32\include/QtCore/qglobal.h:956:21: note: in expansion of macro 'Q_FOREVER'

define forever Q_FOREVER

                 ^

....\googletest\googletest/src/gtest.cc:5231:19: note: in expansion of macro 'forever'
for (int i = 0; forever || i != repeat; i++) {
^
C:\Qt\5.8\mingw53_32\include/QtCore/qglobal.h:948:19: error: expected ';' before 'for'
#define Q_FOREVER for(;;)
^
C:\Qt\5.8\mingw53_32\include/QtCore/qglobal.h:956:21: note: in expansion of macro 'Q_FOREVER'

define forever Q_FOREVER

                 ^

....\googletest\googletest/src/gtest.cc:5231:19: note: in expansion of macro 'forever'
for (int i = 0; forever || i != repeat; i++) {
^
C:\Qt\5.8\mingw53_32\include/QtCore/qglobal.h:948:19: error: expected primary-expression before 'for'
#define Q_FOREVER for(;;)
^
C:\Qt\5.8\mingw53_32\include/QtCore/qglobal.h:956:21: note: in expansion of macro 'Q_FOREVER'

define forever Q_FOREVER

                 ^

....\googletest\googletest/src/gtest.cc:5231:19: note: in expansion of macro 'forever'
for (int i = 0; forever || i != repeat; i++) {
^
C:\Qt\5.8\mingw53_32\include/QtCore/qglobal.h:948:19: error: expected ')' before 'for'
#define Q_FOREVER for(;;)
^
C:\Qt\5.8\mingw53_32\include/QtCore/qglobal.h:956:21: note: in expansion of macro 'Q_FOREVER'

define forever Q_FOREVER

                 ^

....\googletest\googletest/src/gtest.cc:5231:19: note: in expansion of macro 'forever'
for (int i = 0; forever || i != repeat; i++) {
^
In file included from ....\googletest\googletest\src\gtest-all.cc:41:0:
....\googletest\googletest/src/gtest.cc:5231:27: error: expected primary-expression before '||' token
for (int i = 0; forever || i != repeat; i++) {
^
....\googletest\googletest/src/gtest.cc:5231:43: error: 'i' was not declared in this scope
for (int i = 0; forever || i != repeat; i++) {
^
Makefile.Debug:39496: recipe for target 'debug/gtest-all.o' failed
mingw32-make.exe[1]: *** [debug/gtest-all.o] Error 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant