(root)/
gcc-13.2.0/
gcc/
testsuite/
gdc.dg/
attr_visibility1.d
// { 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" }