aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2008-10-01 07:38:53 +0000
committerKai Tietz <ktietz@gcc.gnu.org>2008-10-01 09:38:53 +0200
commit7ec594452610102891d3a8e01c6b4b2440adffd6 (patch)
tree71e39a990d3b9b554ea818a4804e9eebe5c2b190 /gcc
parent40ed87f7a5476ba2045faed6cffb440ee56da638 (diff)
downloadgcc-7ec594452610102891d3a8e01c6b4b2440adffd6.zip
gcc-7ec594452610102891d3a8e01c6b4b2440adffd6.tar.gz
gcc-7ec594452610102891d3a8e01c6b4b2440adffd6.tar.bz2
offsetof.C (main): Use __SIZE_TYPE__ instead of unsigned long for pointer cast.
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog11
-rw-r--r--gcc/testsuite/g++.dg/abi/offsetof.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/utf-cvt.C4
-rw-r--r--gcc/testsuite/g++.dg/init/struct1.C4
-rw-r--r--gcc/testsuite/g++.dg/init/struct2.C2
-rw-r--r--gcc/testsuite/g++.dg/init/struct3.C2
-rw-r--r--gcc/testsuite/gcc.dg/utf-cvt.c4
-rw-r--r--gcc/testsuite/lib/target-supports.exp12
8 files changed, 32 insertions, 9 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b027a4c..755a970 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
diff --git a/gcc/testsuite/g++.dg/abi/offsetof.C b/gcc/testsuite/g++.dg/abi/offsetof.C
index 0085e57..d6a53e6 100644
--- a/gcc/testsuite/g++.dg/abi/offsetof.C
+++ b/gcc/testsuite/g++.dg/abi/offsetof.C
@@ -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" "" }
}
diff --git a/gcc/testsuite/g++.dg/ext/utf-cvt.C b/gcc/testsuite/g++.dg/ext/utf-cvt.C
index 3ebc3a1..286a0d0 100644
--- a/gcc/testsuite/g++.dg/ext/utf-cvt.C
+++ b/gcc/testsuite/g++.dg/ext/utf-cvt.C
@@ -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);
diff --git a/gcc/testsuite/g++.dg/init/struct1.C b/gcc/testsuite/g++.dg/init/struct1.C
index 4cabc99..e23faef 100644
--- a/gcc/testsuite/g++.dg/init/struct1.C
+++ b/gcc/testsuite/g++.dg/init/struct1.C
@@ -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 };
diff --git a/gcc/testsuite/g++.dg/init/struct2.C b/gcc/testsuite/g++.dg/init/struct2.C
index d7d07b5..85aacc6 100644
--- a/gcc/testsuite/g++.dg/init/struct2.C
+++ b/gcc/testsuite/g++.dg/init/struct2.C
@@ -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);
diff --git a/gcc/testsuite/g++.dg/init/struct3.C b/gcc/testsuite/g++.dg/init/struct3.C
index 6b1805c..53804b3 100644
--- a/gcc/testsuite/g++.dg/init/struct3.C
+++ b/gcc/testsuite/g++.dg/init/struct3.C
@@ -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;
diff --git a/gcc/testsuite/gcc.dg/utf-cvt.c b/gcc/testsuite/gcc.dg/utf-cvt.c
index 5c39644..6a69310 100644
--- a/gcc/testsuite/gcc.dg/utf-cvt.c
+++ b/gcc/testsuite/gcc.dg/utf-cvt.c
@@ -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);
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index a5e03bf..3d118af 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -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.