pmachata / dwgrep

a tool for querying Dwarf (debuginfo) graphs
http://pmachata.github.io/dwgrep/
GNU General Public License v3.0
53 stars 10 forks source link

selector.hh:91:49: error: request for member 'code' in 'vts#0', which is of non-class type 'cmp_result' #40

Closed vt-alt closed 2 years ago

vt-alt commented 3 years ago

While re-building dwgrep package for ALT Linux we got a build failure:

+ mkdir -p x86_64-alt-linux
+ cmake -DCMAKE_SKIP_INSTALL_RPATH:BOOL=yes '-DCMAKE_C_FLAGS:STRING=-pipe -frecord-gcc-switches -Wall -g -O2' '-DCMAKE_CXX_FLAGS:STRING=-pipe -frecord-gcc-switches -Wall -g -O2' '-DCMAKE_Fortran_FLAGS:STRING=-pipe -frecord-gcc-switches -Wall -g -O2' -DCMAKE_INSTALL_PREFIX=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_DESTINATION=lib64 -DLIB_SUFFIX=64 -S . -B x86_64-alt-linux -DSPHINX_EXECUTABLE=/usr/bin/sphinx-build-3
...
builder@x86_64:~/RPM/BUILD/dwgrep-0.4$ cmake --build x86_64-alt-linux --verbose
...
[ 70%] Building CXX object libzwerg/CMakeFiles/test-value-cst.dir/test-value-cst.cc.o
cd /usr/src/RPM/BUILD/dwgrep-0.4/x86_64-alt-linux/libzwerg && /usr/bin/c++  -I/usr/src/RPM/BUILD/dwgrep-0.4/libzwerg -I/usr/src/RPM/BUILD/dwgrep-0.4/x86_64-alt-linux -I/usr/src/RPM/BUILD/dwgrep-0.4/x86_64-alt-linux/libzwerg -pipe -frecord-gcc-switches -Wall -g -O2 -std=c++11 -Wall -Wnon-virtual-dtor -O2 -g -o CMakeFiles/test-value-cst.dir/test-value-cst.cc.o -c /usr/src/RPM/BUILD/dwgrep-0.4/libzwerg/test-value-cst.cc
In file included from /usr/src/RPM/BUILD/dwgrep-0.4/libzwerg/stack.hh:38,
                 from /usr/src/RPM/BUILD/dwgrep-0.4/libzwerg/op.hh:37,
                 from /usr/src/RPM/BUILD/dwgrep-0.4/libzwerg/value-cst.hh:34,
                 from /usr/src/RPM/BUILD/dwgrep-0.4/libzwerg/test-value-cst.cc:30:
