digitalmars.D.bugs - [Issue 6744] New: Missing AA symbol with enum
- d-bugmail puremagic.com (40/40) Sep 29 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6744
- d-bugmail puremagic.com (14/14) Sep 29 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6744
- d-bugmail puremagic.com (27/27) Sep 30 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6744
- d-bugmail puremagic.com (10/10) Oct 23 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6744
- d-bugmail puremagic.com (13/13) Oct 23 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6744
- d-bugmail puremagic.com (14/14) Oct 23 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6744
- d-bugmail puremagic.com (38/38) Oct 23 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6744
- d-bugmail puremagic.com (23/23) Jul 10 2012 http://d.puremagic.com/issues/show_bug.cgi?id=6744
- d-bugmail puremagic.com (8/22) Feb 17 2013 http://d.puremagic.com/issues/show_bug.cgi?id=6744
- d-bugmail puremagic.com (7/9) Feb 17 2013 http://d.puremagic.com/issues/show_bug.cgi?id=6744
http://d.puremagic.com/issues/show_bug.cgi?id=6744
Summary: Missing AA symbol with enum
Product: D
Version: D2
Platform: Other
OS/Version: Windows
Status: NEW
Keywords: wrong-code
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: k.hara.pg gmail.com
---- test.d
import traits;
void formatValue()() { string[char] aa; aa.length; }
void main() { formatValue(); }
---- traits.d
enum LOOKUP_LINKAGE =
[
'F': "D",
'U': "C",
'W': "Windows",
'V': "Pascal",
'R': "C++"
];
--- command line
dmd test.d
--- output
OPTLINK (R) for Win32 Release 8.00.7
Copyright (C) Digital Mars 1989-2010 All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
test.obj(test)
Error 42: Symbol Undefined
_D6object28__T16AssociativeArrayTaTAyaZ16AssociativeArray6lengthMFNdZk
--- errorlevel 1
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 29 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6744
Jonathan M Davis <jmdavisProg gmx.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jmdavisProg gmx.com
Platform|Other |All
OS/Version|Windows |All
PDT ---
Yeah. I've been seeing various errors related to undefined symbols when using
enums with AAs with the latest compiler, but I haven't been able to reduce them
like this.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 29 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6744
This is not only the problem of AA, it is where template instantiation is
belongs to.
---- test.d
import traits;
void func()(){ X!() x; auto n = x.length; }
void main(){ func(); assert(0); }
---- traits.d
struct X(){ int length(){ return 0; } }
enum x = X!()();
---- command line
dmd test.d
---- output
OPTLINK (R) for Win32 Release 8.00.7
Copyright (C) Digital Mars 1989-2010 All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
test2.obj(test2)
Error 42: Symbol Undefined _D6traits6__T1XZ1X6lengthMFZi
semantic() runs against the type of X!() at both line 2 in test and line 2 of
traits, but its instantiation belongs to only traits, because the semantic runs
first in traits.
But the module traits never generate .obj, then the symbol ob X!().length will
be lost.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 30 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6744
Brad Roberts <braddr puremagic.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |braddr puremagic.com
---
What version of dmd ever built this code successfully?
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 23 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6744 PDT --- I have code with a similar error which compiled with 2.054 (or at least between the release of 2.054 and 2.055 - it compiled before, but it won't compile with 2.054 because it requires Phobos changes since 2.054 and it fails with 2.055 thanks to the compiler erroring out), but if this didn't compile with 2.054, then it's probably not quite the same bug, and I was premature in labeling it a regression. Unfortunately, I've failed to narrow down my code to a reasonable example for a bug report, so it's hard to be 100% certain that this is the same bug. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 23 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6744
Brad Roberts <braddr puremagic.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|regression |critical
---
I tried several points in time back to Jan 2010. None of them built the
example code. Without a known working version, it's not a regression.
Lowering to critical.
If you have code which went from working to not working and is valid code,
please add it to this report or file a new one.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 23 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6744
PDT ---
Well, I'm definitely confused. I finally managed to reduce my code to a
reasonably test case, but I can't find a version of the compiler where it
worked. So, I don't know what happened. My test case is pretty similar to
Kenji's though, so I expect that it's the same bug.
a.d
---
import b;
void main()
{
}
b.d
---
import std.exception;
enum E {a, b, c}
immutable int[E] aa;
shared static this()
{
int[E] temp;
temp[E.a] = 1;
temp[E.b] = 2;
temp[E.c] = 3;
aa = assumeUnique(temp);
}
a.o: In function
`_D6object30__T16AssociativeArrayTE1b1ETiZ16AssociativeArray6rehashMFNdZHE1b1Ei':
b.d:(.text._D6object30__T16AssociativeArrayTE1b1ETiZ16AssociativeArray6rehashMFNdZHE1b1Ei+0x37):
undefined reference to `_D16TypeInfo_HE1b1Ei6__initZ'
a.o: In function
`_D6object31__T16AssociativeArrayTE1b1ETyiZ16AssociativeArray6rehashMFNdZHE1b1Eyi':
b.d:(.text._D6object31__T16AssociativeArrayTE1b1ETyiZ16AssociativeArray6rehashMFNdZHE1b1Eyi+0x37):
undefined reference to `_D17TypeInfo_HE1b1Eyi6__initZ'
collect2: ld returned 1 exit status
--- errorlevel 1
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 23 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6744
Shahid <govellius gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |govellius gmail.com
void main()
{
enum E { a=1, b=2 }
// Fail at link
// undefined reference to `_Dmain1E6__initZ'
E[ string ] fail1 = [ "a":E.a, "b":E.b ];
string[ E ] fail2 = [ E.a:"a", E.b:"b" ];
// Works
enum { c=3, d=4 }
auto works1 = [ "c":c , "d":d ];
auto works2 = [ c:"c", d:"d" ];
}
---
Bug does not happen if "enum E" is moved out of main to module scope.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 10 2012
http://d.puremagic.com/issues/show_bug.cgi?id=6744
---- test.d
import traits;
void formatValue()() { string[char] aa; aa.length; }
void main() { formatValue(); }
---- traits.d
enum LOOKUP_LINKAGE =
[
'F': "D",
'U': "C",
'W': "Windows",
'V': "Pascal",
'R': "C++"
];
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Feb 17 2013
http://d.puremagic.com/issues/show_bug.cgi?id=6744-- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 17 2013









d-bugmail puremagic.com 