diff options
| author | Iain Buclaw <ibuclaw@gdcproject.org> | 2026-02-08 18:31:50 +0100 |
|---|---|---|
| committer | Iain Buclaw <ibuclaw@gdcproject.org> | 2026-02-08 20:55:39 +0100 |
| commit | 815732c2751060c38f0dc872a025632f247dda5c (patch) | |
| tree | 5e6e24997f25a50bd16e14118788f70d13c32546 /libjava/gnu/java/net/protocol/https | |
| parent | f48b55c50d254c73da00a151c563997d04364301 (diff) | |
| download | gcc-815732c2751060c38f0dc872a025632f247dda5c.zip gcc-815732c2751060c38f0dc872a025632f247dda5c.tar.gz gcc-815732c2751060c38f0dc872a025632f247dda5c.tar.bz2 | |
d: Fix error when passing assert(0) as argument [PR123995]
Library routines that either throw or halt execution already have the
call flag ECF_NORETURN. Make their internal type `noreturn' as well, so
that they can be "passed" to functions accepting noreturn arguments.
PR d/123995
gcc/d/ChangeLog:
* d-codegen.cc (build_assert_call): Cast libcall result to `noreturn'.
(build_array_bounds_call): Likewise.
(build_bounds_index_condition): Likewise.
(build_bounds_slice_condition): Likewise.
* expr.cc (ExprVisitor::visit (ThrowExp *)): Likewise.
* toir.cc (IRVisitor::visit (ThrowStatement *)): Likewise.
* runtime.cc (enum d_libcall_type): Add LCT_NORETURN.
(get_libcall_type): Handle LCT_NORETURN.
* runtime.def (ASSERTP): Change return type to `noreturn'.
(ASSERT_MSG): Likewise.
(UNITTESTP): Likewise.
(UNITTEST_MSG): Likewise.
(ARRAYBOUNDSP): Likewise.
(ARRAYBOUNDS_SLICEP): Likewise.
(ARRAYBOUNDS_INDEXP): Likewise.
(THROW): Likewise.
gcc/testsuite/ChangeLog:
* gdc.dg/pr123995.d: New test.
Diffstat (limited to 'libjava/gnu/java/net/protocol/https')
0 files changed, 0 insertions, 0 deletions
