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 ++++++++++++++++++++++++++ tests/cpu-program/pointer-deref.slang.expected | 6 +++++ 2 files changed, 39 insertions(+) create mode 100644 tests/cpu-program/pointer-deref.slang create mode 100644 tests/cpu-program/pointer-deref.slang.expected (limited to 'tests/cpu-program') 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 +} -- cgit v1.2.3