DMD source violates c++11 standards.

Maxim Fomin maxim at maxim-fomin.ru
Tue May 28 12:33:07 PDT 2013


On Monday, 27 May 2013 at 23:25:37 UTC, Hans W. Uhlig wrote:
> This also makes compiling LDC with clang rather difficult
>
> [  1%] Building CXX object 
> CMakeFiles/LDCShared.dir/dmd2/func.c.o
> /root/llvm/src/ldc/dmd2/func.c:540:18: error: case value 
> evaluates to -2, which cannot be narrowed to type 'size_t' (aka 
> 'unsigned long') [-Wc++11-narrowing]
>             case -2:    // can't determine because of fwd refs
>                  ^
> /root/llvm/src/ldc/dmd2/func.c:503:18: error: case value 
> evaluates to -1, which cannot be narrowed to type 'size_t' (aka 
> 'unsigned long') [-Wc++11-narrowing]
>             case -1:
>                  ^
> /root/llvm/src/ldc/dmd2/func.c:632:22: error: case value 
> evaluates to -2, which cannot be narrowed to type 'size_t' (aka 
> 'unsigned long') [-Wc++11-narrowing]
>                 case -2:
>                      ^
> /root/llvm/src/ldc/dmd2/func.c:629:22: error: case value 
> evaluates to -1, which cannot be narrowed to type 'size_t' (aka 
> 'unsigned long') [-Wc++11-narrowing]
>                 case -1:

There were discussions raised in the past about dmd source 
compile warnings which are generated by enabling some warning 
options. Depending on which switches are turned on, compiler can 
produce from 100 up to 10_000 warnings. Most of them are useless 
since they do not perform flow analysis (for example, those 
complains about variables may being not initialized which ignore 
assertions) or are issued in dirty backend code. It is extremly 
unlikely to extract something worth fixing from such large amount 
of messages. Dmd sources are at everyday look of dozen 
developers, so there is low probability to get from warnings 
something useful which solves potential problem.

I use conservative number of warning switches which produces two 
warnings in current dmd git sources - one about obsolete cast 
from string type to char*, and the second about ignoring __cdecl 
attribute. I don't bother to fix them.


More information about the Digitalmars-d mailing list