1e01aa904Sopenharmony_ci// Compile with:
2e01aa904Sopenharmony_ci// g++ -g -Wall -fPIC -shared -o libtest31-v1.so test31-v1.cc
3e01aa904Sopenharmony_ci
4e01aa904Sopenharmony_cinamespace hidden
5e01aa904Sopenharmony_ci{
6e01aa904Sopenharmony_ci
7e01aa904Sopenharmony_cistruct S0
8e01aa904Sopenharmony_ci{
9e01aa904Sopenharmony_ci  int m0;
10e01aa904Sopenharmony_ci  char m1;
11e01aa904Sopenharmony_ci
12e01aa904Sopenharmony_ci  S0()
13e01aa904Sopenharmony_ci    : m0(), m1()
14e01aa904Sopenharmony_ci  {}
15e01aa904Sopenharmony_ci
16e01aa904Sopenharmony_ci  S0(int v)
17e01aa904Sopenharmony_ci    : m0(v),
18e01aa904Sopenharmony_ci      m1()
19e01aa904Sopenharmony_ci  {}
20e01aa904Sopenharmony_ci};
21e01aa904Sopenharmony_ci
22e01aa904Sopenharmony_civoid
23e01aa904Sopenharmony_cifoo(S0& s)
24e01aa904Sopenharmony_ci{
25e01aa904Sopenharmony_ci  s.m0 = 2;
26e01aa904Sopenharmony_ci  s.m1 = 1;
27e01aa904Sopenharmony_ci}
28e01aa904Sopenharmony_ci
29e01aa904Sopenharmony_ci} // end namespace hidden
30e01aa904Sopenharmony_ci
31e01aa904Sopenharmony_cinamespace visible
32e01aa904Sopenharmony_ci{
33e01aa904Sopenharmony_civoid
34e01aa904Sopenharmony_cibar(int v)
35e01aa904Sopenharmony_ci{
36e01aa904Sopenharmony_ci  hidden::S0 s(v);
37e01aa904Sopenharmony_ci  hidden::foo(s);
38e01aa904Sopenharmony_ci}
39e01aa904Sopenharmony_ci
40e01aa904Sopenharmony_ci} // end namespace visible
41