[Issue 8072] New: Methods defined in external object files when template alias parameter is involved
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed May 9 08:04:47 PDT 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8072
Summary: Methods defined in external object files when template
alias parameter is involved
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Keywords: wrong-code
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: leandro.lucarella at sociomantic.com
CC: bugzilla at digitalmars.com, clugdbug at yahoo.com.au
Depends on: 8016
--- Comment #0 from Leandro Lucarella <leandro.lucarella at sociomantic.com> 2012-05-09 08:06:08 PDT ---
+++ This issue was initially created as a clone of Issue #8016 +++
Testcase:
m1.d
---
module m1;
import m2;
private void t(alias Code)()
{
return Code();
}
void f()
{
t!( () { } )();
}
// The forceSemanti() and static assert is only needed to reproduce it in D2
bool forceSemantic()
{
f();
return true;
}
static assert(forceSemantic());
void main()
{
}
---
m2.d
---
module m2;
import m1;
---
dmd -c m1.d
dmd -c m2.d
dmd -ofm m1.o m2.o
m2.o: In function `_D2m11fFZv':
m2.d:(.text._D2m11fFZv+0x0): multiple definition of `_D2m11fFZv'
m1.o:m1.d:(.text._D2m11fFZv+0x0): first defined here
collect2: ld returned 1 exit status
--- errorlevel 1
nm m1.o | grep ' T'
0000000000000000 T _D2m113forceSemanticFZb
0000000000000000 T _D2m115__unittest_failFiZv
0000000000000000 T _D2m11fFZv
0000000000000000 T _D2m11fFZv9__lambda1FNaNbNfZv
0000000000000000 T _D2m17__arrayZ
0000000000000000 T _D2m18__assertFiZv
0000000000000000 T _Dmain
nm m2.o | grep ' T'
0000000000000000 T _D2m11fFZv
0000000000000000 T _D2m11fFZv9__lambda3FNaNbNfZv
I think neither D2m11fFZv or _D2m11fFZv9__lambda3FNaNbNfZv should be defined in
m2.
Confirmed to be D2-only.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list