https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63934
Bug ID: 63934 Summary: [C++] internal compiler error: in adjust_temp_type, at cp/constexpr.c:1020 Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: vries at gcc dot gnu.org During a gcc arm build, I run into: ... In file included from /home/vries/local/arm2/src/gcc-mainline/libstdc++-v3/src/c++11/chrono.cc:26:0: /home/vries/local/arm2/obj/gcc-mainline-0-arm-none-eabi-i686-pc-linux-gnu/arm-none-eabi/libstdc++-v3/include/chrono:723:49: in constexpr expansion \ of 'std::chrono::duration<_Rep, _Period>::min<long long int, std::ratio<1ll, 1000000000ll> >()' /home/vries/local/arm2/obj/gcc-mainline-0-arm-none-eabi-i686-pc-linux-gnu/arm-none-eabi/libstdc++-v3/include/chrono:725:66: in constexpr expansion \ of 'std::chrono::duration<long long int, std::ratio<1ll, 1000000000ll> >((* & std::chrono::duration_values<_Rep>::min<long long int>()))' /home/vries/local/arm2/obj/gcc-mainline-0-arm-none-eabi-i686-pc-linux-gnu/arm-none-eabi/libstdc++-v3/include/chrono:725:66: internal compiler error: \ in adjust_temp_type, at cp/constexpr.c:1020 "a clock's minimum duration cannot be less than its epoch"); ^ 0x8548ac0 adjust_temp_type /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:1020 0x854a410 cxx_eval_call_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:1377 0x8550247 cxx_eval_constant_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:2835 0x8550902 cxx_eval_constant_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:2895 0x854f4ae cxx_eval_store_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:2529 0x855098b cxx_eval_constant_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:2914 0x8550a5f cxx_eval_constant_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:2926 0x8550ad0 cxx_eval_constant_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:2940 0x8549fe6 cxx_eval_call_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:1329 0x8550247 cxx_eval_constant_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:2835 0x8550902 cxx_eval_constant_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:2895 0x8550b78 cxx_eval_constant_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:2958 0x8551337 cxx_eval_constant_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:3147 0x8551337 cxx_eval_constant_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:3147 0x8548df3 cxx_bind_parameters_in_call /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:1072 0x854996e cxx_eval_call_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:1235 0x8550247 cxx_eval_constant_expression /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:2835 0x8551e9f cxx_eval_outermost_constant_expr /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:3314 0x85526bf maybe_constant_value(tree_node*, tree_node*) /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:3427 0x84c3418 finish_static_assert(tree_node*, tree_node*, unsigned int, bool) /home/vries/local/arm2/src/gcc-mainline/gcc/cp/semantics.c:7046 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. make[5]: *** [chrono.lo] Error 1 ... With gdb, we can see the type and temp arguments: ... (gdb) #5 0x08548ac1 in adjust_temp_type (type=0xf7b883c0, temp=0xf77faa50) at /home/vries/local/arm2/src/gcc-mainline/gcc/cp/constexpr.c:1020 1020 gcc_assert (scalarish_type_p (type)); (gdb) call debug_generic_expr (type) struct duration (gdb) call debug_generic_expr (temp) (struct duration * const) &D.10458 ...