Repository navigation
[GNATS 26930] Internal assertion in lower_il.c in delete_static_variables_from_decl_stmts #147
jhsedg
started this conversation in
Issue Triage - General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Customer bug ID
cobalt/test/strand.test/strand.cpp, 26930.C is the reduced test case, the full test case is 26930a.C
Description
The reduced test case
namespace std {
template struct coroutine_traits : Result {};
template <typename = void> struct coroutine_handle {
operator coroutine_handle<>() noexcept;
};
struct suspend_never {
bool await_ready();
void await_suspend(coroutine_handle<>);
void await_resume();
};
int executor;
template struct enable_await_executor {
auto await_transform(int) { return executor_awaitable{}; }
struct executor_awaitable_ {
bool await_ready();
void await_suspend(coroutine_handle<>);
Promise::executor_type await_resume();
};
};
struct final_awaitable {
bool await_ready() noexcept;
void await_suspend(coroutine_handle<>) noexcept;
void await_resume() noexcept;
};
struct cobalt_promise : enable_await_executor<cobalt_promise> {
void get_return_object();
using executor_type = int;
suspend_never initial_suspend();
auto final_suspend() noexcept { return final_awaitable{}; }
void unhandled_exception();
};
struct promise {
typedef cobalt_promise promise_type;
};
namespace asio {
struct basic_waitable_timer {
basic_waitable_timer(int, int);
};
} // namespace asio
promise do_the_thing() {
static int unique;
asio::basic_waitable_timer{co_await executor, 0};
}
} // namespace std
[ellen@lin1 gnats]$ (ia64)eccp --c++20 --gnu_version=120100 -tused -w /tmp/p.C
"/tmp/p.C", line 43: internal error: assertion failed at: "lower_il.c", line
21266 in delete_static_variables_from_decl_stmts
oading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/au
to-load:/usr/bin/mono-gdb.py".
-----> Context in delete_static_variables_from_decl_stmts ( ):
} /* if */
} else {
p_stmt = &(p_stmt)->next;
} / if /
} / while */
check_assertion(n_vars == 0);
-----> Abbreviated stack trace:
assertion_failed
delete_static_variables_from_decl_stmts
promote_static_variables_out_of_function
r_promote_local_entities_to_file_scope
promote_local_entities_to_file_scope
lower_scope
lower_top_level_scope
lower_function_scope
finish_function_body_processing
pop_scope_full
pop_scope
-----> assertion_failed crash signatures: e490c96c8db68113cff09d722dd69ed0 from 641107ec233c657a01c1c28440f85238
All reactions