]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/testsuite/g++.old-deja/g++.abi/aggregates.C
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / testsuite / g++.old-deja / g++.abi / aggregates.C
diff --git a/gcc/testsuite/g++.old-deja/g++.abi/aggregates.C b/gcc/testsuite/g++.old-deja/g++.abi/aggregates.C
deleted file mode 100644 (file)
index 7b7d263..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-// Skip if not target: i?86-*-linux* i?86-*-freebsd*
-// Special g++ Options: -malign-double
-// Origin: Alex Samuel <samuel@codesourcery.com>
-
-/* Test the data layout of C aggregates by checking aggregate size and
-   alignment and field offsets for compliance with the IA-64 ABI.  */
-
-template<typename T>
-inline unsigned
-alignmentof ()
-{
-  struct S
-  {
-    char start_;
-    T object_;
-  };
-
-  return (unsigned) & ((S *) 0)->object_;
-}
-
-/* Computes the alignment, in bytes, of TYPE.  */
-
-#define alignof(type) (alignmentof<type> ())
-
-/* Computes the offset of FIELD in AGGREGATE.  */
-
-#define offsetof(aggregate, field) \
-  ((unsigned) (& ((aggregate*) 0)->field))
-
-
-/* Structs S1, S2, S3, S4, and union U5 are taken from Intel, "IA-64
-   Software Conventions and Runtime Architecture Guide", version of
-   August 1999.  */
-
-struct S1
-{
-  char c;
-};
-
-struct S2
-{
-  char c;
-  char d;
-  short s;
-  int n;
-};
-
-struct S3
-{
-  char c;
-  short s;
-};
-
-struct S4
-{
-  char c;
-  double d;
-  short s;
-};
-
-union U5
-{
-  char c;
-  short s;
-  int j;
-};
-
-
-
-int
-main ()
-{
-  if (sizeof (struct S1)               !=  1)
-    return 1;
-  if (alignof (struct S1)              !=  1)
-    return 2;
-  if (offsetof (struct S1, c)          !=  0)
-    return 3;
-  
-  if (sizeof (struct S2)               !=  8)
-    return 4;
-  if (alignof (struct S2)              !=  4)
-    return 5;
-  if (offsetof (struct S2, c)          !=  0)
-    return 6;
-  if (offsetof (struct S2, d)          !=  1)
-    return 7;
-  if (offsetof (struct S2, s)          !=  2)
-    return 8;
-  if (offsetof (struct S2, n)          !=  4)
-    return 9;
-  
-  if (sizeof (struct S3)               !=  4)
-    return 10;
-  if (alignof (struct S3)              !=  2)
-    return 11;
-  if (offsetof (struct S3, c)          !=  0)
-    return 12;
-  if (offsetof (struct S3, s)          !=  2)
-    return 13;
-  
-  if (sizeof (struct S4)               != 24)
-    return 14;
-  if (alignof (struct S4)              !=  8)
-    return 15;
-  if (offsetof (struct S4, c)          !=  0)
-    return 16;
-  if (offsetof (struct S4, d)          !=  8)
-    return 17;
-  if (offsetof (struct S4, s)          != 16)
-    return 18;
-  
-  if (sizeof (union U5)                        !=  4)
-    return 19;
-  if (alignof (union U5)               !=  4)
-    return 20;
-  if (offsetof (union U5, c)           !=  0)
-    return 21;
-  if (offsetof (union U5, s)           !=  0)
-    return 22;
-  if (offsetof (union U5, j)           !=  0)
-    return 23;
-  
-  return 0;
-}