diff dmd/Util.d @ 129:010eb8f0e18d

further work on dmd test suite
author korDen
date Sun, 05 Sep 2010 15:32:22 +0400
parents 9e39c7de8438
children 60bb0fe4563e
line wrap: on
line diff
--- a/dmd/Util.d	Sat Sep 04 01:33:05 2010 +0100
+++ b/dmd/Util.d	Sun Sep 05 15:32:22 2010 +0400
@@ -14,6 +14,9 @@
 import std.process : getenv;
 import std.c.string;
 import std.stdio : writef, writefln, write;
+
+import core.memory;
+
 version (Windows)
 {
     import std.c.process : spawnl, spawnlp;
@@ -99,6 +102,17 @@
     global.errors++;
 }
 
+T cloneThis(T)(T ptr)
+{
+	// similar code is used in Type.clone()
+	// TODO: move to Util or something...
+	size_t size = __traits(classInstanceSize, T);
+	void* mem = GC.malloc(size);
+	memcpy(mem, cast(void*)ptr, size);
+	
+	return cast(T)mem;
+}
+
 char* strupr(char* s)
 {
     char* t = s;