aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2012-10-09 16:09:32 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2012-10-09 16:09:32 +0000
commit5b5d3d76253622379bd7e60fe948c4b5b0988125 (patch)
treec54c9323224894733d75b192ab31222d17b2256c /gcc
parenta5497b12385d3a21e336f068d5477574a78da94a (diff)
downloadgcc-5b5d3d76253622379bd7e60fe948c4b5b0988125.zip
gcc-5b5d3d76253622379bd7e60fe948c4b5b0988125.tar.gz
gcc-5b5d3d76253622379bd7e60fe948c4b5b0988125.tar.bz2
re PR c++/53763 (Missing error check on decltype when used within variadic template argument list)
2012-10-09 Paolo Carlini <paolo.carlini@oracle.com> PR c++/53763 * g++.dg/cpp0x/decltype43.C: New. From-SVN: r192263
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/decltype43.C27
2 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index eb34647..245174e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2012-10-09 Paolo Carlini <paolo.carlini@oracle.com>
+ PR c++/53763
+ * g++.dg/cpp0x/decltype43.C: New.
+
+2012-10-09 Paolo Carlini <paolo.carlini@oracle.com>
+
PR c++/54194
* g++.dg/warn/Wparentheses-26.C: Adjust.
* g++.dg/warn/Wparentheses-27.C: New.
diff --git a/gcc/testsuite/g++.dg/cpp0x/decltype43.C b/gcc/testsuite/g++.dg/cpp0x/decltype43.C
new file mode 100644
index 0000000..4df95a1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/decltype43.C
@@ -0,0 +1,27 @@
+// PR c++/53763
+// { dg-do compile { target c++11 } }
+
+template<typename TYPE>
+struct A
+{
+ static int a(TYPE value)
+ {
+ return value;
+ }
+};
+
+template<typename... ARGS>
+struct B
+{
+ static int b(ARGS...)
+ {
+ return 0;
+ }
+};
+
+int main()
+{
+ int x = B<decltype(A<int>::a(1))>::b(A<int>::a(1));
+ int y = B<decltype(A ::a(2))>::b(A<int>::a(2)); // { dg-error "template argument" }
+ return x + y;
+}