OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.dg/] [ext/] [visibility/] [template4.C] - Blame information for rev 154

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 149 jeremybenn
// Test for explicit visibility on template vs. #pragma vis at explicit
2
// instantiation/specialization point for plain function templates.
3
 
4
// { dg-require-visibility "" }
5
// { dg-final { scan-hidden "_Z3fooIdEvT_" } }
6
// { dg-final { scan-hidden "_Z3fooIlEvT_" } }
7
// { dg-final { scan-hidden "_Z3fooIcEvT_" } }
8
// { dg-final { scan-hidden "_Z3fooIiEvT_" } }
9
// { dg-final { scan-not-hidden "_Z3fooIfEvT_" } }
10
// { dg-final { scan-not-hidden "_Z3fooIsEvT_" } }
11
 
12
// { dg-final { scan-hidden "_Z3barIdEvT_" } }
13
// { dg-final { scan-hidden "_Z3barIlEvT_" } }
14
// { dg-final { scan-hidden "_Z3barIiEvT_" } }
15
// { dg-final { scan-hidden "_Z3barIcEvT_" } }
16
// { dg-final { scan-not-hidden "_Z3barIfEvT_" } }
17
// { dg-final { scan-not-hidden "_Z3barIsEvT_" } }
18
 
19
#pragma GCC visibility push(hidden)
20
template  void bar(T) { }
21
#pragma GCC visibility pop
22
template void bar (long);
23
template<> void bar (double) { }
24
template __attribute ((visibility ("default"))) void bar (short);
25
template<> __attribute ((visibility ("default"))) void bar (float) { }
26
#pragma GCC visibility push(default)
27
template<> void bar(char) { }
28
template void bar(int);
29
#pragma GCC visibility pop
30
 
31
template  __attribute ((visibility ("hidden"))) void foo(T) { }
32
template void foo (long);
33
template<> void foo (double) { }
34
template __attribute ((visibility ("default"))) void foo (short);
35
template<> __attribute ((visibility ("default"))) void foo (float) { }
36
#pragma GCC visibility push(default)
37
template<> void foo(char) { }
38
template void foo(int);
39
#pragma GCC visibility pop

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.