diff options
| author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-21 18:35:20 +0000 |
|---|---|---|
| committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-21 18:35:20 +0000 |
| commit | 6da06c904cf4cc03512ffb885aa81dcfb4d26c6c (patch) | |
| tree | c5c0d1da9f786b1d816f1348270f4cff5352ff5b | |
| parent | c72f0286a78e0b6b4d2a1663933612dcf970f980 (diff) | |
| download | ppe42-gcc-6da06c904cf4cc03512ffb885aa81dcfb4d26c6c.tar.gz ppe42-gcc-6da06c904cf4cc03512ffb885aa81dcfb4d26c6c.zip | |
PR c++/26690
* tree.c (get_callee_fndecl): If CALL is error_mark_node,
return it immediately.
* g++.dg/gomp/pr26690-1.C: New test.
* g++.dg/gomp/pr26690-2.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112253 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/gomp/pr26690-1.C | 15 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/gomp/pr26690-2.C | 16 | ||||
| -rw-r--r-- | gcc/tree.c | 3 |
5 files changed, 46 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4e910bc13a7..58504cf91e9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-03-21 Jakub Jelinek <jakub@redhat.com> + + PR c++/26690 + * tree.c (get_callee_fndecl): If CALL is error_mark_node, + return it immediately. + 2006-03-21 Michael Matz <matz@suse.de> * genautomata.c (<struct state>, num_out_arcs, presence_signature): diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8b5095299b4..2c983ad09da 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2006-03-21 Jakub Jelinek <jakub@redhat.com> + + PR c++/26690 + * g++.dg/gomp/pr26690-1.C: New test. + * g++.dg/gomp/pr26690-2.C: New test. + 2006-03-20 Jeff Law <law@redhat.com> * gcc.dg/tree-ssa/pr21829.c: New test. diff --git a/gcc/testsuite/g++.dg/gomp/pr26690-1.C b/gcc/testsuite/g++.dg/gomp/pr26690-1.C new file mode 100644 index 00000000000..9efd8d45ee9 --- /dev/null +++ b/gcc/testsuite/g++.dg/gomp/pr26690-1.C @@ -0,0 +1,15 @@ +// PR c++/26690 +// { dg-do compile } + +struct A +{ // { dg-error "A::A\\(const A&\\)" } + A (int); // { dg-error "candidates" } +}; + +void +foo () +{ + A a(0); +#pragma omp parallel private (a) // { dg-error "no matching function" } + ; +} diff --git a/gcc/testsuite/g++.dg/gomp/pr26690-2.C b/gcc/testsuite/g++.dg/gomp/pr26690-2.C new file mode 100644 index 00000000000..4ebf677cd08 --- /dev/null +++ b/gcc/testsuite/g++.dg/gomp/pr26690-2.C @@ -0,0 +1,16 @@ +// PR c++/26690 +// { dg-do compile } + +struct A +{ + A (int x = 6); // { dg-error "A::A\\(int\\)" } + A (long long x = 12LL); // { dg-error "candidates" } +}; + +void +foo () +{ + A a(6); +#pragma omp parallel private (a) // { dg-error "call of overloaded" } + ; +} diff --git a/gcc/tree.c b/gcc/tree.c index d49b3ba5edd..0c958e8d65b 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -5801,6 +5801,9 @@ get_callee_fndecl (tree call) { tree addr; + if (call == error_mark_node) + return call; + /* It's invalid to call this function with anything but a CALL_EXPR. */ gcc_assert (TREE_CODE (call) == CALL_EXPR); |

