Bug 5592 – Previous definition different: __arrayExpSliceMulSliceAddass_d

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Windows
Creation time
2011-02-15T09:29:00Z
Last change time
2012-02-01T07:41:15Z
Assigned to
nobody
Creator
dsimcha

Comments

Comment #0 by dsimcha — 2011-02-15T09:29:27Z
From reading the disassembly it looks like every time __arrayExpSliceMulSliceAddass_d is used, the implementation gets put in the object file instead of just an exterm reference. main.d: import module1; void main() { double[] a, b; doStuff(a, b); a[0..b.length] += b[0] * b[0..a.length]; } module1.d: void doStuff(double[] arr1, double[] arr2) { arr1[0..arr2.length] += arr2[0] * arr2[0..arr1.length]; } Command lines: dmd -c main.d dmd -c module1.d dmd main.obj module1.obj Result: OPTLINK (R) for Win32 Release 8.00.8 Copyright (C) Digital Mars 1989-2010 All rights reserved. http://www.digitalmars.com/ctg/optlink.html module1.obj(module1) Offset 001FDH Record Type 00C3 Error 1: Previous Definition Different : __arrayExpSliceMulSliceAddass_d --- errorlevel 1
Comment #1 by bugzilla — 2011-02-15T23:30:31Z
Comment #2 by yebblies — 2011-06-15T00:11:35Z
*** Issue 3562 has been marked as a duplicate of this issue. ***
Comment #3 by yebblies — 2012-02-01T07:41:15Z
*** Issue 3683 has been marked as a duplicate of this issue. ***