diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2018-02-15 18:05:40 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2018-02-15 18:05:40 +0000 |
commit | 4779063140d6dc06de57d489923c91df7513f374 (patch) | |
tree | 94f235097de8e000d7242084733fddf09bb25f14 | |
parent | 60887f8c2df851fd14988578dfe23126e2e8b9b5 (diff) | |
download | gcc-4779063140d6dc06de57d489923c91df7513f374.zip gcc-4779063140d6dc06de57d489923c91df7513f374.tar.gz gcc-4779063140d6dc06de57d489923c91df7513f374.tar.bz2 |
re PR c++/84330 ([concepts] ICE with broken constraint)
/cp
2018-02-15 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84330
* constraint.cc (tsubst_constraint_info): Handle an error_mark_node
as first argument.
/testsuite
2018-02-15 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84330
* g++.dg/concepts/pr84330.C: New.
From-SVN: r257698
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/constraint.cc | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/concepts/pr84330.C | 12 |
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 6c95dfe..f7fd4e3 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2018-02-15 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/84330 + * constraint.cc (tsubst_constraint_info): Handle an error_mark_node + as first argument. + 2018-02-14 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84350 diff --git a/gcc/cp/constraint.cc b/gcc/cp/constraint.cc index 622c9fe..37eded1 100644 --- a/gcc/cp/constraint.cc +++ b/gcc/cp/constraint.cc @@ -1918,7 +1918,7 @@ tsubst_constraint_info (tree t, tree args, tree tsubst_constraint (tree t, tree args, tsubst_flags_t complain, tree in_decl) { - if (t == NULL_TREE) + if (t == NULL_TREE || t == error_mark_node) return t; switch (TREE_CODE (t)) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3d6da2a..91e14ce 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-02-15 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/84330 + * g++.dg/concepts/pr84330.C: New. + 2018-02-15 Tom de Vries <tom@codesourcery.com> * gcc.dg/Wstringop-overflow-3.c: Require effective target alloca. diff --git a/gcc/testsuite/g++.dg/concepts/pr84330.C b/gcc/testsuite/g++.dg/concepts/pr84330.C new file mode 100644 index 0000000..975ee89 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr84330.C @@ -0,0 +1,12 @@ +// PR c++/84330 +// { dg-options "-fconcepts" } + +struct A +{ + template<typename T> requires sizeof(T) >> 0 void foo(T); // { dg-error "predicate constraint" } + + void bar() + { + foo(0); // { dg-error "no matching" } + } +}; |