DMD source violates c++11 standards.
Hans W. Uhlig
huhlig at gmail.com
Tue May 28 12:56:39 PDT 2013
On Tuesday, 28 May 2013 at 19:33:08 UTC, Maxim Fomin wrote:
> 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.
These are just from the standard set of clang switched while
trying to compile LDC.
More information about the Digitalmars-d
mailing list