[Issue 3418] link error with cast(ulong)(ulong*real)

2015-06-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3418

Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

Version|2.035   |D2

--


[Issue 3418] link error with cast(ulong)(ulong*real)

2010-09-03 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3418


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@digitalmars.com
 Resolution||FIXED


--- Comment #3 from Walter Bright bugzi...@digitalmars.com 2010-09-03 
01:35:02 PDT ---
http://www.dsource.org/projects/druntime/changeset/379

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3418] link error with cast(ulong)(ulong*real)

2010-03-14 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3418



--- Comment #1 from Aldo Nunez crimson.ma...@gmail.com 2010-03-14 00:49:02 
PST ---
Created an attachment (id=588)
test case with template use and comments

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3418] link error with cast(ulong)(ulong*real)

2010-03-14 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3418


Aldo Nunez crimson.ma...@gmail.com changed:

   What|Removed |Added

 CC||crimson.ma...@gmail.com


--- Comment #2 from Aldo Nunez crimson.ma...@gmail.com 2010-03-14 00:49:48 
PST ---
I get the same error, but in a slightly different context. I tried the case
from ZY Zhou on DMD 2.041, and it still fails.

The different case that I'm seeing is this.

This links fine.
real y = 99.5L;
ulong x = cast(ulong) y;

But if I put it after the following call, I get the link error.
BinOp!(ulong, real).P( 99L );
// where P is defined like this
template BinOp(T, U)
{
void Q( U u ){}
void P( T t ){ Q( cast(U) t ); }
}

Then compiling with -O gets rid of the error. I do have a case where the error
doesn't go away with the -O flag. The following is all in main.
BinOp!(ulong, real).P( 99L );
real y = 99.5L;
void Q( ulong l )
{
}
void P( real r )
{
Q( cast(ulong) r );
}
// B: -O doesn't fix this
P( y );

Of course, getting rid of the BinOp.P call gets rid of the error as before.

Sorry if this is confusing. I've attached a file that might show this a little
more clearly. Picking line A or one line B by itself will not bring out the
error. It involves enabling A and one of the line Bs.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---