[Bug 49] ICE when using tuple over member variable in more than one method

gdc-bugzilla at gdcproject.org gdc-bugzilla at gdcproject.org
Tue Apr 9 06:07:59 PDT 2013


http://bugzilla.gdcproject.org/show_bug.cgi?id=49

--- Comment #4 from Iain Buclaw <ibuclaw at gdcproject.org> 2013-04-09 13:07:59 UTC ---
(In reply to comment #3)
> (In reply to comment #1)
> > (In reply to comment #0)
> > > test.d:
> > > 
> > > template Tuple(Stuff ...) {
> > >     alias Stuff Tuple;
> > > }
> > > struct S {
> > >     int i;
> > >     alias Tuple!i t;
> > >     void a() {
> > >         auto x = t;
> > >     }
> > >     void b() {
> > >         auto x = t;
> > >     }
> > > }
> > > gdc -c test.d:
> > > 
> > > ldc_sf.d: In member function ‘ldc_sf.S.b’:
> > 
> > That should say:  "test.d: In member function: test.S.b"
> > 
> > :o)
> 
> sorry, copied the code from the original ldc bug and the error from my own
> terminal, hence the different file-names.
> 
> > > ldc has a similar error: https://github.com/ldc-developers/ldc/issues/266
> > 
> > So it's likely a wrong-code bug in the D frontend then.
> 
> however, dmd appears not to have the bug.

That's because dmd is VERY lax about wrong code.  And will accept ANY old
garbage.

Example from last year, caused ICE in GDC and LDC because you can't convert
void to boolean.

void foo() { }
if (false || foo())
  /*  ...  */;


So no, saying that dmd does not have the bug is NOT helpful in 90% of cases
that cause the compiler to ICE.

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the D.gnu mailing list