[ https://issues.apache.org/jira/browse/ARROW-17566?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Li closed ARROW-17566. ---------------------------- Resolution: Duplicate > [C++][Compute]Compiler error with gcc7 and c++17 > ------------------------------------------------ > > Key: ARROW-17566 > URL: https://issues.apache.org/jira/browse/ARROW-17566 > Project: Apache Arrow > Issue Type: Bug > Components: C++ > Affects Versions: 9.0.0 > Environment: gcc6/7 > c++14/17 > Reporter: Jin Shang > Assignee: Jin Shang > Priority: Minor > Labels: easyfix > > When compiling the c++ compute component with gcc6/7 with std=c++14/17, > compiler internal errors are triggered at > compute/kernels/aggregate_internal.h:176:24 and various places at > compute/kernels/scalar_set_lookup.cc > {code:java} > cpp/src/arrow/compute/kernels/aggregate_internal.h:176:24: internal compiler > error: in maybe_undo_parenthesized_ref, at cp/semantics.c:1740 > DCHECK_LT(cur_level, levels); > ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ > 0x683399 maybe_undo_parenthesized_ref(tree_node*) > ../../gcc-7.5.0/gcc/cp/semantics.c:1739 > 0x6c8638 cp_fold > ../../gcc-7.5.0/gcc/cp/cp-gimplify.c:2180 > 0x6c949c cp_fold_maybe_rvalue > ../../gcc-7.5.0/gcc/cp/cp-gimplify.c:2042 > 0x6c8346 cp_fold > ../../gcc-7.5.0/gcc/cp/cp-gimplify.c:2149 > 0x6c949c cp_fold_maybe_rvalue > ../../gcc-7.5.0/gcc/cp/cp-gimplify.c:2042 > 0x6c8234 cp_fold_rvalue > ../../gcc-7.5.0/gcc/cp/cp-gimplify.c:2063 > 0x6c8234 cp_fold > ../../gcc-7.5.0/gcc/cp/cp-gimplify.c:2304 > 0x66a037 cp_convert_and_check(tree_node*, tree_node*, int) > ../../gcc-7.5.0/gcc/cp/cvt.c:640 > 0x59bb8a convert_like_real > ../../gcc-7.5.0/gcc/cp/call.c:7053 > 0x59de12 build_over_call > ../../gcc-7.5.0/gcc/cp/call.c:7869 > 0x5a3c2f build_new_function_call(tree_node*, vec<tree_node*, va_gc, > vl_embed>**, bool, int) > ../../gcc-7.5.0/gcc/cp/call.c:4272 > 0x685601 finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, > bool, bool, int) > ../../gcc-7.5.0/gcc/cp/semantics.c:2501 > 0x5e1b83 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, > bool) > ../../gcc-7.5.0/gcc/cp/pt.c:17508 > 0x5e121b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, > bool) > ../../gcc-7.5.0/gcc/cp/pt.c:17544 > 0x5d6c47 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, > bool) > ../../gcc-7.5.0/gcc/cp/pt.c:16732 > 0x5d6c47 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) > ../../gcc-7.5.0/gcc/cp/pt.c:16613 > 0x5d6a85 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) > ../../gcc-7.5.0/gcc/cp/pt.c:15874 > 0x5d6ad5 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) > ../../gcc-7.5.0/gcc/cp/pt.c:15860 > 0x5d61de tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) > ../../gcc-7.5.0/gcc/cp/pt.c:16036 > 0x5d6ad5 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) > ../../gcc-7.5.0/gcc/cp/pt.c:15860 > Please submit a full bug report, > with preprocessed source if appropriate. > Please include the complete backtrace with any bug report. > See <https://gcc.gnu.org/bugs/> for instructions. {code} > {code:java} > cpp/src/arrow/compute/kernels/scalar_set_lookup.cc:70:50: internal compiler > error: in maybe_undo_parenthesized_ref, at cp/semantics.c:1740 auto on_found > = [&](int32_t memo_index) { DCHECK_LT(memo_index, memo_size); }; 0x683399 > maybe_undo_parenthesized_ref(tree_node*) > ../../gcc-7.5.0/gcc/cp/semantics.c:1739 0x6c8638 cp_fold > ../../gcc-7.5.0/gcc/cp/cp-gimplify.c:2180 0x6c949c cp_fold_maybe_rvalue > ../../gcc-7.5.0/gcc/cp/cp-gimplify.c:2042 0x6c8346 cp_fold > ../../gcc-7.5.0/gcc/cp/cp-gimplify.c:2149 0x66a037 > cp_convert_and_check(tree_node*, tree_node*, int) > ../../gcc-7.5.0/gcc/cp/cvt.c:640 0x65f5d4 cp_build_binary_op(unsigned int, > tree_code, tree_node*, tree_node*, int) ../../gcc-7.5.0/gcc/cp/typeck.c:5208 > 0x5a689c build_new_op_1 ../../gcc-7.5.0/gcc/cp/call.c:5978 0x5a737e > build_new_op(unsigned int, tree_code, int, tree_node*, tree_node*, > tree_node*, tree_node**, int) ../../gcc-7.5.0/gcc/cp/call.c:6022 0x657a12 > build_x_binary_op(unsigned int, tree_code, tree_node*, tree_code, tree_node*, > tree_code, tree_node**, int) ../../gcc-7.5.0/gcc/cp/typeck.c:3941 0x5e04ff > tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) > ../../gcc-7.5.0/gcc/cp/pt.c:17001 0x5e1120 tsubst_copy_and_build(tree_node*, > tree_node*, int, tree_node*, bool, bool) ../../gcc-7.5.0/gcc/cp/pt.c:16940 > 0x5e1120 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, > bool) ../../gcc-7.5.0/gcc/cp/pt.c:16940 0x5e1676 > tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) > ../../gcc-7.5.0/gcc/cp/pt.c:17312 0x5e121b tsubst_copy_and_build(tree_node*, > tree_node*, int, tree_node*, bool, bool) ../../gcc-7.5.0/gcc/cp/pt.c:17544 > 0x5d6c47 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, > bool) ../../gcc-7.5.0/gcc/cp/pt.c:16732 0x5d6c47 tsubst_expr(tree_node*, > tree_node*, int, tree_node*, bool) ../../gcc-7.5.0/gcc/cp/pt.c:16613 0x5d6a85 > tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) > ../../gcc-7.5.0/gcc/cp/pt.c:15874 0x5d696b tsubst_expr(tree_node*, > tree_node*, int, tree_node*, bool) ../../gcc-7.5.0/gcc/cp/pt.c:16090 0x5d696b > tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) > ../../gcc-7.5.0/gcc/cp/pt.c:16090 0x5d4aae tsubst_expr(tree_node*, > tree_node*, int, tree_node*, bool) ../../gcc-7.5.0/gcc/cp/pt.c:15845 Please > submit a full bug report, with preprocessed source if appropriate. Please > include the complete backtrace with any bug report. See > <https://gcc.gnu.org/bugs/> for instructions. > {code} > > This is a known bug of gcc6/7. It is triggered when a const integer is > capture by reference in a lambda function, and is parenthesized in that > lambda code. See also: [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83204] > and [https://github.com/kokkos/kokkos-kernels/issues/349] -- This message was sent by Atlassian Jira (v8.20.10#820010)