ImportC const
Timon Gehr
timon.gehr at gmx.ch
Sun Jul 10 23:17:12 UTC 2022
On 7/9/22 19:07, Steven Schveighoffer wrote:
> Brian Callahan has a blog post about ImportC:
>
> https://briancallahan.net/blog/20220704.html
>
> One part identifies a current design choice that breaks C code:
>
> OK, so I built this file with clang and kept going. There was one
> more file that DMD couldn't compile:
>
> ```
> dmd -g -O -P=-DEMACS -P=-DVI -ofexpr.o -c expr.c
> expr.c(204): Error: cannot modify `const` expression `(*es).tok`
> expr.c(205): Error: cannot modify `const` expression `(*es).val`
> ```
> I wonder if this is a bug in ImportC. No other C compiler we've
> tried fails on this code.
>
> The answer is, no it's not a bug, it's by design:
> https://dlang.org/spec/importc.html#const
>
> Is there any benefit to breaking any usage of const in C when trying to
> compile C code?
>
> -Steve
It's a "limitation":
https://dlang.org/spec/importc.html#limitations
I guess the underlying issue is that type qualifiers and their
combinations are implemented as bitfields in DMD, so adding new ones is
pretty hard.
More information about the Digitalmars-d
mailing list