]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
cast.C: Change fields of structures to "long" to pass the test on targets with...
authorUros Bizjak <ubizjak@gmail.com>
Sun, 15 Aug 2010 17:14:56 +0000 (19:14 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Sun, 15 Aug 2010 17:14:56 +0000 (19:14 +0200)
* g++.dg/cast.C: Change fields of structures to "long" to pass
the test on targets with STRUCTURE_SIZE_BOUNDARY != BITS_PER_UNIT.
* g++.dg/cpp0x/iop.C: Ditto.
* g++.dg/cpp0x/named_refs.C: Ditto.
* g++.dg/cpp0x/rv1p.C: Ditto.
* g++.dg/cpp0x/rv2p.C: Ditto.
* g++.dg/cpp0x/rv3p.C: Ditto.
* g++.dg/cpp0x/rv4p.C: Ditto.
* g++.dg/cpp0x/rv5p.C: Ditto.
* g++.dg/cpp0x/rv6p.C: Ditto.
* g++.dg/cpp0x/rv7p.C: Ditto.
* g++.dg/cpp0x/rv8p.C: Ditto.
* g++.dg/cpp0x/unnamed_refs.C: Ditto.

From-SVN: r163265

13 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/cast.C
gcc/testsuite/g++.dg/cpp0x/iop.C
gcc/testsuite/g++.dg/cpp0x/named_refs.C
gcc/testsuite/g++.dg/cpp0x/rv1p.C
gcc/testsuite/g++.dg/cpp0x/rv2p.C
gcc/testsuite/g++.dg/cpp0x/rv3p.C
gcc/testsuite/g++.dg/cpp0x/rv4p.C
gcc/testsuite/g++.dg/cpp0x/rv5p.C
gcc/testsuite/g++.dg/cpp0x/rv6p.C
gcc/testsuite/g++.dg/cpp0x/rv7p.C
gcc/testsuite/g++.dg/cpp0x/rv8p.C
gcc/testsuite/g++.dg/cpp0x/unnamed_refs.C

index 47d8759cbc9a5022d6c5b0eb54be9d2c8e3702ec..d52e206252cdbbc16b31568231eeaf528d4cbc34 100644 (file)
@@ -1,3 +1,19 @@
+2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       * g++.dg/cast.C: Change fields of structures to "long" to pass
+       the test on targets with STRUCTURE_SIZE_BOUNDARY != BITS_PER_UNIT.
+       * g++.dg/cpp0x/iop.C: Ditto.
+       * g++.dg/cpp0x/named_refs.C: Ditto.
+       * g++.dg/cpp0x/rv1p.C: Ditto.
+       * g++.dg/cpp0x/rv2p.C: Ditto.
+       * g++.dg/cpp0x/rv3p.C: Ditto.
+       * g++.dg/cpp0x/rv4p.C: Ditto.
+       * g++.dg/cpp0x/rv5p.C: Ditto.
+       * g++.dg/cpp0x/rv6p.C: Ditto.
+       * g++.dg/cpp0x/rv7p.C: Ditto.
+       * g++.dg/cpp0x/rv8p.C: Ditto.
+       * g++.dg/cpp0x/unnamed_refs.C: Ditto.
+
 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/45262
index 4cc7f2edcf85e5634db7e9ea57a12ad4a8e78970..9162d09f3fd071c3ee46b1399411a8b9cc6f0fa3 100644 (file)
@@ -8,8 +8,8 @@
 template <bool> struct sa;
 template <> struct sa<true> {};
 
-struct one   {char x[1];};
-struct two   {char x[2];};
+struct one   {long x[1];};
+struct two   {long x[2];};
 
 struct A {};
 
@@ -19,8 +19,8 @@ two foo(A&&)      {return two();}
 int test1()
 {
     A a;
-    sa<sizeof(foo(a)) == 1> t1;
-    sa<sizeof(foo(static_cast<A&&>(a))) == 2> t2;
+    sa<sizeof(foo(a)) == 1 * sizeof(long)> t1;
+    sa<sizeof(foo(static_cast<A&&>(a))) == 2 * sizeof(long)> t2;
     return 0;
 }
 
index 5aecf9f504e6f9da7151b9e76d041c65b91d798c..834cd314abe1cea3e483af8af0a11b5736b685d3 100644 (file)
@@ -12,8 +12,8 @@
 template <bool> struct sa;
 template <> struct sa<true> {};
 
-struct one   {char x[1];};
-struct two   {char x[2];};
+struct one   {long x[1];};
+struct two   {long x[2];};
 
 struct os
 {
@@ -30,7 +30,7 @@ two operator<<(os&, const A&);
 void test()
 {
     os o;
-    sa<sizeof(o << 1) == 1> t1;  // Calls os::operator<<(int)
+    sa<sizeof(o << 1) == 1 * sizeof(long)> t1;  // Calls os::operator<<(int)
                                  // Would be ambiguous if the implicit object parameter
                                  // was an rvalue reference.
 }
index 96d7e787f0608c5b98f740966d96ea8f4ca90d10..fe43e17c31c3112ede1f1d1f1dcff8303d96cba3 100644 (file)
@@ -8,8 +8,8 @@
 template <bool> struct sa;
 template <> struct sa<true> {};
 
-struct one   {char x[1];};
-struct two   {char x[2];};
+struct one   {long x[1];};
+struct two   {long x[2];};
 
 struct A {};
 
@@ -18,7 +18,7 @@ two foo(A&&)      {return two();}
 
 int test1(A&& a)
 {
-    sa<sizeof(foo(a)) == 1> t1;
+  sa<sizeof(foo(a)) == 1 * sizeof(long)> t1;
     return 0;
 }
 
index 6241885654ec93b964a564205e90b3324cdcec57..972f7675d3845841c17313d487dc5929518ae564 100644 (file)
@@ -8,14 +8,14 @@
 template <bool> struct sa;
 template <> struct sa<true> {};
 
-struct one   {char x[1];};
-struct two   {char x[2];};
-struct three {char x[3];};
-struct four  {char x[4];};
-struct five  {char x[5];};
-struct six   {char x[6];};
-struct seven {char x[7];};
-struct eight {char x[8];};
+struct one   {long x[1];};
+struct two   {long x[2];};
+struct three {long x[3];};
+struct four  {long x[4];};
+struct five  {long x[5];};
+struct six   {long x[6];};
+struct seven {long x[7];};
+struct eight {long x[8];};
 
 struct A
 {
@@ -38,7 +38,7 @@ int test1_1()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_1_1(a))           == 1> t1;
+    sa<sizeof(sink_1_1(a))           == 1 * sizeof(long)> t1;
     return 0;
 }
 
@@ -50,10 +50,10 @@ int test1_2()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_1_2(a))           == 2> t1;
-    sa<sizeof(sink_1_2(ca))          == 2> t2;
-    sa<sizeof(sink_1_2(source()))    == 2> t5;
-    sa<sizeof(sink_1_2(c_source()))  == 2> t6;
+    sa<sizeof(sink_1_2(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_1_2(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_1_2(source()))    == 2 * sizeof(long)> t5;
+    sa<sizeof(sink_1_2(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -65,8 +65,8 @@ int test1_3()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_1_3(a))           == 3> t1;
-    sa<sizeof(sink_1_3(va))          == 3> t3;
+    sa<sizeof(sink_1_3(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_1_3(va))          == 3 * sizeof(long)> t3;
     return 0;
 }
 
@@ -78,10 +78,10 @@ int test1_4()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_1_4(a))           == 4> t1;
-    sa<sizeof(sink_1_4(ca))          == 4> t2;
-    sa<sizeof(sink_1_4(va))          == 4> t3;
-    sa<sizeof(sink_1_4(cva))         == 4> t4;
+    sa<sizeof(sink_1_4(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_1_4(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_1_4(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_1_4(cva))         == 4 * sizeof(long)> t4;
     return 0;
 }
 
@@ -93,8 +93,8 @@ int test1_5()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_1_5(a))           == 5> t1;
-    sa<sizeof(sink_1_5(source()))    == 5> t5;
+    sa<sizeof(sink_1_5(a))           == 5 * sizeof(long)> t1;
+    sa<sizeof(sink_1_5(source()))    == 5 * sizeof(long)> t5;
     return 0;
 }
 
@@ -106,10 +106,10 @@ int test1_6()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_1_6(a))           == 6> t1;
-    sa<sizeof(sink_1_6(ca))          == 6> t2;
-    sa<sizeof(sink_1_6(source()))    == 6> t5;
-    sa<sizeof(sink_1_6(c_source()))  == 6> t6;
+    sa<sizeof(sink_1_6(a))           == 6 * sizeof(long)> t1;
+    sa<sizeof(sink_1_6(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_1_6(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_1_6(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -121,10 +121,10 @@ int test1_7()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_1_7(a))           == 7> t1;
-    sa<sizeof(sink_1_7(va))          == 7> t3;
-    sa<sizeof(sink_1_7(source()))    == 7> t5;
-    sa<sizeof(sink_1_7(v_source()))  == 7> t7;
+    sa<sizeof(sink_1_7(a))           == 7 * sizeof(long)> t1;
+    sa<sizeof(sink_1_7(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_1_7(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_1_7(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -136,14 +136,14 @@ int test1_8()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_1_8(a))           == 8> t1;
-    sa<sizeof(sink_1_8(ca))          == 8> t2;
-    sa<sizeof(sink_1_8(va))          == 8> t3;
-    sa<sizeof(sink_1_8(cva))         == 8> t4;
-    sa<sizeof(sink_1_8(source()))    == 8> t5;
-    sa<sizeof(sink_1_8(c_source()))  == 8> t6;
-    sa<sizeof(sink_1_8(v_source()))  == 8> t7;
-    sa<sizeof(sink_1_8(cv_source())) == 8> t8;
+    sa<sizeof(sink_1_8(a))           == 8 * sizeof(long)> t1;
+    sa<sizeof(sink_1_8(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_1_8(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_1_8(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_1_8(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_1_8(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_1_8(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_1_8(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
index 0d12aac75e149a86d13ef75314d0620a7f72c798..3bca73af2da5cf6b815c1a1cf4039e8bb00abb38 100644 (file)
@@ -8,14 +8,14 @@
 template <bool> struct sa;
 template <> struct sa<true> {};
 
-struct one   {char x[1];};
-struct two   {char x[2];};
-struct three {char x[3];};
-struct four  {char x[4];};
-struct five  {char x[5];};
-struct six   {char x[6];};
-struct seven {char x[7];};
-struct eight {char x[8];};
+struct one   {long x[1];};
+struct two   {long x[2];};
+struct three {long x[3];};
+struct four  {long x[4];};
+struct five  {long x[5];};
+struct six   {long x[6];};
+struct seven {long x[7];};
+struct eight {long x[8];};
 
 struct A
 {
@@ -39,10 +39,10 @@ int test2_12()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_12(a))           == 1> t1;
-    sa<sizeof(sink_2_12(ca))          == 2> t2;
-    sa<sizeof(sink_2_12(source()))    == 2> t5;
-    sa<sizeof(sink_2_12(c_source()))  == 2> t6;
+    sa<sizeof(sink_2_12(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_2_12(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_2_12(source()))    == 2 * sizeof(long)> t5;
+    sa<sizeof(sink_2_12(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -55,8 +55,8 @@ int test2_13()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_13(a))           == 1> t1;
-    sa<sizeof(sink_2_13(va))          == 3> t3;
+    sa<sizeof(sink_2_13(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_2_13(va))          == 3 * sizeof(long)> t3;
     return 0;
 }
 
@@ -69,10 +69,10 @@ int test2_14()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_14(a))           == 1> t1;
-    sa<sizeof(sink_2_14(ca))          == 4> t2;
-    sa<sizeof(sink_2_14(va))          == 4> t3;
-    sa<sizeof(sink_2_14(cva))         == 4> t4;
+    sa<sizeof(sink_2_14(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_2_14(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_2_14(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_2_14(cva))         == 4 * sizeof(long)> t4;
     return 0;
 }
 
@@ -85,8 +85,8 @@ int test2_15()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_15(a))           == 1> t1;
-    sa<sizeof(sink_2_15(source()))    == 5> t5;
+    sa<sizeof(sink_2_15(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_2_15(source()))    == 5 * sizeof(long)> t5;
     return 0;
 }
 
@@ -99,10 +99,10 @@ int test2_16()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_16(a))           == 1> t1;
-    sa<sizeof(sink_2_16(ca))          == 6> t2;
-    sa<sizeof(sink_2_16(source()))    == 6> t5;
-    sa<sizeof(sink_2_16(c_source()))  == 6> t6;
+    sa<sizeof(sink_2_16(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_2_16(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_2_16(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_2_16(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -115,10 +115,10 @@ int test2_17()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_17(a))           == 1> t1;
-    sa<sizeof(sink_2_17(va))          == 7> t3;
-    sa<sizeof(sink_2_17(source()))    == 7> t5;
-    sa<sizeof(sink_2_17(v_source()))  == 7> t7;
+    sa<sizeof(sink_2_17(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_2_17(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_2_17(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_2_17(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -131,14 +131,14 @@ int test2_18()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_18(a))           == 1> t1;
-    sa<sizeof(sink_2_18(ca))          == 8> t2;
-    sa<sizeof(sink_2_18(va))          == 8> t3;
-    sa<sizeof(sink_2_18(cva))         == 8> t4;
-    sa<sizeof(sink_2_18(source()))    == 8> t5;
-    sa<sizeof(sink_2_18(c_source()))  == 8> t6;
-    sa<sizeof(sink_2_18(v_source()))  == 8> t7;
-    sa<sizeof(sink_2_18(cv_source())) == 8> t8;
+    sa<sizeof(sink_2_18(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_2_18(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_2_18(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_2_18(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_2_18(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_2_18(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_2_18(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_2_18(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -151,10 +151,10 @@ int test2_23()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_23(ca))          == 2> t2;
-    sa<sizeof(sink_2_23(va))          == 3> t3;
-    sa<sizeof(sink_2_23(source()))    == 2> t5;
-    sa<sizeof(sink_2_23(c_source()))  == 2> t6;
+    sa<sizeof(sink_2_23(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_2_23(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_2_23(source()))    == 2 * sizeof(long)> t5;
+    sa<sizeof(sink_2_23(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -167,14 +167,14 @@ int test2_24()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_24(a))           == 2> t1;
-    sa<sizeof(sink_2_24(ca))          == 2> t2;
-    sa<sizeof(sink_2_24(va))          == 4> t3;
-    sa<sizeof(sink_2_24(cva))         == 4> t4;
-    sa<sizeof(sink_2_24(source()))    == 2> t5;
-    sa<sizeof(sink_2_24(c_source()))  == 2> t6;
-//    sa<sizeof(sink_2_24(v_source()))  == 4> t7;
-//    sa<sizeof(sink_2_24(cv_source())) == 4> t8;
+    sa<sizeof(sink_2_24(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_2_24(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_2_24(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_2_24(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_2_24(source()))    == 2 * sizeof(long)> t5;
+    sa<sizeof(sink_2_24(c_source()))  == 2 * sizeof(long)> t6;
+//    sa<sizeof(sink_2_24(v_source()))  == 4 * sizeof(long)> t7;
+//    sa<sizeof(sink_2_24(cv_source())) == 4 * sizeof(long)> t8;
     return 0;
 }
 
@@ -187,10 +187,10 @@ int test2_25()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_25(a))           == 2> t1;
-    sa<sizeof(sink_2_25(ca))          == 2> t2;
-    sa<sizeof(sink_2_25(source()))    == 5> t5;
-    sa<sizeof(sink_2_25(c_source()))  == 2> t6;
+    sa<sizeof(sink_2_25(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_2_25(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_2_25(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_2_25(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -203,10 +203,10 @@ int test2_26()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_26(a))           == 2> t1;
-    sa<sizeof(sink_2_26(ca))          == 2> t2;
-    sa<sizeof(sink_2_26(source()))    == 6> t5;
-    sa<sizeof(sink_2_26(c_source()))  == 6> t6;
+    sa<sizeof(sink_2_26(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_2_26(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_2_26(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_2_26(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -219,12 +219,12 @@ int test2_27()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_27(a))           == 2> t1;
-    sa<sizeof(sink_2_27(ca))          == 2> t2;
-    sa<sizeof(sink_2_27(va))          == 7> t3;
-    sa<sizeof(sink_2_27(source()))    == 7> t5;
-    sa<sizeof(sink_2_27(c_source()))  == 2> t6;
-    sa<sizeof(sink_2_27(v_source()))  == 7> t7;
+    sa<sizeof(sink_2_27(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_2_27(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_2_27(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_2_27(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_2_27(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_2_27(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -237,14 +237,14 @@ int test2_28()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_28(a))           == 2> t1;
-    sa<sizeof(sink_2_28(ca))          == 2> t2;
-    sa<sizeof(sink_2_28(va))          == 8> t3;
-    sa<sizeof(sink_2_28(cva))         == 8> t4;
-    sa<sizeof(sink_2_28(source()))    == 8> t5;
-    sa<sizeof(sink_2_28(c_source()))  == 8> t6;
-    sa<sizeof(sink_2_28(v_source()))  == 8> t7;
-    sa<sizeof(sink_2_28(cv_source())) == 8> t8;
+    sa<sizeof(sink_2_28(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_2_28(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_2_28(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_2_28(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_2_28(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_2_28(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_2_28(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_2_28(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -257,14 +257,14 @@ int test2_34()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_34(a))           == 3> t1;
-    sa<sizeof(sink_2_34(ca))          == 4> t2;
-    sa<sizeof(sink_2_34(va))          == 3> t3;
-    sa<sizeof(sink_2_34(cva))         == 4> t4;
-//    sa<sizeof(sink_2_34(source()))    == 4> t5;
-//    sa<sizeof(sink_2_34(c_source()))  == 4> t6;
-//    sa<sizeof(sink_2_34(v_source()))  == 4> t7;
-//    sa<sizeof(sink_2_34(cv_source())) == 4> t8;
+    sa<sizeof(sink_2_34(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_2_34(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_2_34(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_2_34(cva))         == 4 * sizeof(long)> t4;
+//    sa<sizeof(sink_2_34(source()))    == 4 * sizeof(long)> t5;
+//    sa<sizeof(sink_2_34(c_source()))  == 4 * sizeof(long)> t6;
+//    sa<sizeof(sink_2_34(v_source()))  == 4 * sizeof(long)> t7;
+//    sa<sizeof(sink_2_34(cv_source())) == 4 * sizeof(long)> t8;
     return 0;
 }
 
@@ -277,9 +277,9 @@ int test2_35()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_35(a))           == 3> t1;
-    sa<sizeof(sink_2_35(va))          == 3> t3;
-    sa<sizeof(sink_2_35(source()))    == 5> t5;
+    sa<sizeof(sink_2_35(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_2_35(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_2_35(source()))    == 5 * sizeof(long)> t5;
     return 0;
 }
 
@@ -292,11 +292,11 @@ int test2_36()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_36(a))           == 3> t1;
-    sa<sizeof(sink_2_36(ca))          == 6> t2;
-    sa<sizeof(sink_2_36(va))          == 3> t3;
-    sa<sizeof(sink_2_36(source()))    == 6> t5;
-    sa<sizeof(sink_2_36(c_source()))  == 6> t6;
+    sa<sizeof(sink_2_36(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_2_36(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_2_36(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_2_36(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_2_36(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -309,10 +309,10 @@ int test2_37()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_37(a))           == 3> t1;
-    sa<sizeof(sink_2_37(va))          == 3> t3;
-    sa<sizeof(sink_2_37(source()))    == 7> t5;
-    sa<sizeof(sink_2_37(v_source()))  == 7> t7;
+    sa<sizeof(sink_2_37(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_2_37(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_2_37(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_2_37(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -325,14 +325,14 @@ int test2_38()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_38(a))           == 3> t1;
-    sa<sizeof(sink_2_38(ca))          == 8> t2;
-    sa<sizeof(sink_2_38(va))          == 3> t3;
-    sa<sizeof(sink_2_38(cva))         == 8> t4;
-    sa<sizeof(sink_2_38(source()))    == 8> t5;
-    sa<sizeof(sink_2_38(c_source()))  == 8> t6;
-    sa<sizeof(sink_2_38(v_source()))  == 8> t7;
-    sa<sizeof(sink_2_38(cv_source())) == 8> t8;
+    sa<sizeof(sink_2_38(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_2_38(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_2_38(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_2_38(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_2_38(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_2_38(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_2_38(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_2_38(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -345,14 +345,14 @@ int test2_45()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_45(a))           == 4> t1;
-    sa<sizeof(sink_2_45(ca))          == 4> t2;
-    sa<sizeof(sink_2_45(va))          == 4> t3;
-    sa<sizeof(sink_2_45(cva))         == 4> t4;
-    sa<sizeof(sink_2_45(source()))    == 5> t5;
-//    sa<sizeof(sink_2_45(c_source()))  == 4> t6;
-//    sa<sizeof(sink_2_45(v_source()))  == 4> t7;
-//    sa<sizeof(sink_2_45(cv_source())) == 4> t8;
+    sa<sizeof(sink_2_45(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_2_45(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_2_45(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_2_45(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_2_45(source()))    == 5 * sizeof(long)> t5;
+//    sa<sizeof(sink_2_45(c_source()))  == 4 * sizeof(long)> t6;
+//    sa<sizeof(sink_2_45(v_source()))  == 4 * sizeof(long)> t7;
+//    sa<sizeof(sink_2_45(cv_source())) == 4 * sizeof(long)> t8;
     return 0;
 }
 
@@ -365,14 +365,14 @@ int test2_46()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_46(a))           == 4> t1;
-    sa<sizeof(sink_2_46(ca))          == 4> t2;
-    sa<sizeof(sink_2_46(va))          == 4> t3;
-    sa<sizeof(sink_2_46(cva))         == 4> t4;
-    sa<sizeof(sink_2_46(source()))    == 6> t5;
-    sa<sizeof(sink_2_46(c_source()))  == 6> t6;
-//    sa<sizeof(sink_2_46(v_source()))  == 4> t7;
-//    sa<sizeof(sink_2_46(cv_source())) == 4> t8;
+    sa<sizeof(sink_2_46(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_2_46(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_2_46(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_2_46(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_2_46(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_2_46(c_source()))  == 6 * sizeof(long)> t6;
+//    sa<sizeof(sink_2_46(v_source()))  == 4 * sizeof(long)> t7;
+//    sa<sizeof(sink_2_46(cv_source())) == 4 * sizeof(long)> t8;
     return 0;
 }
 
@@ -385,14 +385,14 @@ int test2_47()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_47(a))           == 4> t1;
-    sa<sizeof(sink_2_47(ca))          == 4> t2;
-    sa<sizeof(sink_2_47(va))          == 4> t3;
-    sa<sizeof(sink_2_47(cva))         == 4> t4;
-    sa<sizeof(sink_2_47(source()))    == 7> t5;
-//    sa<sizeof(sink_2_47(c_source()))  == 4> t6;
-    sa<sizeof(sink_2_47(v_source()))  == 7> t7;
-//    sa<sizeof(sink_2_47(cv_source())) == 4> t8;
+    sa<sizeof(sink_2_47(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_2_47(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_2_47(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_2_47(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_2_47(source()))    == 7 * sizeof(long)> t5;
+//    sa<sizeof(sink_2_47(c_source()))  == 4 * sizeof(long)> t6;
+    sa<sizeof(sink_2_47(v_source()))  == 7 * sizeof(long)> t7;
+//    sa<sizeof(sink_2_47(cv_source())) == 4 * sizeof(long)> t8;
     return 0;
 }
 
@@ -405,14 +405,14 @@ int test2_48()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_48(a))           == 4> t1;
-    sa<sizeof(sink_2_48(ca))          == 4> t2;
-    sa<sizeof(sink_2_48(va))          == 4> t3;
-    sa<sizeof(sink_2_48(cva))         == 4> t4;
-    sa<sizeof(sink_2_48(source()))    == 8> t5;
-    sa<sizeof(sink_2_48(c_source()))  == 8> t6;
-    sa<sizeof(sink_2_48(v_source()))  == 8> t7;
-    sa<sizeof(sink_2_48(cv_source())) == 8> t8;
+    sa<sizeof(sink_2_48(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_2_48(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_2_48(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_2_48(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_2_48(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_2_48(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_2_48(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_2_48(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -425,10 +425,10 @@ int test2_56()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_56(a))           == 5> t1;
-    sa<sizeof(sink_2_56(ca))          == 6> t2;
-    sa<sizeof(sink_2_56(source()))    == 5> t5;
-    sa<sizeof(sink_2_56(c_source()))  == 6> t6;
+    sa<sizeof(sink_2_56(a))           == 5 * sizeof(long)> t1;
+    sa<sizeof(sink_2_56(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_2_56(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_2_56(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -441,10 +441,10 @@ int test2_57()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_57(a))           == 5> t1;
-    sa<sizeof(sink_2_57(va))          == 7> t3;
-    sa<sizeof(sink_2_57(source()))    == 5> t5;
-    sa<sizeof(sink_2_57(v_source()))  == 7> t7;
+    sa<sizeof(sink_2_57(a))           == 5 * sizeof(long)> t1;
+    sa<sizeof(sink_2_57(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_2_57(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_2_57(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -457,14 +457,14 @@ int test2_58()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_58(a))           == 5> t1;
-    sa<sizeof(sink_2_58(ca))          == 8> t2;
-    sa<sizeof(sink_2_58(va))          == 8> t3;
-    sa<sizeof(sink_2_58(cva))         == 8> t4;
-    sa<sizeof(sink_2_58(source()))    == 5> t5;
-    sa<sizeof(sink_2_58(c_source()))  == 8> t6;
-    sa<sizeof(sink_2_58(v_source()))  == 8> t7;
-    sa<sizeof(sink_2_58(cv_source())) == 8> t8;
+    sa<sizeof(sink_2_58(a))           == 5 * sizeof(long)> t1;
+    sa<sizeof(sink_2_58(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_2_58(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_2_58(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_2_58(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_2_58(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_2_58(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_2_58(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -477,10 +477,10 @@ int test2_67()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_67(ca))          == 6> t2;
-    sa<sizeof(sink_2_67(va))          == 7> t3;
-    sa<sizeof(sink_2_67(c_source()))  == 6> t6;
-    sa<sizeof(sink_2_67(v_source()))  == 7> t7;
+    sa<sizeof(sink_2_67(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_2_67(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_2_67(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_2_67(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -493,14 +493,14 @@ int test2_68()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_68(a))           == 6> t1;
-    sa<sizeof(sink_2_68(ca))          == 6> t2;
-    sa<sizeof(sink_2_68(va))          == 8> t3;
-    sa<sizeof(sink_2_68(cva))         == 8> t4;
-    sa<sizeof(sink_2_68(source()))    == 6> t5;
-    sa<sizeof(sink_2_68(c_source()))  == 6> t6;
-    sa<sizeof(sink_2_68(v_source()))  == 8> t7;
-    sa<sizeof(sink_2_68(cv_source())) == 8> t8;
+    sa<sizeof(sink_2_68(a))           == 6 * sizeof(long)> t1;
+    sa<sizeof(sink_2_68(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_2_68(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_2_68(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_2_68(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_2_68(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_2_68(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_2_68(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -513,14 +513,14 @@ int test2_78()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_2_78(a))           == 7> t1;
-    sa<sizeof(sink_2_78(ca))          == 8> t2;
-    sa<sizeof(sink_2_78(va))          == 7> t3;
-    sa<sizeof(sink_2_78(cva))         == 8> t4;
-    sa<sizeof(sink_2_78(source()))    == 7> t5;
-    sa<sizeof(sink_2_78(c_source()))  == 8> t6;
-    sa<sizeof(sink_2_78(v_source()))  == 7> t7;
-    sa<sizeof(sink_2_78(cv_source())) == 8> t8;
+    sa<sizeof(sink_2_78(a))           == 7 * sizeof(long)> t1;
+    sa<sizeof(sink_2_78(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_2_78(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_2_78(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_2_78(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_2_78(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_2_78(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_2_78(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
index c688b11e2367a7e0fb82b4a21d26b0536a6f93b8..f53b007a009d7837453bb383a72562a586c52009 100644 (file)
@@ -8,14 +8,14 @@
 template <bool> struct sa;
 template <> struct sa<true> {};
 
-struct one   {char x[1];};
-struct two   {char x[2];};
-struct three {char x[3];};
-struct four  {char x[4];};
-struct five  {char x[5];};
-struct six   {char x[6];};
-struct seven {char x[7];};
-struct eight {char x[8];};
+struct one   {long x[1];};
+struct two   {long x[2];};
+struct three {long x[3];};
+struct four  {long x[4];};
+struct five  {long x[5];};
+struct six   {long x[6];};
+struct seven {long x[7];};
+struct eight {long x[8];};
 
 struct A
 {
@@ -40,11 +40,11 @@ int test3_123()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_123(a))           == 1> t1;
-    sa<sizeof(sink_3_123(ca))          == 2> t2;
-    sa<sizeof(sink_3_123(va))          == 3> t3;
-    sa<sizeof(sink_3_123(source()))    == 2> t5;
-    sa<sizeof(sink_3_123(c_source()))  == 2> t6;
+    sa<sizeof(sink_3_123(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_123(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_123(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_123(source()))    == 2 * sizeof(long)> t5;
+    sa<sizeof(sink_3_123(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -58,12 +58,12 @@ int test3_124()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_124(a))           == 1> t1;
-    sa<sizeof(sink_3_124(ca))          == 2> t2;
-    sa<sizeof(sink_3_124(va))          == 4> t3;
-    sa<sizeof(sink_3_124(cva))         == 4> t4;
-    sa<sizeof(sink_3_124(source()))    == 2> t5;
-    sa<sizeof(sink_3_124(c_source()))  == 2> t6;
+    sa<sizeof(sink_3_124(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_124(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_124(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_124(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_124(source()))    == 2 * sizeof(long)> t5;
+    sa<sizeof(sink_3_124(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -77,10 +77,10 @@ int test3_125()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_125(a))           == 1> t1;
-    sa<sizeof(sink_3_125(ca))          == 2> t2;
-    sa<sizeof(sink_3_125(source()))    == 5> t5;
-    sa<sizeof(sink_3_125(c_source()))  == 2> t6;
+    sa<sizeof(sink_3_125(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_125(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_125(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_125(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -94,10 +94,10 @@ int test3_126()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_126(a))           == 1> t1;
-    sa<sizeof(sink_3_126(ca))          == 2> t2;
-    sa<sizeof(sink_3_126(source()))    == 6> t5;
-    sa<sizeof(sink_3_126(c_source()))  == 6> t6;
+    sa<sizeof(sink_3_126(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_126(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_126(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_3_126(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -111,12 +111,12 @@ int test3_127()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_127(a))           == 1> t1;
-    sa<sizeof(sink_3_127(ca))          == 2> t2;
-    sa<sizeof(sink_3_127(va))          == 7> t3;
-    sa<sizeof(sink_3_127(source()))    == 7> t5;
-    sa<sizeof(sink_3_127(c_source()))  == 2> t6;
-    sa<sizeof(sink_3_127(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_127(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_127(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_127(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_3_127(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_3_127(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_3_127(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -130,14 +130,14 @@ int test3_128()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_128(a))           == 1> t1;
-    sa<sizeof(sink_3_128(ca))          == 2> t2;
-    sa<sizeof(sink_3_128(va))          == 8> t3;
-    sa<sizeof(sink_3_128(cva))         == 8> t4;
-    sa<sizeof(sink_3_128(source()))    == 8> t5;
-    sa<sizeof(sink_3_128(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_128(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_128(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_128(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_128(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_128(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_3_128(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_128(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_3_128(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_128(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_128(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -151,10 +151,10 @@ int test3_134()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_134(a))           == 1> t1;
-    sa<sizeof(sink_3_134(ca))          == 4> t2;
-    sa<sizeof(sink_3_134(va))          == 3> t3;
-    sa<sizeof(sink_3_134(cva))         == 4> t4;
+    sa<sizeof(sink_3_134(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_134(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_134(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_134(cva))         == 4 * sizeof(long)> t4;
     return 0;
 }
 
@@ -168,9 +168,9 @@ int test3_135()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_135(a))           == 1> t1;
-    sa<sizeof(sink_3_135(va))          == 3> t3;
-    sa<sizeof(sink_3_135(source()))    == 5> t5;
+    sa<sizeof(sink_3_135(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_135(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_135(source()))    == 5 * sizeof(long)> t5;
     return 0;
 }
 
@@ -184,11 +184,11 @@ int test3_136()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_136(a))           == 1> t1;
-    sa<sizeof(sink_3_136(ca))          == 6> t2;
-    sa<sizeof(sink_3_136(va))          == 3> t3;
-    sa<sizeof(sink_3_136(source()))    == 6> t5;
-    sa<sizeof(sink_3_136(c_source()))  == 6> t6;
+    sa<sizeof(sink_3_136(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_136(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_3_136(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_136(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_3_136(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -202,10 +202,10 @@ int test3_137()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_137(a))           == 1> t1;
-    sa<sizeof(sink_3_137(va))          == 3> t3;
-    sa<sizeof(sink_3_137(source()))    == 7> t5;
-    sa<sizeof(sink_3_137(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_137(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_137(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_137(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_3_137(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -219,14 +219,14 @@ int test3_138()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_138(a))           == 1> t1;
-    sa<sizeof(sink_3_138(ca))          == 8> t2;
-    sa<sizeof(sink_3_138(va))          == 3> t3;
-    sa<sizeof(sink_3_138(cva))         == 8> t4;
-    sa<sizeof(sink_3_138(source()))    == 8> t5;
-    sa<sizeof(sink_3_138(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_138(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_138(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_138(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_138(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_3_138(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_138(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_138(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_3_138(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_138(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_138(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -240,11 +240,11 @@ int test3_145()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_145(a))           == 1> t1;
-    sa<sizeof(sink_3_145(ca))          == 4> t2;
-    sa<sizeof(sink_3_145(va))          == 4> t3;
-    sa<sizeof(sink_3_145(cva))         == 4> t4;
-    sa<sizeof(sink_3_145(source()))    == 5> t5;
+    sa<sizeof(sink_3_145(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_145(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_145(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_145(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_145(source()))    == 5 * sizeof(long)> t5;
     return 0;
 }
 
@@ -258,12 +258,12 @@ int test3_146()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_146(a))           == 1> t1;
-    sa<sizeof(sink_3_146(ca))          == 4> t2;
-    sa<sizeof(sink_3_146(va))          == 4> t3;
-    sa<sizeof(sink_3_146(cva))         == 4> t4;
-    sa<sizeof(sink_3_146(source()))    == 6> t5;
-    sa<sizeof(sink_3_146(c_source()))  == 6> t6;
+    sa<sizeof(sink_3_146(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_146(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_146(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_146(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_146(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_3_146(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -277,12 +277,12 @@ int test3_147()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_147(a))           == 1> t1;
-    sa<sizeof(sink_3_147(ca))          == 4> t2;
-    sa<sizeof(sink_3_147(va))          == 4> t3;
-    sa<sizeof(sink_3_147(cva))         == 4> t4;
-    sa<sizeof(sink_3_147(source()))    == 7> t5;
-    sa<sizeof(sink_3_147(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_147(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_147(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_147(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_147(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_147(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_3_147(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -296,14 +296,14 @@ int test3_148()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_148(a))           == 1> t1;
-    sa<sizeof(sink_3_148(ca))          == 4> t2;
-    sa<sizeof(sink_3_148(va))          == 4> t3;
-    sa<sizeof(sink_3_148(cva))         == 4> t4;
-    sa<sizeof(sink_3_148(source()))    == 8> t5;
-    sa<sizeof(sink_3_148(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_148(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_148(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_148(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_148(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_148(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_148(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_148(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_3_148(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_148(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_148(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -317,10 +317,10 @@ int test3_156()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_156(a))           == 1> t1;
-    sa<sizeof(sink_3_156(ca))          == 6> t2;
-    sa<sizeof(sink_3_156(source()))    == 5> t5;
-    sa<sizeof(sink_3_156(c_source()))  == 6> t6;
+    sa<sizeof(sink_3_156(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_156(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_3_156(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_156(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -334,10 +334,10 @@ int test3_157()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_157(a))           == 1> t1;
-    sa<sizeof(sink_3_157(va))          == 7> t3;
-    sa<sizeof(sink_3_157(source()))    == 5> t5;
-    sa<sizeof(sink_3_157(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_157(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_157(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_3_157(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_157(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -351,14 +351,14 @@ int test3_158()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_158(a))           == 1> t1;
-    sa<sizeof(sink_3_158(ca))          == 8> t2;
-    sa<sizeof(sink_3_158(va))          == 8> t3;
-    sa<sizeof(sink_3_158(cva))         == 8> t4;
-    sa<sizeof(sink_3_158(source()))    == 5> t5;
-    sa<sizeof(sink_3_158(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_158(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_158(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_158(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_158(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_3_158(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_3_158(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_158(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_158(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_158(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_158(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -372,11 +372,11 @@ int test3_167()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_167(a))           == 1> t1;
-    sa<sizeof(sink_3_167(ca))          == 6> t2;
-    sa<sizeof(sink_3_167(va))          == 7> t3;
-    sa<sizeof(sink_3_167(c_source()))  == 6> t6;
-    sa<sizeof(sink_3_167(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_167(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_167(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_3_167(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_3_167(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_3_167(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -390,14 +390,14 @@ int test3_168()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_168(a))           == 1> t1;
-    sa<sizeof(sink_3_168(ca))          == 6> t2;
-    sa<sizeof(sink_3_168(va))          == 8> t3;
-    sa<sizeof(sink_3_168(cva))         == 8> t4;
-    sa<sizeof(sink_3_168(source()))    == 6> t5;
-    sa<sizeof(sink_3_168(c_source()))  == 6> t6;
-    sa<sizeof(sink_3_168(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_168(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_168(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_168(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_3_168(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_3_168(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_168(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_3_168(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_3_168(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_168(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -411,14 +411,14 @@ int test3_178()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_178(a))           == 1> t1;
-    sa<sizeof(sink_3_178(ca))          == 8> t2;
-    sa<sizeof(sink_3_178(va))          == 7> t3;
-    sa<sizeof(sink_3_178(cva))         == 8> t4;
-    sa<sizeof(sink_3_178(source()))    == 7> t5;
-    sa<sizeof(sink_3_178(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_178(v_source()))  == 7> t7;
-    sa<sizeof(sink_3_178(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_178(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_3_178(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_3_178(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_3_178(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_178(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_3_178(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_178(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_3_178(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -432,11 +432,11 @@ int test3_234()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_234(ca))          == 2> t2;
-    sa<sizeof(sink_3_234(va))          == 3> t3;
-    sa<sizeof(sink_3_234(cva))         == 4> t4;
-    sa<sizeof(sink_3_234(source()))    == 2> t5;
-    sa<sizeof(sink_3_234(c_source()))  == 2> t6;
+    sa<sizeof(sink_3_234(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_234(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_234(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_234(source()))    == 2 * sizeof(long)> t5;
+    sa<sizeof(sink_3_234(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -450,10 +450,10 @@ int test3_235()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_235(ca))          == 2> t2;
-    sa<sizeof(sink_3_235(va))          == 3> t3;
-    sa<sizeof(sink_3_235(source()))    == 5> t5;
-    sa<sizeof(sink_3_235(c_source()))  == 2> t6;
+    sa<sizeof(sink_3_235(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_235(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_235(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_235(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -467,10 +467,10 @@ int test3_236()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_236(ca))          == 2> t2;
-    sa<sizeof(sink_3_236(va))          == 3> t3;
-    sa<sizeof(sink_3_236(source()))    == 6> t5;
-    sa<sizeof(sink_3_236(c_source()))  == 6> t6;
+    sa<sizeof(sink_3_236(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_236(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_236(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_3_236(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -484,11 +484,11 @@ int test3_237()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_237(ca))          == 2> t2;
-    sa<sizeof(sink_3_237(va))          == 3> t3;
-    sa<sizeof(sink_3_237(source()))    == 7> t5;
-    sa<sizeof(sink_3_237(c_source()))  == 2> t6;
-    sa<sizeof(sink_3_237(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_237(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_237(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_237(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_3_237(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_3_237(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -502,13 +502,13 @@ int test3_238()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_238(ca))          == 2> t2;
-    sa<sizeof(sink_3_238(va))          == 3> t3;
-    sa<sizeof(sink_3_238(cva))         == 8> t4;
-    sa<sizeof(sink_3_238(source()))    == 8> t5;
-    sa<sizeof(sink_3_238(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_238(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_238(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_238(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_238(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_238(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_238(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_3_238(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_238(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_238(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -522,12 +522,12 @@ int test3_245()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_245(a))           == 2> t1;
-    sa<sizeof(sink_3_245(ca))          == 2> t2;
-    sa<sizeof(sink_3_245(va))          == 4> t3;
-    sa<sizeof(sink_3_245(cva))         == 4> t4;
-    sa<sizeof(sink_3_245(source()))    == 5> t5;
-    sa<sizeof(sink_3_245(c_source()))  == 2> t6;
+    sa<sizeof(sink_3_245(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_3_245(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_245(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_245(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_245(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_245(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -541,12 +541,12 @@ int test3_246()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_246(a))           == 2> t1;
-    sa<sizeof(sink_3_246(ca))          == 2> t2;
-    sa<sizeof(sink_3_246(va))          == 4> t3;
-    sa<sizeof(sink_3_246(cva))         == 4> t4;
-    sa<sizeof(sink_3_246(source()))    == 6> t5;
-    sa<sizeof(sink_3_246(c_source()))  == 6> t6;
+    sa<sizeof(sink_3_246(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_3_246(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_246(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_246(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_246(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_3_246(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -560,13 +560,13 @@ int test3_247()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_247(a))           == 2> t1;
-    sa<sizeof(sink_3_247(ca))          == 2> t2;
-    sa<sizeof(sink_3_247(va))          == 4> t3;
-    sa<sizeof(sink_3_247(cva))         == 4> t4;
-    sa<sizeof(sink_3_247(source()))    == 7> t5;
-    sa<sizeof(sink_3_247(c_source()))  == 2> t6;
-    sa<sizeof(sink_3_247(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_247(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_3_247(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_247(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_247(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_247(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_3_247(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_3_247(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -580,14 +580,14 @@ int test3_248()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_248(a))           == 2> t1;
-    sa<sizeof(sink_3_248(ca))          == 2> t2;
-    sa<sizeof(sink_3_248(va))          == 4> t3;
-    sa<sizeof(sink_3_248(cva))         == 4> t4;
-    sa<sizeof(sink_3_248(source()))    == 8> t5;
-    sa<sizeof(sink_3_248(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_248(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_248(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_248(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_3_248(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_248(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_248(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_248(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_3_248(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_248(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_248(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -601,10 +601,10 @@ int test3_256()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_256(a))           == 2> t1;
-    sa<sizeof(sink_3_256(ca))          == 2> t2;
-    sa<sizeof(sink_3_256(source()))    == 5> t5;
-    sa<sizeof(sink_3_256(c_source()))  == 6> t6;
+    sa<sizeof(sink_3_256(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_3_256(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_256(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_256(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -618,12 +618,12 @@ int test3_257()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_257(a))           == 2> t1;
-    sa<sizeof(sink_3_257(ca))          == 2> t2;
-    sa<sizeof(sink_3_257(va))          == 7> t3;
-    sa<sizeof(sink_3_257(source()))    == 5> t5;
-    sa<sizeof(sink_3_257(c_source()))  == 2> t6;
-    sa<sizeof(sink_3_257(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_257(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_3_257(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_257(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_3_257(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_257(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_3_257(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -637,14 +637,14 @@ int test3_258()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_258(a))           == 2> t1;
-    sa<sizeof(sink_3_258(ca))          == 2> t2;
-    sa<sizeof(sink_3_258(va))          == 8> t3;
-    sa<sizeof(sink_3_258(cva))         == 8> t4;
-    sa<sizeof(sink_3_258(source()))    == 5> t5;
-    sa<sizeof(sink_3_258(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_258(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_258(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_258(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_3_258(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_258(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_3_258(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_258(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_258(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_258(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_258(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -658,11 +658,11 @@ int test3_267()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_267(a))           == 2> t1;
-    sa<sizeof(sink_3_267(ca))          == 2> t2;
-    sa<sizeof(sink_3_267(va))          == 7> t3;
-    sa<sizeof(sink_3_267(c_source()))  == 6> t6;
-    sa<sizeof(sink_3_267(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_267(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_3_267(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_267(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_3_267(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_3_267(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -676,14 +676,14 @@ int test3_268()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_268(a))           == 2> t1;
-    sa<sizeof(sink_3_268(ca))          == 2> t2;
-    sa<sizeof(sink_3_268(va))          == 8> t3;
-    sa<sizeof(sink_3_268(cva))         == 8> t4;
-    sa<sizeof(sink_3_268(source()))    == 6> t5;
-    sa<sizeof(sink_3_268(c_source()))  == 6> t6;
-    sa<sizeof(sink_3_268(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_268(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_268(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_3_268(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_268(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_3_268(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_268(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_3_268(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_3_268(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_268(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -697,14 +697,14 @@ int test3_278()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_278(a))           == 2> t1;
-    sa<sizeof(sink_3_278(ca))          == 2> t2;
-    sa<sizeof(sink_3_278(va))          == 7> t3;
-    sa<sizeof(sink_3_278(cva))         == 8> t4;
-    sa<sizeof(sink_3_278(source()))    == 7> t5;
-    sa<sizeof(sink_3_278(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_278(v_source()))  == 7> t7;
-    sa<sizeof(sink_3_278(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_278(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_3_278(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_3_278(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_3_278(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_278(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_3_278(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_278(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_3_278(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -718,11 +718,11 @@ int test3_345()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_345(a))           == 3> t1;
-    sa<sizeof(sink_3_345(ca))          == 4> t2;
-    sa<sizeof(sink_3_345(va))          == 3> t3;
-    sa<sizeof(sink_3_345(cva))         == 4> t4;
-    sa<sizeof(sink_3_345(source()))    == 5> t5;
+    sa<sizeof(sink_3_345(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_3_345(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_345(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_345(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_345(source()))    == 5 * sizeof(long)> t5;
     return 0;
 }
 
@@ -736,12 +736,12 @@ int test3_346()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_346(a))           == 3> t1;
-    sa<sizeof(sink_3_346(ca))          == 4> t2;
-    sa<sizeof(sink_3_346(va))          == 3> t3;
-    sa<sizeof(sink_3_346(cva))         == 4> t4;
-    sa<sizeof(sink_3_346(source()))    == 6> t5;
-    sa<sizeof(sink_3_346(c_source()))  == 6> t6;
+    sa<sizeof(sink_3_346(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_3_346(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_346(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_346(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_346(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_3_346(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -755,12 +755,12 @@ int test3_347()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_347(a))           == 3> t1;
-    sa<sizeof(sink_3_347(ca))          == 4> t2;
-    sa<sizeof(sink_3_347(va))          == 3> t3;
-    sa<sizeof(sink_3_347(cva))         == 4> t4;
-    sa<sizeof(sink_3_347(source()))    == 7> t5;
-    sa<sizeof(sink_3_347(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_347(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_3_347(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_347(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_347(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_347(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_3_347(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -774,14 +774,14 @@ int test3_348()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_348(a))           == 3> t1;
-    sa<sizeof(sink_3_348(ca))          == 4> t2;
-    sa<sizeof(sink_3_348(va))          == 3> t3;
-    sa<sizeof(sink_3_348(cva))         == 4> t4;
-    sa<sizeof(sink_3_348(source()))    == 8> t5;
-    sa<sizeof(sink_3_348(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_348(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_348(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_348(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_3_348(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_348(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_348(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_348(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_3_348(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_348(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_348(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -795,11 +795,11 @@ int test3_356()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_356(a))           == 3> t1;
-    sa<sizeof(sink_3_356(ca))          == 6> t2;
-    sa<sizeof(sink_3_356(va))          == 3> t3;
-    sa<sizeof(sink_3_356(source()))    == 5> t5;
-    sa<sizeof(sink_3_356(c_source()))  == 6> t6;
+    sa<sizeof(sink_3_356(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_3_356(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_3_356(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_356(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_356(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -813,10 +813,10 @@ int test3_357()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_357(a))           == 3> t1;
-    sa<sizeof(sink_3_357(va))          == 3> t3;
-    sa<sizeof(sink_3_357(source()))    == 5> t5;
-    sa<sizeof(sink_3_357(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_357(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_3_357(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_357(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_357(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -830,14 +830,14 @@ int test3_358()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_358(a))           == 3> t1;
-    sa<sizeof(sink_3_358(ca))          == 8> t2;
-    sa<sizeof(sink_3_358(va))          == 3> t3;
-    sa<sizeof(sink_3_358(cva))         == 8> t4;
-    sa<sizeof(sink_3_358(source()))    == 5> t5;
-    sa<sizeof(sink_3_358(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_358(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_358(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_358(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_3_358(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_3_358(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_358(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_358(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_358(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_358(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_358(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -851,11 +851,11 @@ int test3_367()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_367(a))           == 3> t1;
-    sa<sizeof(sink_3_367(ca))          == 6> t2;
-    sa<sizeof(sink_3_367(va))          == 3> t3;
-    sa<sizeof(sink_3_367(c_source()))  == 6> t6;
-    sa<sizeof(sink_3_367(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_367(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_3_367(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_3_367(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_367(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_3_367(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -869,14 +869,14 @@ int test3_368()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_368(a))           == 3> t1;
-    sa<sizeof(sink_3_368(ca))          == 6> t2;
-    sa<sizeof(sink_3_368(va))          == 3> t3;
-    sa<sizeof(sink_3_368(cva))         == 8> t4;
-    sa<sizeof(sink_3_368(source()))    == 6> t5;
-    sa<sizeof(sink_3_368(c_source()))  == 6> t6;
-    sa<sizeof(sink_3_368(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_368(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_368(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_3_368(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_3_368(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_368(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_368(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_3_368(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_3_368(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_368(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -890,14 +890,14 @@ int test3_378()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_378(a))           == 3> t1;
-    sa<sizeof(sink_3_378(ca))          == 8> t2;
-    sa<sizeof(sink_3_378(va))          == 3> t3;
-    sa<sizeof(sink_3_378(cva))         == 8> t4;
-    sa<sizeof(sink_3_378(source()))    == 7> t5;
-    sa<sizeof(sink_3_378(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_378(v_source()))  == 7> t7;
-    sa<sizeof(sink_3_378(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_378(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_3_378(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_3_378(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_3_378(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_378(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_3_378(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_378(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_3_378(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -911,12 +911,12 @@ int test3_456()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_456(a))           == 4> t1;
-    sa<sizeof(sink_3_456(ca))          == 4> t2;
-    sa<sizeof(sink_3_456(va))          == 4> t3;
-    sa<sizeof(sink_3_456(cva))         == 4> t4;
-    sa<sizeof(sink_3_456(source()))    == 5> t5;
-    sa<sizeof(sink_3_456(c_source()))  == 6> t6;
+    sa<sizeof(sink_3_456(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_3_456(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_456(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_456(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_456(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_456(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -930,12 +930,12 @@ int test3_457()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_457(a))           == 4> t1;
-    sa<sizeof(sink_3_457(ca))          == 4> t2;
-    sa<sizeof(sink_3_457(va))          == 4> t3;
-    sa<sizeof(sink_3_457(cva))         == 4> t4;
-    sa<sizeof(sink_3_457(source()))    == 5> t5;
-    sa<sizeof(sink_3_457(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_457(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_3_457(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_457(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_457(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_457(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_457(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -949,14 +949,14 @@ int test3_458()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_458(a))           == 4> t1;
-    sa<sizeof(sink_3_458(ca))          == 4> t2;
-    sa<sizeof(sink_3_458(va))          == 4> t3;
-    sa<sizeof(sink_3_458(cva))         == 4> t4;
-    sa<sizeof(sink_3_458(source()))    == 5> t5;
-    sa<sizeof(sink_3_458(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_458(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_458(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_458(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_3_458(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_458(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_458(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_458(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_458(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_458(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_458(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -970,12 +970,12 @@ int test3_467()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_467(a))           == 4> t1;
-    sa<sizeof(sink_3_467(ca))          == 4> t2;
-    sa<sizeof(sink_3_467(va))          == 4> t3;
-    sa<sizeof(sink_3_467(cva))         == 4> t4;
-    sa<sizeof(sink_3_467(c_source()))  == 6> t6;
-    sa<sizeof(sink_3_467(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_467(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_3_467(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_467(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_467(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_467(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_3_467(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -989,14 +989,14 @@ int test3_468()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_468(a))           == 4> t1;
-    sa<sizeof(sink_3_468(ca))          == 4> t2;
-    sa<sizeof(sink_3_468(va))          == 4> t3;
-    sa<sizeof(sink_3_468(cva))         == 4> t4;
-    sa<sizeof(sink_3_468(source()))    == 6> t5;
-    sa<sizeof(sink_3_468(c_source()))  == 6> t6;
-    sa<sizeof(sink_3_468(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_468(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_468(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_3_468(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_468(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_468(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_468(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_3_468(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_3_468(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_468(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1010,14 +1010,14 @@ int test3_478()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_478(a))           == 4> t1;
-    sa<sizeof(sink_3_478(ca))          == 4> t2;
-    sa<sizeof(sink_3_478(va))          == 4> t3;
-    sa<sizeof(sink_3_478(cva))         == 4> t4;
-    sa<sizeof(sink_3_478(source()))    == 7> t5;
-    sa<sizeof(sink_3_478(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_478(v_source()))  == 7> t7;
-    sa<sizeof(sink_3_478(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_478(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_3_478(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_3_478(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_3_478(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_3_478(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_3_478(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_478(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_3_478(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1031,12 +1031,12 @@ int test3_567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_567(a))           == 5> t1;
-    sa<sizeof(sink_3_567(ca))          == 6> t2;
-    sa<sizeof(sink_3_567(va))          == 7> t3;
-    sa<sizeof(sink_3_567(source()))    == 5> t5;
-    sa<sizeof(sink_3_567(c_source()))  == 6> t6;
-    sa<sizeof(sink_3_567(v_source()))  == 7> t7;
+    sa<sizeof(sink_3_567(a))           == 5 * sizeof(long)> t1;
+    sa<sizeof(sink_3_567(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_3_567(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_3_567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_3_567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -1050,14 +1050,14 @@ int test3_568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_568(a))           == 5> t1;
-    sa<sizeof(sink_3_568(ca))          == 6> t2;
-    sa<sizeof(sink_3_568(va))          == 8> t3;
-    sa<sizeof(sink_3_568(cva))         == 8> t4;
-    sa<sizeof(sink_3_568(source()))    == 5> t5;
-    sa<sizeof(sink_3_568(c_source()))  == 6> t6;
-    sa<sizeof(sink_3_568(v_source()))  == 8> t7;
-    sa<sizeof(sink_3_568(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_568(a))           == 5 * sizeof(long)> t1;
+    sa<sizeof(sink_3_568(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_3_568(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_3_568(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_3_568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_3_568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1071,14 +1071,14 @@ int test3_578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_578(a))           == 5> t1;
-    sa<sizeof(sink_3_578(ca))          == 8> t2;
-    sa<sizeof(sink_3_578(va))          == 7> t3;
-    sa<sizeof(sink_3_578(cva))         == 8> t4;
-    sa<sizeof(sink_3_578(source()))    == 5> t5;
-    sa<sizeof(sink_3_578(c_source()))  == 8> t6;
-    sa<sizeof(sink_3_578(v_source()))  == 7> t7;
-    sa<sizeof(sink_3_578(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_578(a))           == 5 * sizeof(long)> t1;
+    sa<sizeof(sink_3_578(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_3_578(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_3_578(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_3_578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_3_578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_3_578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1092,12 +1092,12 @@ int test3_678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_3_678(ca))          == 6> t2;
-    sa<sizeof(sink_3_678(va))          == 7> t3;
-    sa<sizeof(sink_3_678(cva))         == 8> t4;
-    sa<sizeof(sink_3_678(c_source()))  == 6> t6;
-    sa<sizeof(sink_3_678(v_source()))  == 7> t7;
-    sa<sizeof(sink_3_678(cv_source())) == 8> t8;
+    sa<sizeof(sink_3_678(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_3_678(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_3_678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_3_678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_3_678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_3_678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
index a486e75e2e30d31242adf0eabe4defd529b2806e..172e579305f1c1d85ad819b456bf28063c4bc815 100644 (file)
@@ -8,14 +8,14 @@
 template <bool> struct sa;
 template <> struct sa<true> {};
 
-struct one   {char x[1];};
-struct two   {char x[2];};
-struct three {char x[3];};
-struct four  {char x[4];};
-struct five  {char x[5];};
-struct six   {char x[6];};
-struct seven {char x[7];};
-struct eight {char x[8];};
+struct one   {long x[1];};
+struct two   {long x[2];};
+struct three {long x[3];};
+struct four  {long x[4];};
+struct five  {long x[5];};
+struct six   {long x[6];};
+struct seven {long x[7];};
+struct eight {long x[8];};
 
 struct A
 {
@@ -41,12 +41,12 @@ int test4_1234()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1234(a))           == 1> t1;
-    sa<sizeof(sink_4_1234(ca))          == 2> t2;
-    sa<sizeof(sink_4_1234(va))          == 3> t3;
-    sa<sizeof(sink_4_1234(cva))         == 4> t4;
-    sa<sizeof(sink_4_1234(source()))    == 2> t5;
-    sa<sizeof(sink_4_1234(c_source()))  == 2> t6;
+    sa<sizeof(sink_4_1234(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1234(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1234(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1234(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1234(source()))    == 2 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1234(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -61,11 +61,11 @@ int test4_1235()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1235(a))           == 1> t1;
-    sa<sizeof(sink_4_1235(ca))          == 2> t2;
-    sa<sizeof(sink_4_1235(va))          == 3> t3;
-    sa<sizeof(sink_4_1235(source()))    == 5> t5;
-    sa<sizeof(sink_4_1235(c_source()))  == 2> t6;
+    sa<sizeof(sink_4_1235(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1235(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1235(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1235(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1235(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -80,11 +80,11 @@ int test4_1236()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1236(a))           == 1> t1;
-    sa<sizeof(sink_4_1236(ca))          == 2> t2;
-    sa<sizeof(sink_4_1236(va))          == 3> t3;
-    sa<sizeof(sink_4_1236(source()))    == 6> t5;
-    sa<sizeof(sink_4_1236(c_source()))  == 6> t6;
+    sa<sizeof(sink_4_1236(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1236(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1236(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1236(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1236(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -99,12 +99,12 @@ int test4_1237()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1237(a))           == 1> t1;
-    sa<sizeof(sink_4_1237(ca))          == 2> t2;
-    sa<sizeof(sink_4_1237(va))          == 3> t3;
-    sa<sizeof(sink_4_1237(source()))    == 7> t5;
-    sa<sizeof(sink_4_1237(c_source()))  == 2> t6;
-    sa<sizeof(sink_4_1237(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_1237(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1237(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1237(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1237(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1237(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1237(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -119,14 +119,14 @@ int test4_1238()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1238(a))           == 1> t1;
-    sa<sizeof(sink_4_1238(ca))          == 2> t2;
-    sa<sizeof(sink_4_1238(va))          == 3> t3;
-    sa<sizeof(sink_4_1238(cva))         == 8> t4;
-    sa<sizeof(sink_4_1238(source()))    == 8> t5;
-    sa<sizeof(sink_4_1238(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_1238(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_1238(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1238(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1238(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1238(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1238(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1238(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1238(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1238(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1238(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -141,12 +141,12 @@ int test4_1245()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1245(a))           == 1> t1;
-    sa<sizeof(sink_4_1245(ca))          == 2> t2;
-    sa<sizeof(sink_4_1245(va))          == 4> t3;
-    sa<sizeof(sink_4_1245(cva))         == 4> t4;
-    sa<sizeof(sink_4_1245(source()))    == 5> t5;
-    sa<sizeof(sink_4_1245(c_source()))  == 2> t6;
+    sa<sizeof(sink_4_1245(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1245(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1245(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1245(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1245(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1245(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -161,12 +161,12 @@ int test4_1246()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1246(a))           == 1> t1;
-    sa<sizeof(sink_4_1246(ca))          == 2> t2;
-    sa<sizeof(sink_4_1246(va))          == 4> t3;
-    sa<sizeof(sink_4_1246(cva))         == 4> t4;
-    sa<sizeof(sink_4_1246(source()))    == 6> t5;
-    sa<sizeof(sink_4_1246(c_source()))  == 6> t6;
+    sa<sizeof(sink_4_1246(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1246(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1246(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1246(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1246(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1246(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -181,13 +181,13 @@ int test4_1247()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1247(a))           == 1> t1;
-    sa<sizeof(sink_4_1247(ca))          == 2> t2;
-    sa<sizeof(sink_4_1247(va))          == 4> t3;
-    sa<sizeof(sink_4_1247(cva))         == 4> t4;
-    sa<sizeof(sink_4_1247(source()))    == 7> t5;
-    sa<sizeof(sink_4_1247(c_source()))  == 2> t6;
-    sa<sizeof(sink_4_1247(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_1247(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1247(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1247(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1247(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1247(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1247(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1247(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -202,14 +202,14 @@ int test4_1248()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1248(a))           == 1> t1;
-    sa<sizeof(sink_4_1248(ca))          == 2> t2;
-    sa<sizeof(sink_4_1248(va))          == 4> t3;
-    sa<sizeof(sink_4_1248(cva))         == 4> t4;
-    sa<sizeof(sink_4_1248(source()))    == 8> t5;
-    sa<sizeof(sink_4_1248(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_1248(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_1248(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1248(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1248(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1248(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1248(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1248(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1248(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1248(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1248(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -224,10 +224,10 @@ int test4_1256()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1256(a))           == 1> t1;
-    sa<sizeof(sink_4_1256(ca))          == 2> t2;
-    sa<sizeof(sink_4_1256(source()))    == 5> t5;
-    sa<sizeof(sink_4_1256(c_source()))  == 6> t6;
+    sa<sizeof(sink_4_1256(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1256(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1256(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1256(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -242,12 +242,12 @@ int test4_1257()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1257(a))           == 1> t1;
-    sa<sizeof(sink_4_1257(ca))          == 2> t2;
-    sa<sizeof(sink_4_1257(va))          == 7> t3;
-    sa<sizeof(sink_4_1257(source()))    == 5> t5;
-    sa<sizeof(sink_4_1257(c_source()))  == 2> t6;
-    sa<sizeof(sink_4_1257(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_1257(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1257(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1257(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1257(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1257(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1257(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -262,14 +262,14 @@ int test4_1258()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1258(a))           == 1> t1;
-    sa<sizeof(sink_4_1258(ca))          == 2> t2;
-    sa<sizeof(sink_4_1258(va))          == 8> t3;
-    sa<sizeof(sink_4_1258(cva))         == 8> t4;
-    sa<sizeof(sink_4_1258(source()))    == 5> t5;
-    sa<sizeof(sink_4_1258(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_1258(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_1258(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1258(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1258(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1258(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1258(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1258(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1258(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1258(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1258(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -284,11 +284,11 @@ int test4_1267()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1267(a))           == 1> t1;
-    sa<sizeof(sink_4_1267(ca))          == 2> t2;
-    sa<sizeof(sink_4_1267(va))          == 7> t3;
-    sa<sizeof(sink_4_1267(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_1267(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_1267(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1267(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1267(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1267(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1267(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -303,14 +303,14 @@ int test4_1268()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1268(a))           == 1> t1;
-    sa<sizeof(sink_4_1268(ca))          == 2> t2;
-    sa<sizeof(sink_4_1268(va))          == 8> t3;
-    sa<sizeof(sink_4_1268(cva))         == 8> t4;
-    sa<sizeof(sink_4_1268(source()))    == 6> t5;
-    sa<sizeof(sink_4_1268(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_1268(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_1268(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1268(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1268(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1268(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1268(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1268(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1268(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1268(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1268(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -325,14 +325,14 @@ int test4_1278()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1278(a))           == 1> t1;
-    sa<sizeof(sink_4_1278(ca))          == 2> t2;
-    sa<sizeof(sink_4_1278(va))          == 7> t3;
-    sa<sizeof(sink_4_1278(cva))         == 8> t4;
-    sa<sizeof(sink_4_1278(source()))    == 7> t5;
-    sa<sizeof(sink_4_1278(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_1278(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_1278(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1278(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1278(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1278(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1278(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1278(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1278(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1278(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1278(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -347,11 +347,11 @@ int test4_1345()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1345(a))           == 1> t1;
-    sa<sizeof(sink_4_1345(ca))          == 4> t2;
-    sa<sizeof(sink_4_1345(va))          == 3> t3;
-    sa<sizeof(sink_4_1345(cva))         == 4> t4;
-    sa<sizeof(sink_4_1345(source()))    == 5> t5;
+    sa<sizeof(sink_4_1345(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1345(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1345(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1345(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1345(source()))    == 5 * sizeof(long)> t5;
     return 0;
 }
 
@@ -366,12 +366,12 @@ int test4_1346()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1346(a))           == 1> t1;
-    sa<sizeof(sink_4_1346(ca))          == 4> t2;
-    sa<sizeof(sink_4_1346(va))          == 3> t3;
-    sa<sizeof(sink_4_1346(cva))         == 4> t4;
-    sa<sizeof(sink_4_1346(source()))    == 6> t5;
-    sa<sizeof(sink_4_1346(c_source()))  == 6> t6;
+    sa<sizeof(sink_4_1346(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1346(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1346(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1346(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1346(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1346(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -386,12 +386,12 @@ int test4_1347()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1347(a))           == 1> t1;
-    sa<sizeof(sink_4_1347(ca))          == 4> t2;
-    sa<sizeof(sink_4_1347(va))          == 3> t3;
-    sa<sizeof(sink_4_1347(cva))         == 4> t4;
-    sa<sizeof(sink_4_1347(source()))    == 7> t5;
-    sa<sizeof(sink_4_1347(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_1347(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1347(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1347(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1347(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1347(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1347(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -406,14 +406,14 @@ int test4_1348()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1348(a))           == 1> t1;
-    sa<sizeof(sink_4_1348(ca))          == 4> t2;
-    sa<sizeof(sink_4_1348(va))          == 3> t3;
-    sa<sizeof(sink_4_1348(cva))         == 4> t4;
-    sa<sizeof(sink_4_1348(source()))    == 8> t5;
-    sa<sizeof(sink_4_1348(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_1348(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_1348(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1348(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1348(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1348(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1348(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1348(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1348(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1348(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1348(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -428,11 +428,11 @@ int test4_1356()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1356(a))           == 1> t1;
-    sa<sizeof(sink_4_1356(ca))          == 6> t2;
-    sa<sizeof(sink_4_1356(va))          == 3> t3;
-    sa<sizeof(sink_4_1356(source()))    == 5> t5;
-    sa<sizeof(sink_4_1356(c_source()))  == 6> t6;
+    sa<sizeof(sink_4_1356(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1356(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1356(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1356(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1356(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -447,10 +447,10 @@ int test4_1357()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1357(a))           == 1> t1;
-    sa<sizeof(sink_4_1357(va))          == 3> t3;
-    sa<sizeof(sink_4_1357(source()))    == 5> t5;
-    sa<sizeof(sink_4_1357(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_1357(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1357(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1357(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1357(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -465,14 +465,14 @@ int test4_1358()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1358(a))           == 1> t1;
-    sa<sizeof(sink_4_1358(ca))          == 8> t2;
-    sa<sizeof(sink_4_1358(va))          == 3> t3;
-    sa<sizeof(sink_4_1358(cva))         == 8> t4;
-    sa<sizeof(sink_4_1358(source()))    == 5> t5;
-    sa<sizeof(sink_4_1358(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_1358(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_1358(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1358(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1358(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1358(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1358(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1358(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1358(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1358(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1358(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -487,11 +487,11 @@ int test4_1367()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1367(a))           == 1> t1;
-    sa<sizeof(sink_4_1367(ca))          == 6> t2;
-    sa<sizeof(sink_4_1367(va))          == 3> t3;
-    sa<sizeof(sink_4_1367(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_1367(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_1367(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1367(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1367(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1367(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1367(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -506,14 +506,14 @@ int test4_1368()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1368(a))           == 1> t1;
-    sa<sizeof(sink_4_1368(ca))          == 6> t2;
-    sa<sizeof(sink_4_1368(va))          == 3> t3;
-    sa<sizeof(sink_4_1368(cva))         == 8> t4;
-    sa<sizeof(sink_4_1368(source()))    == 6> t5;
-    sa<sizeof(sink_4_1368(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_1368(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_1368(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1368(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1368(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1368(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1368(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1368(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1368(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1368(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1368(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -528,14 +528,14 @@ int test4_1378()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1378(a))           == 1> t1;
-    sa<sizeof(sink_4_1378(ca))          == 8> t2;
-    sa<sizeof(sink_4_1378(va))          == 3> t3;
-    sa<sizeof(sink_4_1378(cva))         == 8> t4;
-    sa<sizeof(sink_4_1378(source()))    == 7> t5;
-    sa<sizeof(sink_4_1378(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_1378(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_1378(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1378(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1378(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1378(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1378(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1378(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1378(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1378(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1378(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -550,12 +550,12 @@ int test4_1456()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1456(a))           == 1> t1;
-    sa<sizeof(sink_4_1456(ca))          == 4> t2;
-    sa<sizeof(sink_4_1456(va))          == 4> t3;
-    sa<sizeof(sink_4_1456(cva))         == 4> t4;
-    sa<sizeof(sink_4_1456(source()))    == 5> t5;
-    sa<sizeof(sink_4_1456(c_source()))  == 6> t6;
+    sa<sizeof(sink_4_1456(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1456(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1456(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1456(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1456(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1456(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -570,12 +570,12 @@ int test4_1457()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1457(a))           == 1> t1;
-    sa<sizeof(sink_4_1457(ca))          == 4> t2;
-    sa<sizeof(sink_4_1457(va))          == 4> t3;
-    sa<sizeof(sink_4_1457(cva))         == 4> t4;
-    sa<sizeof(sink_4_1457(source()))    == 5> t5;
-    sa<sizeof(sink_4_1457(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_1457(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1457(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1457(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1457(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1457(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1457(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -590,14 +590,14 @@ int test4_1458()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1458(a))           == 1> t1;
-    sa<sizeof(sink_4_1458(ca))          == 4> t2;
-    sa<sizeof(sink_4_1458(va))          == 4> t3;
-    sa<sizeof(sink_4_1458(cva))         == 4> t4;
-    sa<sizeof(sink_4_1458(source()))    == 5> t5;
-    sa<sizeof(sink_4_1458(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_1458(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_1458(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1458(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1458(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1458(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1458(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1458(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1458(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1458(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1458(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -612,12 +612,12 @@ int test4_1467()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1467(a))           == 1> t1;
-    sa<sizeof(sink_4_1467(ca))          == 4> t2;
-    sa<sizeof(sink_4_1467(va))          == 4> t3;
-    sa<sizeof(sink_4_1467(cva))         == 4> t4;
-    sa<sizeof(sink_4_1467(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_1467(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_1467(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1467(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1467(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1467(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1467(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1467(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -632,14 +632,14 @@ int test4_1468()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1468(a))           == 1> t1;
-    sa<sizeof(sink_4_1468(ca))          == 4> t2;
-    sa<sizeof(sink_4_1468(va))          == 4> t3;
-    sa<sizeof(sink_4_1468(cva))         == 4> t4;
-    sa<sizeof(sink_4_1468(source()))    == 6> t5;
-    sa<sizeof(sink_4_1468(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_1468(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_1468(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1468(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1468(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1468(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1468(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1468(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1468(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1468(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1468(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -654,14 +654,14 @@ int test4_1478()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1478(a))           == 1> t1;
-    sa<sizeof(sink_4_1478(ca))          == 4> t2;
-    sa<sizeof(sink_4_1478(va))          == 4> t3;
-    sa<sizeof(sink_4_1478(cva))         == 4> t4;
-    sa<sizeof(sink_4_1478(source()))    == 7> t5;
-    sa<sizeof(sink_4_1478(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_1478(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_1478(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1478(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1478(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1478(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1478(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1478(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1478(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1478(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1478(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -676,12 +676,12 @@ int test4_1567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1567(a))           == 1> t1;
-    sa<sizeof(sink_4_1567(ca))          == 6> t2;
-    sa<sizeof(sink_4_1567(va))          == 7> t3;
-    sa<sizeof(sink_4_1567(source()))    == 5> t5;
-    sa<sizeof(sink_4_1567(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_1567(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_1567(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1567(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1567(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -696,14 +696,14 @@ int test4_1568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1568(a))           == 1> t1;
-    sa<sizeof(sink_4_1568(ca))          == 6> t2;
-    sa<sizeof(sink_4_1568(va))          == 8> t3;
-    sa<sizeof(sink_4_1568(cva))         == 8> t4;
-    sa<sizeof(sink_4_1568(source()))    == 5> t5;
-    sa<sizeof(sink_4_1568(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_1568(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_1568(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1568(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1568(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1568(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1568(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -718,14 +718,14 @@ int test4_1578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1578(a))           == 1> t1;
-    sa<sizeof(sink_4_1578(ca))          == 8> t2;
-    sa<sizeof(sink_4_1578(va))          == 7> t3;
-    sa<sizeof(sink_4_1578(cva))         == 8> t4;
-    sa<sizeof(sink_4_1578(source()))    == 5> t5;
-    sa<sizeof(sink_4_1578(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_1578(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_1578(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1578(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1578(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1578(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1578(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_1578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -740,13 +740,13 @@ int test4_1678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_1678(a))           == 1> t1;
-    sa<sizeof(sink_4_1678(ca))          == 6> t2;
-    sa<sizeof(sink_4_1678(va))          == 7> t3;
-    sa<sizeof(sink_4_1678(cva))         == 8> t4;
-    sa<sizeof(sink_4_1678(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_1678(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_1678(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_1678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_4_1678(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_4_1678(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_4_1678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_1678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_1678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_1678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -761,11 +761,11 @@ int test4_2345()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2345(ca))          == 2> t2;
-    sa<sizeof(sink_4_2345(va))          == 3> t3;
-    sa<sizeof(sink_4_2345(cva))         == 4> t4;
-    sa<sizeof(sink_4_2345(source()))    == 5> t5;
-    sa<sizeof(sink_4_2345(c_source()))  == 2> t6;
+    sa<sizeof(sink_4_2345(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2345(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2345(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2345(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2345(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -780,11 +780,11 @@ int test4_2346()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2346(ca))          == 2> t2;
-    sa<sizeof(sink_4_2346(va))          == 3> t3;
-    sa<sizeof(sink_4_2346(cva))         == 4> t4;
-    sa<sizeof(sink_4_2346(source()))    == 6> t5;
-    sa<sizeof(sink_4_2346(c_source()))  == 6> t6;
+    sa<sizeof(sink_4_2346(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2346(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2346(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2346(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2346(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -799,12 +799,12 @@ int test4_2347()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2347(ca))          == 2> t2;
-    sa<sizeof(sink_4_2347(va))          == 3> t3;
-    sa<sizeof(sink_4_2347(cva))         == 4> t4;
-    sa<sizeof(sink_4_2347(source()))    == 7> t5;
-    sa<sizeof(sink_4_2347(c_source()))  == 2> t6;
-    sa<sizeof(sink_4_2347(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_2347(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2347(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2347(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2347(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2347(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2347(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -819,13 +819,13 @@ int test4_2348()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2348(ca))          == 2> t2;
-    sa<sizeof(sink_4_2348(va))          == 3> t3;
-    sa<sizeof(sink_4_2348(cva))         == 4> t4;
-    sa<sizeof(sink_4_2348(source()))    == 8> t5;
-    sa<sizeof(sink_4_2348(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_2348(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_2348(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_2348(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2348(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2348(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2348(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2348(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2348(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_2348(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -840,10 +840,10 @@ int test4_2356()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2356(ca))          == 2> t2;
-    sa<sizeof(sink_4_2356(va))          == 3> t3;
-    sa<sizeof(sink_4_2356(source()))    == 5> t5;
-    sa<sizeof(sink_4_2356(c_source()))  == 6> t6;
+    sa<sizeof(sink_4_2356(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2356(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2356(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2356(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -858,11 +858,11 @@ int test4_2357()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2357(ca))          == 2> t2;
-    sa<sizeof(sink_4_2357(va))          == 3> t3;
-    sa<sizeof(sink_4_2357(source()))    == 5> t5;
-    sa<sizeof(sink_4_2357(c_source()))  == 2> t6;
-    sa<sizeof(sink_4_2357(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_2357(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2357(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2357(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2357(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2357(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -877,13 +877,13 @@ int test4_2358()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2358(ca))          == 2> t2;
-    sa<sizeof(sink_4_2358(va))          == 3> t3;
-    sa<sizeof(sink_4_2358(cva))         == 8> t4;
-    sa<sizeof(sink_4_2358(source()))    == 5> t5;
-    sa<sizeof(sink_4_2358(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_2358(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_2358(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_2358(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2358(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2358(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2358(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2358(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2358(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_2358(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -898,10 +898,10 @@ int test4_2367()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2367(ca))          == 2> t2;
-    sa<sizeof(sink_4_2367(va))          == 3> t3;
-    sa<sizeof(sink_4_2367(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_2367(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_2367(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2367(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2367(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2367(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -916,13 +916,13 @@ int test4_2368()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2368(ca))          == 2> t2;
-    sa<sizeof(sink_4_2368(va))          == 3> t3;
-    sa<sizeof(sink_4_2368(cva))         == 8> t4;
-    sa<sizeof(sink_4_2368(source()))    == 6> t5;
-    sa<sizeof(sink_4_2368(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_2368(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_2368(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_2368(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2368(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2368(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2368(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2368(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2368(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_2368(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -937,13 +937,13 @@ int test4_2378()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2378(ca))          == 2> t2;
-    sa<sizeof(sink_4_2378(va))          == 3> t3;
-    sa<sizeof(sink_4_2378(cva))         == 8> t4;
-    sa<sizeof(sink_4_2378(source()))    == 7> t5;
-    sa<sizeof(sink_4_2378(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_2378(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_2378(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_2378(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2378(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2378(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2378(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2378(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2378(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_2378(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -958,12 +958,12 @@ int test4_2456()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2456(a))           == 2> t1;
-    sa<sizeof(sink_4_2456(ca))          == 2> t2;
-    sa<sizeof(sink_4_2456(va))          == 4> t3;
-    sa<sizeof(sink_4_2456(cva))         == 4> t4;
-    sa<sizeof(sink_4_2456(source()))    == 5> t5;
-    sa<sizeof(sink_4_2456(c_source()))  == 6> t6;
+    sa<sizeof(sink_4_2456(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_4_2456(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2456(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2456(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2456(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2456(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -978,13 +978,13 @@ int test4_2457()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2457(a))           == 2> t1;
-    sa<sizeof(sink_4_2457(ca))          == 2> t2;
-    sa<sizeof(sink_4_2457(va))          == 4> t3;
-    sa<sizeof(sink_4_2457(cva))         == 4> t4;
-    sa<sizeof(sink_4_2457(source()))    == 5> t5;
-    sa<sizeof(sink_4_2457(c_source()))  == 2> t6;
-    sa<sizeof(sink_4_2457(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_2457(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_4_2457(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2457(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2457(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2457(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2457(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2457(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -999,14 +999,14 @@ int test4_2458()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2458(a))           == 2> t1;
-    sa<sizeof(sink_4_2458(ca))          == 2> t2;
-    sa<sizeof(sink_4_2458(va))          == 4> t3;
-    sa<sizeof(sink_4_2458(cva))         == 4> t4;
-    sa<sizeof(sink_4_2458(source()))    == 5> t5;
-    sa<sizeof(sink_4_2458(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_2458(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_2458(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_2458(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_4_2458(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2458(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2458(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2458(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2458(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2458(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_2458(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1021,12 +1021,12 @@ int test4_2467()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2467(a))           == 2> t1;
-    sa<sizeof(sink_4_2467(ca))          == 2> t2;
-    sa<sizeof(sink_4_2467(va))          == 4> t3;
-    sa<sizeof(sink_4_2467(cva))         == 4> t4;
-    sa<sizeof(sink_4_2467(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_2467(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_2467(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_4_2467(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2467(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2467(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2467(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2467(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -1041,14 +1041,14 @@ int test4_2468()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2468(a))           == 2> t1;
-    sa<sizeof(sink_4_2468(ca))          == 2> t2;
-    sa<sizeof(sink_4_2468(va))          == 4> t3;
-    sa<sizeof(sink_4_2468(cva))         == 4> t4;
-    sa<sizeof(sink_4_2468(source()))    == 6> t5;
-    sa<sizeof(sink_4_2468(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_2468(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_2468(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_2468(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_4_2468(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2468(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2468(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2468(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2468(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2468(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_2468(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1063,14 +1063,14 @@ int test4_2478()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2478(a))           == 2> t1;
-    sa<sizeof(sink_4_2478(ca))          == 2> t2;
-    sa<sizeof(sink_4_2478(va))          == 4> t3;
-    sa<sizeof(sink_4_2478(cva))         == 4> t4;
-    sa<sizeof(sink_4_2478(source()))    == 7> t5;
-    sa<sizeof(sink_4_2478(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_2478(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_2478(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_2478(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_4_2478(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2478(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2478(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2478(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2478(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2478(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_2478(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1085,12 +1085,12 @@ int test4_2567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2567(a))           == 2> t1;
-    sa<sizeof(sink_4_2567(ca))          == 2> t2;
-    sa<sizeof(sink_4_2567(va))          == 7> t3;
-    sa<sizeof(sink_4_2567(source()))    == 5> t5;
-    sa<sizeof(sink_4_2567(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_2567(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_2567(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_4_2567(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2567(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -1105,14 +1105,14 @@ int test4_2568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2568(a))           == 2> t1;
-    sa<sizeof(sink_4_2568(ca))          == 2> t2;
-    sa<sizeof(sink_4_2568(va))          == 8> t3;
-    sa<sizeof(sink_4_2568(cva))         == 8> t4;
-    sa<sizeof(sink_4_2568(source()))    == 5> t5;
-    sa<sizeof(sink_4_2568(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_2568(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_2568(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_2568(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_4_2568(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2568(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2568(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_2568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1127,14 +1127,14 @@ int test4_2578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2578(a))           == 2> t1;
-    sa<sizeof(sink_4_2578(ca))          == 2> t2;
-    sa<sizeof(sink_4_2578(va))          == 7> t3;
-    sa<sizeof(sink_4_2578(cva))         == 8> t4;
-    sa<sizeof(sink_4_2578(source()))    == 5> t5;
-    sa<sizeof(sink_4_2578(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_2578(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_2578(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_2578(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_4_2578(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2578(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2578(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_2578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_2578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1149,13 +1149,13 @@ int test4_2678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_2678(a))           == 2> t1;
-    sa<sizeof(sink_4_2678(ca))          == 2> t2;
-    sa<sizeof(sink_4_2678(va))          == 7> t3;
-    sa<sizeof(sink_4_2678(cva))         == 8> t4;
-    sa<sizeof(sink_4_2678(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_2678(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_2678(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_2678(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_4_2678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_4_2678(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_4_2678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_2678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_2678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_2678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1170,12 +1170,12 @@ int test4_3456()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_3456(a))           == 3> t1;
-    sa<sizeof(sink_4_3456(ca))          == 4> t2;
-    sa<sizeof(sink_4_3456(va))          == 3> t3;
-    sa<sizeof(sink_4_3456(cva))         == 4> t4;
-    sa<sizeof(sink_4_3456(source()))    == 5> t5;
-    sa<sizeof(sink_4_3456(c_source()))  == 6> t6;
+    sa<sizeof(sink_4_3456(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_4_3456(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_3456(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_3456(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_3456(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_3456(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -1190,12 +1190,12 @@ int test4_3457()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_3457(a))           == 3> t1;
-    sa<sizeof(sink_4_3457(ca))          == 4> t2;
-    sa<sizeof(sink_4_3457(va))          == 3> t3;
-    sa<sizeof(sink_4_3457(cva))         == 4> t4;
-    sa<sizeof(sink_4_3457(source()))    == 5> t5;
-    sa<sizeof(sink_4_3457(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_3457(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_4_3457(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_3457(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_3457(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_3457(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_3457(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -1210,14 +1210,14 @@ int test4_3458()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_3458(a))           == 3> t1;
-    sa<sizeof(sink_4_3458(ca))          == 4> t2;
-    sa<sizeof(sink_4_3458(va))          == 3> t3;
-    sa<sizeof(sink_4_3458(cva))         == 4> t4;
-    sa<sizeof(sink_4_3458(source()))    == 5> t5;
-    sa<sizeof(sink_4_3458(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_3458(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_3458(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_3458(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_4_3458(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_3458(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_3458(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_3458(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_3458(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_3458(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_3458(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1232,12 +1232,12 @@ int test4_3467()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_3467(a))           == 3> t1;
-    sa<sizeof(sink_4_3467(ca))          == 4> t2;
-    sa<sizeof(sink_4_3467(va))          == 3> t3;
-    sa<sizeof(sink_4_3467(cva))         == 4> t4;
-    sa<sizeof(sink_4_3467(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_3467(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_3467(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_4_3467(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_3467(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_3467(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_3467(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_3467(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -1252,14 +1252,14 @@ int test4_3468()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_3468(a))           == 3> t1;
-    sa<sizeof(sink_4_3468(ca))          == 4> t2;
-    sa<sizeof(sink_4_3468(va))          == 3> t3;
-    sa<sizeof(sink_4_3468(cva))         == 4> t4;
-    sa<sizeof(sink_4_3468(source()))    == 6> t5;
-    sa<sizeof(sink_4_3468(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_3468(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_3468(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_3468(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_4_3468(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_3468(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_3468(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_3468(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_4_3468(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_3468(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_3468(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1274,14 +1274,14 @@ int test4_3478()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_3478(a))           == 3> t1;
-    sa<sizeof(sink_4_3478(ca))          == 4> t2;
-    sa<sizeof(sink_4_3478(va))          == 3> t3;
-    sa<sizeof(sink_4_3478(cva))         == 4> t4;
-    sa<sizeof(sink_4_3478(source()))    == 7> t5;
-    sa<sizeof(sink_4_3478(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_3478(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_3478(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_3478(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_4_3478(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_3478(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_3478(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_3478(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_4_3478(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_3478(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_3478(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1296,12 +1296,12 @@ int test4_3567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_3567(a))           == 3> t1;
-    sa<sizeof(sink_4_3567(ca))          == 6> t2;
-    sa<sizeof(sink_4_3567(va))          == 3> t3;
-    sa<sizeof(sink_4_3567(source()))    == 5> t5;
-    sa<sizeof(sink_4_3567(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_3567(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_3567(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_4_3567(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_4_3567(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_3567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_3567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_3567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -1316,14 +1316,14 @@ int test4_3568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_3568(a))           == 3> t1;
-    sa<sizeof(sink_4_3568(ca))          == 6> t2;
-    sa<sizeof(sink_4_3568(va))          == 3> t3;
-    sa<sizeof(sink_4_3568(cva))         == 8> t4;
-    sa<sizeof(sink_4_3568(source()))    == 5> t5;
-    sa<sizeof(sink_4_3568(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_3568(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_3568(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_3568(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_4_3568(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_4_3568(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_3568(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_3568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_3568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_3568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_3568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1338,14 +1338,14 @@ int test4_3578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_3578(a))           == 3> t1;
-    sa<sizeof(sink_4_3578(ca))          == 8> t2;
-    sa<sizeof(sink_4_3578(va))          == 3> t3;
-    sa<sizeof(sink_4_3578(cva))         == 8> t4;
-    sa<sizeof(sink_4_3578(source()))    == 5> t5;
-    sa<sizeof(sink_4_3578(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_3578(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_3578(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_3578(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_4_3578(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_4_3578(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_3578(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_3578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_3578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_3578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_3578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1360,13 +1360,13 @@ int test4_3678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_3678(a))           == 3> t1;
-    sa<sizeof(sink_4_3678(ca))          == 6> t2;
-    sa<sizeof(sink_4_3678(va))          == 3> t3;
-    sa<sizeof(sink_4_3678(cva))         == 8> t4;
-    sa<sizeof(sink_4_3678(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_3678(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_3678(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_3678(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_4_3678(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_4_3678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_4_3678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_3678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_3678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_3678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1381,13 +1381,13 @@ int test4_4567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_4567(a))           == 4> t1;
-    sa<sizeof(sink_4_4567(ca))          == 4> t2;
-    sa<sizeof(sink_4_4567(va))          == 4> t3;
-    sa<sizeof(sink_4_4567(cva))         == 4> t4;
-    sa<sizeof(sink_4_4567(source()))    == 5> t5;
-    sa<sizeof(sink_4_4567(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_4567(v_source()))  == 7> t7;
+    sa<sizeof(sink_4_4567(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_4_4567(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_4567(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_4567(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_4567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_4567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_4567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -1402,14 +1402,14 @@ int test4_4568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_4568(a))           == 4> t1;
-    sa<sizeof(sink_4_4568(ca))          == 4> t2;
-    sa<sizeof(sink_4_4568(va))          == 4> t3;
-    sa<sizeof(sink_4_4568(cva))         == 4> t4;
-    sa<sizeof(sink_4_4568(source()))    == 5> t5;
-    sa<sizeof(sink_4_4568(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_4568(v_source()))  == 8> t7;
-    sa<sizeof(sink_4_4568(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_4568(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_4_4568(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_4568(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_4568(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_4568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_4568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_4568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_4_4568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1424,14 +1424,14 @@ int test4_4578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_4578(a))           == 4> t1;
-    sa<sizeof(sink_4_4578(ca))          == 4> t2;
-    sa<sizeof(sink_4_4578(va))          == 4> t3;
-    sa<sizeof(sink_4_4578(cva))         == 4> t4;
-    sa<sizeof(sink_4_4578(source()))    == 5> t5;
-    sa<sizeof(sink_4_4578(c_source()))  == 8> t6;
-    sa<sizeof(sink_4_4578(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_4578(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_4578(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_4_4578(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_4578(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_4578(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_4578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_4578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_4_4578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_4578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1446,13 +1446,13 @@ int test4_4678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_4678(a))           == 4> t1;
-    sa<sizeof(sink_4_4678(ca))          == 4> t2;
-    sa<sizeof(sink_4_4678(va))          == 4> t3;
-    sa<sizeof(sink_4_4678(cva))         == 4> t4;
-    sa<sizeof(sink_4_4678(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_4678(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_4678(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_4678(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_4_4678(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_4_4678(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_4_4678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_4_4678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_4678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_4678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1467,14 +1467,14 @@ int test4_5678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_4_5678(a))           == 5> t1;
-    sa<sizeof(sink_4_5678(ca))          == 6> t2;
-    sa<sizeof(sink_4_5678(va))          == 7> t3;
-    sa<sizeof(sink_4_5678(cva))         == 8> t4;
-    sa<sizeof(sink_4_5678(source()))    == 5> t5;
-    sa<sizeof(sink_4_5678(c_source()))  == 6> t6;
-    sa<sizeof(sink_4_5678(v_source()))  == 7> t7;
-    sa<sizeof(sink_4_5678(cv_source())) == 8> t8;
+    sa<sizeof(sink_4_5678(a))           == 5 * sizeof(long)> t1;
+    sa<sizeof(sink_4_5678(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_4_5678(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_4_5678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_4_5678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_4_5678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_4_5678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_4_5678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
index a4d916714c3b40b46a692295d6d8fab587b0ecd0..def4711ff0102fc8067dfd9dfbc2b554f3d40364 100644 (file)
@@ -8,14 +8,14 @@
 template <bool> struct sa;
 template <> struct sa<true> {};
 
-struct one   {char x[1];};
-struct two   {char x[2];};
-struct three {char x[3];};
-struct four  {char x[4];};
-struct five  {char x[5];};
-struct six   {char x[6];};
-struct seven {char x[7];};
-struct eight {char x[8];};
+struct one   {long x[1];};
+struct two   {long x[2];};
+struct three {long x[3];};
+struct four  {long x[4];};
+struct five  {long x[5];};
+struct six   {long x[6];};
+struct seven {long x[7];};
+struct eight {long x[8];};
 
 struct A
 {
@@ -42,12 +42,12 @@ int test5_12345()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12345(a))           == 1> t1;
-    sa<sizeof(sink_5_12345(ca))          == 2> t2;
-    sa<sizeof(sink_5_12345(va))          == 3> t3;
-    sa<sizeof(sink_5_12345(cva))         == 4> t4;
-    sa<sizeof(sink_5_12345(source()))    == 5> t5;
-    sa<sizeof(sink_5_12345(c_source()))  == 2> t6;
+    sa<sizeof(sink_5_12345(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12345(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12345(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12345(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12345(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12345(c_source()))  == 2 * sizeof(long)> t6;
     return 0;
 }
 
@@ -63,12 +63,12 @@ int test5_12346()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12346(a))           == 1> t1;
-    sa<sizeof(sink_5_12346(ca))          == 2> t2;
-    sa<sizeof(sink_5_12346(va))          == 3> t3;
-    sa<sizeof(sink_5_12346(cva))         == 4> t4;
-    sa<sizeof(sink_5_12346(source()))    == 6> t5;
-    sa<sizeof(sink_5_12346(c_source()))  == 6> t6;
+    sa<sizeof(sink_5_12346(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12346(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12346(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12346(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12346(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12346(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -84,13 +84,13 @@ int test5_12347()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12347(a))           == 1> t1;
-    sa<sizeof(sink_5_12347(ca))          == 2> t2;
-    sa<sizeof(sink_5_12347(va))          == 3> t3;
-    sa<sizeof(sink_5_12347(cva))         == 4> t4;
-    sa<sizeof(sink_5_12347(source()))    == 7> t5;
-    sa<sizeof(sink_5_12347(c_source()))  == 2> t6;
-    sa<sizeof(sink_5_12347(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_12347(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12347(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12347(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12347(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12347(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12347(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12347(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -106,14 +106,14 @@ int test5_12348()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12348(a))           == 1> t1;
-    sa<sizeof(sink_5_12348(ca))          == 2> t2;
-    sa<sizeof(sink_5_12348(va))          == 3> t3;
-    sa<sizeof(sink_5_12348(cva))         == 4> t4;
-    sa<sizeof(sink_5_12348(source()))    == 8> t5;
-    sa<sizeof(sink_5_12348(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_12348(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_12348(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_12348(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12348(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12348(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12348(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12348(source()))    == 8 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12348(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12348(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_12348(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -129,11 +129,11 @@ int test5_12356()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12356(a))           == 1> t1;
-    sa<sizeof(sink_5_12356(ca))          == 2> t2;
-    sa<sizeof(sink_5_12356(va))          == 3> t3;
-    sa<sizeof(sink_5_12356(source()))    == 5> t5;
-    sa<sizeof(sink_5_12356(c_source()))  == 6> t6;
+    sa<sizeof(sink_5_12356(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12356(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12356(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12356(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12356(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -149,12 +149,12 @@ int test5_12357()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12357(a))           == 1> t1;
-    sa<sizeof(sink_5_12357(ca))          == 2> t2;
-    sa<sizeof(sink_5_12357(va))          == 3> t3;
-    sa<sizeof(sink_5_12357(source()))    == 5> t5;
-    sa<sizeof(sink_5_12357(c_source()))  == 2> t6;
-    sa<sizeof(sink_5_12357(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_12357(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12357(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12357(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12357(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12357(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12357(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -170,14 +170,14 @@ int test5_12358()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12358(a))           == 1> t1;
-    sa<sizeof(sink_5_12358(ca))          == 2> t2;
-    sa<sizeof(sink_5_12358(va))          == 3> t3;
-    sa<sizeof(sink_5_12358(cva))         == 8> t4;
-    sa<sizeof(sink_5_12358(source()))    == 5> t5;
-    sa<sizeof(sink_5_12358(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_12358(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_12358(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_12358(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12358(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12358(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12358(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12358(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12358(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12358(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_12358(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -193,11 +193,11 @@ int test5_12367()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12367(a))           == 1> t1;
-    sa<sizeof(sink_5_12367(ca))          == 2> t2;
-    sa<sizeof(sink_5_12367(va))          == 3> t3;
-    sa<sizeof(sink_5_12367(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_12367(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_12367(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12367(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12367(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12367(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12367(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -213,14 +213,14 @@ int test5_12368()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12368(a))           == 1> t1;
-    sa<sizeof(sink_5_12368(ca))          == 2> t2;
-    sa<sizeof(sink_5_12368(va))          == 3> t3;
-    sa<sizeof(sink_5_12368(cva))         == 8> t4;
-    sa<sizeof(sink_5_12368(source()))    == 6> t5;
-    sa<sizeof(sink_5_12368(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_12368(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_12368(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_12368(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12368(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12368(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12368(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12368(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12368(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12368(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_12368(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -236,14 +236,14 @@ int test5_12378()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12378(a))           == 1> t1;
-    sa<sizeof(sink_5_12378(ca))          == 2> t2;
-    sa<sizeof(sink_5_12378(va))          == 3> t3;
-    sa<sizeof(sink_5_12378(cva))         == 8> t4;
-    sa<sizeof(sink_5_12378(source()))    == 7> t5;
-    sa<sizeof(sink_5_12378(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_12378(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_12378(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_12378(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12378(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12378(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12378(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12378(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12378(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12378(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_12378(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -259,12 +259,12 @@ int test5_12456()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12456(a))           == 1> t1;
-    sa<sizeof(sink_5_12456(ca))          == 2> t2;
-    sa<sizeof(sink_5_12456(va))          == 4> t3;
-    sa<sizeof(sink_5_12456(cva))         == 4> t4;
-    sa<sizeof(sink_5_12456(source()))    == 5> t5;
-    sa<sizeof(sink_5_12456(c_source()))  == 6> t6;
+    sa<sizeof(sink_5_12456(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12456(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12456(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12456(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12456(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12456(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -280,13 +280,13 @@ int test5_12457()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12457(a))           == 1> t1;
-    sa<sizeof(sink_5_12457(ca))          == 2> t2;
-    sa<sizeof(sink_5_12457(va))          == 4> t3;
-    sa<sizeof(sink_5_12457(cva))         == 4> t4;
-    sa<sizeof(sink_5_12457(source()))    == 5> t5;
-    sa<sizeof(sink_5_12457(c_source()))  == 2> t6;
-    sa<sizeof(sink_5_12457(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_12457(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12457(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12457(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12457(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12457(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12457(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12457(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -302,14 +302,14 @@ int test5_12458()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12458(a))           == 1> t1;
-    sa<sizeof(sink_5_12458(ca))          == 2> t2;
-    sa<sizeof(sink_5_12458(va))          == 4> t3;
-    sa<sizeof(sink_5_12458(cva))         == 4> t4;
-    sa<sizeof(sink_5_12458(source()))    == 5> t5;
-    sa<sizeof(sink_5_12458(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_12458(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_12458(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_12458(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12458(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12458(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12458(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12458(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12458(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12458(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_12458(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -325,12 +325,12 @@ int test5_12467()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12467(a))           == 1> t1;
-    sa<sizeof(sink_5_12467(ca))          == 2> t2;
-    sa<sizeof(sink_5_12467(va))          == 4> t3;
-    sa<sizeof(sink_5_12467(cva))         == 4> t4;
-    sa<sizeof(sink_5_12467(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_12467(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_12467(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12467(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12467(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12467(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12467(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12467(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -346,14 +346,14 @@ int test5_12468()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12468(a))           == 1> t1;
-    sa<sizeof(sink_5_12468(ca))          == 2> t2;
-    sa<sizeof(sink_5_12468(va))          == 4> t3;
-    sa<sizeof(sink_5_12468(cva))         == 4> t4;
-    sa<sizeof(sink_5_12468(source()))    == 6> t5;
-    sa<sizeof(sink_5_12468(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_12468(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_12468(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_12468(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12468(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12468(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12468(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12468(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12468(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12468(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_12468(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -369,14 +369,14 @@ int test5_12478()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12478(a))           == 1> t1;
-    sa<sizeof(sink_5_12478(ca))          == 2> t2;
-    sa<sizeof(sink_5_12478(va))          == 4> t3;
-    sa<sizeof(sink_5_12478(cva))         == 4> t4;
-    sa<sizeof(sink_5_12478(source()))    == 7> t5;
-    sa<sizeof(sink_5_12478(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_12478(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_12478(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_12478(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12478(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12478(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12478(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12478(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12478(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12478(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_12478(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -392,12 +392,12 @@ int test5_12567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12567(a))           == 1> t1;
-    sa<sizeof(sink_5_12567(ca))          == 2> t2;
-    sa<sizeof(sink_5_12567(va))          == 7> t3;
-    sa<sizeof(sink_5_12567(source()))    == 5> t5;
-    sa<sizeof(sink_5_12567(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_12567(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_12567(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12567(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12567(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -413,14 +413,14 @@ int test5_12568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12568(a))           == 1> t1;
-    sa<sizeof(sink_5_12568(ca))          == 2> t2;
-    sa<sizeof(sink_5_12568(va))          == 8> t3;
-    sa<sizeof(sink_5_12568(cva))         == 8> t4;
-    sa<sizeof(sink_5_12568(source()))    == 5> t5;
-    sa<sizeof(sink_5_12568(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_12568(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_12568(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_12568(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12568(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12568(va))          == 8 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12568(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_12568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -436,14 +436,14 @@ int test5_12578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12578(a))           == 1> t1;
-    sa<sizeof(sink_5_12578(ca))          == 2> t2;
-    sa<sizeof(sink_5_12578(va))          == 7> t3;
-    sa<sizeof(sink_5_12578(cva))         == 8> t4;
-    sa<sizeof(sink_5_12578(source()))    == 5> t5;
-    sa<sizeof(sink_5_12578(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_12578(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_12578(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_12578(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12578(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12578(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12578(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_12578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_12578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -459,13 +459,13 @@ int test5_12678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_12678(a))           == 1> t1;
-    sa<sizeof(sink_5_12678(ca))          == 2> t2;
-    sa<sizeof(sink_5_12678(va))          == 7> t3;
-    sa<sizeof(sink_5_12678(cva))         == 8> t4;
-    sa<sizeof(sink_5_12678(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_12678(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_12678(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_12678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_12678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_12678(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_5_12678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_12678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_12678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_12678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -481,12 +481,12 @@ int test5_13456()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_13456(a))           == 1> t1;
-    sa<sizeof(sink_5_13456(ca))          == 4> t2;
-    sa<sizeof(sink_5_13456(va))          == 3> t3;
-    sa<sizeof(sink_5_13456(cva))         == 4> t4;
-    sa<sizeof(sink_5_13456(source()))    == 5> t5;
-    sa<sizeof(sink_5_13456(c_source()))  == 6> t6;
+    sa<sizeof(sink_5_13456(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_13456(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_13456(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_13456(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_13456(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_13456(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -502,12 +502,12 @@ int test5_13457()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_13457(a))           == 1> t1;
-    sa<sizeof(sink_5_13457(ca))          == 4> t2;
-    sa<sizeof(sink_5_13457(va))          == 3> t3;
-    sa<sizeof(sink_5_13457(cva))         == 4> t4;
-    sa<sizeof(sink_5_13457(source()))    == 5> t5;
-    sa<sizeof(sink_5_13457(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_13457(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_13457(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_13457(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_13457(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_13457(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_13457(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -523,14 +523,14 @@ int test5_13458()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_13458(a))           == 1> t1;
-    sa<sizeof(sink_5_13458(ca))          == 4> t2;
-    sa<sizeof(sink_5_13458(va))          == 3> t3;
-    sa<sizeof(sink_5_13458(cva))         == 4> t4;
-    sa<sizeof(sink_5_13458(source()))    == 5> t5;
-    sa<sizeof(sink_5_13458(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_13458(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_13458(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_13458(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_13458(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_13458(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_13458(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_13458(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_13458(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_13458(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_13458(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -546,12 +546,12 @@ int test5_13467()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_13467(a))           == 1> t1;
-    sa<sizeof(sink_5_13467(ca))          == 4> t2;
-    sa<sizeof(sink_5_13467(va))          == 3> t3;
-    sa<sizeof(sink_5_13467(cva))         == 4> t4;
-    sa<sizeof(sink_5_13467(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_13467(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_13467(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_13467(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_13467(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_13467(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_13467(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_13467(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -567,14 +567,14 @@ int test5_13468()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_13468(a))           == 1> t1;
-    sa<sizeof(sink_5_13468(ca))          == 4> t2;
-    sa<sizeof(sink_5_13468(va))          == 3> t3;
-    sa<sizeof(sink_5_13468(cva))         == 4> t4;
-    sa<sizeof(sink_5_13468(source()))    == 6> t5;
-    sa<sizeof(sink_5_13468(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_13468(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_13468(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_13468(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_13468(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_13468(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_13468(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_13468(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_5_13468(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_13468(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_13468(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -590,14 +590,14 @@ int test5_13478()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_13478(a))           == 1> t1;
-    sa<sizeof(sink_5_13478(ca))          == 4> t2;
-    sa<sizeof(sink_5_13478(va))          == 3> t3;
-    sa<sizeof(sink_5_13478(cva))         == 4> t4;
-    sa<sizeof(sink_5_13478(source()))    == 7> t5;
-    sa<sizeof(sink_5_13478(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_13478(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_13478(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_13478(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_13478(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_13478(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_13478(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_13478(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_5_13478(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_13478(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_13478(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -613,12 +613,12 @@ int test5_13567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_13567(a))           == 1> t1;
-    sa<sizeof(sink_5_13567(ca))          == 6> t2;
-    sa<sizeof(sink_5_13567(va))          == 3> t3;
-    sa<sizeof(sink_5_13567(source()))    == 5> t5;
-    sa<sizeof(sink_5_13567(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_13567(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_13567(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_13567(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_5_13567(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_13567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_13567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_13567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -634,14 +634,14 @@ int test5_13568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_13568(a))           == 1> t1;
-    sa<sizeof(sink_5_13568(ca))          == 6> t2;
-    sa<sizeof(sink_5_13568(va))          == 3> t3;
-    sa<sizeof(sink_5_13568(cva))         == 8> t4;
-    sa<sizeof(sink_5_13568(source()))    == 5> t5;
-    sa<sizeof(sink_5_13568(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_13568(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_13568(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_13568(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_13568(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_5_13568(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_13568(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_13568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_13568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_13568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_13568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -657,14 +657,14 @@ int test5_13578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_13578(a))           == 1> t1;
-    sa<sizeof(sink_5_13578(ca))          == 8> t2;
-    sa<sizeof(sink_5_13578(va))          == 3> t3;
-    sa<sizeof(sink_5_13578(cva))         == 8> t4;
-    sa<sizeof(sink_5_13578(source()))    == 5> t5;
-    sa<sizeof(sink_5_13578(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_13578(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_13578(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_13578(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_13578(ca))          == 8 * sizeof(long)> t2;
+    sa<sizeof(sink_5_13578(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_13578(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_13578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_13578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_13578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_13578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -680,13 +680,13 @@ int test5_13678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_13678(a))           == 1> t1;
-    sa<sizeof(sink_5_13678(ca))          == 6> t2;
-    sa<sizeof(sink_5_13678(va))          == 3> t3;
-    sa<sizeof(sink_5_13678(cva))         == 8> t4;
-    sa<sizeof(sink_5_13678(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_13678(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_13678(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_13678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_13678(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_5_13678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_13678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_13678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_13678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_13678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -702,13 +702,13 @@ int test5_14567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_14567(a))           == 1> t1;
-    sa<sizeof(sink_5_14567(ca))          == 4> t2;
-    sa<sizeof(sink_5_14567(va))          == 4> t3;
-    sa<sizeof(sink_5_14567(cva))         == 4> t4;
-    sa<sizeof(sink_5_14567(source()))    == 5> t5;
-    sa<sizeof(sink_5_14567(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_14567(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_14567(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_14567(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_14567(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_14567(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_14567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_14567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_14567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -724,14 +724,14 @@ int test5_14568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_14568(a))           == 1> t1;
-    sa<sizeof(sink_5_14568(ca))          == 4> t2;
-    sa<sizeof(sink_5_14568(va))          == 4> t3;
-    sa<sizeof(sink_5_14568(cva))         == 4> t4;
-    sa<sizeof(sink_5_14568(source()))    == 5> t5;
-    sa<sizeof(sink_5_14568(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_14568(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_14568(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_14568(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_14568(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_14568(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_14568(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_14568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_14568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_14568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_14568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -747,14 +747,14 @@ int test5_14578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_14578(a))           == 1> t1;
-    sa<sizeof(sink_5_14578(ca))          == 4> t2;
-    sa<sizeof(sink_5_14578(va))          == 4> t3;
-    sa<sizeof(sink_5_14578(cva))         == 4> t4;
-    sa<sizeof(sink_5_14578(source()))    == 5> t5;
-    sa<sizeof(sink_5_14578(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_14578(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_14578(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_14578(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_14578(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_14578(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_14578(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_14578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_14578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_14578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_14578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -770,13 +770,13 @@ int test5_14678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_14678(a))           == 1> t1;
-    sa<sizeof(sink_5_14678(ca))          == 4> t2;
-    sa<sizeof(sink_5_14678(va))          == 4> t3;
-    sa<sizeof(sink_5_14678(cva))         == 4> t4;
-    sa<sizeof(sink_5_14678(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_14678(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_14678(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_14678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_14678(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_14678(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_14678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_14678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_14678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_14678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -792,14 +792,14 @@ int test5_15678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_15678(a))           == 1> t1;
-    sa<sizeof(sink_5_15678(ca))          == 6> t2;
-    sa<sizeof(sink_5_15678(va))          == 7> t3;
-    sa<sizeof(sink_5_15678(cva))         == 8> t4;
-    sa<sizeof(sink_5_15678(source()))    == 5> t5;
-    sa<sizeof(sink_5_15678(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_15678(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_15678(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_15678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_5_15678(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_5_15678(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_5_15678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_15678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_15678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_15678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_15678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -815,11 +815,11 @@ int test5_23456()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_23456(ca))          == 2> t2;
-    sa<sizeof(sink_5_23456(va))          == 3> t3;
-    sa<sizeof(sink_5_23456(cva))         == 4> t4;
-    sa<sizeof(sink_5_23456(source()))    == 5> t5;
-    sa<sizeof(sink_5_23456(c_source()))  == 6> t6;
+    sa<sizeof(sink_5_23456(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_23456(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_23456(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_23456(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_23456(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -835,12 +835,12 @@ int test5_23457()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_23457(ca))          == 2> t2;
-    sa<sizeof(sink_5_23457(va))          == 3> t3;
-    sa<sizeof(sink_5_23457(cva))         == 4> t4;
-    sa<sizeof(sink_5_23457(source()))    == 5> t5;
-    sa<sizeof(sink_5_23457(c_source()))  == 2> t6;
-    sa<sizeof(sink_5_23457(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_23457(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_23457(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_23457(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_23457(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_23457(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_5_23457(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -856,13 +856,13 @@ int test5_23458()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_23458(ca))          == 2> t2;
-    sa<sizeof(sink_5_23458(va))          == 3> t3;
-    sa<sizeof(sink_5_23458(cva))         == 4> t4;
-    sa<sizeof(sink_5_23458(source()))    == 5> t5;
-    sa<sizeof(sink_5_23458(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_23458(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_23458(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_23458(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_23458(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_23458(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_23458(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_23458(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_23458(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_23458(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -878,11 +878,11 @@ int test5_23467()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_23467(ca))          == 2> t2;
-    sa<sizeof(sink_5_23467(va))          == 3> t3;
-    sa<sizeof(sink_5_23467(cva))         == 4> t4;
-    sa<sizeof(sink_5_23467(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_23467(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_23467(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_23467(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_23467(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_23467(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_23467(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -898,13 +898,13 @@ int test5_23468()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_23468(ca))          == 2> t2;
-    sa<sizeof(sink_5_23468(va))          == 3> t3;
-    sa<sizeof(sink_5_23468(cva))         == 4> t4;
-    sa<sizeof(sink_5_23468(source()))    == 6> t5;
-    sa<sizeof(sink_5_23468(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_23468(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_23468(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_23468(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_23468(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_23468(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_23468(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_5_23468(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_23468(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_23468(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -920,13 +920,13 @@ int test5_23478()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_23478(ca))          == 2> t2;
-    sa<sizeof(sink_5_23478(va))          == 3> t3;
-    sa<sizeof(sink_5_23478(cva))         == 4> t4;
-    sa<sizeof(sink_5_23478(source()))    == 7> t5;
-    sa<sizeof(sink_5_23478(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_23478(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_23478(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_23478(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_23478(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_23478(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_23478(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_5_23478(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_23478(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_23478(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -942,11 +942,11 @@ int test5_23567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_23567(ca))          == 2> t2;
-    sa<sizeof(sink_5_23567(va))          == 3> t3;
-    sa<sizeof(sink_5_23567(source()))    == 5> t5;
-    sa<sizeof(sink_5_23567(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_23567(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_23567(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_23567(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_23567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_23567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_23567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -962,13 +962,13 @@ int test5_23568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_23568(ca))          == 2> t2;
-    sa<sizeof(sink_5_23568(va))          == 3> t3;
-    sa<sizeof(sink_5_23568(cva))         == 8> t4;
-    sa<sizeof(sink_5_23568(source()))    == 5> t5;
-    sa<sizeof(sink_5_23568(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_23568(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_23568(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_23568(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_23568(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_23568(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_23568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_23568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_23568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_23568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -984,13 +984,13 @@ int test5_23578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_23578(ca))          == 2> t2;
-    sa<sizeof(sink_5_23578(va))          == 3> t3;
-    sa<sizeof(sink_5_23578(cva))         == 8> t4;
-    sa<sizeof(sink_5_23578(source()))    == 5> t5;
-    sa<sizeof(sink_5_23578(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_23578(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_23578(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_23578(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_23578(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_23578(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_23578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_23578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_23578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_23578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1006,12 +1006,12 @@ int test5_23678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_23678(ca))          == 2> t2;
-    sa<sizeof(sink_5_23678(va))          == 3> t3;
-    sa<sizeof(sink_5_23678(cva))         == 8> t4;
-    sa<sizeof(sink_5_23678(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_23678(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_23678(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_23678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_23678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_23678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_23678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_23678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_23678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1027,13 +1027,13 @@ int test5_24567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_24567(a))           == 2> t1;
-    sa<sizeof(sink_5_24567(ca))          == 2> t2;
-    sa<sizeof(sink_5_24567(va))          == 4> t3;
-    sa<sizeof(sink_5_24567(cva))         == 4> t4;
-    sa<sizeof(sink_5_24567(source()))    == 5> t5;
-    sa<sizeof(sink_5_24567(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_24567(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_24567(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_5_24567(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_24567(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_24567(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_24567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_24567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_24567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -1049,14 +1049,14 @@ int test5_24568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_24568(a))           == 2> t1;
-    sa<sizeof(sink_5_24568(ca))          == 2> t2;
-    sa<sizeof(sink_5_24568(va))          == 4> t3;
-    sa<sizeof(sink_5_24568(cva))         == 4> t4;
-    sa<sizeof(sink_5_24568(source()))    == 5> t5;
-    sa<sizeof(sink_5_24568(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_24568(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_24568(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_24568(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_5_24568(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_24568(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_24568(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_24568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_24568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_24568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_24568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1072,14 +1072,14 @@ int test5_24578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_24578(a))           == 2> t1;
-    sa<sizeof(sink_5_24578(ca))          == 2> t2;
-    sa<sizeof(sink_5_24578(va))          == 4> t3;
-    sa<sizeof(sink_5_24578(cva))         == 4> t4;
-    sa<sizeof(sink_5_24578(source()))    == 5> t5;
-    sa<sizeof(sink_5_24578(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_24578(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_24578(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_24578(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_5_24578(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_24578(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_24578(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_24578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_24578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_24578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_24578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1095,13 +1095,13 @@ int test5_24678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_24678(a))           == 2> t1;
-    sa<sizeof(sink_5_24678(ca))          == 2> t2;
-    sa<sizeof(sink_5_24678(va))          == 4> t3;
-    sa<sizeof(sink_5_24678(cva))         == 4> t4;
-    sa<sizeof(sink_5_24678(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_24678(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_24678(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_24678(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_5_24678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_24678(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_24678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_24678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_24678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_24678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1117,14 +1117,14 @@ int test5_25678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_25678(a))           == 2> t1;
-    sa<sizeof(sink_5_25678(ca))          == 2> t2;
-    sa<sizeof(sink_5_25678(va))          == 7> t3;
-    sa<sizeof(sink_5_25678(cva))         == 8> t4;
-    sa<sizeof(sink_5_25678(source()))    == 5> t5;
-    sa<sizeof(sink_5_25678(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_25678(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_25678(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_25678(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_5_25678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_5_25678(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_5_25678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_25678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_25678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_25678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_25678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1140,13 +1140,13 @@ int test5_34567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_34567(a))           == 3> t1;
-    sa<sizeof(sink_5_34567(ca))          == 4> t2;
-    sa<sizeof(sink_5_34567(va))          == 3> t3;
-    sa<sizeof(sink_5_34567(cva))         == 4> t4;
-    sa<sizeof(sink_5_34567(source()))    == 5> t5;
-    sa<sizeof(sink_5_34567(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_34567(v_source()))  == 7> t7;
+    sa<sizeof(sink_5_34567(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_5_34567(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_34567(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_34567(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_34567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_34567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_34567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -1162,14 +1162,14 @@ int test5_34568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_34568(a))           == 3> t1;
-    sa<sizeof(sink_5_34568(ca))          == 4> t2;
-    sa<sizeof(sink_5_34568(va))          == 3> t3;
-    sa<sizeof(sink_5_34568(cva))         == 4> t4;
-    sa<sizeof(sink_5_34568(source()))    == 5> t5;
-    sa<sizeof(sink_5_34568(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_34568(v_source()))  == 8> t7;
-    sa<sizeof(sink_5_34568(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_34568(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_5_34568(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_34568(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_34568(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_34568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_34568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_34568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_5_34568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1185,14 +1185,14 @@ int test5_34578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_34578(a))           == 3> t1;
-    sa<sizeof(sink_5_34578(ca))          == 4> t2;
-    sa<sizeof(sink_5_34578(va))          == 3> t3;
-    sa<sizeof(sink_5_34578(cva))         == 4> t4;
-    sa<sizeof(sink_5_34578(source()))    == 5> t5;
-    sa<sizeof(sink_5_34578(c_source()))  == 8> t6;
-    sa<sizeof(sink_5_34578(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_34578(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_34578(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_5_34578(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_34578(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_34578(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_34578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_34578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_5_34578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_34578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1208,13 +1208,13 @@ int test5_34678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_34678(a))           == 3> t1;
-    sa<sizeof(sink_5_34678(ca))          == 4> t2;
-    sa<sizeof(sink_5_34678(va))          == 3> t3;
-    sa<sizeof(sink_5_34678(cva))         == 4> t4;
-    sa<sizeof(sink_5_34678(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_34678(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_34678(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_34678(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_5_34678(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_34678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_34678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_34678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_34678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_34678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1230,14 +1230,14 @@ int test5_35678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_35678(a))           == 3> t1;
-    sa<sizeof(sink_5_35678(ca))          == 6> t2;
-    sa<sizeof(sink_5_35678(va))          == 3> t3;
-    sa<sizeof(sink_5_35678(cva))         == 8> t4;
-    sa<sizeof(sink_5_35678(source()))    == 5> t5;
-    sa<sizeof(sink_5_35678(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_35678(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_35678(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_35678(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_5_35678(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_5_35678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_5_35678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_5_35678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_35678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_35678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_35678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -1253,14 +1253,14 @@ int test5_45678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_5_45678(a))           == 4> t1;
-    sa<sizeof(sink_5_45678(ca))          == 4> t2;
-    sa<sizeof(sink_5_45678(va))          == 4> t3;
-    sa<sizeof(sink_5_45678(cva))         == 4> t4;
-    sa<sizeof(sink_5_45678(source()))    == 5> t5;
-    sa<sizeof(sink_5_45678(c_source()))  == 6> t6;
-    sa<sizeof(sink_5_45678(v_source()))  == 7> t7;
-    sa<sizeof(sink_5_45678(cv_source())) == 8> t8;
+    sa<sizeof(sink_5_45678(a))           == 4 * sizeof(long)> t1;
+    sa<sizeof(sink_5_45678(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_5_45678(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_5_45678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_5_45678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_5_45678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_5_45678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_5_45678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
index a59958e37ef51e958535d9d01c4cb19cd187183d..8ea848d55486a1791f4acb38126322349eddf6d2 100644 (file)
@@ -8,14 +8,14 @@
 template <bool> struct sa;
 template <> struct sa<true> {};
 
-struct one   {char x[1];};
-struct two   {char x[2];};
-struct three {char x[3];};
-struct four  {char x[4];};
-struct five  {char x[5];};
-struct six   {char x[6];};
-struct seven {char x[7];};
-struct eight {char x[8];};
+struct one   {long x[1];};
+struct two   {long x[2];};
+struct three {long x[3];};
+struct four  {long x[4];};
+struct five  {long x[5];};
+struct six   {long x[6];};
+struct seven {long x[7];};
+struct eight {long x[8];};
 
 struct A
 {
@@ -43,12 +43,12 @@ int test6_123456()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_123456(a))           == 1> t1;
-    sa<sizeof(sink_6_123456(ca))          == 2> t2;
-    sa<sizeof(sink_6_123456(va))          == 3> t3;
-    sa<sizeof(sink_6_123456(cva))         == 4> t4;
-    sa<sizeof(sink_6_123456(source()))    == 5> t5;
-    sa<sizeof(sink_6_123456(c_source()))  == 6> t6;
+    sa<sizeof(sink_6_123456(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_123456(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_123456(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_123456(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_123456(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_123456(c_source()))  == 6 * sizeof(long)> t6;
     return 0;
 }
 
@@ -65,13 +65,13 @@ int test6_123457()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_123457(a))           == 1> t1;
-    sa<sizeof(sink_6_123457(ca))          == 2> t2;
-    sa<sizeof(sink_6_123457(va))          == 3> t3;
-    sa<sizeof(sink_6_123457(cva))         == 4> t4;
-    sa<sizeof(sink_6_123457(source()))    == 5> t5;
-    sa<sizeof(sink_6_123457(c_source()))  == 2> t6;
-    sa<sizeof(sink_6_123457(v_source()))  == 7> t7;
+    sa<sizeof(sink_6_123457(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_123457(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_123457(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_123457(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_123457(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_123457(c_source()))  == 2 * sizeof(long)> t6;
+    sa<sizeof(sink_6_123457(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -88,14 +88,14 @@ int test6_123458()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_123458(a))           == 1> t1;
-    sa<sizeof(sink_6_123458(ca))          == 2> t2;
-    sa<sizeof(sink_6_123458(va))          == 3> t3;
-    sa<sizeof(sink_6_123458(cva))         == 4> t4;
-    sa<sizeof(sink_6_123458(source()))    == 5> t5;
-    sa<sizeof(sink_6_123458(c_source()))  == 8> t6;
-    sa<sizeof(sink_6_123458(v_source()))  == 8> t7;
-    sa<sizeof(sink_6_123458(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_123458(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_123458(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_123458(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_123458(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_123458(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_123458(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_6_123458(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_6_123458(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -112,12 +112,12 @@ int test6_123467()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_123467(a))           == 1> t1;
-    sa<sizeof(sink_6_123467(ca))          == 2> t2;
-    sa<sizeof(sink_6_123467(va))          == 3> t3;
-    sa<sizeof(sink_6_123467(cva))         == 4> t4;
-    sa<sizeof(sink_6_123467(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_123467(v_source()))  == 7> t7;
+    sa<sizeof(sink_6_123467(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_123467(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_123467(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_123467(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_123467(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_123467(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -134,14 +134,14 @@ int test6_123468()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_123468(a))           == 1> t1;
-    sa<sizeof(sink_6_123468(ca))          == 2> t2;
-    sa<sizeof(sink_6_123468(va))          == 3> t3;
-    sa<sizeof(sink_6_123468(cva))         == 4> t4;
-    sa<sizeof(sink_6_123468(source()))    == 6> t5;
-    sa<sizeof(sink_6_123468(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_123468(v_source()))  == 8> t7;
-    sa<sizeof(sink_6_123468(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_123468(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_123468(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_123468(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_123468(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_123468(source()))    == 6 * sizeof(long)> t5;
+    sa<sizeof(sink_6_123468(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_123468(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_6_123468(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -158,14 +158,14 @@ int test6_123478()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_123478(a))           == 1> t1;
-    sa<sizeof(sink_6_123478(ca))          == 2> t2;
-    sa<sizeof(sink_6_123478(va))          == 3> t3;
-    sa<sizeof(sink_6_123478(cva))         == 4> t4;
-    sa<sizeof(sink_6_123478(source()))    == 7> t5;
-    sa<sizeof(sink_6_123478(c_source()))  == 8> t6;
-    sa<sizeof(sink_6_123478(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_123478(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_123478(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_123478(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_123478(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_123478(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_123478(source()))    == 7 * sizeof(long)> t5;
+    sa<sizeof(sink_6_123478(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_6_123478(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_123478(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -182,12 +182,12 @@ int test6_123567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_123567(a))           == 1> t1;
-    sa<sizeof(sink_6_123567(ca))          == 2> t2;
-    sa<sizeof(sink_6_123567(va))          == 3> t3;
-    sa<sizeof(sink_6_123567(source()))    == 5> t5;
-    sa<sizeof(sink_6_123567(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_123567(v_source()))  == 7> t7;
+    sa<sizeof(sink_6_123567(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_123567(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_123567(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_123567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_123567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_123567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -204,14 +204,14 @@ int test6_123568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_123568(a))           == 1> t1;
-    sa<sizeof(sink_6_123568(ca))          == 2> t2;
-    sa<sizeof(sink_6_123568(va))          == 3> t3;
-    sa<sizeof(sink_6_123568(cva))         == 8> t4;
-    sa<sizeof(sink_6_123568(source()))    == 5> t5;
-    sa<sizeof(sink_6_123568(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_123568(v_source()))  == 8> t7;
-    sa<sizeof(sink_6_123568(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_123568(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_123568(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_123568(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_123568(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_6_123568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_123568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_123568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_6_123568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -228,14 +228,14 @@ int test6_123578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_123578(a))           == 1> t1;
-    sa<sizeof(sink_6_123578(ca))          == 2> t2;
-    sa<sizeof(sink_6_123578(va))          == 3> t3;
-    sa<sizeof(sink_6_123578(cva))         == 8> t4;
-    sa<sizeof(sink_6_123578(source()))    == 5> t5;
-    sa<sizeof(sink_6_123578(c_source()))  == 8> t6;
-    sa<sizeof(sink_6_123578(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_123578(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_123578(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_123578(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_123578(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_123578(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_6_123578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_123578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_6_123578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_123578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -252,13 +252,13 @@ int test6_123678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_123678(a))           == 1> t1;
-    sa<sizeof(sink_6_123678(ca))          == 2> t2;
-    sa<sizeof(sink_6_123678(va))          == 3> t3;
-    sa<sizeof(sink_6_123678(cva))         == 8> t4;
-    sa<sizeof(sink_6_123678(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_123678(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_123678(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_123678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_123678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_123678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_123678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_6_123678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_123678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_123678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -275,13 +275,13 @@ int test6_124567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_124567(a))           == 1> t1;
-    sa<sizeof(sink_6_124567(ca))          == 2> t2;
-    sa<sizeof(sink_6_124567(va))          == 4> t3;
-    sa<sizeof(sink_6_124567(cva))         == 4> t4;
-    sa<sizeof(sink_6_124567(source()))    == 5> t5;
-    sa<sizeof(sink_6_124567(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_124567(v_source()))  == 7> t7;
+    sa<sizeof(sink_6_124567(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_124567(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_124567(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_6_124567(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_124567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_124567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_124567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -298,14 +298,14 @@ int test6_124568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_124568(a))           == 1> t1;
-    sa<sizeof(sink_6_124568(ca))          == 2> t2;
-    sa<sizeof(sink_6_124568(va))          == 4> t3;
-    sa<sizeof(sink_6_124568(cva))         == 4> t4;
-    sa<sizeof(sink_6_124568(source()))    == 5> t5;
-    sa<sizeof(sink_6_124568(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_124568(v_source()))  == 8> t7;
-    sa<sizeof(sink_6_124568(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_124568(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_124568(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_124568(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_6_124568(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_124568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_124568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_124568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_6_124568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -322,14 +322,14 @@ int test6_124578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_124578(a))           == 1> t1;
-    sa<sizeof(sink_6_124578(ca))          == 2> t2;
-    sa<sizeof(sink_6_124578(va))          == 4> t3;
-    sa<sizeof(sink_6_124578(cva))         == 4> t4;
-    sa<sizeof(sink_6_124578(source()))    == 5> t5;
-    sa<sizeof(sink_6_124578(c_source()))  == 8> t6;
-    sa<sizeof(sink_6_124578(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_124578(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_124578(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_124578(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_124578(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_6_124578(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_124578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_124578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_6_124578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_124578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -346,13 +346,13 @@ int test6_124678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_124678(a))           == 1> t1;
-    sa<sizeof(sink_6_124678(ca))          == 2> t2;
-    sa<sizeof(sink_6_124678(va))          == 4> t3;
-    sa<sizeof(sink_6_124678(cva))         == 4> t4;
-    sa<sizeof(sink_6_124678(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_124678(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_124678(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_124678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_124678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_124678(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_6_124678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_124678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_124678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_124678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -369,14 +369,14 @@ int test6_125678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_125678(a))           == 1> t1;
-    sa<sizeof(sink_6_125678(ca))          == 2> t2;
-    sa<sizeof(sink_6_125678(va))          == 7> t3;
-    sa<sizeof(sink_6_125678(cva))         == 8> t4;
-    sa<sizeof(sink_6_125678(source()))    == 5> t5;
-    sa<sizeof(sink_6_125678(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_125678(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_125678(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_125678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_125678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_125678(va))          == 7 * sizeof(long)> t3;
+    sa<sizeof(sink_6_125678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_6_125678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_125678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_125678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_125678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -393,13 +393,13 @@ int test6_134567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_134567(a))           == 1> t1;
-    sa<sizeof(sink_6_134567(ca))          == 4> t2;
-    sa<sizeof(sink_6_134567(va))          == 3> t3;
-    sa<sizeof(sink_6_134567(cva))         == 4> t4;
-    sa<sizeof(sink_6_134567(source()))    == 5> t5;
-    sa<sizeof(sink_6_134567(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_134567(v_source()))  == 7> t7;
+    sa<sizeof(sink_6_134567(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_134567(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_6_134567(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_134567(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_134567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_134567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_134567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -416,14 +416,14 @@ int test6_134568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_134568(a))           == 1> t1;
-    sa<sizeof(sink_6_134568(ca))          == 4> t2;
-    sa<sizeof(sink_6_134568(va))          == 3> t3;
-    sa<sizeof(sink_6_134568(cva))         == 4> t4;
-    sa<sizeof(sink_6_134568(source()))    == 5> t5;
-    sa<sizeof(sink_6_134568(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_134568(v_source()))  == 8> t7;
-    sa<sizeof(sink_6_134568(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_134568(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_134568(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_6_134568(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_134568(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_134568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_134568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_134568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_6_134568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -440,14 +440,14 @@ int test6_134578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_134578(a))           == 1> t1;
-    sa<sizeof(sink_6_134578(ca))          == 4> t2;
-    sa<sizeof(sink_6_134578(va))          == 3> t3;
-    sa<sizeof(sink_6_134578(cva))         == 4> t4;
-    sa<sizeof(sink_6_134578(source()))    == 5> t5;
-    sa<sizeof(sink_6_134578(c_source()))  == 8> t6;
-    sa<sizeof(sink_6_134578(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_134578(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_134578(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_134578(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_6_134578(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_134578(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_134578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_134578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_6_134578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_134578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -464,13 +464,13 @@ int test6_134678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_134678(a))           == 1> t1;
-    sa<sizeof(sink_6_134678(ca))          == 4> t2;
-    sa<sizeof(sink_6_134678(va))          == 3> t3;
-    sa<sizeof(sink_6_134678(cva))         == 4> t4;
-    sa<sizeof(sink_6_134678(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_134678(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_134678(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_134678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_134678(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_6_134678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_134678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_134678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_134678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_134678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -487,14 +487,14 @@ int test6_135678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_135678(a))           == 1> t1;
-    sa<sizeof(sink_6_135678(ca))          == 6> t2;
-    sa<sizeof(sink_6_135678(va))          == 3> t3;
-    sa<sizeof(sink_6_135678(cva))         == 8> t4;
-    sa<sizeof(sink_6_135678(source()))    == 5> t5;
-    sa<sizeof(sink_6_135678(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_135678(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_135678(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_135678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_135678(ca))          == 6 * sizeof(long)> t2;
+    sa<sizeof(sink_6_135678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_135678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_6_135678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_135678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_135678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_135678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -511,14 +511,14 @@ int test6_145678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_145678(a))           == 1> t1;
-    sa<sizeof(sink_6_145678(ca))          == 4> t2;
-    sa<sizeof(sink_6_145678(va))          == 4> t3;
-    sa<sizeof(sink_6_145678(cva))         == 4> t4;
-    sa<sizeof(sink_6_145678(source()))    == 5> t5;
-    sa<sizeof(sink_6_145678(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_145678(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_145678(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_145678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_6_145678(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_6_145678(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_6_145678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_145678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_145678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_145678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_145678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -535,12 +535,12 @@ int test6_234567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_234567(ca))          == 2> t2;
-    sa<sizeof(sink_6_234567(va))          == 3> t3;
-    sa<sizeof(sink_6_234567(cva))         == 4> t4;
-    sa<sizeof(sink_6_234567(source()))    == 5> t5;
-    sa<sizeof(sink_6_234567(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_234567(v_source()))  == 7> t7;
+    sa<sizeof(sink_6_234567(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_234567(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_234567(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_234567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_234567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_234567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -557,13 +557,13 @@ int test6_234568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_234568(ca))          == 2> t2;
-    sa<sizeof(sink_6_234568(va))          == 3> t3;
-    sa<sizeof(sink_6_234568(cva))         == 4> t4;
-    sa<sizeof(sink_6_234568(source()))    == 5> t5;
-    sa<sizeof(sink_6_234568(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_234568(v_source()))  == 8> t7;
-    sa<sizeof(sink_6_234568(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_234568(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_234568(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_234568(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_234568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_234568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_234568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_6_234568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -580,13 +580,13 @@ int test6_234578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_234578(ca))          == 2> t2;
-    sa<sizeof(sink_6_234578(va))          == 3> t3;
-    sa<sizeof(sink_6_234578(cva))         == 4> t4;
-    sa<sizeof(sink_6_234578(source()))    == 5> t5;
-    sa<sizeof(sink_6_234578(c_source()))  == 8> t6;
-    sa<sizeof(sink_6_234578(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_234578(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_234578(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_234578(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_234578(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_234578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_234578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_6_234578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_234578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -603,12 +603,12 @@ int test6_234678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_234678(ca))          == 2> t2;
-    sa<sizeof(sink_6_234678(va))          == 3> t3;
-    sa<sizeof(sink_6_234678(cva))         == 4> t4;
-    sa<sizeof(sink_6_234678(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_234678(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_234678(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_234678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_234678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_234678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_234678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_234678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_234678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -625,13 +625,13 @@ int test6_235678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_235678(ca))          == 2> t2;
-    sa<sizeof(sink_6_235678(va))          == 3> t3;
-    sa<sizeof(sink_6_235678(cva))         == 8> t4;
-    sa<sizeof(sink_6_235678(source()))    == 5> t5;
-    sa<sizeof(sink_6_235678(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_235678(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_235678(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_235678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_235678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_235678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_6_235678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_235678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_235678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_235678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -648,14 +648,14 @@ int test6_245678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_245678(a))           == 2> t1;
-    sa<sizeof(sink_6_245678(ca))          == 2> t2;
-    sa<sizeof(sink_6_245678(va))          == 4> t3;
-    sa<sizeof(sink_6_245678(cva))         == 4> t4;
-    sa<sizeof(sink_6_245678(source()))    == 5> t5;
-    sa<sizeof(sink_6_245678(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_245678(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_245678(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_245678(a))           == 2 * sizeof(long)> t1;
+    sa<sizeof(sink_6_245678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_6_245678(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_6_245678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_245678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_245678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_245678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_245678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -672,14 +672,14 @@ int test6_345678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_6_345678(a))           == 3> t1;
-    sa<sizeof(sink_6_345678(ca))          == 4> t2;
-    sa<sizeof(sink_6_345678(va))          == 3> t3;
-    sa<sizeof(sink_6_345678(cva))         == 4> t4;
-    sa<sizeof(sink_6_345678(source()))    == 5> t5;
-    sa<sizeof(sink_6_345678(c_source()))  == 6> t6;
-    sa<sizeof(sink_6_345678(v_source()))  == 7> t7;
-    sa<sizeof(sink_6_345678(cv_source())) == 8> t8;
+    sa<sizeof(sink_6_345678(a))           == 3 * sizeof(long)> t1;
+    sa<sizeof(sink_6_345678(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_6_345678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_6_345678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_6_345678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_6_345678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_6_345678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_6_345678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
index d3e1474ff1064f6e44977aff09aececad915593a..f0af72f838d5121ee8bbb0d87c4a0ac9e4cf7a49 100644 (file)
@@ -8,14 +8,14 @@
 template <bool> struct sa;
 template <> struct sa<true> {};
 
-struct one   {char x[1];};
-struct two   {char x[2];};
-struct three {char x[3];};
-struct four  {char x[4];};
-struct five  {char x[5];};
-struct six   {char x[6];};
-struct seven {char x[7];};
-struct eight {char x[8];};
+struct one   {long x[1];};
+struct two   {long x[2];};
+struct three {long x[3];};
+struct four  {long x[4];};
+struct five  {long x[5];};
+struct six   {long x[6];};
+struct seven {long x[7];};
+struct eight {long x[8];};
 
 struct A
 {
@@ -44,13 +44,13 @@ int test7_1234567()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_7_1234567(a))           == 1> t1;
-    sa<sizeof(sink_7_1234567(ca))          == 2> t2;
-    sa<sizeof(sink_7_1234567(va))          == 3> t3;
-    sa<sizeof(sink_7_1234567(cva))         == 4> t4;
-    sa<sizeof(sink_7_1234567(source()))    == 5> t5;
-    sa<sizeof(sink_7_1234567(c_source()))  == 6> t6;
-    sa<sizeof(sink_7_1234567(v_source()))  == 7> t7;
+    sa<sizeof(sink_7_1234567(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_7_1234567(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_7_1234567(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_7_1234567(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_7_1234567(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_7_1234567(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_7_1234567(v_source()))  == 7 * sizeof(long)> t7;
     return 0;
 }
 
@@ -68,14 +68,14 @@ int test7_1234568()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_7_1234568(a))           == 1> t1;
-    sa<sizeof(sink_7_1234568(ca))          == 2> t2;
-    sa<sizeof(sink_7_1234568(va))          == 3> t3;
-    sa<sizeof(sink_7_1234568(cva))         == 4> t4;
-    sa<sizeof(sink_7_1234568(source()))    == 5> t5;
-    sa<sizeof(sink_7_1234568(c_source()))  == 6> t6;
-    sa<sizeof(sink_7_1234568(v_source()))  == 8> t7;
-    sa<sizeof(sink_7_1234568(cv_source())) == 8> t8;
+    sa<sizeof(sink_7_1234568(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_7_1234568(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_7_1234568(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_7_1234568(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_7_1234568(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_7_1234568(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_7_1234568(v_source()))  == 8 * sizeof(long)> t7;
+    sa<sizeof(sink_7_1234568(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -93,14 +93,14 @@ int test7_1234578()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_7_1234578(a))           == 1> t1;
-    sa<sizeof(sink_7_1234578(ca))          == 2> t2;
-    sa<sizeof(sink_7_1234578(va))          == 3> t3;
-    sa<sizeof(sink_7_1234578(cva))         == 4> t4;
-    sa<sizeof(sink_7_1234578(source()))    == 5> t5;
-    sa<sizeof(sink_7_1234578(c_source()))  == 8> t6;
-    sa<sizeof(sink_7_1234578(v_source()))  == 7> t7;
-    sa<sizeof(sink_7_1234578(cv_source())) == 8> t8;
+    sa<sizeof(sink_7_1234578(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_7_1234578(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_7_1234578(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_7_1234578(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_7_1234578(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_7_1234578(c_source()))  == 8 * sizeof(long)> t6;
+    sa<sizeof(sink_7_1234578(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_7_1234578(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -118,13 +118,13 @@ int test7_1234678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_7_1234678(a))           == 1> t1;
-    sa<sizeof(sink_7_1234678(ca))          == 2> t2;
-    sa<sizeof(sink_7_1234678(va))          == 3> t3;
-    sa<sizeof(sink_7_1234678(cva))         == 4> t4;
-    sa<sizeof(sink_7_1234678(c_source()))  == 6> t6;
-    sa<sizeof(sink_7_1234678(v_source()))  == 7> t7;
-    sa<sizeof(sink_7_1234678(cv_source())) == 8> t8;
+    sa<sizeof(sink_7_1234678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_7_1234678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_7_1234678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_7_1234678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_7_1234678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_7_1234678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_7_1234678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -142,14 +142,14 @@ int test7_1235678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_7_1235678(a))           == 1> t1;
-    sa<sizeof(sink_7_1235678(ca))          == 2> t2;
-    sa<sizeof(sink_7_1235678(va))          == 3> t3;
-    sa<sizeof(sink_7_1235678(cva))         == 8> t4;
-    sa<sizeof(sink_7_1235678(source()))    == 5> t5;
-    sa<sizeof(sink_7_1235678(c_source()))  == 6> t6;
-    sa<sizeof(sink_7_1235678(v_source()))  == 7> t7;
-    sa<sizeof(sink_7_1235678(cv_source())) == 8> t8;
+    sa<sizeof(sink_7_1235678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_7_1235678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_7_1235678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_7_1235678(cva))         == 8 * sizeof(long)> t4;
+    sa<sizeof(sink_7_1235678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_7_1235678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_7_1235678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_7_1235678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -167,14 +167,14 @@ int test7_1245678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_7_1245678(a))           == 1> t1;
-    sa<sizeof(sink_7_1245678(ca))          == 2> t2;
-    sa<sizeof(sink_7_1245678(va))          == 4> t3;
-    sa<sizeof(sink_7_1245678(cva))         == 4> t4;
-    sa<sizeof(sink_7_1245678(source()))    == 5> t5;
-    sa<sizeof(sink_7_1245678(c_source()))  == 6> t6;
-    sa<sizeof(sink_7_1245678(v_source()))  == 7> t7;
-    sa<sizeof(sink_7_1245678(cv_source())) == 8> t8;
+    sa<sizeof(sink_7_1245678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_7_1245678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_7_1245678(va))          == 4 * sizeof(long)> t3;
+    sa<sizeof(sink_7_1245678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_7_1245678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_7_1245678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_7_1245678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_7_1245678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -192,14 +192,14 @@ int test7_1345678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_7_1345678(a))           == 1> t1;
-    sa<sizeof(sink_7_1345678(ca))          == 4> t2;
-    sa<sizeof(sink_7_1345678(va))          == 3> t3;
-    sa<sizeof(sink_7_1345678(cva))         == 4> t4;
-    sa<sizeof(sink_7_1345678(source()))    == 5> t5;
-    sa<sizeof(sink_7_1345678(c_source()))  == 6> t6;
-    sa<sizeof(sink_7_1345678(v_source()))  == 7> t7;
-    sa<sizeof(sink_7_1345678(cv_source())) == 8> t8;
+    sa<sizeof(sink_7_1345678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_7_1345678(ca))          == 4 * sizeof(long)> t2;
+    sa<sizeof(sink_7_1345678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_7_1345678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_7_1345678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_7_1345678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_7_1345678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_7_1345678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
@@ -217,13 +217,13 @@ int test7_2345678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_7_2345678(ca))          == 2> t2;
-    sa<sizeof(sink_7_2345678(va))          == 3> t3;
-    sa<sizeof(sink_7_2345678(cva))         == 4> t4;
-    sa<sizeof(sink_7_2345678(source()))    == 5> t5;
-    sa<sizeof(sink_7_2345678(c_source()))  == 6> t6;
-    sa<sizeof(sink_7_2345678(v_source()))  == 7> t7;
-    sa<sizeof(sink_7_2345678(cv_source())) == 8> t8;
+    sa<sizeof(sink_7_2345678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_7_2345678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_7_2345678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_7_2345678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_7_2345678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_7_2345678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_7_2345678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
index 95a72d5105b7c1c03789fcad40fe4ad24a5a5982..cc10dd77cfbdf3c1d436fd6c7d118ea50856662d 100644 (file)
@@ -8,14 +8,14 @@
 template <bool> struct sa;
 template <> struct sa<true> {};
 
-struct one   {char x[1];};
-struct two   {char x[2];};
-struct three {char x[3];};
-struct four  {char x[4];};
-struct five  {char x[5];};
-struct six   {char x[6];};
-struct seven {char x[7];};
-struct eight {char x[8];};
+struct one   {long x[1];};
+struct two   {long x[2];};
+struct three {long x[3];};
+struct four  {long x[4];};
+struct five  {long x[5];};
+struct six   {long x[6];};
+struct seven {long x[7];};
+struct eight {long x[8];};
 
 struct A
 {
@@ -45,14 +45,14 @@ int test8_12345678()
     const          A ca = a;
           volatile A va;
     const volatile A cva = a;
-    sa<sizeof(sink_8_12345678(a))           == 1> t1;
-    sa<sizeof(sink_8_12345678(ca))          == 2> t2;
-    sa<sizeof(sink_8_12345678(va))          == 3> t3;
-    sa<sizeof(sink_8_12345678(cva))         == 4> t4;
-    sa<sizeof(sink_8_12345678(source()))    == 5> t5;
-    sa<sizeof(sink_8_12345678(c_source()))  == 6> t6;
-    sa<sizeof(sink_8_12345678(v_source()))  == 7> t7;
-    sa<sizeof(sink_8_12345678(cv_source())) == 8> t8;
+    sa<sizeof(sink_8_12345678(a))           == 1 * sizeof(long)> t1;
+    sa<sizeof(sink_8_12345678(ca))          == 2 * sizeof(long)> t2;
+    sa<sizeof(sink_8_12345678(va))          == 3 * sizeof(long)> t3;
+    sa<sizeof(sink_8_12345678(cva))         == 4 * sizeof(long)> t4;
+    sa<sizeof(sink_8_12345678(source()))    == 5 * sizeof(long)> t5;
+    sa<sizeof(sink_8_12345678(c_source()))  == 6 * sizeof(long)> t6;
+    sa<sizeof(sink_8_12345678(v_source()))  == 7 * sizeof(long)> t7;
+    sa<sizeof(sink_8_12345678(cv_source())) == 8 * sizeof(long)> t8;
     return 0;
 }
 
index 06311856d69b27383b2d60f7d9e7941559b9d588..c9d134dc9ad409e9035824b57d129e29f3a16dac 100644 (file)
@@ -8,8 +8,8 @@
 template <bool> struct sa;
 template <> struct sa<true> {};
 
-struct one   {char x[1];};
-struct two   {char x[2];};
+struct one   {long x[1];};
+struct two   {long x[2];};
 
 struct A {};
 
@@ -20,7 +20,7 @@ A&& source() {static A a; return a;}
 
 int test1()
 {
-    sa<sizeof(foo(source())) == 2> t1;
+  sa<sizeof(foo(source())) == 2 * sizeof(long)> t1;
     return 0;
 }