digitalmars.D.bugs - [Issue 16313] New: Duplicate symbol generated
- via Digitalmars-d-bugs (44/44) Jul 23 2016 https://issues.dlang.org/show_bug.cgi?id=16313
https://issues.dlang.org/show_bug.cgi?id=16313 Issue ID: 16313 Summary: Duplicate symbol generated Product: D Version: D2 Hardware: x86_64 OS: Mac OS X Status: NEW Severity: major Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: jmalima69 gmail.com The compiler generates duplicated symbols for "my_array" in the following code snippet and causes the linker to fail. The issue is triggered by the circular reference in line 18 (which is perfectly legal btw). Commenting that line and the error goes away. This issue is present in 2.071.1 on OSX and windows at least, but not present in version 2.067.1, at least not in OSX or linux. 01 struct Foo { 02 int a; 03 immutable(Foo[])* b; 04 this(int _a, immutable(Foo[])* _b) 05 { 06 a = _a; 07 b = _b; 08 } 09 this(int _a) 10 { 11 this(_a, null); 12 } 13 }; 14 15 immutable Foo[] my_array = [ 16 Foo(1), 17 Foo(2), 18 Foo(3, &my_array), 19 ]; 20 21 void main() 22 { 23 int a = my_array[0].a; 24 } --
Jul 23 2016