travisdowns / freq-bench

Fine-grained frequency and voltage transition tests
19 stars 4 forks source link

make error #2

Closed edisonchan closed 3 years ago

edisonchan commented 3 years ago

Compiler: gcc-10, gcc-9, clang-12, clang-7 OS: Ubuntu 20.04.2 LTS (GNU/Linux 5.11.7-051107-generic x86_64)

gcc:

make cc -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -c -o cycle-timer.o cycle-timer.c cc -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -c -o page-info.o page-info.c cc -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -c -o msr-access.o msr-access.c cc -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -c -o huge-alloc.o huge-alloc.c g++ -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -std=c++14 -DENABLE_TIMER=1 -c -o tsc-support.o tsc-support.cpp g++ -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -std=c++14 -DENABLE_TIMER=1 -c -o string-instrument.o string-instrument.cpp In file included from string-instrument.hpp:12, from string-instrument.cpp:1: polymorphic_value.h: In instantiation of ‘jbcoe::polymorphic_value jbcoe::make_polymorphic_value(Ts&& ...) [with T = string_metrics::metric; U = string_metrics::double_holder; Ts = {}]’: string-instrument.hpp:123:70: required from ‘T& string_metrics::Map::get(const string&) [with T = string_metrics::double_holder; std::string = std::__cxx11::basic_string]’ string-instrument.cpp:51:52: required from here polymorphic_value.h:411:23: error: moving a local object in a return statement prevents copy elision [-Werror=pessimizing-move] 411 | return std::move(p); | ^ polymorphic_value.h:411:23: note: remove ‘std::move’ call polymorphic_value.h: In instantiation of ‘jbcoe::polymorphic_value jbcoe::make_polymorphic_value(Ts&& ...) [with T = string_metrics::metric; U = string_metrics::double_holder; Ts = {string_metrics::double_holder&}]’: string-instrument.hpp:91:56: required from ‘static string_metrics::metric::ptr string_metrics::metric_base::make(Args&& ...) [with Args = {string_metrics::double_holder&}; T = string_metrics::double_holder; string_metrics::metric::ptr = jbcoe::polymorphic_value]’ string-instrument.hpp:68:20: required from ‘string_metrics::metric::ptr string_metrics::metric_base::delta(const ptr&) const [with T = string_metrics::double_holder; string_metrics::metric::ptr = jbcoe::polymorphic_value]’ string-instrument.hpp:64:17: required from here polymorphic_value.h:411:23: error: moving a local object in a return statement prevents copy elision [-Werror=pessimizing-move] polymorphic_value.h:411:23: note: remove ‘std::move’ call cc1plus: all warnings being treated as errors make: *** [Makefile:76: string-instrument.o] Error 1

clang:

make clang-7 -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -c -o cycle-timer.o cycle-timer.c clang-7 -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -c -o page-info.o page-info.c clang-7 -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -c -o msr-access.o msr-access.c clang-7 -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -c -o huge-alloc.o huge-alloc.c clang++-7 -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -std=c++14 -DENABLE_TIMER=1 -c -o tsc-support.o tsc-support.cpp clang++-7 -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -std=c++14 -DENABLE_TIMER=1 -c -o string-instrument.o string-instrument.cpp clang++-7 -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -std=c++14 -DENABLE_TIMER=1 -c -o perf-timer-events.o perf-timer-events.cpp clang++-7 -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -std=c++14 -DENABLE_TIMER=1 -c -o perf-timer.o perf-timer.cpp clang++-7 -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -std=c++14 -DENABLE_TIMER=1 -c -o cpuid.o cpuid.cpp clang++-7 -DNDEBUG -MMD -Wall -Wextra -Werror -O2 -g -march=haswell -Wno-unused-parameter -Wno-error=unused-variable -Wno-unknown-pragmas -std=c++14 -DENABLE_TIMER=1 -c -o impl-list.o impl-list.cpp In file included from impl-list.cpp:1: In file included from ./impl-list.hpp:4: In file included from ./common-cxx.hpp:9: ./nonstd/span.hpp:742:16: error: no member named 'out_of_range' in namespace 'std' throw std::out_of_range( "span::at(): index outside span" );


1 error generated.
make: *** [Makefile:76: impl-list.o] Error 1
travisdowns commented 3 years ago

Thanks for the report. The master branch is quite out of date, and at least the gcc error is now fixed in this commit.

However, I still need to check on that clang error.

travisdowns commented 3 years ago

@edisonchan - I couldn't reproduce the failure with clang++-7, even though inspection of the code shows that it indeed does not include stdexcept when it should: probably my system C++ header file configuration is different (does clang++ use the system C++ headers and library?).

In any case, I submitted a "blind" fix for it in 4935464 - can you check if that fixed the issue for you?