aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gdc.dg/attr_visibility1.d
blob: 932e6e6051f379c5d2cbf7474b0f491eee45d9a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// { dg-do compile }
// { dg-require-visibility "" }

import gcc.attributes;

void nested()
{
    @attribute("visibility", "default")
    struct nested_struct { } // { dg-warning ".visibility. attribute ignored" }

    @attribute("visibility", "default")
    void nested_func() { } // { dg-warning ".visibility. attribute ignored" }
}

@attribute("visibility", 123)
int not_a_string(); // { dg-error ".visibility. attribute argument not a string constant" }

@attribute("visibility", "invalid argument")
int invalid_argument(); // { dg-error ".visibility. argument must be one of" }

@attribute("visibility", "default")
int redeclared_visibility();

@attribute("visibility", "internal")
int redeclared_visibility(); // { dg-error "redeclared with different visibility" }