re PR c++/55992 (constexpr static member function not recognised in templated using...
authorPaolo Carlini <paolo.carlini@oracle.com>
Wed, 25 May 2016 09:50:46 +0000 (09:50 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Wed, 25 May 2016 09:50:46 +0000 (09:50 +0000)
2016-05-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/55992
* g++.dg/cpp0x/alias-decl-53.C: New.
* g++.dg/cpp0x/alias-decl-54.C: Likewise.

From-SVN: r236698

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/alias-decl-53.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/alias-decl-54.C [new file with mode: 0644]

index d7a59ad54cec88a798f42910b645a37a8ae571a5..ad5f0b66a79a9f994d3d88e1410aee124738ea89 100644 (file)
@@ -1,3 +1,9 @@
+2016-05-25  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/55992
+       * g++.dg/cpp0x/alias-decl-53.C: New.
+       * g++.dg/cpp0x/alias-decl-54.C: Likewise.
+
 2016-05-25  Martin Liska  <mliska@suse.cz>
 
        * g++.dg/pr71239.C: New test.
diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-53.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-53.C
new file mode 100644 (file)
index 0000000..fcb6121
--- /dev/null
@@ -0,0 +1,18 @@
+// PR c++/55992
+// { dg-do compile { target c++11 } }
+
+template<unsigned N>
+struct A {};
+
+template<unsigned MaxP>
+struct test
+{
+  static constexpr unsigned pole(unsigned P)
+  { return P>MaxP? MaxP:P; }
+
+  template<unsigned P>
+  using my_array = A<pole(P)>;
+
+  template<unsigned P>
+  void do_something(my_array<P> const&, my_array<P>);
+};
diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-54.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-54.C
new file mode 100644 (file)
index 0000000..faac467
--- /dev/null
@@ -0,0 +1,15 @@
+// PR c++/55992
+// { dg-do compile { target c++11 } }
+
+template <int> struct A { };
+
+template <int I>
+struct B
+{
+  static constexpr int f (int i) { return i; }
+
+  template <int J>
+  using C = A<f (J)>;
+
+  C<I> c;
+};