/usr/src/RPM/BUILD/dwgrep-0.4/libzwerg/selector.hh: In instantiation of 'selector::selector(Ts ...) [with Ts = {cmp_result}; typename std::enable_if<(sizeof... (Ts) <= selector::W), int>::type Fake = 0]':
/usr/include/gtest/gtest-printers.h:215:9:   required from 'static void testing::internal::internal_stream_operator_without_lexical_name_lookup::StreamPrinter::PrintValue(const T&, std::ostream*) [with T = cmp_result; <template-parameter-1-2> = void; <template-parameter-1-3> = std::basic_ostream<char>&; std::ostream = std::basic_ostream<char>]'
/usr/include/gtest/gtest-printers.h:312:22:   required from 'void testing::internal::PrintWithFallback(const T&, std::ostream*) [with T = cmp_result; std::ostream = std::basic_ostream<char>]'
/usr/include/gtest/gtest-printers.h:441:30:   required from 'void testing::internal::PrintTo(const T&, std::ostream*) [with T = cmp_result; std::ostream = std::basic_ostream<char>]'
/usr/include/gtest/gtest-printers.h:691:12:   required from 'static void testing::internal::UniversalPrinter<T>::Print(const T&, std::ostream*) [with T = cmp_result; std::ostream = std::basic_ostream<char>]'
/usr/include/gtest/gtest-printers.h:980:30:   required from 'void testing::internal::UniversalPrint(const T&, std::ostream*) [with T = cmp_result; std::ostream = std::basic_ostream<char>]'
/usr/include/gtest/gtest-printers.h:865:19:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/gtest/gtest-printers.h:334:36:   required from 'static std::string testing::internal::FormatForComparison<ToPrint, OtherOperand>::Format(const ToPrint&) [with ToPrint = cmp_result; OtherOperand = cmp_result; std::string = std::__cxx11::basic_string<char>]'
/usr/include/gtest/gtest-printers.h:415:45:   required from 'std::string testing::internal::FormatForComparisonFailureMessage(const T1&, const T2&) [with T1 = cmp_result; T2 = cmp_result; std::string = std::__cxx11::basic_string<char>]'
/usr/include/gtest/gtest.h:1527:53:   required from 'testing::AssertionResult testing::internal::CmpHelperEQFailure(const char*, const char*, const T1&, const T2&) [with T1 = cmp_result; T2 = cmp_result]'
/usr/include/gtest/gtest.h:1549:28:   required from 'testing::AssertionResult testing::internal::CmpHelperEQ(const char*, const char*, const T1&, const T2&) [with T1 = cmp_result; T2 = cmp_result]'
/usr/include/gtest/gtest.h:1564:23:   required from 'static testing::AssertionResult testing::internal::EqHelper::Compare(const char*, const char*, const T1&, const T2&) [with T1 = cmp_result; T2 = cmp_result; typename std::enable_if<((! std::is_integral<_Tp>::value) || (! std::is_pointer<_Dp>::value))>::type* <anonymous> = 0]'
/usr/src/RPM/BUILD/dwgrep-0.4/libzwerg/test-value-cst.cc:55:3:   required from here
/usr/src/RPM/BUILD/dwgrep-0.4/libzwerg/selector.hh:91:49: error: request for member 'code' in 'vts#0', which is of non-class type 'cmp_result'
   91 |     : m_imprint {unshift (compute_imprint ((vts.code ())...), sizeof... (Ts))}
      |                                             ~~~~^~~~
/usr/src/RPM/BUILD/dwgrep-0.4/libzwerg/selector.hh:92:43: error: request for member 'code' in 'vts#0', which is of non-class type 'cmp_result'
   92 |     , m_mask {unshift (compute_mask ((vts.code ())...), sizeof... (Ts))}
      |                                       ~~~~^~~~
/usr/src/RPM/BUILD/dwgrep-0.4/libzwerg/selector.hh:92:72: error: cannot convert '<brace-enclosed initializer list>' to 'selector::sel_t' {aka 'unsigned int'} in initialization
   92 |     , m_mask {unshift (compute_mask ((vts.code ())...), sizeof... (Ts))}
      |                                                                        ^
/usr/src/RPM/BUILD/dwgrep-0.4/libzwerg/selector.hh:92:72: error: cannot convert '<brace-enclosed initializer list>' to 'selector::sel_t' {aka 'unsigned int'} in initialization
gmake[2]: *** [libzwerg/CMakeFiles/test-value-cst.dir/build.make:82: libzwerg/CMakeFiles/test-value-cst.dir/test-value-cst.cc.o] Error 1
gmake[2]: Leaving directory '/usr/src/RPM/BUILD/dwgrep-0.4/x86_64-alt-linux'
gmake[1]: *** [CMakeFiles/Makefile2:541: libzwerg/CMakeFiles/test-value-cst.dir/all] Error 2
gmake[1]: Leaving directory '/usr/src/RPM/BUILD/dwgrep-0.4/x86_64-alt-linux'
gmake: *** [Makefile:160: all] Error 2
vt-alt commented 3 years ago

(Package was successfully re-built before on the same version of gcc). My current thought is this can be related to an upgrade from googletest 1.10.0 to 1.11.0.

pmachata commented 2 years ago

Fixed on master.