digitalmars.D.bugs - [Issue 5165] New: compiler add a cast and then complain that the cast have no effect, giving no .o file
- d-bugmail puremagic.com (33/33) Nov 04 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5165
- d-bugmail puremagic.com (13/33) Nov 04 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5165
- d-bugmail puremagic.com (9/9) Nov 04 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5165
- d-bugmail puremagic.com (10/10) Dec 30 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5165
http://d.puremagic.com/issues/show_bug.cgi?id=5165
Summary: compiler add a cast and then complain that the cast
have no effect, giving no .o file
Product: D
Version: D1
Platform: Other
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: dufresnep gmail.com
---
I try to compile, with dmd 1.065 the following:
---
struct u64_t{
uint lo;
uint hi;
};
bool is_zero64(u64_t i) {i.hi==0 && i.lo==0;}
---
but I get:
[paul Arcturus ~]$ dmd -c test.d
test.d(7): Error: == has no effect in expression (i.lo == cast(uint)0)
test.d(7): Error: function test.is_zero64 expected to return a value of type
bool
[paul Arcturus ~]$
and I don't seems to find a way to rewrite this without the compiler refusing
it.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 04 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5165
Ellery Newcomer <ellery-newcomer utulsa.edu> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ellery-newcomer utulsa.edu
18:47:15 PDT ---
I try to compile, with dmd 1.065 the following:
---
struct u64_t{
uint lo;
uint hi;
};
bool is_zero64(u64_t i) {i.hi==0 && i.lo==0;}
---
but I get:
[paul Arcturus ~]$ dmd -c test.d
test.d(7): Error: == has no effect in expression (i.lo == cast(uint)0)
test.d(7): Error: function test.is_zero64 expected to return a value of type
bool
[paul Arcturus ~]$
and I don't seems to find a way to rewrite this without the compiler refusing
it.
sure you didn't mean
bool is_zero64(u64_t i) {return i.hi==0 && i.lo==0;}
?
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 04 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5165 --- You are right... I had come to think that the value returned by a function was the last expression evaluated, and then concluded that the return could be removed... but it seems it is not true. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 04 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5165
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |clugdbug yahoo.com.au
Resolution| |INVALID
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 30 2010









d-bugmail puremagic.com 