summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/struct-ret-1.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-08-19 07:34:40 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-08-19 07:34:40 +0000
commit912f9e817e0492ddc2a1c6ee4f41a427b43cf440 (patch)
tree335fa7ed68bccaabc938e142eabc167ac296372e /gcc/testsuite/gcc.dg/struct-ret-1.c
parentd3739bcdc296c9e9dbebea8ef89de4479bdfb4ad (diff)
downloadgcc-912f9e817e0492ddc2a1c6ee4f41a427b43cf440.tar.gz
Initial revision
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14840 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg/struct-ret-1.c')
-rw-r--r--gcc/testsuite/gcc.dg/struct-ret-1.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/struct-ret-1.c b/gcc/testsuite/gcc.dg/struct-ret-1.c
new file mode 100644
index 00000000000..f581aad07d2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/struct-ret-1.c
@@ -0,0 +1,45 @@
+/* { dg-do run { target hppa*-*-* } } */
+/* { dg-options { -O2 } { target hppa*-*-* } } */
+typedef struct {
+ int x;
+ int y;
+} point_t;
+
+int main(int argc, char *argv[]);
+int printPoints(point_t a, point_t b);
+point_t toPoint(int x1, int y1);
+
+int
+main(int argc, char *argv[])
+{
+
+ if (printPoints(toPoint(0, 0), toPoint(1000, 1000)) != 1)
+ abort();
+ else
+ exit();
+
+ return 0;
+}
+
+int
+printPoints(point_t a, point_t b)
+{
+ if (a.x != 0
+ || a.y != 0
+ || b.x != 1000
+ || b.y != 1000)
+ return 0;
+ else
+ return 1;
+}
+
+point_t
+toPoint(int x1, int y1)
+{
+ point_t p;
+
+ p.x = x1;
+ p.y = y1;
+
+ return p;
+}