diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/ext/visibility/anon8.C')
-rw-r--r-- | gcc/testsuite/g++.dg/ext/visibility/anon8.C | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/ext/visibility/anon8.C b/gcc/testsuite/g++.dg/ext/visibility/anon8.C new file mode 100644 index 000000000..8ef8d6823 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/visibility/anon8.C @@ -0,0 +1,35 @@ +// PR c++/34213 +// { dg-do compile } + +template <void (*fn) ()> +void call () // { dg-message "note" } +{ + fn (); +} + +namespace +{ + struct B1 + { + static void fn1 () {} + static void fn4 (); + }; + void fn3 () {} + void B1::fn4 () {} + static void fn5 () {} +} + +int main () +{ + struct B2 + { + static void fn2 () {} + }; + call<&B1::fn1> (); + call<&B2::fn2> (); // { dg-error "not external linkage|no matching" } + // { dg-message "candidate" "candidate note" { target *-*-* } 29 } + call<&fn3> (); + call<&B1::fn4> (); + call<&fn5> (); // { dg-error "not external linkage|no matching" } + // { dg-message "candidate" "candidate note" { target *-*-* } 33 } +} |