diff options
author | Jason Merrill <jason@redhat.com> | 2018-11-12 23:46:20 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2018-11-12 23:46:20 -0500 |
commit | 7c23c87c93f3eafa5c22d1f4f52711d97f3a4329 (patch) | |
tree | 5a2ab00adb89fb212cae894ad79731ed185c08de /gcc/testsuite | |
parent | a6bb6b07f76c4431cb5a2a520ac33f7c970b80c1 (diff) | |
download | gcc-7c23c87c93f3eafa5c22d1f4f52711d97f3a4329.zip gcc-7c23c87c93f3eafa5c22d1f4f52711d97f3a4329.tar.gz gcc-7c23c87c93f3eafa5c22d1f4f52711d97f3a4329.tar.bz2 |
decl2.c (min_vis_expr_r, [...]): New.
* decl2.c (min_vis_expr_r, expr_visibility): New.
We weren't properly constraining visibility based on names that appear in
the mangled representation of expressions. This was made more obvious
by the upcoming unevaluated lambdas patch.
(min_vis_r): Call expr_visibility.
(constrain_visibility_for_template): Likewise.
From-SVN: r266054
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/g++.dg/abi/no-linkage-expr1.C | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/abi/no-linkage-expr1.C b/gcc/testsuite/g++.dg/abi/no-linkage-expr1.C new file mode 100644 index 0000000..c3b1286 --- /dev/null +++ b/gcc/testsuite/g++.dg/abi/no-linkage-expr1.C @@ -0,0 +1,19 @@ +// { dg-do compile { target c++11 } } +// { dg-final { scan-assembler-not "weak.*_Z" } } + +using P = struct {}*; + +template <int N> +void f(int(*)[((P)0, N)]) {} + +template <int N> +struct A { }; + +template <int N> +void g(A<((P)0,N)>) {} + +int main() +{ + f<1>(0); + g<1>({}); +} |