aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2025-03-20 09:55:40 -0400
committerJason Merrill <jason@redhat.com>2025-03-21 11:04:56 -0400
commitcb537f0d838bac376bfe5e6d765e19cd3af01031 (patch)
treece1ebeeb1e96ef3348751fd64c5c774233ca877c /gcc
parent618c42d23726be6e2086d452d6718abe5e0daca8 (diff)
downloadgcc-cb537f0d838bac376bfe5e6d765e19cd3af01031.zip
gcc-cb537f0d838bac376bfe5e6d765e19cd3af01031.tar.gz
gcc-cb537f0d838bac376bfe5e6d765e19cd3af01031.tar.bz2
c++: fix return type of __cxa_bad_array_new_length
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/init.cc5
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/cp/init.cc b/gcc/cp/init.cc
index ce6e58e..e589e45 100644
--- a/gcc/cp/init.cc
+++ b/gcc/cp/init.cc
@@ -2810,8 +2810,7 @@ diagnose_uninitialized_cst_or_ref_member (tree type, bool using_new, bool compla
}
/* 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)
@@ -2823,7 +2822,7 @@ 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);