ldc/tests/dynamiccompile/asm_output.d

52 lines
1 KiB
D

// RUN: %ldc -enable-dynamic-compile -run %s
import std.stdio;
import std.array;
import std.string;
import ldc.attributes;
import ldc.dynamic_compile;
__gshared int value = 32;
@dynamicCompile int foo()
{
return value;
}
@dynamicCompile int bar()
{
return 7;
}
@dynamicCompile int baz()
{
return 8;
}
void main(string[] args)
{
auto dump = appender!string();
CompilerSettings settings;
settings.dumpHandler = (DumpStage stage, in char[] str)
{
if (DumpStage.FinalAsm == stage)
{
write(str);
dump.put(str);
}
};
writeln("===========================================");
compileDynamicCode(settings);
writeln();
writeln("===========================================");
stdout.flush();
// Check function and variables names in asm
assert(1 == count(dump.data, foo.mangleof));
assert(1 == count(dump.data, bar.mangleof));
assert(1 == count(dump.data, baz.mangleof));
assert(count(dump.data, value.mangleof) > 0);
assert(1 == count(dump.data, "7"));
assert(1 == count(dump.data, "8"));
}