/* PR middle-end/20303 */ /* Test nesting of #pragma GCC visibility. */ /* { dg-do compile } */ /* { dg-require-visibility "" } */ /* { dg-final { scan-not-hidden "foo00" } } */ /* { dg-final { scan-hidden "foo01" } } */ /* { dg-final { scan-not-hidden "foo02" } } */ /* { dg-final { scan-hidden "foo03" } } */ /* { dg-final { scan-not-hidden "foo04" } } */ /* { dg-final { scan-not-hidden "foo05" } } */ /* { dg-final { scan-not-hidden "foo06" } } */ /* { dg-final { scan-hidden "foo07" } } */ /* { dg-final { scan-not-hidden "foo08" } } */ /* { dg-final { scan-hidden "foo09" } } */ /* { dg-final { scan-not-hidden "foo10" } } */ /* { dg-final { scan-hidden "foo11" } } */ /* { dg-final { scan-hidden "foo12" } } */ /* { dg-final { scan-hidden "foo13" } } */ /* { dg-final { scan-not-hidden "foo14" } } */ /* { dg-final { scan-hidden "foo15" } } */ /* { dg-final { scan-not-hidden "foo16" } } */ /* { dg-final { scan-hidden "foo17" } } */ /* { dg-final { scan-not-hidden "foo18" } } */ /* { dg-final { scan-hidden "foo19" } } */ /* { dg-final { scan-not-hidden "foo20" } } */ /* { dg-final { scan-hidden "foo21" } } */ /* { dg-final { scan-not-hidden "foo22" } } */ /* { dg-final { scan-hidden "foo23" } } */ /* { dg-final { scan-not-hidden "foo24" } } */ /* { dg-final { scan-hidden "foo25" } } */ /* { dg-final { scan-not-hidden "foo26" } } */ /* { dg-final { scan-hidden "foo27" } } */ /* { dg-final { scan-not-hidden "foo28" } } */ /* { dg-final { scan-hidden "foo29" } } */ /* { dg-final { scan-not-hidden "foo30" } } */ /* { dg-final { scan-hidden "foo31" } } */ /* { dg-final { scan-not-hidden "foo32" } } */ /* { dg-final { scan-hidden "foo33" } } */ /* { dg-final { scan-not-hidden "foo34" } } */ /* { dg-final { scan-hidden "foo35" } } */ /* { dg-final { scan-not-hidden "foo36" } } */ /* { dg-final { scan-hidden "foo37" } } */ /* { dg-final { scan-not-hidden "foo38" } } */ /* { dg-final { scan-hidden "foo39" } } */ /* { dg-final { scan-not-hidden "foo40" } } */ /* { dg-final { scan-hidden "foo41" } } */ /* { dg-final { scan-not-hidden "foo42" } } */ /* { dg-final { scan-hidden "foo43" } } */ /* { dg-final { scan-not-hidden "foo44" } } */ /* { dg-final { scan-hidden "foo45" } } */ /* { dg-final { scan-hidden "foo46" } } */ /* { dg-final { scan-hidden "foo47" } } */ /* { dg-final { scan-not-hidden "foo48" } } */ /* { dg-final { scan-hidden "foo49" } } */ /* { dg-final { scan-not-hidden "foo50" } } */ /* { dg-final { scan-hidden "foo51" } } */ /* { dg-final { scan-not-hidden "foo52" } } */ /* { dg-final { scan-not-hidden "foo53" } } */ /* { dg-final { scan-not-hidden "foo54" } } */ /* { dg-final { scan-hidden "foo55" } } */ /* { dg-final { scan-not-hidden "foo56" } } */ /* { dg-final { scan-hidden "foo57" } } */ /* { dg-final { scan-not-hidden "foo58" } } */ /* { dg-final { scan-hidden "foo59" } } */ #pragma GCC visibility push(default) void foo00(); #pragma GCC visibility push(hidden) void foo01(); #pragma GCC visibility push(default) void foo02(); #pragma GCC visibility push(hidden) void foo03(); #pragma GCC visibility push(default) void foo04(); #pragma GCC visibility push(default) void foo05(); #pragma GCC visibility push(default) void foo06(); #pragma GCC visibility push(hidden) void foo07(); #pragma GCC visibility push(default) void foo08(); #pragma GCC visibility push(hidden) void foo09(); #pragma GCC visibility push(default) void foo10(); #pragma GCC visibility push(hidden) void foo11(); #pragma GCC visibility push(hidden) void foo12(); #pragma GCC visibility push(hidden) void foo13(); #pragma GCC visibility push(default) void foo14(); #pragma GCC visibility push(hidden) void foo15(); #pragma GCC visibility push(default) void foo16(); #pragma GCC visibility push(hidden) void foo17(); #pragma GCC visibility push(default) void foo18(); #pragma GCC visibility push(hidden) void foo19(); #pragma GCC visibility push(default) void foo20(); #pragma GCC visibility push(hidden) void foo21(); #pragma GCC visibility push(default) void foo22(); #pragma GCC visibility push(hidden) void foo23(); #pragma GCC visibility push(default) void foo24(); #pragma GCC visibility push(hidden) void foo25(); #pragma GCC visibility push(default) void foo26(); #pragma GCC visibility push(hidden) void foo27(); #pragma GCC visibility push(default) void foo28(); #pragma GCC visibility push(hidden) void foo29(); #pragma GCC visibility pop void foo30(); #pragma GCC visibility pop void foo31(); #pragma GCC visibility pop void foo32(); #pragma GCC visibility pop void foo33(); #pragma GCC visibility pop void foo34(); #pragma GCC visibility pop void foo35(); #pragma GCC visibility pop void foo36(); #pragma GCC visibility pop void foo37(); #pragma GCC visibility pop void foo38(); #pragma GCC visibility pop void foo39(); #pragma GCC visibility pop void foo40(); #pragma GCC visibility pop void foo41(); #pragma GCC visibility pop void foo42(); #pragma GCC visibility pop void foo43(); #pragma GCC visibility pop void foo44(); #pragma GCC visibility pop void foo45(); #pragma GCC visibility pop void foo46(); #pragma GCC visibility pop void foo47(); #pragma GCC visibility pop void foo48(); #pragma GCC visibility pop void foo49(); #pragma GCC visibility pop void foo50(); #pragma GCC visibility pop void foo51(); #pragma GCC visibility pop void foo52(); #pragma GCC visibility pop void foo53(); #pragma GCC visibility pop void foo54(); #pragma GCC visibility pop void foo55(); #pragma GCC visibility pop void foo56(); #pragma GCC visibility pop void foo57(); #pragma GCC visibility pop void foo58(); #pragma GCC visibility push (hidden) void foo59(); #pragma GCC visibility pop #pragma GCC visibility pop #define D(N) \ void foo##N##0() { } \ void foo##N##1() { } \ void foo##N##2() { } \ void foo##N##3() { } \ void foo##N##4() { } \ void foo##N##5() { } \ void foo##N##6() { } \ void foo##N##7() { } \ void foo##N##8() { } \ void foo##N##9() { } D(0) D(1) D(2) D(3) D(4) D(5)