diff options
author | Jakub Jelinek <jakub@redhat.com> | 2001-04-20 10:24:25 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2001-04-20 10:24:25 +0200 |
commit | 24f808827a39b923c09eda9469db01675acb0bca (patch) | |
tree | 04d54115d071571be138f07255600c9293bd69db | |
parent | 351a0f00dc8747210fa96e1f65574bd52b140713 (diff) | |
download | gcc-24f808827a39b923c09eda9469db01675acb0bca.zip gcc-24f808827a39b923c09eda9469db01675acb0bca.tar.gz gcc-24f808827a39b923c09eda9469db01675acb0bca.tar.bz2 |
comdat2.C: New test.
* g++.old-deja/g++.other/comdat2.C: New test.
* g++.old-deja/g++.other/comdat2-aux.cc: Auxiliary source for it.
From-SVN: r41449
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/comdat2-aux.cc | 17 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/comdat2.C | 31 |
3 files changed, 53 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2a97b4e..8ba71f8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2001-04-20 Jakub Jelinek <jakub@redhat.com> + * g++.old-deja/g++.other/comdat2.C: New test. + * g++.old-deja/g++.other/comdat2-aux.cc: Auxiliary source for it. + +2001-04-20 Jakub Jelinek <jakub@redhat.com> + * g++.old-deja/g++.other/overload14.C: New test. 2001-04-20 Jakub Jelinek <jakub@redhat.com> diff --git a/gcc/testsuite/g++.old-deja/g++.other/comdat2-aux.cc b/gcc/testsuite/g++.old-deja/g++.other/comdat2-aux.cc new file mode 100644 index 0000000..283e4e0 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/comdat2-aux.cc @@ -0,0 +1,17 @@ +template <class T> +struct S { + static int f () + { + static int i; + return ++i; + } + S () {}; + ~S () {}; +}; + +typedef S<int> a; + +int g () +{ + return a::f(); +} diff --git a/gcc/testsuite/g++.old-deja/g++.other/comdat2.C b/gcc/testsuite/g++.old-deja/g++.other/comdat2.C new file mode 100644 index 0000000..73c1da0 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/comdat2.C @@ -0,0 +1,31 @@ +// Test that statics in inline functions are unified between +// translation units. Currently we handle this by just suppressing +// inling and relying on unification of the function itself. + +// Special g++ Options: -O + +// Additional sources: comdat2-aux.cc + +template <class T> +struct S { + static int f () + { + static int i; + return ++i; + } + S () {}; + ~S () {}; +}; + +typedef S<int> a; + +int g (); + +int main () +{ + if (a::f() != 1 + || g() != 2 + || a::f() != 3) + return 1; + return 0; +} |