[Bug c++/127232] New: ICE when extracting reflection of reference function parameter

eczbek.void at gmail dot com gcc-bugzilla@gcc.gnu.org
Sun Sep 6 19:49:44 GMT 2026


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127232

            Bug ID: 127232
           Summary: ICE when extracting reflection of reference function
                    parameter
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: eczbek.void at gmail dot com
  Target Milestone: ---

https://godbolt.org/z/jvY776sjG

```
#include <meta>

void f(int const& x) {
        constexpr std::meta::info y = ^^x;
        consteval {
                std::meta::extract<int const&>(y);
        }
}
```

```
<source>: In function 'void f(const int&)':
<source>:7:2:   in 'constexpr' expansion of 'f(const int&)::<lambda()>
static()'
    7 |         }
      |         ^
<source>:6:47: internal compiler error: tree check: did not expect class
'type', have 'type' (reference_type) in recompute_tree_invariant_for_addr_expr,
at tree.cc:5186
    6 |                 std::meta::extract<int const&>(y);
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
0x2bde978 diagnostics::context::diagnostic_impl(rich_location*,
diagnostics::metadata const*, diagnostics::option_id, char const*,
__va_list_tag (*) [1], diagnostics::kind)
        ???:0
0x2bd35bb internal_error(char const*, ...)
        ???:0
0xa41712 tree_not_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
        ???:0
0x19435d0 build1(tree_code, tree_node*, tree_node*)
        ???:0
0x114c1e8 build_fold_addr_expr_with_type_loc(unsigned long, tree_node*,
tree_node*)
        ???:0
0xe8d0d7 build_address(tree_node*)
        ???:0
0xe2c98c process_metafunction(constexpr_ctx const*, tree_node*, tree_node*,
bool*, bool*, tree_node**)
        ???:0
0xbb8d21 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xbb82b2 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xbb8ea2 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xbb8b98 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xbb88d8 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xbb8d21 cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xbb872f cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
        ???:0
0xbcb1d3 cxx_constant_value(tree_node*, tree_node*, int)
        ???:0
0xe4fa4e finish_static_assert(tree_node*, tree_node*, unsigned long, bool,
bool, bool)
        ???:0
0xda2383 c_parse_file()
        ???:0
0xf35b69 c_common_parse_file()
        ???:0
/cefs/5d/5db0e07b14c59ff34f47a0ce_gcc-trunk-20260906/bin/../libexec/gcc/x86_64-linux-gnu/17.0.0/cc1plus
-quiet -imultiarch x86_64-linux-gnu -iprefix
/cefs/5d/5db0e07b14c59ff34f47a0ce_gcc-trunk-20260906/bin/../lib/gcc/x86_64-linux-gnu/17.0.0/
-D_GNU_SOURCE <source> -quiet -dumpdir /app/ -dumpbase output.cpp -dumpbase-ext
.cpp -masm=intel -mtune=generic -march=x86-64 -g -std=c++26
-fdiagnostics-color=always -fno-verbose-asm -freflection -o /app/output.s
```


More information about the Gcc-bugs mailing list