From a7f11565cb87b23e9ce7229532f2b8b800a27433 Mon Sep 17 00:00:00 2001 From: No Author Date: Sun, 22 Feb 2004 11:18:47 +0000 Subject: [PATCH] This commit was manufactured by cvs2svn to create branch 'gcc-3_3-branch'. From-SVN: r78254 --- gcc/testsuite/g++.dg/template/spec11.C | 20 ++++++++++ .../gcc.c-torture/execute/20040218-1.c | 37 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 gcc/testsuite/g++.dg/template/spec11.C create mode 100644 gcc/testsuite/gcc.c-torture/execute/20040218-1.c diff --git a/gcc/testsuite/g++.dg/template/spec11.C b/gcc/testsuite/g++.dg/template/spec11.C new file mode 100644 index 000000000000..36d93a94ee11 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/spec11.C @@ -0,0 +1,20 @@ +// { dg-do compile } + +// Origin: jhbrown@bluefinrobotics.com + +// PR c++/13635: ICE explicit specialization of member function template + +template +class bar { +public: + template + int func(baz *x); +}; + +template <> +template +int bar::func(baz *x) { return 5;} + +template <> +template <> +int bar::func(int *x) { return 5;} diff --git a/gcc/testsuite/gcc.c-torture/execute/20040218-1.c b/gcc/testsuite/gcc.c-torture/execute/20040218-1.c new file mode 100644 index 000000000000..4d1541af8bfa --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20040218-1.c @@ -0,0 +1,37 @@ +/* PR target/14209. Bug in cris.md, shrinking access size of + postincrement. + Origin: . */ + +long int xb (long int *y) __attribute__ ((__noinline__)); +long int xw (long int *y) __attribute__ ((__noinline__)); +short int yb (short int *y) __attribute__ ((__noinline__)); + +long int xb (long int *y) +{ + long int xx = *y & 255; + return xx + y[1]; +} + +long int xw (long int *y) +{ + long int xx = *y & 65535; + return xx + y[1]; +} + +short int yb (short int *y) +{ + short int xx = *y & 255; + return xx + y[1]; +} + +int main (void) +{ + long int y[] = {-1, 16000}; + short int yw[] = {-1, 16000}; + + if (xb (y) != 16255 + || xw (y) != 81535 + || yb (yw) != 16255) + abort (); + exit (0); +} -- 2.47.2