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
This commit is contained in:
Jakub Jelinek 2001-04-20 10:24:25 +02:00 committed by Jakub Jelinek
parent 351a0f00dc
commit 24f808827a
3 changed files with 53 additions and 0 deletions

View File

@ -1,3 +1,8 @@
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.

View File

@ -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();
}

View File

@ -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;
}