diff gcc/testsuite/c-c++-common/dfp/struct-layout-1.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/c-c++-common/dfp/struct-layout-1.c	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,71 @@
+#include <stdarg.h>
+#include "dfp-dbg.h"
+
+struct S1
+{
+  _Decimal64 a[0];
+};
+
+struct S2
+{
+  struct
+  {
+    _Decimal64 e;
+  } b[0];
+};
+
+struct S3
+{
+  union
+  {
+    _Decimal64 c;
+  } a[0];
+};
+
+struct S4
+{
+  int a[0];
+  _Decimal64 b[0];
+};
+
+struct S5
+{
+  union
+  {
+    _Decimal64 c[0];
+  } a;
+};
+
+int check_var (int z, ...)
+{
+  long long result;
+  va_list ap;
+  va_start (ap, z);
+  va_arg (ap, struct S1);
+  result = va_arg (ap, long long);
+  va_end (ap);
+
+  return (result == 2LL);
+}
+
+int main ()
+{
+  struct S1 s1;
+  struct S2 s2;
+  struct S3 s3;
+  struct S4 s4;
+  struct S5 s5;
+
+  if (check_var (2, s1, 2LL) == 0)
+    FAILURE;
+  if (check_var (2, s2, 2LL) == 0)
+    FAILURE;
+  if (check_var (2, s3, 2LL) == 0)
+    FAILURE;
+  if (check_var (2, s4, 2LL) == 0)
+    FAILURE;
+  if (check_var (2, s5, 2LL) == 0)
+    FAILURE;
+
+  FINISH
+}