aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-03-29 14:47:56 -0400
committerJason Merrill <jason@gcc.gnu.org>2011-03-29 14:47:56 -0400
commit5b9e705e63f09c873cd19b7e79a0b7019d13f1ac (patch)
treedb769131e5f3d8b27d7e95b19a15e83a31c602d9 /gcc/testsuite
parent00a0d6f3590e0e9891fc01d21667de892d6a89c6 (diff)
downloadgcc-5b9e705e63f09c873cd19b7e79a0b7019d13f1ac.zip
gcc-5b9e705e63f09c873cd19b7e79a0b7019d13f1ac.tar.gz
gcc-5b9e705e63f09c873cd19b7e79a0b7019d13f1ac.tar.bz2
re PR c++/48319 ([C++0x] Segmentation fault in instantiation of std::is_constructible<int>)
PR c++/48319 * pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR. From-SVN: r171689
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/dependent1.C25
2 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fbd21e5..9515798 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,7 @@
2011-03-29 Jason Merrill <jason@redhat.com>
+ * g++.dg/cpp0x/dependent1.C: New.
+
* g++.dg/cpp0x/constexpr-48089.C: Adjust.
* g++.dg/cpp0x/constexpr-memfn1.C: New.
diff --git a/gcc/testsuite/g++.dg/cpp0x/dependent1.C b/gcc/testsuite/g++.dg/cpp0x/dependent1.C
new file mode 100644
index 0000000..1ceeeaf
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/dependent1.C
@@ -0,0 +1,25 @@
+// PR c++/48319
+// { dg-options -std=c++0x }
+// We were failing to recognize declval<_Args1> as dependent.
+
+template<typename Tp> Tp declval() noexcept;
+
+template<typename _Tp>
+class __is_constructible_helper
+{
+ typedef char __one;
+ typedef struct { char __arr[2]; } __two;
+
+ template<typename _Tp1, typename... _Args1>
+ static decltype(_Tp1(declval<_Args1>()...), __one()) __test(int);
+
+ template<typename, typename...>
+ static __two __test(...);
+
+public:
+ static const bool __value = sizeof(__test<_Tp>(0)) == 1;
+};
+
+int main() {
+ return __is_constructible_helper<int>::__value;
+}