Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-116759

extraneous parentheses error when building gn with clang 16

    XMLWordPrintable

Details

    • Bug
    • Resolution: Incomplete
    • P2: Important
    • None
    • dev
    • WebEngine
    • None

    Description

      FAILED: src/base/files/file_util.o 
      /usr/lib/icecream/libexec/icecc/bin/clang++ -MMD -MF src/base/files/file_util.o.d -I../../../../../qt6/qtwebengine/src/3rdparty/gn/src -I. -DNO_LAST_COMMIT_POSITION -DNDEBUG -O3 -fdata-sections -ffunction-sections -Werror -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -pthread -pipe -fno-exceptions -fno-rtti -fdiagnostics-color -Wall -Wextra -Wno-unused-parameter -Wextra-semi -Wundef -Wno-deprecated-copy -Wno-implicit-fallthrough -Wno-redundant-move -Wno-unused-variable -Wno-format -Wno-strict-aliasing -Wno-cast-function-type -std=gnu++17 -c ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/files/file_util.cc -o src/base/files/file_util.o
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/files/file_util.cc:5:
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/files/file_util.h:24:
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/files/file.h:13:
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/files/platform_file.h:8:
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/files/scoped_file.h:12:
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality]
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                         ~~~^~~~~
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: note: remove extraneous parentheses around the comparison to silence this warning
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                        ~   ^    ~
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: note: use '=' to turn this equality comparison into an assignment
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                            ^~
                                                                                                                                                                                                                                                                                            =
      1 error generated.
      [6/195] CXX src/base/environment.o
      FAILED: src/base/environment.o 
      /usr/lib/icecream/libexec/icecc/bin/clang++ -MMD -MF src/base/environment.o.d -I../../../../../qt6/qtwebengine/src/3rdparty/gn/src -I. -DNO_LAST_COMMIT_POSITION -DNDEBUG -O3 -fdata-sections -ffunction-sections -Werror -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -pthread -pipe -fno-exceptions -fno-rtti -fdiagnostics-color -Wall -Wextra -Wno-unused-parameter -Wextra-semi -Wundef -Wno-deprecated-copy -Wno-implicit-fallthrough -Wno-redundant-move -Wno-unused-variable -Wno-format -Wno-strict-aliasing -Wno-cast-function-type -std=gnu++17 -c ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/environment.cc -o src/base/environment.o
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/environment.cc:13:
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/strings/string_util.h:419:
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/strings/string_util_posix.h:12:
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality]
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                         ~~~^~~~~
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: note: remove extraneous parentheses around the comparison to silence this warning
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                        ~   ^    ~
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: note: use '=' to turn this equality comparison into an assignment
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                            ^~
                                                                                                                                                                                                                                                                                            =
      1 error generated.
      [7/195] CXX src/base/files/file_enumerator.o
      FAILED: src/base/files/file_enumerator.o 
      /usr/lib/icecream/libexec/icecc/bin/clang++ -MMD -MF src/base/files/file_enumerator.o.d -I../../../../../qt6/qtwebengine/src/3rdparty/gn/src -I. -DNO_LAST_COMMIT_POSITION -DNDEBUG -O3 -fdata-sections -ffunction-sections -Werror -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -pthread -pipe -fno-exceptions -fno-rtti -fdiagnostics-color -Wall -Wextra -Wno-unused-parameter -Wextra-semi -Wundef -Wno-deprecated-copy -Wno-implicit-fallthrough -Wno-redundant-move -Wno-unused-variable -Wno-format -Wno-strict-aliasing -Wno-cast-function-type -std=gnu++17 -c ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/files/file_enumerator.cc -o src/base/files/file_enumerator.o
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/files/file_enumerator.cc:5:
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/files/file_enumerator.h:13:
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/containers/stack.h:10:
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/containers/circular_deque.h:14:
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/containers/vector_buffer.h:14:
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality]
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                         ~~~^~~~~
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: note: remove extraneous parentheses around the comparison to silence this warning
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                        ~   ^    ~
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: note: use '=' to turn this equality comparison into an assignment
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                            ^~
                                                                                                                                                                                                                                                                                            =
      1 error generated.
      [8/195] CXX src/base/command_line.o
      FAILED: src/base/command_line.o 
      /usr/lib/icecream/libexec/icecc/bin/clang++ -MMD -MF src/base/command_line.o.d -I../../../../../qt6/qtwebengine/src/3rdparty/gn/src -I. -DNO_LAST_COMMIT_POSITION -DNDEBUG -O3 -fdata-sections -ffunction-sections -Werror -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -pthread -pipe -fno-exceptions -fno-rtti -fdiagnostics-color -Wall -Wextra -Wno-unused-parameter -Wextra-semi -Wundef -Wno-deprecated-copy -Wno-implicit-fallthrough -Wno-redundant-move -Wno-unused-variable -Wno-format -Wno-strict-aliasing -Wno-cast-function-type -std=gnu++17 -c ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/command_line.cc -o src/base/command_line.o
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/command_line.cc:13:
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality]
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                         ~~~^~~~~
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: note: remove extraneous parentheses around the comparison to silence this warning
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                        ~   ^    ~
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: note: use '=' to turn this equality comparison into an assignment
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                            ^~
                                                                                                                                                                                                                                                                                            =
      1 error generated.
      [9/195] CXX src/base/json/json_reader.o
      FAILED: src/base/json/json_reader.o 
      /usr/lib/icecream/libexec/icecc/bin/clang++ -MMD -MF src/base/json/json_reader.o.d -I../../../../../qt6/qtwebengine/src/3rdparty/gn/src -I. -DNO_LAST_COMMIT_POSITION -DNDEBUG -O3 -fdata-sections -ffunction-sections -Werror -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -pthread -pipe -fno-exceptions -fno-rtti -fdiagnostics-color -Wall -Wextra -Wno-unused-parameter -Wextra-semi -Wundef -Wno-deprecated-copy -Wno-implicit-fallthrough -Wno-redundant-move -Wno-unused-variable -Wno-format -Wno-strict-aliasing -Wno-cast-function-type -std=gnu++17 -c ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/json/json_reader.cc -o src/base/json/json_reader.o
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/json/json_reader.cc:11:
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality]
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                         ~~~^~~~~
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: note: remove extraneous parentheses around the comparison to silence this warning
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                        ~   ^    ~
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: note: use '=' to turn this equality comparison into an assignment
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                            ^~
                                                                                                                                                                                                                                                                                            =
      1 error generated.
      [10/195] CXX src/base/json/json_parser.o
      FAILED: src/base/json/json_parser.o 
      /usr/lib/icecream/libexec/icecc/bin/clang++ -MMD -MF src/base/json/json_parser.o.d -I../../../../../qt6/qtwebengine/src/3rdparty/gn/src -I. -DNO_LAST_COMMIT_POSITION -DNDEBUG -O3 -fdata-sections -ffunction-sections -Werror -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -pthread -pipe -fno-exceptions -fno-rtti -fdiagnostics-color -Wall -Wextra -Wno-unused-parameter -Wextra-semi -Wundef -Wno-deprecated-copy -Wno-implicit-fallthrough -Wno-redundant-move -Wno-unused-variable -Wno-format -Wno-strict-aliasing -Wno-cast-function-type -std=gnu++17 -c ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/json/json_parser.cc -o src/base/json/json_parser.o
      In file included from ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/json/json_parser.cc:12:
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality]
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                         ~~~^~~~~
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: note: remove extraneous parentheses around the comparison to silence this warning
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                        ~   ^    ~
      ../../../../../qt6/qtwebengine/src/3rdparty/gn/src/base/logging.h:559:279: note: use '=' to turn this equality comparison into an assignment
      template <class t1, class t2> inline std::string* CheckEQImpl(const t1& v1, const t2& v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); } inline std::string* CheckEQImpl(int v1, int v2, const char* names) { if ((v1 == v2)) return __null; else return ::logging::MakeCheckOpString(v1, v2, names); }
                                                                                                                                                                                                                                                                                            ^~
                                                                                                                                                                                                                                                                                            =
      1 error generated.
      ninja: build stopped: subcommand failed.
      FAILED: gn /home/rutledge/dev/qt6-clang/qtwebengine/src/gn/gn 
      cd /home/rutledge/dev/qt6-clang/qtwebengine/src/gn && /usr/bin/python3.11 /home/rutledge/dev/qt6/qtwebengine/src/3rdparty/gn/build/gen.py --no-last-commit-position --out-path /home/rutledge/dev/qt6-clang/qtwebengine/src/gn/Release --cc /usr/lib/icecream/libexec/icecc/bin/clang --cxx /usr/lib/icecream/libexec/icecc/bin/clang++ --ld /usr/lib/icecream/libexec/icecc/bin/clang++ --platform linux --ar /usr/bin/llvm-ar --qt-version 6.7.0.qtwebengine.qt.io && /usr/bin/ninja -C /home/rutledge/dev/qt6-clang/qtwebengine/src/gn/Release gn
      ninja: build stopped: subcommand failed.
      [49/12102] Building CXX object qtbase/src/corelib/CMakeFiles/Core.dir/global/qlibraryinfo.cpp.o
      FAILED: qtwebengine/src/gn/src/gn-stamp/gn-build /home/rutledge/dev/qt6-clang/qtwebengine/src/gn/src/gn-stamp/gn-build 
      cd /home/rutledge/dev/qt6-clang/qtwebengine/src/gn && /usr/bin/cmake --build . && /usr/bin/cmake -E touch /home/rutledge/dev/qt6-clang/qtwebengine/src/gn/src/gn-stamp/gn-build
      [50/12102] Generating pk12util.stamp
      pk12util: PKCS12 IMPORT SUCCESSFUL
      [1079/9293] Automatic MOC for target tst_qml_common
      AutoMoc warning
      ---------------
      "SRC:/qtdeclarative/tests/auto/qml/common/tst_qml_common.cpp"
      includes the moc file "tst_qml_common.moc", but does not contain a Q_OBJECT, Q_GADGET, Q_GADGET_EXPORT, Q_NAMESPACE, Q_NAMESPACE_EXPORT or Q_ENUM_NS macro.
      

      gcc 13.2 is causing other problems elsewhere (even in qtbase) so I'm trying clang.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qt_webengine_team Qt WebEngine Team
            srutledg Shawn Rutledge
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There is 1 open Gerrit change