view tests/mini/foreach9.d @ 1346:6f4154b318ef

Remove an old workaround that was kept around for ABI-compatibility on x86-64 between different LLVM versions. This means LLVM r67588 is required if you want to compile for x86-64, otherwise the backend will assert when you try to return e.g. struct { int i; char c; } from a function. (In particular, this is no longer compatible with LLVM 2.5) It also means that any code returning small structs on x86-64 will probably need to be recompiled in order to be linkable to code compiled with this change.
author Frits van Bommel <fvbommel wxs.nl>
date Tue, 12 May 2009 15:50:48 +0200
parents 45a67b6f1310
children
line wrap: on
line source

module mini.foreach9;
extern(C) int printf(char* str, ...);

struct array2d(T) {
  int test() {
    printf("%p\n", cast(void*) this);
    foreach (x; *this) {
      printf("%p\n", cast(void*) this);
    }
    return true;
  }
  int opApply(int delegate(ref int) dg) {
    int x;
    return dg(x), 0;
  }
}

unittest {
  array2d!(int) test;
  test.test();
  //int i = 0; i /= i;
}

void main() { }