From 7ec594452610102891d3a8e01c6b4b2440adffd6 Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Wed, 1 Oct 2008 07:38:53 +0000 Subject: [PATCH] offsetof.C (main): Use __SIZE_TYPE__ instead of unsigned long for pointer cast. 2008-10-01 Kai Tietz * 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 | 11 +++++++++++ gcc/testsuite/g++.dg/abi/offsetof.C | 2 +- gcc/testsuite/g++.dg/ext/utf-cvt.C | 4 ++-- gcc/testsuite/g++.dg/init/struct1.C | 4 ++-- gcc/testsuite/g++.dg/init/struct2.C | 2 +- gcc/testsuite/g++.dg/init/struct3.C | 2 +- gcc/testsuite/gcc.dg/utf-cvt.c | 4 ++-- gcc/testsuite/lib/target-supports.exp | 12 ++++++++++++ 8 files changed, 32 insertions(+), 9 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b027a4c7d937..755a97010330 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2008-10-01 Kai Tietz + + * 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 PR c++/37555 diff --git a/gcc/testsuite/g++.dg/abi/offsetof.C b/gcc/testsuite/g++.dg/abi/offsetof.C index 0085e57dd981..d6a53e6f80a2 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 3ebc3a19af1a..286a0d007151 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 4cabc99e0e23..e23faef50739 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 d7d07b5c1e31..85aacc6fa09b 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 6b1805c66ba9..53804b3d1533 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 5c39644f9175..6a69310ceeb6 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 a5e03bf09296..3d118af7dda1 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. -- 2.47.3