https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98056
Bug ID: 98056
Summary: internal compiler error: tree check: expected
record_type or union_type or qual_union_type, have
array_type in build_special_member_call, at
cp/call.c:9862
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: lemourin at gmail dot com
Target Milestone: ---
Created attachment 49647
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49647&action=edit
preprocessor output; compressed
The attached .ii file causes:
internal compiler error: tree check: expected record_type or union_type or
qual_union_type, have array_type in build_special_member_call, at
cp/call.c:9862
The compiler used is built at head (commit f59be8dfbd85..) with default
configure flags on Ubuntu 20.04 running in WSL 1. Same issue occurs with
g++-10, g++-9 shipped with the distro.
The compiler flags used:
-fcoroutines -std=gnu++2a
Same code works well on latest clang and msvc.
The issue can be worked around by modifying calls to util::FetchJson in
GoogleDrive class in a way:
util::FetchJson(Request<>{ ... }, ...)
change to
auto request = ...;
util::FetchJson(std::move(request), ...)