Last change
on this file was 10, checked in by bird, 23 years ago |
Initial revision
|
-
Property cvs2svn:cvs-rev
set to
1.1
-
Property svn:eol-style
set to
native
-
Property svn:executable
set to
*
|
File size:
1.1 KB
|
Line | |
---|
1 | // main program for Class Foo
|
---|
2 |
|
---|
3 | extern "C" {
|
---|
4 | // Some <assert.h> implementations (e.g. SUNOS 4.1) are broken,
|
---|
5 | // in that they require <stdio.h>. But, if gcc/g++ is installed
|
---|
6 | // correctly, you should get gcc's assert.h.
|
---|
7 | // If the compile fails, it means the wrong include files are in use!
|
---|
8 | #include <assert.h>
|
---|
9 | };
|
---|
10 | #include "cdtest-foo.h"
|
---|
11 |
|
---|
12 | extern "C" void __init_start();
|
---|
13 |
|
---|
14 | extern Foo f(void);
|
---|
15 | extern void g(void);
|
---|
16 |
|
---|
17 | /* This function should *not* be called by the environment. There is
|
---|
18 | no way in C++ to ``run something after the initializers but before main()''.
|
---|
19 | The library that depends on this (NIHCL) is broken. -- John Gilmore
|
---|
20 | We leave this here to test that future changes to the compiler
|
---|
21 | do not re-introduce this losing ``feature''. */
|
---|
22 | void
|
---|
23 | __init_start()
|
---|
24 | {
|
---|
25 | Foo::init_foo();
|
---|
26 | }
|
---|
27 |
|
---|
28 | static Foo static_foo( "static_foo");
|
---|
29 |
|
---|
30 | int main()
|
---|
31 | {
|
---|
32 | assert (Foo::nb_foos() == 2);
|
---|
33 | Foo automatic_foo( "automatic_foo");
|
---|
34 | Foo bla_foo = f();
|
---|
35 | assert (Foo::nb_foos() == 4);
|
---|
36 | g();
|
---|
37 | assert (Foo::nb_foos() == 4);
|
---|
38 | // `automatic_foo' and `bla_foo' are destructed here
|
---|
39 | }
|
---|
40 |
|
---|
Note:
See
TracBrowser
for help on using the repository browser.