changeset 614:e375e824c620

Assertion failure: '!v->csym' on line 387 in file 'glue.c' Sean Kelly <sean@f4.ca> 2005-08-01 news:dclojd$6ak$1@digitaldaemon.com
author thomask
date Sat, 06 Aug 2005 14:32:30 +0000
parents 93eb1400acc5
children 015847a6fe3d
files run/b/bug_glue_387_A.d run/b/bug_glue_387_B.d run/b/bug_glue_387_C.d run/b/bug_glue_387_D.d
diffstat 4 files changed, 214 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/b/bug_glue_387_A.d	Sat Aug 06 14:32:30 2005 +0000
@@ -0,0 +1,54 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Sean Kelly <sean@f4.ca>
+// @date@	2005-08-01
+// @uri@	news:dclojd$6ak$1@digitaldaemon.com
+// @desc@	Assertion failure: '!v->csym' on line 387 in file 'glue.c'
+
+module dstress.run.b.bug_glue_387_A;
+
+enum msync{
+    acq,
+    rel,
+}
+
+template atomicStore(T, msync ms){
+	 void atomicStore(T val){
+		volatile asm{
+			mov EAX, val;
+		}
+	}
+}
+
+struct Atomic(T){
+	template store(msync ms){
+		void store(){
+			atomicStore!(T, ms)(m_val);
+		}
+	}
+
+	T m_val;
+}
+
+template testStore(T, msync ms){
+	void testStore(){
+		T base;
+		Atomic!(T) atom;
+		assert(atom.m_val == base);
+		atom.store!(ms)();
+	}
+}
+
+template testType(T){
+	void testType(){
+		testStore!(T, msync.acq)();
+		testStore!(T, msync.rel)();
+	}
+}
+
+int main(){
+	testType!(int)();
+	return 0;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/b/bug_glue_387_B.d	Sat Aug 06 14:32:30 2005 +0000
@@ -0,0 +1,54 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Sean Kelly <sean@f4.ca>
+// @date@	2005-08-01
+// @uri@	news:dclojd$6ak$1@digitaldaemon.com
+// @desc@	Assertion failure: '!v->csym' on line 387 in file 'glue.c'
+
+module dstress.run.b.bug_glue_387_B;
+
+enum msync{
+    acq,
+    rel,
+}
+
+template atomicStore(T, msync ms){
+	 void atomicStore(T val){
+		asm{
+			mov EAX, val;
+		}
+	}
+}
+
+struct Atomic(T){
+	template store(msync ms){
+		void store(){
+			atomicStore!(T, ms)(m_val);
+		}
+	}
+
+	T m_val;
+}
+
+template testStore(T, msync ms){
+	void testStore(){
+		T base;
+		Atomic!(T) atom;
+		assert(atom.m_val == base);
+		atom.store!(ms)();
+	}
+}
+
+template testType(T){
+	void testType(){
+		testStore!(T, msync.acq)();
+		testStore!(T, msync.rel)();
+	}
+}
+
+int main(){
+	testType!(int)();
+	return 0;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/b/bug_glue_387_C.d	Sat Aug 06 14:32:30 2005 +0000
@@ -0,0 +1,53 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Sean Kelly <sean@f4.ca>
+// @date@	2005-08-01
+// @uri@	news:dclojd$6ak$1@digitaldaemon.com
+// @desc@	Assertion failure: '!v->csym' on line 387 in file 'glue.c'
+
+module dstress.run.b.bug_glue_387_C;
+
+enum msync{
+    acq,
+    rel,
+}
+
+template atomicStore(T, msync ms){
+	 void atomicStore(T val){
+		volatile asm{
+			mov EAX, val;
+		}
+	}
+}
+
+struct Atomic(T){
+	template store(msync ms){
+		void store(){
+			atomicStore!(T, ms)(m_val);
+		}
+	}
+
+	T m_val;
+}
+
+template testStore(T, msync ms){
+	void testStore(){
+		T base;
+		Atomic!(T) atom;
+		assert(atom.m_val == base);
+		atom.store!(ms)();
+	}
+}
+
+template testType(T){
+	void testType(){
+		testStore!(T, msync.acq)();
+	}
+}
+
+int main(){
+	testType!(int)();
+	return 0;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/b/bug_glue_387_D.d	Sat Aug 06 14:32:30 2005 +0000
@@ -0,0 +1,53 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Sean Kelly <sean@f4.ca>
+// @date@	2005-08-01
+// @uri@	news:dclojd$6ak$1@digitaldaemon.com
+// @desc@	Assertion failure: '!v->csym' on line 387 in file 'glue.c'
+
+module dstress.run.b.bug_glue_387_C;
+
+enum msync{
+    acq,
+    rel,
+}
+
+template atomicStore(T, msync ms){
+	 void atomicStore(T val){
+		volatile asm{
+			mov EAX, val;
+		}
+	}
+}
+
+struct Atomic(T){
+	template store(msync ms){
+		void store(){
+			atomicStore!(T, ms)(m_val);
+		}
+	}
+
+	T m_val;
+}
+
+template testStore(T, msync ms){
+	void testStore(){
+		T base;
+		Atomic!(T) atom;
+		assert(atom.m_val == base);
+		atom.store!(ms)();
+	}
+}
+
+template testType(T){
+	void testType(){
+		testStore!(T, msync.rel)();
+	}
+}
+
+int main(){
+	testType!(int)();
+	return 0;
+}
\ No newline at end of file