diff options
author | Richard Henderson <rth@redhat.com> | 2000-11-01 02:31:02 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-11-01 02:31:02 -0800 |
commit | 6a16a7f0c88f4e5ff69fe60c67a7b5f937ccf817 (patch) | |
tree | bdb65f1bd18a7cf35bd45017b835981f40b22ab0 /gcc | |
parent | f0de0c5d1735d0e47fcd9eed2c55c7447be3db7c (diff) | |
download | gcc-6a16a7f0c88f4e5ff69fe60c67a7b5f937ccf817.zip gcc-6a16a7f0c88f4e5ff69fe60c67a7b5f937ccf817.tar.gz gcc-6a16a7f0c88f4e5ff69fe60c67a7b5f937ccf817.tar.bz2 |
New tests.
From-SVN: r37187
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.ext/namedret1.C | 12 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.ext/namedret2.C | 20 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.ext/namedret3.C | 30 |
4 files changed, 68 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 02b40e1..9a7634d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2000-11-01 Richard Henderson <rth@redhat.com> + + * g++.old-deja/g++.ext/namedret1.C: New. + * g++.old-deja/g++.ext/namedret2.C: New. + * g++.old-deja/g++.ext/namedret3.C: New. + 2000-10-31 Geoffrey Keating <geoffk@cygnus.com> * gcc.c-torture/compile/920501-7.c: Remove 'CYGNUS LOCAL' markers. diff --git a/gcc/testsuite/g++.old-deja/g++.ext/namedret1.C b/gcc/testsuite/g++.old-deja/g++.ext/namedret1.C new file mode 100644 index 0000000..64df8d1 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.ext/namedret1.C @@ -0,0 +1,12 @@ +// Special g++ Options: -Wno-deprecated + +int f(int x) return y(x) { } + +extern "C" void abort (); + +int main() +{ + if (f(1) != 1 || f(2) != 2 || f(3) != 3) + abort (); + return 0; +} diff --git a/gcc/testsuite/g++.old-deja/g++.ext/namedret2.C b/gcc/testsuite/g++.old-deja/g++.ext/namedret2.C new file mode 100644 index 0000000..8e2b4e6 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.ext/namedret2.C @@ -0,0 +1,20 @@ +// Skip if not target: alpha*-*-* +// Special g++ Options: -Wno-deprecated + +// This test verifies that return type promotion is working correctly. +// The Alpha ABI specifies that 32-bit return values have bit 31 propagated, +// i.e. the value is sign-extended even if the unpromoted type is unsigned. + +unsigned int f(unsigned int x) return y(x) { } + +extern "C" void abort (); + +int main() +{ + typedef long (*long_func)(long); + long_func g = reinterpret_cast<long_func>(f); + + if (g(-1L) != -1L) + abort (); + return 0; +} diff --git a/gcc/testsuite/g++.old-deja/g++.ext/namedret3.C b/gcc/testsuite/g++.old-deja/g++.ext/namedret3.C new file mode 100644 index 0000000..0c4e4b4 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.ext/namedret3.C @@ -0,0 +1,30 @@ +// Special g++ Options: -Wno-deprecated + +extern "C" void abort(); + +int f2(int *x) +{ + *x = 1; + return 2; +} + +int f1() return x +{ + f2(&x); +} + +void g() +{ + int scratch[100]; + int i; + for (i = 0; i < 100; ++i) + scratch[i] = 0; +} + +int main() +{ + g(); + if (f1() != 1) + abort (); + return 0; +} |