From: Jakub Jelinek Date: Fri, 20 Apr 2001 08:24:25 +0000 (+0200) Subject: comdat2.C: New test. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=24f808827a39b923c09eda9469db01675acb0bca;p=gcc.git 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 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2a97b4e6832..8ba71f84b8e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2001-04-20 Jakub Jelinek + + * 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 * g++.old-deja/g++.other/overload14.C: New test. 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 00000000000..283e4e092bd --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/comdat2-aux.cc @@ -0,0 +1,17 @@ +template +struct S { + static int f () + { + static int i; + return ++i; + } + S () {}; + ~S () {}; +}; + +typedef S 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 00000000000..73c1da0083a --- /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 +struct S { + static int f () + { + static int i; + return ++i; + } + S () {}; + ~S () {}; +}; + +typedef S a; + +int g (); + +int main () +{ + if (a::f() != 1 + || g() != 2 + || a::f() != 3) + return 1; + return 0; +}