Bug 382 – Critical "Previous definition different" bug

Status
RESOLVED
Resolution
FIXED
Severity
blocker
Priority
P1
Component
dmd
Product
D
Version
D1 (retired)
Platform
x86
OS
Windows
Creation time
2006-09-27T14:57:00Z
Last change time
2014-02-15T13:22:14Z
Keywords
link-failure
Assigned to
bugzilla
Creator
boris.kolar

Comments

Comment #0 by boris.kolar — 2006-09-27T14:57:23Z
Steps to reproduce: 1. Create 2 files (Site.d and Tools.d): [Site.d] module Site; import Tools; void test(List!(char) list) {} [Tools.d] module Tools; struct List(T) { interface A {} } int main(char[][] args) { List!(char) list; return 0; } 2. Now compile using the following commands: # dmd.exe -c Site.d # dmd.exe -c Tools.d # dmd.exe bug.exe Site.obj Tools.obj ... should report error "Previous definition different" I market this bug as blocker, because I know of no workaround (at least one that would work with compiling files one by one).
Comment #1 by smjg — 2006-09-27T15:58:32Z
So the error message is just "Previous definition different" with no indication of what or where???
Comment #2 by boris.kolar — 2006-09-28T05:15:03Z
Full compiler output: # dmd.exe -v -c Site.d parse Site semantic Site semantic2 Site semantic3 Site code Site generating code for function 'test' # dmd.exe -v -c Tools.d parse Tools semantic Tools semantic2 Tools semantic3 Tools code Tools generating code for function 'main' # dmd.exe -v bug.exe Site.obj Tools.obj C:\Home\Programs\D\dmd\bin\..\..\dm\bin\link.exe Site+Tools,Bug.exe,,user32+kernel32/noi; OPTLINK (R) for Win32 Release 7.50B1 Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved Tools.obj(Tools) Offset 00178H Record Type 0091 Error 1: Previous Definition Different : __Interface_5Tools11__T4ListTaZ4List1A --- errorlevel 1
Comment #3 by bugzilla — 2006-10-10T03:28:30Z
Fixed DMD 0.169