On 3/25/25 9:17 AM, Thomas Schwinge wrote:
Hi!
On 2025-03-24T13:38:56-0400, Jason Merrill <ja...@redhat.com> wrote:
On 3/24/25 7:02 AM, Thomas Schwinge wrote:
On 2025-03-21T15:46:01+0100, I wrote:
On 2025-03-19T14:25:49+0000, Jonathan Wakely <jwakely....@gmail.com> wrote:
On Wed, 19 Mar 2025 at 14:21, Marek Polacek <pola...@redhat.com> wrote:
On Wed, Mar 19, 2025 at 12:38:31PM +0100, Thomas Schwinge wrote:
--- a/gcc/cp/rtti.cc
+++ b/gcc/cp/rtti.cc
@@ -198,7 +198,7 @@ throw_bad_cast (void)
fn = get_global_binding (name);
if (!fn)
fn = push_throw_library_fn
- (name, build_function_type_list (ptr_type_node, NULL_TREE));
+ (name, build_function_type_list (void_type_node, NULL_TREE));
}
return build_cxx_call (fn, 0, NULL, tf_warning_or_error);
LGTM, matches what I see in abi-eh.html from the itanium-cxx-abi.
[...] I've now pushed to trunk branch:
commit 618c42d23726be6e2086d452d6718abe5e0daca8
"C++: Adjust implicit '__cxa_bad_cast' prototype to reality", [...]
So, a similar problem exists for '__cxa_bad_typeid'. See the attached
"[WIP] C++: Adjust implicit '__cxa_bad_typeid' prototype to reality" for
what seemed to be the corresponding patch for that one. However, that
isn't sufficient; we run into internal errors like:
[...]/g++.dg/rtti/typeid1.C: In function 'int main()':
[...]/g++.dg/rtti/typeid1.C:9:12: error: lvalue required as unary '&'
operand
I got lost in the C++ front end code trying to understand how to resolve
this mismatch. Anyone able to advise, please?
This addition seems to resolve it: [...]
Yes, thanks! OK to push the attached
"C++: Adjust implicit '__cxa_bad_typeid' prototype to reality"?
OK.