diff options
Diffstat (limited to 'tests/cpu-program')
| -rw-r--r-- | tests/cpu-program/pointer-deref.slang | 33 | ||||
| -rw-r--r-- | tests/cpu-program/pointer-deref.slang.expected | 6 |
2 files changed, 39 insertions, 0 deletions
diff --git a/tests/cpu-program/pointer-deref.slang b/tests/cpu-program/pointer-deref.slang new file mode 100644 index 000000000..34c6ba97f --- /dev/null +++ b/tests/cpu-program/pointer-deref.slang @@ -0,0 +1,33 @@ +//TEST:EXECUTABLE: +__target_intrinsic(cpp, "printf(\"%s\\n\", ($0).getBuffer())") +void writeln(String text); + +struct SubRecord +{ + int field2; + float field3; +} + +struct Record +{ + int field; + SubRecord sub; +} + +public __extern_cpp int main() +{ + Record rec; + Record *pRec = &rec; + pRec.field = 1; + pRec.sub.field2 = 2; + pRec.sub.field3 = 3.0f; + if (rec.field == 1 && rec.sub.field2 == 2 && pRec.sub.field3 == 3.0f) + { + writeln("success"); + } + else + { + writeln("fail"); + } + return 0; +}
\ No newline at end of file diff --git a/tests/cpu-program/pointer-deref.slang.expected b/tests/cpu-program/pointer-deref.slang.expected new file mode 100644 index 000000000..0eb55acbf --- /dev/null +++ b/tests/cpu-program/pointer-deref.slang.expected @@ -0,0 +1,6 @@ +result code = 0 +standard error = { +} +standard output = { +success +} |
