[Issue 2254] Size of executable almost triples

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2254


Don  changed:

   What|Removed |Added

 CC||clugd...@yahoo.com.au
   Severity|major   |regression


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


[Issue 3488] Segfault(expression.c): enum declared with struct static initializer

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3488



--- Comment #4 from Don  2009-11-23 00:23:22 PST ---
PATCH: With the demise of struct initializers, it's not worth fixing properly.
But DsymbolExp::semantic() should check for a null value anyway (it checks in
other places in expression.c). This would prevent the segfault.

expression.c line 2306 (svn 267):

if ((v->storage_class & STCmanifest) && v->init)
{
e = v->init->toExpression();
+  if (!e)
+{   error("cannot make expression out of initializer for %s",
v->toChars());
+e = new ErrorExp();
+}
e->semantic(sc);
return e;
}

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


[Issue 2274] all static if typeof seriously wrong

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2274


Don  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 CC||clugd...@yahoo.com.au
 Resolution||INVALID


--- Comment #11 from Don  2009-11-23 00:29:07 PST ---
(In reply to comment #10)
> line 16: // wrong: t.A:- t.B:+ t.C:- int:-
> 
> Why an empty class B{} pass the test?

Because it has toString(). Try this code:
---
import std.stdio;
class B {}

void main()
{
   B b = new B;
   writefln(b.toString());
}
---
There's no bug here.

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


[Issue 2282] Struct copy-constructor should call opAssign

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2282


Don  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||INVALID


--- Comment #2 from Don  2009-11-23 00:30:25 PST ---
Invalid: use postblit instead.
When the types are identical, this(this) gets called, not opAssign.

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


[Issue 3521] Optimized code access popped register

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3521


Don  changed:

   What|Removed |Added

 CC||clugd...@yahoo.com.au


--- Comment #1 from Don  2009-11-23 01:57:30 PST ---
Reduced test case shows that this is very low level. It's very specific,
changing the expression order slightly will make the problem go away.
The assignment to c gets optimised away, so that it remains as 0.
-
void bug3521(int *a)
{
int c = 0;
*a = 0;
if (*a == 0 && (*a + (c = 2)) == 2)
assert(c == 2);
}

void main ()
{
   int x;
   bug3521(&x);
}

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


[Issue 2282] Struct copy-constructor should call opAssign

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2282



--- Comment #3 from Koroskin Denis <2kor...@gmail.com> 2009-11-23 02:43:39 PST 
---
In D2, yes, but what about D1?

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


[Issue 2282] Struct copy-constructor should call opAssign

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2282



--- Comment #4 from Don  2009-11-23 03:00:24 PST ---
(In reply to comment #3)
> In D2, yes, but what about D1?

The spec is quite clear:

"The assignment operator cannot be overloaded for rvalues that can be
implicitly cast to the lvalue type." (operatoroverloading.html#Assignment).

And when I compile the initial code, I get a compiler error message which is
clear and which is in perfect agreement with the spec:

bug.d(19): Error: function test.Test.opAssign identity assignment operator ove
rload is illegal

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


[Issue 2282] Struct copy-constructor should call opAssign

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2282



--- Comment #5 from Koroskin Denis <2kor...@gmail.com> 2009-11-23 03:15:55 PST 
---
Great, thanks!

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


[Issue 3543] New: : ? operator can't find common type for interfaces

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3543

   Summary: : ? operator can't find common type for interfaces
   Product: D
   Version: 1.051
  Platform: Other
OS/Version: All
Status: NEW
  Keywords: rejects-valid
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: nfx...@gmail.com


--- Comment #0 from nfx...@gmail.com 2009-11-23 03:24:15 PST ---
The following fails to compile, but I think it should be allowed:

interface Root {
}

interface A : Root {
}

interface B : Root {
}

bool bla;

void main() {
  A a;
  B b;
  Root r;
  //this works
  r = a;
  r = b;
  //this line fails, although there's an unambiguous common type "Root"
  r = bla ? a : b;
}

If the compiler rejects this intentionally, this bug report is a feature
request.

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


[Issue 3543] : ? operator can't find common type for interfaces

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3543



--- Comment #1 from nfx...@gmail.com 2009-11-23 03:27:52 PST ---
This also fails if you're doing this with classes (just replace "interface"
with "class" in the example above).
With classes, this should definitely work, but it fails.

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


[Issue 3544] optlink unexpected termination 0041338f

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3544



--- Comment #1 from ante...@freemail.hu 2009-11-23 04:39:21 PST ---
Created an attachment (id=515)
the picture of the error

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


[Issue 3544] New: optlink unexpected termination 0041338f

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3544

   Summary: optlink unexpected termination 0041338f
   Product: D
   Version: 1.051
  Platform: x86
OS/Version: Windows
Status: NEW
  Severity: critical
  Priority: P2
 Component: Optlink
AssignedTo: nob...@puremagic.com
ReportedBy: ante...@freemail.hu


--- Comment #0 from ante...@freemail.hu 2009-11-23 04:38:17 PST ---
Hi,

I compiled and linker a program -debug and the linker crashed.
If I use -release flag , then the linker does not crash but then the program
crashes.
The program uses CTFE which may have to do with the crash.

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


[Issue 3544] optlink unexpected termination 0041338f

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3544



--- Comment #2 from ante...@freemail.hu 2009-11-23 04:41:33 PST ---
The program uses a large compile-time generated function which seems to 
contribute to the problem.

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


[Issue 3496] ICE(cgelem.c, optimizer bug) cast(void *)(x&1)== null.

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3496


Leandro Lucarella  changed:

   What|Removed |Added

 CC||llu...@gmail.com


--- Comment #5 from Leandro Lucarella  2009-11-23 06:48:08 
PST ---
SVN commit: http://www.dsource.org/projects/dmd/changeset/267

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


[Issue 3115] >>> and >>>= generate wrong code

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3115


Leandro Lucarella  changed:

   What|Removed |Added

 CC||llu...@gmail.com


--- Comment #3 from Leandro Lucarella  2009-11-23 06:48:52 
PST ---
SVN commit: http://www.dsource.org/projects/dmd/changeset/266

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


[Issue 3544] optlink unexpected termination 0041338f

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3544


Don  changed:

   What|Removed |Added

 CC||clugd...@yahoo.com.au


--- Comment #3 from Don  2009-11-23 07:08:37 PST ---
The picture doesn't help at all. You need to provide a source file which will
reproduce the error.

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


[Issue 3545] New: abstract keyword inside function causes error

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3545

   Summary: abstract keyword inside function causes error
   Product: D
   Version: 1.050
  Platform: x86
OS/Version: Windows
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: adam.chrapkow...@gmail.com


--- Comment #0 from Adam Chrapkowski  2009-11-23 
11:58:56 PST ---
When a class is located inside function and its declaration starts from
abstract keyword then occurs compilation error. For example:

void func(){

  // found 'abstract' instead of statement
  abstract final class A{
  }

  // ok
  final abstract class A{
  }
}

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


[Issue 3546] New: Aliasing an element of a static array should be legal if the index is a compile time constant

2009-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3546

   Summary: Aliasing an element of a static array should be legal
if the index is a compile time constant
   Product: D
   Version: 2.036
  Platform: Other
OS/Version: Windows
Status: NEW
  Severity: minor
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: dsim...@yahoo.com


--- Comment #0 from David Simcha  2009-11-23 18:04:51 PST ---
uint[3] foo;
alias foo[0] bar;

Error:
test8.d(2): Error: alias test8.bar cannot alias an expression foo[0]


Since foo is a static array and 0 is a compile time constant, there is no
reason this shouldn't work.  It works with tuples, and static arrays really
should offer a superset of tuple functionality because they are implemented the
same way as tuples with all the same type.

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