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