From 11b29eff99910d55a54658b8a1d053cc4ec076fc Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 4 Aug 2022 14:05:02 -0700 Subject: Implicit pointer dereference when using member operator. (#2348) * Implicit pointer dereference when using member operator. * Add expected test result * Fix lookup. Co-authored-by: Yong He --- tests/cpu-program/pointer-deref.slang | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 tests/cpu-program/pointer-deref.slang (limited to 'tests/cpu-program/pointer-deref.slang') 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 -- cgit v1.2.3