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
Missing support for GNU extension types like _Complex
or _Fract
#9535
Comments
One related problem might be something like:
Where we have defined |
Good idea. I believe PR #9547 should contain a fully updated parsing of fundamental types and the fixed-point types. |
Yes. If you treat c_id_attributes = ["HOST_WIDE_INT"] That should work in the latest versions. |
Thanks for working on that. One comment I have is that the type parsing should be shared among |
I can confirm that approach works, thanks. |
And one more example I noticed is unsupported by
resulting in the following error:
|
Right, I suspected that but didn't work on it yet as it requires mangling to generate stable IDs. Are the fixed-point types supported in C++ mode? I couldn't get it to compile. |
No, it's only C extension. |
Ah, good example. Should be fixed by #9553. |
Great, thanks for it! |
The PR should now be updated with C++ support at a similar level, though with the types I couldn't immediately confirm the mangling for removed (e.g., the |
Looks good to me based on my testing. One failing example I found:
|
Fixed. |
Thanks, I'm looking forward to the PR is accepted to the mainline. |
Great, if you have no more failing cases I'l merge it within the next days. |
I'm currently working on the transition of the GNU C compiler (GCC) manuals and I noticed there are unsupported C extensions like:
where I see the following parsing error:
Right now, there's some special casing for e.g. 'unsigned' type:
sphinx/sphinx/domains/c.py
Lines 2566 to 2585 in 6ac326e
One possible fix is adding the mentioned C extension handling for the following types:
https://gcc.gnu.org/onlinedocs/gcc/Fixed-Point.html
https://gcc.gnu.org/onlinedocs/gcc/Complex.html
or I can see a domain parser can become public via an API entry point:
sphinx/sphinx/domains/c.py
Lines 2128 to 2131 in 6ac326e
What do you think?
The text was updated successfully, but these errors were encountered: