December 12, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8348



--- Comment #8 from jens.k.mueller@gmx.de 2012-12-12 06:56:31 PST ---
Then either 6395 can not be considered fixed or this is not a duplicate of 6395? What do you think?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 12, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8348



--- Comment #9 from Dmitry Olshansky <dmitry.olsh@gmail.com> 2012-12-12 07:01:19 PST ---
(In reply to comment #8)
> Then either 6395 can not be considered fixed or this is not a duplicate of 6395? What do you think?

I'm going to try testcase for 6395 to see.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 12, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8348



--- Comment #10 from Dmitry Olshansky <dmitry.olsh@gmail.com> 2012-12-12 07:41:26 PST ---
(In reply to comment #9)
> (In reply to comment #8)
> > Then either 6395 can not be considered fixed or this is not a duplicate of 6395? What do you think?
> 
> I'm going to try testcase for 6395 to see.

Okay, I can confirm that testcase for 6395 passes for me. So this is not a duplicate of 6395 but another related bug.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 13, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8348


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla@digitalmars.com


--- Comment #11 from Walter Bright <bugzilla@digitalmars.com> 2012-12-12 20:17:21 PST ---
A smaller test case:

struct Set(T)
{
    this(this) { }

    const opBinary(string op, U)(U)
      if(is(typeof(U.init.isSet)) )
      {
      }
}

int[const(Set!uint)] trieCache;

void getTrie()
{
    Set!(uint).init in trieCache;
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 13, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8348



--- Comment #12 from Walter Bright <bugzilla@digitalmars.com> 2012-12-12 20:21:31 PST ---
The error is that semantic2() and semantic3() are not run for
Slot.__fieldPostBlit(). I'm pretty sure this is due to some processing being
done while gagged and never completed.

The gagging thing is the worst architectural decision in the compiler, and I wish I'd never attempted it.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 13, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8348



--- Comment #13 from Walter Bright <bugzilla@digitalmars.com> 2012-12-12 22:13:10 PST ---
Ok, here's the trouble. A postblit is generated for copying elements of the associated array, but the postblit fails to compile because postblit doesn't work on const arguments.

The error message was suppressed because it happened when errors were gagged. So things were in an invalid state when writing object files.

Unfortunately, the error message was lost, so I "fixed" it by putting out a generic message,

druntime\import\object.di(396): Error: function
object.AssociativeArray!(const(Set!(uint)),
int).AssociativeArray.Slot.__fieldPostBlit errors compiling the function

A better solution would be to find a better way to deal with gagged errors, but at least you can now see which function failed.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 13, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8348



--- Comment #14 from github-bugzilla@puremagic.com 2012-12-12 22:14:09 PST ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/d5565dff3b9090c7e29627ac2b34b7bb53d5d863
fix Issue 8348 - ICE(glue.c): 'semanticRun == PASSsemantic3done' on line 547 in
file 'glue.c'

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 13, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8348


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |FIXED


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 13, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8348



--- Comment #15 from Dmitry Olshansky <dmitry.olsh@gmail.com> 2012-12-13 10:12:42 PST ---
(In reply to comment #13)
> Ok, here's the trouble. A postblit is generated for copying elements of the associated array, but the postblit fails to compile because postblit doesn't work on const arguments.
> 

Now this highlights a bigger problem as AFAIK AA keys bascially supposed to be immutable...

Anyway good to see that ICE gone.

>Unfortunately, the error message was lost, so I "fixed" it by putting out a
> generic message,

>druntime\import\object.di(396): Error: function
>object.AssociativeArray!(const(Set!(uint)),
>int).AssociativeArray.Slot.__fieldPostBlit errors compiling the function


Well, line number is a start. I'll file a diagnostic bug then as user really shouldn't see this mess.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
1 2
Next ›   Last »