232 – Invalid v-tables :(

D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.
Issue 232 - Invalid v-tables :(
Summary: Invalid v-tables :(
Status: RESOLVED FIXED
Alias: None
Product: D
Classification: Unclassified
Component: dmd (show other issues)
Version: D1 (retired)
Hardware: x86 Windows
: P2 critical
Assignee: Walter Bright
URL:
Keywords: wrong-code
Depends on:
Blocks:
Reported: 2006年06月29日 18:17 UTC by Tomasz Stachowiak
Modified: 2014年02月15日 13:20 UTC (History)
0 users

See Also:


Attachments
Add an attachment (proposed patch, testcase, etc.)

Note You need to log in before you can comment on or make changes to this issue.
Description Tomasz Stachowiak 2006年06月29日 18:17:14 UTC
// main.d ----
private import someClass;
private import std.stdio;
private template OneBadMixin() {
	void theEvilFunction() {
		assert (false);
	}
}
void main()
{
	auto x = new SomeClass;
	x.goodFunc();
}
// ----
// someClass.d ----
private import main;
template BadMixinArgh() {
	void goodFunc() {}
}
class SomeClass {
	mixin BadMixinArgh;
	mixin OneBadMixin;
}
// ----
sh-2.04$ dmd main.d someClass.d && ./main.exe
d:\coding\dmd\bin\..\..\dm\bin\link.exe main+someClass,,,user32+kernel32/noi;
Error: AssertError Failure main.d(7)
This bug has existed in D for more than a year. The previous reports used class-local imports, but the issue is exactly the same with mixins. Could we finally get a fix ? :(


AltStyle によって変換されたページ (->オリジナル) /