aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2018-11-12 23:46:20 -0500
committerJason Merrill <jason@gcc.gnu.org>2018-11-12 23:46:20 -0500
commit7c23c87c93f3eafa5c22d1f4f52711d97f3a4329 (patch)
tree5a2ab00adb89fb212cae894ad79731ed185c08de /gcc/testsuite
parenta6bb6b07f76c4431cb5a2a520ac33f7c970b80c1 (diff)
downloadgcc-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.C19
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>({});
+}