From 8cde00a510a3cf129f73c559589cf5e36de63007 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Thu, 4 Sep 2008 03:20:13 +0000 Subject: Implement codegen of aggregates as lvalues in binary expressions, e.g. "(a = b).somefield". llvm-svn: 55758 --- clang/test/CodeGen/struct.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'clang/test/CodeGen/struct.c') diff --git a/clang/test/CodeGen/struct.c b/clang/test/CodeGen/struct.c index 9af684b1140..76d9b772742 100644 --- a/clang/test/CodeGen/struct.c +++ b/clang/test/CodeGen/struct.c @@ -69,7 +69,6 @@ typedef struct { int location; int length; } range; - extern range f6(); void f7() { @@ -166,3 +165,27 @@ struct __attribute__((packed)) S2839 { double a[19]; signed char b; } s2839[5]; struct __attribute__((packed)) SS { long double a; char b; } SS; + +/* As lvalue */ + +int f15() { + extern range f15_ext(); + return f15_ext().location; +} + +range f16() { + extern rangepair f16_ext(); + return f16_ext().range1; +} + +int f17() { + extern range f17_ext(); + range r; + return (r = f17_ext()).location; +} + +range f18() { + extern rangepair f18_ext(); + rangepair rp; + return (rp = f18_ext()).range1; +} -- cgit v1.2.3