[Issue 15079] [REG2.068.1] Assertion `fd->semanticRun == PASSsemantic3done' failed.

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

Kenji Hara  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #6 from Kenji Hara  ---
Add a case to the dmd test suite.

https://github.com/D-Programming-Language/dmd/pull/5120

--


[Issue 15079] [REG2.068.1] Assertion `fd->semanticRun == PASSsemantic3done' failed.

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

Kenji Hara  changed:

   What|Removed |Added

   Keywords||rejects-valid
   Hardware|x86_64  |All
Summary|Assertion `fd->semanticRun  |[REG2.068.1] Assertion
   |== PASSsemantic3done'   |`fd->semanticRun ==
   |failed. |PASSsemantic3done' failed.
 OS|Linux   |All

--- Comment #5 from Kenji Hara  ---
(In reply to Marc Schütz from comment #4)
> Created attachment 1552 [details]
> reduced testcase

Thank you very much, Marc!

I've slightly tweaked the case and get the minimum code to reproduce the error.

scan_code.d:
---
import parsing;

parsing.d:
---
Vector!string parseAlgorithmName()
{
assert(0);
}

struct Vector(ALLOC)
{
@disable this(this);

RefCounted!(Vector, ALLOC) dupr()
{
assert(0);
}
}

struct RefCounted(T, ALLOC)
{
~this()
{
T* objc;
.destroy(*objc);
}
}

// 

void _destructRecurse(S)(ref S s)
if (is(S == struct))
{
static if (__traits(hasMember, S, "__xdtor") &&
   __traits(isSame, S, __traits(parent, s.__xdtor)))
{
s.__xdtor();
}
}

void destroy(T)(ref T obj) if (is(T == struct))
{
_destructRecurse(obj);
() @trusted {
auto buf = (cast(ubyte*) &obj)[0 .. T.sizeof];
auto init = cast(ubyte[])typeid(T).init();
if (init.ptr is null) // null ptr means initialize to 0s
buf[] = 0;
else
buf[] = init[];
} ();
}

command line:
---
dmd -c scan_token.d

parsing.d(8): Error: function parsing.Vector!string.Vector.__aggrPostblit
errors compiling the function


Fortunately, the error is now disappeared with git-head. After the bisecting
git history, I've reached to the commit which the issue has fixed.

  SHA-1: af4d3a4158f95d1720b42e8027ae2aead90c7a4f

  Merge pull request #5075 from 9rnsr/fix15044

  [REG2.068.0] Issue 15044 - destroy might leak memory


As a conclusion, it was another surface of issue 15044, and fixed from 2.068.2
- the attribute inference problem had sent a function which is not yet
completed semantic analysis to glue layer, and the breaking of internal
invariance has been detected.

--


[Issue 14708] destructor for temporary not called during stack unwinding

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

Kenji Hara  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |---

--


[Issue 15056] [REG2.068.1] Unstored RAII struct return yields bogus error: "cannot mix core.std.stdlib.alloca() and exception handling"

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

Kenji Hara  changed:

   What|Removed |Added

   Keywords||pull
 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #11 from Kenji Hara  ---
Fixed by reverting issue 14708 fix.

https://github.com/D-Programming-Language/dmd/pull/5110

--


[Issue 15120] alias overload set combine error message

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

Kenji Hara  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Kenji Hara  ---
It's fixed in git head as a part of issue 14858.

*** This issue has been marked as a duplicate of issue 14858 ***

--


[Issue 14858] spurious "Error: overload alias 'foo' is not a variable" when overloading template and non-template via aliases

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

Kenji Hara  changed:

   What|Removed |Added

 CC||john.loughran.colvin@gmail.
   ||com

--- Comment #3 from Kenji Hara  ---
*** Issue 15120 has been marked as a duplicate of this issue. ***

--


[Issue 6904] Skip Setting up Stack Frame if No Stack is Used

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

Walter Bright  changed:

   What|Removed |Added

   See Also||https://issues.dlang.org/sh
   ||ow_bug.cgi?id=15121

--


[Issue 15121] Unneeded stack frame generated

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

Walter Bright  changed:

   What|Removed |Added

   Keywords||performance
   See Also||https://issues.dlang.org/sh
   ||ow_bug.cgi?id=6904

--


[Issue 15121] New: Unneeded stack frame generated

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

  Issue ID: 15121
   Summary: Unneeded stack frame generated
   Product: D
   Version: D2
  Hardware: x86_64
OS: All
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: bugzi...@digitalmars.com

The code:

int test(int x) { return x; }

generates:

55  pushRBP
48 8B ECmov RBP,RSP
48 89 C8mov RAX,RCX
5D  pop RBP
C3  ret

The stack frame is not necessary, and the 48 REX prefix on the RAX register
move is also unnecessary.

--


[Issue 15120] New: alias overload set combine error message

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

  Issue ID: 15120
   Summary: alias overload set combine error message
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: major
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: john.loughran.col...@gmail.com

//modA.d
auto foo(T)(T a){}

//modB.d
auto foo(T)(T a){}

//modC.d
import modB, modC;
alias foo = modB.foo;
alias foo = modC.foo;

void main()
{
.foo(3.4f);
}

modA.d(7): Error: modA.foo called with argument types (float) matches both:
modB.d(1): modB.foo!float.foo(float a)
and:
modC.d(1): modC.foo!float.foo(float a)

which makes perfect sense. However, if we drop the . before foo, i.e.
foo(3.4f);

modA.d(7): Error: overload alias 'foo' is not a variable

which is very odd.

--


[Issue 15106] Optlink executed with LDC as compiler?

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

--- Comment #8 from David Nadlinger  ---
(In reply to Manu from comment #7)
> Why is 2015 preferable?

Because of the improved C99 support (e.g. for string formatting functions).

> Do you think it would be appropriate for LDC to have such an installer which
> configured ldc2.conf similarly? If LDC has formal installation, it may make
> it easier for VisualD to detect installation and auto-configure LDC to work
> in Visual Studio?

It would definitely be great to have an LDC installer for Windows (distro
packages/archives are fine for the other platforms). I don't think anybody is
working on this right now; any help would be very much appreciated.

--