view test/arrays8.d @ 217:0806379a5eca trunk

[svn r233] Added: -oq command line option for writing fully qualified object names. Added: started support for x86 80bit floating point. Changed: aggregates passed by value now use the llvm 'byval' parameter attribute, also lays ground work for using other attributes. Changed: eliminated a lot more std::vectorS, these showed up pretty much at the top when profiling! Changed: performed other misc. cleanups. Changed: halt expression now call the new llvm trap intrinsic instead of an assert(0). Changed: dstress suite now passes -O0 by default, this only eliminates unreferenced globals, which speeds up linking quite a bit.
author lindquist
date Thu, 05 Jun 2008 06:38:36 +0200
parents c44e6a711885
children
line wrap: on
line source

module arrays8;

extern(C) int printf(char*, ...);

void main()
{
    char[] a = "hello ";
    printf("  \"%s\".length = %u\n", a.ptr, a.length);
    char[] b = "world";
    printf("  \"%s\".length = %u\n", b.ptr, b.length);
    char[] c = a ~ b;
    printf("After 'a ~ b':\n");
    printf("  \"%.*s\".length = %u\n", a.length, a.ptr, a.length);
    printf("  \"%.*s\".length = %u\n", b.length, b.ptr, b.length);
    printf("  \"%.*s\".length = %u\n", c.length, c.ptr, c.length);
    assert(c.length == a.length + b.length);
    assert(c !is a);
    assert(c !is b);
}