Bug 6671 – core.time compile error, only with -inline -release -noboundscheck
Status
RESOLVED
Resolution
DUPLICATE
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Mac OS X
Creation time
2011-09-14T14:27:00Z
Last change time
2011-09-15T03:01:42Z
Assigned to
nobody
Creator
peter.alexander.au
Comments
Comment #0 by peter.alexander.au — 2011-09-14T14:27:47Z
This is a bit of a weird one. In DMD 2.055 the following code:
import core.time;
void main() {}
Gives the compile error:
> dmd test.d -release -inline -noboundscheck
/Library/Compilers/dmd2/osx/bin/../../src/druntime/import/core/time.di(253): Error: template core.time.TickDuration.to(string units,T) if ((units == "seconds" || units == "msecs" || units == "usecs" || units == "hnsecs" || units == "nsecs") && (__traits(isIntegral,T) && T.sizeof >= 4)) does not match any function template declaration
/Library/Compilers/dmd2/osx/bin/../../src/druntime/import/core/time.di(253): Error: template core.time.TickDuration.to(string units,T) if ((units == "seconds" || units == "msecs" || units == "usecs" || units == "hnsecs" || units == "nsecs") && (__traits(isIntegral,T) && T.sizeof >= 4)) cannot deduce template function from argument types !("seconds",long)()
It *only* happens with those three flags. Remove any one and the code compiles fine.
This didn't happen in DMD 2.053 (haven't tried 2.054)
Comment #2 by peter.alexander.au — 2011-09-15T03:01:42Z
(In reply to comment #1)
> Looks like http://d.puremagic.com/issues/show_bug.cgi?id=6502 ?
Yes, it looks like you're right. I'll close this one.
*** This issue has been marked as a duplicate of issue 6502 ***