We were lying about the return type, but that's not necessary; we already
need to handle a COND_EXPR where one side is void for THROW_EXPR.
This fixes an execution failure on nvptx:
error: Prototype doesn't match for '__cxa_throw_bad_array_new_length'
gcc/cp/ChangeLog:
* init.cc (throw_bad_array_new_length): Returns void.
(cherry picked from commit
cb537f0d838bac376bfe5e6d765e19cd3af01031)
2025-03-25 Thomas Schwinge <tschwinge@baylibre.com>
+ Backported from trunk:
+ 2025-03-21 Jason Merrill <jason@redhat.com>
+
+ * init.cc (throw_bad_array_new_length): Returns void.
+
Backported from trunk:
2025-03-21 Thomas Schwinge <tschwinge@baylibre.com>
}
/* Call __cxa_bad_array_new_length to indicate that the size calculation
- overflowed. Pretend it returns sizetype so that it plays nicely in the
- COND_EXPR. */
+ overflowed. */
tree
throw_bad_array_new_length (void)
fn = get_global_binding (name);
if (!fn)
fn = push_throw_library_fn
- (name, build_function_type_list (sizetype, NULL_TREE));
+ (name, build_function_type_list (void_type_node, NULL_TREE));
}
return build_cxx_call (fn, 0, NULL, tf_warning_or_error);