-
Notifications
You must be signed in to change notification settings - Fork 230
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
Support for long
and long long
bit-field types
#315
Comments
As you have noted supporting
Unfortunately not only the |
+1 on supporting this, glibc's libm makes use of |
For the record: this PR is about the integer type CompCert "supports" Given CompCert's focus on embedded systems, which generally don't use x86 and are happy with single- or double-precision FP, it's unlikely that CompCert will support extended-precision FP in the near future. |
Ah ok, thanks for clarifying |
I ran into an issue recently in which CompCert could not compile a
struct
with bit-field members of typelong
. It was straightforward to find where this restriction was enforced, but I've had a more difficult time trying to pinpoint the motivation for it. Supportinglong
andlong long
would be considered implementing extended bit-field types according to the C99 standard, and CompCert already does this by supporting (I believe) the use ofchar
andshort
for this purpose.From
elab_bitfield
withinelab_field_group
withinElab.ml
:It seems trivial to rewrite the above as follows.
That being said, I want to respect the intent behind the original error, so if some phase following this elaboration relies on the assumption that there were no bit-fields using a higher-rank carrier type, I would want to be more careful about making changes. Would anyone happen to know whether such an assumption is used?
The text was updated successfully, but these errors were encountered: