Skip to content

Fix C++1 generation of function pointers. #1406

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

threeifbyair
Copy link
Contributor

Fix #1397. Function pointers (but not functions) can now be return types.

It turns out that even if we correctly parse a function pointer type, we drop the pc_qualifiers when we generate the C++1 code. So I fixed that too.

@MaxSagebaum
Copy link
Contributor

Looks good.

Copy link
Owner

@hsutter hsutter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I have a question about the new parameter...

@@ -7266,7 +7266,8 @@ class parser
auto type_id(
bool allow_omitting_type_name = false,
bool allow_constraint = false,
bool allow_function_type = false
bool allow_function_type = false,
bool allow_qualified_function_type = true
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This new parameter doesn't seem to be used - it always has its default value. Should it just be removed?

@@ -7339,7 +7340,9 @@ class parser
assert (n->id.index() == type_id_node::unqualified);
}
else if (std::unique_ptr<function_type_node> id = {};
allow_function_type
(allow_function_type ||
(allow_qualified_function_type &&
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And here?

@hsutter hsutter added the question - further information requested Further information is requested label Jul 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question - further information requested Further information is requested
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] Can not declare functions that return function pointers
3 participants