Mercurial > projects > ldc
view tests/mini/bug34.d @ 1621:fb2e6707ad17
Merge DMD r314+r315: bugzilla 2029 Typesafe variadic functions don't...
Both DMD revisions are for fixing bugzilla 2029 (Typesafe variadic
functions don't work in CTFE).
The DMD r314 commit message is:
bugzilla 2029 (Typesafe variadic functions don't work in CTFE
The DMD r315 commit message is:
bugzilla 2029 - try again
---
dmd/constfold.c | 11 ++++-
dmd/declaration.c | 21 +++++++++-
dmd/declaration.h | 10 ++++-
dmd/expression.c | 1 +
dmd/interpret.c | 111 +++++++++++++++++++++++++++++++++++++++++++++--------
dmd/mars.h | 2 +-
dmd/mtype.c | 2 +-
7 files changed, 135 insertions(+), 23 deletions(-)
author | Leandro Lucarella <llucax@gmail.com> |
---|---|
date | Wed, 06 Jan 2010 15:18:22 -0300 |
parents | 1bb99290e03a |
children |
line wrap: on
line source
module bug34; class MyTypeInfo_Pointer { char[] toString() { return m_next.toString() ~ "*"; } int opEquals(Object o) { TypeInfo_Pointer c; return this is o || ((c = cast(TypeInfo_Pointer)o) !is null && this.m_next == c.m_next); } hash_t getHash(void *p) { return cast(uint)*cast(void* *)p; } int equals(void *p1, void *p2) { return cast(int)(*cast(void* *)p1 == *cast(void* *)p2); } int compare(void *p1, void *p2) { if (*cast(void* *)p1 < *cast(void* *)p2) return -1; else if (*cast(void* *)p1 > *cast(void* *)p2) return 1; else return 0; } size_t tsize() { return (void*).sizeof; } void swap(void *p1, void *p2) { void* tmp; tmp = *cast(void**)p1; *cast(void**)p1 = *cast(void**)p2; *cast(void**)p2 = tmp; } TypeInfo next() { return m_next; } uint flags() { return 1; } TypeInfo m_next; } void main() { }