]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
offsetof.C (main): Use __SIZE_TYPE__ instead of unsigned long for pointer cast.
authorKai Tietz <kai.tietz@onevision.com>
Wed, 1 Oct 2008 07:38:53 +0000 (07:38 +0000)
committerKai Tietz <ktietz@gcc.gnu.org>
Wed, 1 Oct 2008 07:38:53 +0000 (09:38 +0200)
2008-10-01  Kai Tietz  <kai.tietz@onevision.com>

        * g++.dg/abi/offsetof.C (main): Use __SIZE_TYPE__ instead of
        unsigned long for pointer cast.
        * g++.dg/init/struct1.C: Likewise.
        * g++.dg/init/struct2.C: Likewise.
        * g++.dg/init/struct3.C: Likewise.
        * g++.dg/ext/utf-cvt.C: Correct for w64.
        * gcc.dg/utf-cvt.c: Likewise.
        * lib/target-supports.exp (check_effective_target_llp64): New.

From-SVN: r140807

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/abi/offsetof.C
gcc/testsuite/g++.dg/ext/utf-cvt.C
gcc/testsuite/g++.dg/init/struct1.C
gcc/testsuite/g++.dg/init/struct2.C
gcc/testsuite/g++.dg/init/struct3.C
gcc/testsuite/gcc.dg/utf-cvt.c
gcc/testsuite/lib/target-supports.exp

index b027a4c7d937cf119e4978ff65f83598366b8738..755a9701033023fdeecb0938cec5a714b74f63e8 100644 (file)
@@ -1,3 +1,14 @@
+2008-10-01  Kai Tietz  <kai.tietz@onevision.com>
+
+       * g++.dg/abi/offsetof.C (main): Use __SIZE_TYPE__ instead of
+       unsigned long for pointer cast.
+       * g++.dg/init/struct1.C: Likewise.
+       * g++.dg/init/struct2.C: Likewise.
+       * g++.dg/init/struct3.C: Likewise.
+       * g++.dg/ext/utf-cvt.C: Correct for w64.
+       * gcc.dg/utf-cvt.c: Likewise.
+       * lib/target-supports.exp (check_effective_target_llp64): New.
+
 2008-09-30  Simon Martin  <simartin@users.sourceforge.net>
 
        PR c++/37555
index 0085e57dd9815e3e9a33c82f0cb3d757b8f261cd..d6a53e6f80a283398867f69e3ab5834373bbd732 100644 (file)
@@ -18,5 +18,5 @@ struct C: public B { };
 
 int main ()
 {
-  return ((unsigned long) &((C*)0)->i) != sizeof(void*); // { dg-warning "offsetof|invalid" "" }
+  return ((__SIZE_TYPE__) &((C*)0)->i) != sizeof(void*); // { dg-warning "offsetof|invalid" "" }
 }
index 3ebc3a19af1a8ebcdef4f3e02c1883b9f30126ca..286a0d007151df4a435652d2feaf059e0526c753 100644 (file)
@@ -46,8 +46,8 @@ void m(char16_t c0, char32_t c1)
     f_i (c1);  /* { dg-warning "change the sign" } */
     fsi (c1);  /* { dg-warning "change the sign" } */
     fui (c1);
-    f_l (c1);  /* { dg-warning "change the sign" "" { target { ilp32 } } } */
-    fsl (c1);  /* { dg-warning "change the sign" "" { target { ilp32 } } } */
+    f_l (c1);  /* { dg-warning "change the sign" "" { target { llp64 || ilp32 } } } */
+    fsl (c1);  /* { dg-warning "change the sign" "" { target { llp64 || ilp32 } } } */
     ful (c1);
     f_ll (c1);
     fsll (c1);
index 4cabc99e0e233d57cdde433bbe40094981299082..e23faef507390b75b8ab010e0e3cf49fb063f059 100644 (file)
@@ -1,6 +1,6 @@
 struct bug {
   const char *name;
-  unsigned long type;
+  __SIZE_TYPE__ type;
 };
 
-struct bug s = { 0, (unsigned long) &s | 1 };
+struct bug s = { 0, (__SIZE_TYPE__) &s | 1 };
index d7d07b5c1e3101dc0e52ddb514de20d6ffee4de3..85aacc6fa09bdd2d816b3b809a169ee25dc97947 100644 (file)
@@ -15,7 +15,7 @@ void saveOrLoad() {
     };    
 
     SaveLoadEntry trackEntries = {
-       ((long) (&((Track *) 42)->soundName[0])) - 42,
+       ((long) (__SIZE_TYPE__) (&((Track *) 42)->soundName[0])) - 42,
         0, 1
     };
     saveLoadEntries(&trackEntries);
index 6b1805c66ba972312201e5106b7dc29169cc883d..53804b3d1533ae82a2a2ff1a394cdb58f98c2a8b 100644 (file)
@@ -12,4 +12,4 @@ struct SaveLoadEntry {
   int size;
 };    
 
-int foobar = ((long) (& ((Track *) 42)->soundName[0])) - 42;
+int foobar = ((long) (__SIZE_TYPE__) (& ((Track *) 42)->soundName[0])) - 42;
index 5c39644f9175d179edbea9b2cb49100fc1af434b..6a69310ceeb6be91464b2d90191f2696c129e0bc 100644 (file)
@@ -50,8 +50,8 @@ void m (char16_t c0, char32_t c1)
     f_i (c1);  /* { dg-warning "change the sign" } */
     fsi (c1);  /* { dg-warning "change the sign" } */
     fui (c1);
-    f_l (c1);  /* { dg-warning "change the sign" "" { target { ilp32 } } } */
-    fsl (c1);  /* { dg-warning "change the sign" "" { target { ilp32 } } } */
+    f_l (c1);  /* { dg-warning "change the sign" "" { target { llp64 || ilp32 } } } */
+    fsl (c1);  /* { dg-warning "change the sign" "" { target { llp64 || ilp32 } } } */
     ful (c1);
     f_ll (c1);
     fsll (c1);
index a5e03bf092965dda9a5155fe6ef3b6a0a41341e6..3d118af7dda1b425f329750ff42fa4dafeadfad8 100644 (file)
@@ -1057,6 +1057,18 @@ proc check_effective_target_lp64 { } {
     }]
 }
 
+# Return 1 if we're generating 64-bit code using default llp64 options,
+# 0 otherwise.
+
+proc check_effective_target_llp64 { } {
+    return [check_no_compiler_messages llp64 object {
+       int dummy[sizeof (int) == 4
+                 && sizeof (void *) == 8
+                 && sizeof (long long) == 8
+                 && sizeof (long) == 4 ? 1 : -1];
+    }]
+}
+
 # Return 1 if the target supports long double larger than double,
 # 0 otherwise.